From e9a0803d95f0105587f03dbe794ed890a6abd94f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 13:12:14 +0100 Subject: [PATCH 001/643] chore(deps): update dependency rollup to v4.5.2 (#762) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 146 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 132 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 0cca6be0f..88c8ae5ef 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.0", - "rollup": "4.5.1", + "rollup": "4.5.2", "typescript": "5.3.2" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 80617feed..e38c94feb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.5.1) + version: 15.2.3(rollup@4.5.2) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.5.1) + version: 0.4.4(rollup@4.5.2) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.5.1)(typescript@5.3.2) + version: 11.1.5(rollup@4.5.2)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': specifier: 6.12.0 version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) @@ -52,8 +52,8 @@ importers: specifier: 3.1.0 version: 3.1.0 rollup: - specifier: 4.5.1 - version: 4.5.1 + specifier: 4.5.2 + version: 4.5.2 typescript: specifier: 5.3.2 version: 5.3.2 @@ -556,7 +556,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.5.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.5.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -565,16 +565,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.5.1) + '@rollup/pluginutils': 5.0.2(rollup@4.5.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.5.1 + rollup: 4.5.2 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.5.1): + /@rollup/plugin-terser@0.4.4(rollup@4.5.2): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -583,13 +583,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.5.1 + rollup: 4.5.2 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.5.1)(typescript@5.3.2): + /@rollup/plugin-typescript@11.1.5(rollup@4.5.2)(typescript@5.3.2): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -602,13 +602,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.5.1) + '@rollup/pluginutils': 5.0.2(rollup@4.5.2) resolve: 1.22.8 - rollup: 4.5.1 + rollup: 4.5.2 typescript: 5.3.2 dev: true - /@rollup/pluginutils@5.0.2(rollup@4.5.1): + /@rollup/pluginutils@5.0.2(rollup@4.5.2): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -620,7 +620,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.5.1 + rollup: 4.5.2 dev: true /@rollup/rollup-android-arm-eabi@4.5.1: @@ -631,6 +631,14 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm-eabi@4.5.2: + resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-android-arm64@4.5.1: resolution: {integrity: sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw==} cpu: [arm64] @@ -639,6 +647,14 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm64@4.5.2: + resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-arm64@4.5.1: resolution: {integrity: sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw==} cpu: [arm64] @@ -647,6 +663,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-arm64@4.5.2: + resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-darwin-x64@4.5.1: resolution: {integrity: sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw==} cpu: [x64] @@ -655,6 +679,14 @@ packages: dev: true optional: true + /@rollup/rollup-darwin-x64@4.5.2: + resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.5.1: resolution: {integrity: sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A==} cpu: [arm] @@ -663,6 +695,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.5.2: + resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-gnu@4.5.1: resolution: {integrity: sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww==} cpu: [arm64] @@ -671,6 +711,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm64-gnu@4.5.2: + resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-arm64-musl@4.5.1: resolution: {integrity: sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw==} cpu: [arm64] @@ -679,6 +727,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-arm64-musl@4.5.2: + resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-gnu@4.5.1: resolution: {integrity: sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw==} cpu: [x64] @@ -687,6 +743,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-x64-gnu@4.5.2: + resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-linux-x64-musl@4.5.1: resolution: {integrity: sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ==} cpu: [x64] @@ -695,6 +759,14 @@ packages: dev: true optional: true + /@rollup/rollup-linux-x64-musl@4.5.2: + resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-arm64-msvc@4.5.1: resolution: {integrity: sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ==} cpu: [arm64] @@ -703,6 +775,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-arm64-msvc@4.5.2: + resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-ia32-msvc@4.5.1: resolution: {integrity: sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg==} cpu: [ia32] @@ -711,6 +791,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-ia32-msvc@4.5.2: + resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-win32-x64-msvc@4.5.1: resolution: {integrity: sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q==} cpu: [x64] @@ -719,6 +807,14 @@ packages: dev: true optional: true + /@rollup/rollup-win32-x64-msvc@4.5.2: + resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.6): resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==} peerDependencies: @@ -2603,6 +2699,26 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.5.2: + resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.5.2 + '@rollup/rollup-android-arm64': 4.5.2 + '@rollup/rollup-darwin-arm64': 4.5.2 + '@rollup/rollup-darwin-x64': 4.5.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.5.2 + '@rollup/rollup-linux-arm64-gnu': 4.5.2 + '@rollup/rollup-linux-arm64-musl': 4.5.2 + '@rollup/rollup-linux-x64-gnu': 4.5.2 + '@rollup/rollup-linux-x64-musl': 4.5.2 + '@rollup/rollup-win32-arm64-msvc': 4.5.2 + '@rollup/rollup-win32-ia32-msvc': 4.5.2 + '@rollup/rollup-win32-x64-msvc': 4.5.2 + fsevents: 2.3.3 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: From 4f9e58d751769e8e34d4b46b5ee109c8fd1f8b9d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 18:38:09 +0100 Subject: [PATCH 002/643] chore(deps): update dependency svelte-check to v3.6.2 (#763) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- plugins/websocket/examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 00deaefa7..a0521f557 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -15,7 +15,7 @@ "@sveltejs/kit": "1.27.6", "@tauri-apps/cli": "1.5.5", "svelte": "4.2.7", - "svelte-check": "3.6.1", + "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", "vite": "5.0.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e38c94feb..31a9991b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -193,8 +193,8 @@ importers: specifier: 4.2.7 version: 4.2.7 svelte-check: - specifier: 3.6.1 - version: 3.6.1(svelte@4.2.7) + specifier: 3.6.2 + version: 3.6.2(svelte@4.2.7) tslib: specifier: 2.6.2 version: 2.6.2 @@ -2932,8 +2932,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.6.1(svelte@4.2.7): - resolution: {integrity: sha512-v+mmXKp+hZ+mZ/n9MQpAe+0q/GhRKXmhQOkWYAdRozXRkPiuLOdhsjp9KtNBpP0TRqvvrB0cwWL5HUjCLpI46g==} + /svelte-check@3.6.2(svelte@4.2.7): + resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 From 537053d3171a7374a1a86fed422523e7b45a4fb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:43:55 +0100 Subject: [PATCH 003/643] chore(deps): update dependency rollup to v4.6.0 (#765) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++++++++------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 88c8ae5ef..0a270d052 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.0", - "rollup": "4.5.2", + "rollup": "4.6.0", "typescript": "5.3.2" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31a9991b2..3472aad58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.5.2) + version: 15.2.3(rollup@4.6.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.5.2) + version: 0.4.4(rollup@4.6.0) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.5.2)(typescript@5.3.2) + version: 11.1.5(rollup@4.6.0)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': specifier: 6.12.0 version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) @@ -52,8 +52,8 @@ importers: specifier: 3.1.0 version: 3.1.0 rollup: - specifier: 4.5.2 - version: 4.5.2 + specifier: 4.6.0 + version: 4.6.0 typescript: specifier: 5.3.2 version: 5.3.2 @@ -556,7 +556,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.5.2): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -565,16 +565,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.5.2) + '@rollup/pluginutils': 5.0.2(rollup@4.6.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.5.2 + rollup: 4.6.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.5.2): + /@rollup/plugin-terser@0.4.4(rollup@4.6.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -583,13 +583,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.5.2 + rollup: 4.6.0 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.5.2)(typescript@5.3.2): + /@rollup/plugin-typescript@11.1.5(rollup@4.6.0)(typescript@5.3.2): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -602,13 +602,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.5.2) + '@rollup/pluginutils': 5.0.2(rollup@4.6.0) resolve: 1.22.8 - rollup: 4.5.2 + rollup: 4.6.0 typescript: 5.3.2 dev: true - /@rollup/pluginutils@5.0.2(rollup@4.5.2): + /@rollup/pluginutils@5.0.2(rollup@4.6.0): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -620,7 +620,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.5.2 + rollup: 4.6.0 dev: true /@rollup/rollup-android-arm-eabi@4.5.1: @@ -631,8 +631,8 @@ packages: dev: true optional: true - /@rollup/rollup-android-arm-eabi@4.5.2: - resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==} + /@rollup/rollup-android-arm-eabi@4.6.0: + resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==} cpu: [arm] os: [android] requiresBuild: true @@ -647,8 +647,8 @@ packages: dev: true optional: true - /@rollup/rollup-android-arm64@4.5.2: - resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==} + /@rollup/rollup-android-arm64@4.6.0: + resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==} cpu: [arm64] os: [android] requiresBuild: true @@ -663,8 +663,8 @@ packages: dev: true optional: true - /@rollup/rollup-darwin-arm64@4.5.2: - resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==} + /@rollup/rollup-darwin-arm64@4.6.0: + resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -679,8 +679,8 @@ packages: dev: true optional: true - /@rollup/rollup-darwin-x64@4.5.2: - resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==} + /@rollup/rollup-darwin-x64@4.6.0: + resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==} cpu: [x64] os: [darwin] requiresBuild: true @@ -695,8 +695,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.5.2: - resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.6.0: + resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==} cpu: [arm] os: [linux] requiresBuild: true @@ -711,8 +711,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.5.2: - resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==} + /@rollup/rollup-linux-arm64-gnu@4.6.0: + resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==} cpu: [arm64] os: [linux] requiresBuild: true @@ -727,8 +727,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.5.2: - resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==} + /@rollup/rollup-linux-arm64-musl@4.6.0: + resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==} cpu: [arm64] os: [linux] requiresBuild: true @@ -743,8 +743,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.5.2: - resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==} + /@rollup/rollup-linux-x64-gnu@4.6.0: + resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==} cpu: [x64] os: [linux] requiresBuild: true @@ -759,8 +759,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.5.2: - resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==} + /@rollup/rollup-linux-x64-musl@4.6.0: + resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==} cpu: [x64] os: [linux] requiresBuild: true @@ -775,8 +775,8 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.5.2: - resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==} + /@rollup/rollup-win32-arm64-msvc@4.6.0: + resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==} cpu: [arm64] os: [win32] requiresBuild: true @@ -791,8 +791,8 @@ packages: dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.5.2: - resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==} + /@rollup/rollup-win32-ia32-msvc@4.6.0: + resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==} cpu: [ia32] os: [win32] requiresBuild: true @@ -807,8 +807,8 @@ packages: dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.5.2: - resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==} + /@rollup/rollup-win32-x64-msvc@4.6.0: + resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==} cpu: [x64] os: [win32] requiresBuild: true @@ -2699,23 +2699,23 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.5.2: - resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} + /rollup@4.6.0: + resolution: {integrity: sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.5.2 - '@rollup/rollup-android-arm64': 4.5.2 - '@rollup/rollup-darwin-arm64': 4.5.2 - '@rollup/rollup-darwin-x64': 4.5.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.5.2 - '@rollup/rollup-linux-arm64-gnu': 4.5.2 - '@rollup/rollup-linux-arm64-musl': 4.5.2 - '@rollup/rollup-linux-x64-gnu': 4.5.2 - '@rollup/rollup-linux-x64-musl': 4.5.2 - '@rollup/rollup-win32-arm64-msvc': 4.5.2 - '@rollup/rollup-win32-ia32-msvc': 4.5.2 - '@rollup/rollup-win32-x64-msvc': 4.5.2 + '@rollup/rollup-android-arm-eabi': 4.6.0 + '@rollup/rollup-android-arm64': 4.6.0 + '@rollup/rollup-darwin-arm64': 4.6.0 + '@rollup/rollup-darwin-x64': 4.6.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.6.0 + '@rollup/rollup-linux-arm64-gnu': 4.6.0 + '@rollup/rollup-linux-arm64-musl': 4.6.0 + '@rollup/rollup-linux-x64-gnu': 4.6.0 + '@rollup/rollup-linux-x64-musl': 4.6.0 + '@rollup/rollup-win32-arm64-msvc': 4.6.0 + '@rollup/rollup-win32-ia32-msvc': 4.6.0 + '@rollup/rollup-win32-x64-msvc': 4.6.0 fsevents: 2.3.3 dev: true From f780e87ee344a1a907f5e56c79c1f8bba21919da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Nov 2023 13:11:34 +0100 Subject: [PATCH 004/643] chore(deps): update typescript-eslint monorepo to v6.13.1 (#770) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 0a270d052..e49f627a1 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.12.0", - "@typescript-eslint/parser": "6.12.0", + "@typescript-eslint/eslint-plugin": "6.13.1", + "@typescript-eslint/parser": "6.13.1", "eslint": "8.54.0", "eslint-config-prettier": "9.0.0", "eslint-config-standard-with-typescript": "40.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3472aad58..2902a2f3a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.6.0)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': - specifier: 6.12.0 - version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + specifier: 6.13.1 + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: 6.12.0 - version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) + specifier: 6.13.1 + version: 6.13.1(eslint@8.54.0)(typescript@5.3.2) eslint: specifier: 8.54.0 version: 8.54.0 @@ -35,10 +35,10 @@ importers: version: 9.0.0(eslint@8.54.0) eslint-config-standard-with-typescript: specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.12.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2) eslint-plugin-import: specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) eslint-plugin-n: specifier: 16.3.1 version: 16.3.1(eslint@8.54.0) @@ -1028,8 +1028,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1040,11 +1040,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 graphemer: 1.4.0 @@ -1057,8 +1057,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} + /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1067,10 +1067,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 eslint: 8.54.0 typescript: 5.3.2 @@ -1078,16 +1078,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.12.0: - resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} + /@typescript-eslint/scope-manager@6.13.1: + resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 dev: true - /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} + /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1096,8 +1096,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) debug: 4.3.4 eslint: 8.54.0 ts-api-utils: 1.0.1(typescript@5.3.2) @@ -1106,13 +1106,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.12.0: - resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} + /@typescript-eslint/types@6.13.1: + resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): - resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): + resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1120,8 +1120,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1132,8 +1132,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} + /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1141,9 +1141,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -1151,11 +1151,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.12.0: - resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} + /@typescript-eslint/visitor-keys@6.13.1: + resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/types': 6.13.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1624,7 +1624,7 @@ packages: eslint: 8.54.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.12.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2): + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1634,11 +1634,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) eslint: 8.54.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) eslint-plugin-n: 16.3.1(eslint@8.54.0) eslint-plugin-promise: 6.1.1(eslint@8.54.0) typescript: 5.3.2 @@ -1656,7 +1656,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.54.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) eslint-plugin-n: 16.3.1(eslint@8.54.0) eslint-plugin-promise: 6.1.1(eslint@8.54.0) dev: true @@ -1671,7 +1671,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1692,7 +1692,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) debug: 3.2.7 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 @@ -1711,7 +1711,7 @@ packages: eslint: 8.54.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1721,7 +1721,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1730,7 +1730,7 @@ packages: doctrine: 2.1.0 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From bd4bf06e6cf591e47da5ff97d3cb6830f9728343 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Nov 2023 22:37:26 +0100 Subject: [PATCH 005/643] chore(deps): update dependency vite to v5.0.3 (#772) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 154 +++--------------- 2 files changed, 20 insertions(+), 136 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index a0521f557..184f52208 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -18,7 +18,7 @@ "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", - "vite": "5.0.2" + "vite": "5.0.3" }, "dependencies": { "tauri-plugin-websocket-api": "link:../../" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2902a2f3a..a433cf323 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,7 +185,7 @@ importers: version: 2.1.1(@sveltejs/kit@1.27.6) '@sveltejs/kit': specifier: 1.27.6 - version: 1.27.6(svelte@4.2.7)(vite@5.0.2) + version: 1.27.6(svelte@4.2.7)(vite@5.0.3) '@tauri-apps/cli': specifier: 1.5.5 version: 1.5.5 @@ -202,8 +202,8 @@ importers: specifier: 5.3.2 version: 5.3.2 vite: - specifier: 5.0.2 - version: 5.0.2 + specifier: 5.0.3 + version: 5.0.3 plugins/window-state: dependencies: @@ -623,14 +623,6 @@ packages: rollup: 4.6.0 dev: true - /@rollup/rollup-android-arm-eabi@4.5.1: - resolution: {integrity: sha512-YaN43wTyEBaMqLDYeze+gQ4ZrW5RbTEGtT5o1GVDkhpdNcsLTnLRcLccvwy3E9wiDKWg9RIhuoy3JQKDRBfaZA==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm-eabi@4.6.0: resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==} cpu: [arm] @@ -639,14 +631,6 @@ packages: dev: true optional: true - /@rollup/rollup-android-arm64@4.5.1: - resolution: {integrity: sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm64@4.6.0: resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==} cpu: [arm64] @@ -655,14 +639,6 @@ packages: dev: true optional: true - /@rollup/rollup-darwin-arm64@4.5.1: - resolution: {integrity: sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-arm64@4.6.0: resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==} cpu: [arm64] @@ -671,14 +647,6 @@ packages: dev: true optional: true - /@rollup/rollup-darwin-x64@4.5.1: - resolution: {integrity: sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-x64@4.6.0: resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==} cpu: [x64] @@ -687,14 +655,6 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.5.1: - resolution: {integrity: sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.6.0: resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==} cpu: [arm] @@ -703,14 +663,6 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.5.1: - resolution: {integrity: sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.6.0: resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==} cpu: [arm64] @@ -719,14 +671,6 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.5.1: - resolution: {integrity: sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.6.0: resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==} cpu: [arm64] @@ -735,14 +679,6 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.5.1: - resolution: {integrity: sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.6.0: resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==} cpu: [x64] @@ -751,14 +687,6 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.5.1: - resolution: {integrity: sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.6.0: resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==} cpu: [x64] @@ -767,14 +695,6 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.5.1: - resolution: {integrity: sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.6.0: resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==} cpu: [arm64] @@ -783,14 +703,6 @@ packages: dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.5.1: - resolution: {integrity: sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.6.0: resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==} cpu: [ia32] @@ -799,14 +711,6 @@ packages: dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.5.1: - resolution: {integrity: sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.6.0: resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==} cpu: [x64] @@ -820,11 +724,11 @@ packages: peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.2.7)(vite@5.0.2) + '@sveltejs/kit': 1.27.6(svelte@4.2.7)(vite@5.0.3) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.6(svelte@4.2.7)(vite@5.0.2): + /@sveltejs/kit@1.27.6(svelte@4.2.7)(vite@5.0.3): resolution: {integrity: sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==} engines: {node: ^16.14 || >=18} hasBin: true @@ -833,7 +737,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.2) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.3) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 @@ -847,12 +751,12 @@ packages: svelte: 4.2.7 tiny-glob: 0.2.9 undici: 5.26.4 - vite: 5.0.2 + vite: 5.0.3 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.2): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.3): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -860,30 +764,30 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.2) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.3) debug: 4.3.4 svelte: 4.2.7 - vite: 5.0.2 + vite: 5.0.3 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.7)(vite@5.0.2): + /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.7)(vite@5.0.3): resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.2) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.3) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.7 svelte-hmr: 0.15.3(svelte@4.2.7) - vite: 5.0.2 - vitefu: 0.2.4(vite@5.0.2) + vite: 5.0.3 + vitefu: 0.2.4(vite@5.0.3) transitivePeerDependencies: - supports-color dev: true @@ -2679,26 +2583,6 @@ packages: glob: 7.2.3 dev: true - /rollup@4.5.1: - resolution: {integrity: sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.5.1 - '@rollup/rollup-android-arm64': 4.5.1 - '@rollup/rollup-darwin-arm64': 4.5.1 - '@rollup/rollup-darwin-x64': 4.5.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.5.1 - '@rollup/rollup-linux-arm64-gnu': 4.5.1 - '@rollup/rollup-linux-arm64-musl': 4.5.1 - '@rollup/rollup-linux-x64-gnu': 4.5.1 - '@rollup/rollup-linux-x64-musl': 4.5.1 - '@rollup/rollup-win32-arm64-msvc': 4.5.1 - '@rollup/rollup-win32-ia32-msvc': 4.5.1 - '@rollup/rollup-win32-x64-msvc': 4.5.1 - fsevents: 2.3.3 - dev: true - /rollup@4.6.0: resolution: {integrity: sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3168,8 +3052,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.0.2: - resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} + /vite@5.0.3: + resolution: {integrity: sha512-WgEq8WEKpZ8c0DL4M1+E+kBZEJyjBmGVrul6z8Ljfhv+PPbNF4aGq014DwNYxGz2FGq6NKL0N8usdiESWd2l2w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3198,12 +3082,12 @@ packages: dependencies: esbuild: 0.19.6 postcss: 8.4.31 - rollup: 4.5.1 + rollup: 4.6.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@5.0.2): + /vitefu@0.2.4(vite@5.0.3): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -3211,7 +3095,7 @@ packages: vite: optional: true dependencies: - vite: 5.0.2 + vite: 5.0.3 dev: true /which-boxed-primitive@1.0.2: From 3db81b4fe30d2ddb9cc109852b90b1e37da9e4cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 09:14:31 +0100 Subject: [PATCH 006/643] chore(deps): bump openssl from 0.10.56 to 0.10.60 (#773) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.56 to 0.10.60. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.56...openssl-v0.10.60) --- updated-dependencies: - dependency-name: openssl dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2d7fbac1c..dc25d8b52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2872,11 +2872,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.56" +version = "0.10.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" +checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.3", "cfg-if", "foreign-types", "libc", @@ -2904,9 +2904,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.91" +version = "0.9.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" +checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" dependencies = [ "cc", "libc", From 4899ae007a8c565125892024433f1440f55291d6 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 29 Nov 2023 10:59:04 +0100 Subject: [PATCH 007/643] chore: Disable workspace inheritance for [package] (#775) --- Cargo.lock | 6 ++---- Cargo.toml | 1 + plugins/authenticator/Cargo.toml | 8 ++++---- plugins/autostart/Cargo.toml | 8 ++++---- plugins/fs-extra/Cargo.toml | 8 ++++---- plugins/fs-watch/Cargo.toml | 8 ++++---- plugins/localhost/Cargo.toml | 8 ++++---- plugins/log/Cargo.toml | 8 ++++---- plugins/persisted-scope/Cargo.toml | 8 ++++---- plugins/positioner/Cargo.toml | 8 ++++---- plugins/single-instance/Cargo.toml | 8 ++++---- plugins/sql/Cargo.toml | 8 ++++---- plugins/store/Cargo.toml | 8 ++++---- plugins/stronghold/Cargo.toml | 8 ++++---- plugins/upload/Cargo.toml | 8 ++++---- plugins/websocket/Cargo.toml | 8 ++++---- plugins/window-state/Cargo.toml | 8 ++++---- shared/template/Cargo.toml | 6 +++--- 18 files changed, 66 insertions(+), 67 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc25d8b52..c25b7c8b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3549,16 +3549,14 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab43bb47d23c1a631b4b680199a45255dce26fa9ab2fa902581f624ff13e6a8" +checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" dependencies = [ - "byteorder", "const-oid", "digest 0.10.7", "num-bigint-dig", "num-integer", - "num-iter", "num-traits", "pkcs1", "pkcs8", diff --git a/Cargo.toml b/Cargo.toml index 94a7e79d8..347a4cf1d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ tauri-build = "1" serde_json = "1" thiserror = "1" +# TODO: Make plugins use these again once dependabot supports it. [workspace.package] edition = "2021" authors = [ "Tauri Programme within The Commons Conservancy" ] diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 007e63f46..3f06b0115 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-authenticator" version = "0.0.0" description = "Use hardware security-keys in your Tauri App." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index f1049a6ea..e859e095b 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-autostart" version = "0.0.0" description = "Automatically launch your application at startup." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/fs-extra/Cargo.toml b/plugins/fs-extra/Cargo.toml index 3904ec59a..4c28dbbca 100644 --- a/plugins/fs-extra/Cargo.toml +++ b/plugins/fs-extra/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-fs-extra" version = "0.0.0" description = "Additional file system methods not included in the core API." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/fs-watch/Cargo.toml b/plugins/fs-watch/Cargo.toml index 9114907db..cfab59a77 100644 --- a/plugins/fs-watch/Cargo.toml +++ b/plugins/fs-watch/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-fs-watch" version = "0.0.0" description = "Watch files and directories for changes." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 12fad9a07..6521ae781 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-localhost" version = "0.1.0" description = "Expose your apps assets through a localhost server instead of the default custom protocol." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index dfa723413..c49e1a558 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-log" version = "0.0.0" description = "Configurable logging for your Tauri app." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 23cfed408..35ca831d1 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-persisted-scope" version = "0.1.3" description = "Save filesystem and asset scopes and restore them when the app is reopened." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index dcab86c96..d51a4a0f7 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-positioner" version = "1.0.4" description = "Position your windows at well-known locations." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 3ed003753..5d66a473f 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-single-instance" version = "0.0.0" description = "Ensure a single instance of your tauri app is running." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 17239b023..ec4832f0d 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-sql" version = "0.0.0" description = "Interface with SQL databases." -authors.workspace = true -license.workspace = true -edition.workspace = true -#rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +#rust-version = "1.64" rust-version = "1.65" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index 626dbebc1..db9fa7f22 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-store" version = "0.0.0" description = "Simple, persistent key-value store." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 5952fb1bf..a5811569c 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-stronghold" version = "0.0.0" description = "Store secrets and keys using the IOTA Stronghold encrypted database." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 49abc6d43..80ac1914b 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-upload" version = "0.0.0" description = "Upload files from disk to a remote server over HTTP." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index ec5091a3b..dee01d89e 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "tauri-plugin-websocket" version = "0.0.0" -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 19693f36f..2a4745c2a 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-window-state" version = "0.1.0" description = "Save window positions and sizes and restore them when the app is reopened." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" +edition = "2021" +rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index 7b0fbd4b0..3c1a94413 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "tauri-plugin-{{name}}" version = "0.0.0" -edition.workspace = true -authors.workspace = true -license.workspace = true +edition = "2021" +authors = [ "Tauri Programme within The Commons Conservancy" ] +license = "Apache-2.0 OR MIT" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 12900556a0ab79cdfcf4b5fa8362dbbf4617e9e0 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 29 Nov 2023 11:08:11 +0100 Subject: [PATCH 008/643] Revert "chore: Disable workspace inheritance for [package] (#775)" (#776) This reverts commit 4899ae007a8c565125892024433f1440f55291d6. --- Cargo.lock | 6 ++++-- Cargo.toml | 1 - plugins/authenticator/Cargo.toml | 8 ++++---- plugins/autostart/Cargo.toml | 8 ++++---- plugins/fs-extra/Cargo.toml | 8 ++++---- plugins/fs-watch/Cargo.toml | 8 ++++---- plugins/localhost/Cargo.toml | 8 ++++---- plugins/log/Cargo.toml | 8 ++++---- plugins/persisted-scope/Cargo.toml | 8 ++++---- plugins/positioner/Cargo.toml | 8 ++++---- plugins/single-instance/Cargo.toml | 8 ++++---- plugins/sql/Cargo.toml | 8 ++++---- plugins/store/Cargo.toml | 8 ++++---- plugins/stronghold/Cargo.toml | 8 ++++---- plugins/upload/Cargo.toml | 8 ++++---- plugins/websocket/Cargo.toml | 8 ++++---- plugins/window-state/Cargo.toml | 8 ++++---- shared/template/Cargo.toml | 6 +++--- 18 files changed, 67 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c25b7c8b8..dc25d8b52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3549,14 +3549,16 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" +checksum = "6ab43bb47d23c1a631b4b680199a45255dce26fa9ab2fa902581f624ff13e6a8" dependencies = [ + "byteorder", "const-oid", "digest 0.10.7", "num-bigint-dig", "num-integer", + "num-iter", "num-traits", "pkcs1", "pkcs8", diff --git a/Cargo.toml b/Cargo.toml index 347a4cf1d..94a7e79d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,6 @@ tauri-build = "1" serde_json = "1" thiserror = "1" -# TODO: Make plugins use these again once dependabot supports it. [workspace.package] edition = "2021" authors = [ "Tauri Programme within The Commons Conservancy" ] diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 3f06b0115..007e63f46 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-authenticator" version = "0.0.0" description = "Use hardware security-keys in your Tauri App." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index e859e095b..f1049a6ea 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-autostart" version = "0.0.0" description = "Automatically launch your application at startup." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/fs-extra/Cargo.toml b/plugins/fs-extra/Cargo.toml index 4c28dbbca..3904ec59a 100644 --- a/plugins/fs-extra/Cargo.toml +++ b/plugins/fs-extra/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-fs-extra" version = "0.0.0" description = "Additional file system methods not included in the core API." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/fs-watch/Cargo.toml b/plugins/fs-watch/Cargo.toml index cfab59a77..9114907db 100644 --- a/plugins/fs-watch/Cargo.toml +++ b/plugins/fs-watch/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-fs-watch" version = "0.0.0" description = "Watch files and directories for changes." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 6521ae781..12fad9a07 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-localhost" version = "0.1.0" description = "Expose your apps assets through a localhost server instead of the default custom protocol." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index c49e1a558..dfa723413 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-log" version = "0.0.0" description = "Configurable logging for your Tauri app." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 35ca831d1..23cfed408 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-persisted-scope" version = "0.1.3" description = "Save filesystem and asset scopes and restore them when the app is reopened." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index d51a4a0f7..dcab86c96 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-positioner" version = "1.0.4" description = "Position your windows at well-known locations." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 5d66a473f..3ed003753 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-single-instance" version = "0.0.0" description = "Ensure a single instance of your tauri app is running." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index ec4832f0d..17239b023 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-sql" version = "0.0.0" description = "Interface with SQL databases." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -#rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +#rust-version.workspace = true rust-version = "1.65" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index db9fa7f22..626dbebc1 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-store" version = "0.0.0" description = "Simple, persistent key-value store." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index a5811569c..5952fb1bf 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-stronghold" version = "0.0.0" description = "Store secrets and keys using the IOTA Stronghold encrypted database." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 80ac1914b..49abc6d43 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-upload" version = "0.0.0" description = "Upload files from disk to a remote server over HTTP." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index dee01d89e..ec5091a3b 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "tauri-plugin-websocket" version = "0.0.0" -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 2a4745c2a..19693f36f 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -2,10 +2,10 @@ name = "tauri-plugin-window-state" version = "0.1.0" description = "Save window positions and sizes and restore them when the app is reopened." -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" -edition = "2021" -rust-version = "1.64" +authors.workspace = true +license.workspace = true +edition.workspace = true +rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index 3c1a94413..7b0fbd4b0 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "tauri-plugin-{{name}}" version = "0.0.0" -edition = "2021" -authors = [ "Tauri Programme within The Commons Conservancy" ] -license = "Apache-2.0 OR MIT" +edition.workspace = true +authors.workspace = true +license.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 3f7c4ddc967c377874d9f09cdb88bc0a79ea13e1 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 29 Nov 2023 12:04:37 +0100 Subject: [PATCH 009/643] chore: Add examples to root cargo workspace (#777) * chore: Add examples to cargo workspace * msrv * disable default feat * gitkeep dist --- .gitignore | 1 - Cargo.lock | 395 +- Cargo.toml | 2 +- .../examples/vanilla/.gitignore | 2 + .../examples/vanilla/dist/.gitkeep | 0 .../examples/vanilla/src-tauri/Cargo.lock | 4064 ----------------- .../examples/vanilla/src-tauri/Cargo.toml | 3 - .../websocket/examples/svelte-app/.gitignore | 2 + .../examples/svelte-app/dist/.gitkeep | 0 .../examples/svelte-app/src-tauri/Cargo.lock | 3369 -------------- .../examples/svelte-app/src-tauri/Cargo.toml | 3 - 11 files changed, 394 insertions(+), 7447 deletions(-) create mode 100644 plugins/single-instance/examples/vanilla/dist/.gitkeep delete mode 100644 plugins/single-instance/examples/vanilla/src-tauri/Cargo.lock create mode 100644 plugins/websocket/examples/svelte-app/dist/.gitkeep delete mode 100644 plugins/websocket/examples/svelte-app/src-tauri/Cargo.lock diff --git a/.gitignore b/.gitignore index 9a05fc88b..f6b47daf7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ target node_modules -dist dist-js \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index dc25d8b52..622988cf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -126,6 +126,20 @@ version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "futures-util", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-websocket", + "tokio", + "tokio-tungstenite", +] + [[package]] name = "arrayref" version = "0.3.7" @@ -330,7 +344,7 @@ checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" dependencies = [ "dirs", "thiserror", - "winreg", + "winreg 0.10.1", ] [[package]] @@ -535,6 +549,9 @@ name = "bytes" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +dependencies = [ + "serde", +] [[package]] name = "cairo-rs" @@ -560,6 +577,16 @@ dependencies = [ "system-deps 6.1.1", ] +[[package]] +name = "cargo_toml" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +dependencies = [ + "serde", + "toml 0.7.3", +] + [[package]] name = "cc" version = "1.0.82" @@ -1133,6 +1160,19 @@ dependencies = [ "serde", ] +[[package]] +name = "embed-resource" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0a2c9b742a980060d22545a7a83b573acd6b73045b9de6370c9530ce652f27" +dependencies = [ + "cc", + "rustc_version", + "toml 0.7.3", + "vswhom", + "winreg 0.51.0", +] + [[package]] name = "embed_plist" version = "1.2.2" @@ -2473,6 +2513,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" +[[package]] +name = "mac-notification-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time 0.3.20", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -2712,6 +2765,19 @@ dependencies = [ "serde", ] +[[package]] +name = "notify-rust" +version = "4.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" +dependencies = [ + "log", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2831,6 +2897,17 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2870,6 +2947,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + [[package]] name = "openssl" version = "0.10.60" @@ -2924,6 +3011,27 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_info" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" +dependencies = [ + "log", + "serde", + "winapi", +] + +[[package]] +name = "os_pipe" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "overload" version = "0.1.1" @@ -2990,6 +3098,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -3180,7 +3294,7 @@ dependencies = [ "base64 0.21.2", "indexmap 1.9.3", "line-wrap", - "quick-xml", + "quick-xml 0.29.0", "serde", "time 0.3.20", ] @@ -3304,6 +3418,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + [[package]] name = "quick-xml" version = "0.29.0" @@ -3529,7 +3652,31 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "winreg", + "winreg 0.10.1", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", ] [[package]] @@ -3949,6 +4096,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "signal-hook" version = "0.3.17" @@ -3984,6 +4141,17 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "single-instance-example" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-single-instance", +] + [[package]] name = "siphasher" version = "0.3.10" @@ -4430,6 +4598,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sys-locale" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a11bd9c338fdba09f7881ab41551932ad42e405f61d01e8406baea71c07aee" +dependencies = [ + "js-sys", + "libc", + "wasm-bindgen", + "web-sys", + "windows-sys 0.45.0", +] + [[package]] name = "system-deps" version = "5.0.0" @@ -4452,7 +4633,7 @@ dependencies = [ "cfg-expr 0.15.4", "heck 0.4.1", "pkg-config", - "toml 0.7.6", + "toml 0.7.3", "version-compare 0.1.1", ] @@ -4540,6 +4721,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" dependencies = [ "anyhow", + "bytes 1.4.0", "cocoa", "dirs-next", "embed_plist", @@ -4552,17 +4734,26 @@ dependencies = [ "heck 0.4.1", "http", "ignore", + "notify-rust", "objc", "once_cell", + "open", + "os_info", + "os_pipe", "percent-encoding", "rand 0.8.5", "raw-window-handle", + "regex", + "reqwest", + "rfd", "semver", "serde", "serde_json", "serde_repr", "serialize-to-javascript", + "shared_child", "state", + "sys-locale", "tar", "tauri-macros", "tauri-runtime", @@ -4578,6 +4769,23 @@ dependencies = [ "windows 0.39.0", ] +[[package]] +name = "tauri-build" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d2edd6a259b5591c8efdeb9d5702cb53515b82a6affebd55c7fd6d3a27b7d1b" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.1", + "json-patch", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", +] + [[package]] name = "tauri-codegen" version = "1.4.0" @@ -4592,6 +4800,7 @@ dependencies = [ "png", "proc-macro2", "quote", + "regex", "semver", "serde", "serde_json", @@ -4897,6 +5106,26 @@ dependencies = [ "windows 0.39.0", ] +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.3", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f" +dependencies = [ + "quick-xml 0.23.1", + "windows 0.39.0", +] + [[package]] name = "tempfile" version = "3.7.1" @@ -5101,9 +5330,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.6" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" dependencies = [ "serde", "serde_spanned", @@ -5388,6 +5617,26 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "wait-timeout" version = "0.2.0" @@ -5673,6 +5922,19 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + [[package]] name = "windows" version = "0.39.0" @@ -5722,6 +5984,30 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -5740,6 +6026,21 @@ dependencies = [ "windows-targets 0.52.0", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.1" @@ -5776,6 +6077,12 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" @@ -5794,12 +6101,24 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" @@ -5818,12 +6137,24 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.0" @@ -5842,12 +6173,24 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.0" @@ -5866,12 +6209,24 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" @@ -5884,6 +6239,12 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" @@ -5902,12 +6263,24 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" @@ -5938,6 +6311,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "winreg" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "wry" version = "0.24.3" diff --git a/Cargo.toml b/Cargo.toml index 94a7e79d8..14a1884d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["plugins/*"] +members = ["plugins/*", "plugins/*/examples/*/src-tauri"] resolver = "2" [workspace.dependencies] diff --git a/plugins/single-instance/examples/vanilla/.gitignore b/plugins/single-instance/examples/vanilla/.gitignore index c2658d7d1..b3f41c3f0 100644 --- a/plugins/single-instance/examples/vanilla/.gitignore +++ b/plugins/single-instance/examples/vanilla/.gitignore @@ -1 +1,3 @@ node_modules/ +dist/** +!dist/.gitkeep \ No newline at end of file diff --git a/plugins/single-instance/examples/vanilla/dist/.gitkeep b/plugins/single-instance/examples/vanilla/dist/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.lock b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.lock deleted file mode 100644 index 588ea9a67..000000000 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.lock +++ /dev/null @@ -1,4064 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - -[[package]] -name = "aho-corasick" -version = "0.7.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anyhow" -version = "1.0.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" - -[[package]] -name = "app" -version = "0.1.0" -dependencies = [ - "serde", - "serde_json", - "tauri", - "tauri-build", - "tauri-plugin-single-instance", -] - -[[package]] -name = "async-broadcast" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" -dependencies = [ - "event-listener", - "futures-core", - "parking_lot", -] - -[[package]] -name = "async-channel" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "once_cell", - "slab", -] - -[[package]] -name = "async-io" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" -dependencies = [ - "autocfg", - "concurrent-queue", - "futures-lite", - "libc", - "log", - "once_cell", - "parking", - "polling", - "slab", - "socket2", - "waker-fn", - "winapi", -] - -[[package]] -name = "async-lock" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" -dependencies = [ - "event-listener", - "futures-lite", -] - -[[package]] -name = "async-recursion" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cda8f4bcc10624c4e85bc66b3f452cca98cfa5ca002dc83a16aad2367641bea" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-task" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" - -[[package]] -name = "async-trait" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "atk" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "attohttpc" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" -dependencies = [ - "flate2", - "http", - "log", - "native-tls", - "serde", - "serde_json", - "serde_urlencoded", - "url", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "3.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "memchr", -] - -[[package]] -name = "bumpalo" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" - -[[package]] -name = "bytemuck" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" - -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - -[[package]] -name = "cairo-rs" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" -dependencies = [ - "glib-sys", - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "cargo_toml" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c3ff59e3b7d24630206bb63a73af65da4ed5df1f76ee84dfafb9fee2ba60e" -dependencies = [ - "serde", - "serde_derive", - "toml", -] - -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cfb" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" -dependencies = [ - "byteorder", - "uuid 0.8.2", -] - -[[package]] -name = "cfg-expr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cfg-expr" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cocoa" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "core-graphics" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" -dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" -dependencies = [ - "bitflags", - "core-foundation", - "foreign-types", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cssparser" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa 0.4.8", - "matches", - "phf 0.8.0", - "proc-macro2", - "quote", - "smallvec", - "syn", -] - -[[package]] -name = "cssparser-macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "ctor" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "dbus" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "deflate" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" -dependencies = [ - "adler32", - "byteorder", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn", -] - -[[package]] -name = "digest" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -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.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - -[[package]] -name = "dtoa-short" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" -dependencies = [ - "dtoa", -] - -[[package]] -name = "embed_plist" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" - -[[package]] -name = "encoding_rs" -version = "0.8.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enumflags2" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "field-offset" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" -dependencies = [ - "memoffset", - "rustc_version 0.3.3", -] - -[[package]] -name = "filetime" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys 0.36.1", -] - -[[package]] -name = "flate2" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures-channel" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" - -[[package]] -name = "futures-executor" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" - -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" - -[[package]] -name = "futures-task" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" - -[[package]] -name = "futures-util" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" -dependencies = [ - "futures-core", - "futures-macro", - "futures-sink", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gdk" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" -dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "gdk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps 6.0.2", -] - -[[package]] -name = "gdkx11-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" -dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps 6.0.2", - "x11", -] - -[[package]] -name = "generator" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "windows 0.32.0", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gio" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "gio-sys", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.2", - "winapi", -] - -[[package]] -name = "glib" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib-macros" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" -dependencies = [ - "anyhow", - "heck 0.4.0", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "glib-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" -dependencies = [ - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "globset" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] - -[[package]] -name = "gobject-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" -dependencies = [ - "glib-sys", - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "gtk" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" -dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps 6.0.2", -] - -[[package]] -name = "gtk3-macros" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" -dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "html5ever" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.3", -] - -[[package]] -name = "http-range" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" - -[[package]] -name = "ico" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" -dependencies = [ - "byteorder", - "png 0.11.0", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "ignore" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" -dependencies = [ - "crossbeam-utils", - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.24.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-rational", - "num-traits", -] - -[[package]] -name = "indexmap" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "infer" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" -dependencies = [ - "cfb", -] - -[[package]] -name = "inflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" -dependencies = [ - "adler32", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" - -[[package]] -name = "javascriptcore-rs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" -dependencies = [ - "bitflags", - "glib", - "javascriptcore-rs-sys", -] - -[[package]] -name = "javascriptcore-rs-sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", -] - -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" -dependencies = [ - "serde", - "serde_json", - "treediff", -] - -[[package]] -name = "kuchiki" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" -dependencies = [ - "cssparser", - "html5ever", - "matches", - "selectors", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.137" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" - -[[package]] -name = "libdbus-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "line-wrap" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "loom" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "mac-notification-sys" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" -dependencies = [ - "cc", - "dirs-next", - "objc-foundation", - "objc_id", - "time", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - -[[package]] -name = "native-tls" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ndk" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" -dependencies = [ - "bitflags", - "jni-sys", - "ndk-sys", - "num_enum", - "thiserror", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nix" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" -dependencies = [ - "autocfg", - "bitflags", - "cfg-if", - "libc", - "memoffset", - "pin-utils", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "notify-rust" -version = "4.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" -dependencies = [ - "dbus", - "mac-notification-sys", - "tauri-winrt-notification", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "once_cell" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" - -[[package]] -name = "open" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" -dependencies = [ - "pathdiff", - "windows-sys 0.36.1", -] - -[[package]] -name = "openssl" -version = "0.10.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-stream" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034ce384018b245e8d8424bbe90577fbd91a533be74107e465e3474eb2285eef" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "os_info" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" -dependencies = [ - "log", - "serde", - "winapi", -] - -[[package]] -name = "os_pipe" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c92f2b54f081d635c77e7120862d48db8e91f7f21cef23ab1b4fe9971c59f55" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "pango" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" -dependencies = [ - "bitflags", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.2", -] - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.36.1", -] - -[[package]] -name = "paste" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pest" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", -] - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_macros 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", -] - -[[package]] -name = "phf_codegen" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "phf_macros" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" - -[[package]] -name = "plist" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "serde", - "time", - "xml-rs", -] - -[[package]] -name = "png" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" -dependencies = [ - "bitflags", - "deflate", - "inflate", - "num-iter", -] - -[[package]] -name = "png" -version = "0.17.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" -dependencies = [ - "bitflags", - "crc32fast", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" -dependencies = [ - "autocfg", - "cfg-if", - "libc", - "log", - "wepoll-ffi", - "winapi", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" -dependencies = [ - "once_cell", - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro2" -version = "1.0.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-xml" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "raw-window-handle" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" -dependencies = [ - "cty", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.7", - "redox_syscall", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rfd" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" -dependencies = [ - "block", - "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", - "js-sys", - "lazy_static", - "log", - "objc", - "objc-foundation", - "objc_id", - "raw-window-handle", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.37.0", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.14", -] - -[[package]] -name = "rustversion" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" - -[[package]] -name = "ryu" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" -dependencies = [ - "lazy_static", - "windows-sys 0.36.1", -] - -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "security-framework" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "selectors" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" -dependencies = [ - "bitflags", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" -dependencies = [ - "itoa 1.0.3", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa 1.0.3", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "serde", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serialize-to-javascript" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" -dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", -] - -[[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "servo_arc" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" -dependencies = [ - "nodrop", - "stable_deref_trait", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shared_child" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "siphasher" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "soup2" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" -dependencies = [ - "bitflags", - "gio", - "glib", - "libc", - "once_cell", - "soup2-sys", -] - -[[package]] -name = "soup2-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" -dependencies = [ - "bitflags", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "state" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" -dependencies = [ - "loom", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "syn" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "system-deps" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" -dependencies = [ - "cfg-expr 0.9.1", - "heck 0.3.3", - "pkg-config", - "toml", - "version-compare 0.0.11", -] - -[[package]] -name = "system-deps" -version = "6.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" -dependencies = [ - "cfg-expr 0.10.3", - "heck 0.4.0", - "pkg-config", - "toml", - "version-compare 0.1.0", -] - -[[package]] -name = "tao" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43336f5d1793543ba96e2a1e75f3a5c7dcd592743be06a0ab3a190f4fcb4b934" -dependencies = [ - "bitflags", - "cairo-rs", - "cc", - "cocoa", - "core-foundation", - "core-graphics", - "crossbeam-channel", - "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", - "gdkx11-sys", - "gio", - "glib", - "glib-sys", - "gtk", - "image", - "instant", - "jni", - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "paste", - "png 0.17.6", - "raw-window-handle", - "scopeguard", - "serde", - "unicode-segmentation", - "uuid 1.1.2", - "windows 0.39.0", - "windows-implement", - "x11-dl", -] - -[[package]] -name = "tar" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tauri" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2643e2769a6bf922c274a0e6828a7dd20f9fa6d0fe4e04775d0a7eae81f82d37" -dependencies = [ - "anyhow", - "attohttpc", - "cocoa", - "dirs-next", - "embed_plist", - "encoding_rs", - "flate2", - "futures-util", - "glib", - "glob", - "gtk", - "heck 0.4.0", - "http", - "ignore", - "notify-rust", - "objc", - "once_cell", - "open", - "os_info", - "os_pipe", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", - "regex", - "rfd", - "semver 1.0.14", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "shared_child", - "state", - "tar", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "tempfile", - "thiserror", - "tokio", - "url", - "uuid 1.1.2", - "webkit2gtk", - "webview2-com", - "windows 0.39.0", -] - -[[package]] -name = "tauri-build" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0991fb306849897439dbd4a72e4cbed2413e2eb26cb4b3ba220b94edba8b4b88" -dependencies = [ - "anyhow", - "cargo_toml", - "heck 0.4.0", - "json-patch", - "semver 1.0.14", - "serde_json", - "tauri-utils", - "winres", -] - -[[package]] -name = "tauri-codegen" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356fa253e40ae4d6ff02075011f2f2bb4066f5c9d8c1e16ca6912d7b75903ba6" -dependencies = [ - "base64", - "brotli", - "ico", - "json-patch", - "plist", - "png 0.17.6", - "proc-macro2", - "quote", - "regex", - "semver 1.0.14", - "serde", - "serde_json", - "sha2", - "tauri-utils", - "thiserror", - "time", - "uuid 1.1.2", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6051fd6940ddb22af452340d03c66a3e2f5d72e0788d4081d91e31528ccdc4d" -dependencies = [ - "heck 0.4.0", - "proc-macro2", - "quote", - "syn", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-plugin-single-instance" -version = "0.0.0" -dependencies = [ - "tauri", - "windows-sys 0.42.0", - "zbus", -] - -[[package]] -name = "tauri-runtime" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49439a5ea47f474572b854972f42eda2e02a470be5ca9609cc83bb66945abe2" -dependencies = [ - "gtk", - "http", - "http-range", - "infer", - "rand 0.8.5", - "raw-window-handle", - "serde", - "serde_json", - "tauri-utils", - "thiserror", - "uuid 1.1.2", - "webview2-com", - "windows 0.39.0", -] - -[[package]] -name = "tauri-runtime-wry" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dce920995fd49907aa9bea7249ed1771454f11f7611924c920a1f75fb614d4" -dependencies = [ - "cocoa", - "gtk", - "percent-encoding", - "rand 0.8.5", - "raw-window-handle", - "tauri-runtime", - "tauri-utils", - "uuid 1.1.2", - "webkit2gtk", - "webview2-com", - "windows 0.39.0", - "wry", -] - -[[package]] -name = "tauri-utils" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8fdae6f29cef959809a3c3afef510c5b715a446a597ab8b791497585363f39" -dependencies = [ - "brotli", - "ctor", - "glob", - "heck 0.4.0", - "html5ever", - "json-patch", - "kuchiki", - "memchr", - "phf 0.10.1", - "proc-macro2", - "quote", - "semver 1.0.14", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", - "walkdir", - "windows 0.39.0", -] - -[[package]] -name = "tauri-winrt-notification" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" -dependencies = [ - "quick-xml", - "strum", - "windows 0.39.0", -] - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "thin-slice" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" - -[[package]] -name = "thiserror" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a99cb8c4b9a8ef0e7907cd3b617cc8dc04d571c4e73c8ae403d80ac160bb122" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a891860d3c8d66fec8e73ddb3765f90082374dbaaa833407b904a94f1a7eb43" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread_local" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" -dependencies = [ - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" -dependencies = [ - "itoa 1.0.3", - "libc", - "num_threads", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95" -dependencies = [ - "autocfg", - "bytes", - "memchr", - "num_cpus", - "once_cell", - "pin-project-lite", -] - -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" -dependencies = [ - "ansi_term", - "matchers", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "treediff" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] - -[[package]] -name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "uds_windows" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" -dependencies = [ - "tempfile", - "winapi", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" - -[[package]] -name = "unicode-ident" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - -[[package]] -name = "uuid" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" -dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" - -[[package]] -name = "version-compare" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - -[[package]] -name = "web-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webkit2gtk" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29952969fb5e10fe834a52eb29ad0814ccdfd8387159b0933edf1344a1c9cdcc" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk", - "gdk-sys", - "gio", - "gio-sys", - "glib", - "glib-sys", - "gobject-sys", - "gtk", - "gtk-sys", - "javascriptcore-rs", - "libc", - "once_cell", - "soup2", - "webkit2gtk-sys", -] - -[[package]] -name = "webkit2gtk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" -dependencies = [ - "atk-sys", - "bitflags", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "javascriptcore-rs-sys", - "libc", - "pango-sys", - "pkg-config", - "soup2-sys", - "system-deps 6.0.2", -] - -[[package]] -name = "webview2-com" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys", - "windows 0.39.0", - "windows-implement", -] - -[[package]] -name = "webview2-com-macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "webview2-com-sys" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" -dependencies = [ - "regex", - "serde", - "serde_json", - "thiserror", - "windows 0.39.0", - "windows-bindgen", - "windows-metadata", -] - -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" -dependencies = [ - "windows_aarch64_msvc 0.32.0", - "windows_i686_gnu 0.32.0", - "windows_i686_msvc 0.32.0", - "windows_x86_64_gnu 0.32.0", - "windows_x86_64_msvc 0.32.0", -] - -[[package]] -name = "windows" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" -dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", -] - -[[package]] -name = "windows" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" -dependencies = [ - "windows-implement", - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", -] - -[[package]] -name = "windows-bindgen" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" -dependencies = [ - "windows-metadata", - "windows-tokens", -] - -[[package]] -name = "windows-implement" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" -dependencies = [ - "syn", - "windows-tokens", -] - -[[package]] -name = "windows-metadata" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", -] - -[[package]] -name = "windows-tokens" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" - -[[package]] -name = "windows_i686_gnu" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" - -[[package]] -name = "winres" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" -dependencies = [ - "toml", -] - -[[package]] -name = "wry" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5c1352b4266fdf92c63479d2f58ab4cd29dc4e78fbc1b62011ed1227926945" -dependencies = [ - "base64", - "block", - "cocoa", - "core-graphics", - "crossbeam-channel", - "gdk", - "gio", - "glib", - "gtk", - "html5ever", - "http", - "kuchiki", - "libc", - "log", - "objc", - "objc_id", - "once_cell", - "serde", - "serde_json", - "sha2", - "tao", - "thiserror", - "url", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows 0.39.0", - "windows-implement", -] - -[[package]] -name = "x11" -version = "2.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ae97874a928d821b061fce3d1fc52f08071dd53c89a6102bc06efcac3b2908" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "x11-dl" -version = "2.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" -dependencies = [ - "lazy_static", - "libc", - "pkg-config", -] - -[[package]] -name = "xattr" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" -dependencies = [ - "libc", -] - -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" - -[[package]] -name = "zbus" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25ae891bd547674b368906552115143031c16c23a0f2f4b2f5f5436ab2e6a9f" -dependencies = [ - "async-broadcast", - "async-channel", - "async-executor", - "async-io", - "async-lock", - "async-recursion", - "async-task", - "async-trait", - "byteorder", - "derivative", - "dirs", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "winapi", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aa37701ce7b3a43632d2b0ad9d4aef602b46be6bdd7fba3b7c5007f9f6eb2c2" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "regex", - "syn", -] - -[[package]] -name = "zbus_names" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - -[[package]] -name = "zvariant" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c817f416f05fcbc833902f1e6064b72b1778573978cfeac54731451ccc9e207" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd24fffd02794a76eb10109de463444064c88f5adb9e9d1a78488adc332bfef" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index 2446653b2..5771733c3 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -1,5 +1,3 @@ -[workspace] - [package] name = "single-instance-example" version = "0.1.0" @@ -19,5 +17,4 @@ tauri-plugin-single-instance = { path = "../../../" } tauri-build = { version = "1", features = [] } [features] -default = [ "custom-protocol" ] custom-protocol = [ "tauri/custom-protocol" ] diff --git a/plugins/websocket/examples/svelte-app/.gitignore b/plugins/websocket/examples/svelte-app/.gitignore index 6635cf554..8c9131717 100644 --- a/plugins/websocket/examples/svelte-app/.gitignore +++ b/plugins/websocket/examples/svelte-app/.gitignore @@ -8,3 +8,5 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* +dist/** +!dist/.gitkeep \ No newline at end of file diff --git a/plugins/websocket/examples/svelte-app/dist/.gitkeep b/plugins/websocket/examples/svelte-app/dist/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.lock b/plugins/websocket/examples/svelte-app/src-tauri/Cargo.lock deleted file mode 100644 index 49a851a75..000000000 --- a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.lock +++ /dev/null @@ -1,3369 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "anyhow" -version = "1.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" - -[[package]] -name = "app" -version = "0.1.0" -dependencies = [ - "futures-util", - "serde", - "serde_json", - "tauri", - "tauri-build", - "tauri-plugin-websocket", - "tokio", - "tokio-tungstenite", -] - -[[package]] -name = "atk" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "3.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bstr" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" -dependencies = [ - "memchr", -] - -[[package]] -name = "bytemuck" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" - -[[package]] -name = "cairo-rs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b869e97a87170f96762f9f178eae8c461147e722ba21dd8814105bf5716bf14a" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" -dependencies = [ - "glib-sys", - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "cargo_toml" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497049e9477329f8f6a559972ee42e117487d01d1e8c2cc9f836ea6fa23a9e1a" -dependencies = [ - "serde", - "toml", -] - -[[package]] -name = "cc" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cfb" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" -dependencies = [ - "byteorder", - "uuid 0.8.2", -] - -[[package]] -name = "cfg-expr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cocoa" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" - -[[package]] -name = "core-graphics" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86" -dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" -dependencies = [ - "bitflags", - "core-foundation", - "foreign-types", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" -dependencies = [ - "cfg-if", - "lazy_static", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cssparser" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa 0.4.7", - "matches", - "phf 0.8.0", - "proc-macro2", - "quote", - "smallvec", - "syn 1.0.107", -] - -[[package]] -name = "cssparser-macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" -dependencies = [ - "quote", - "syn 1.0.107", -] - -[[package]] -name = "ctor" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" -dependencies = [ - "quote", - "syn 1.0.107", -] - -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - -[[package]] -name = "darling" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d720b8683f8dd83c65155f0530560cba68cd2bf395f6513a483caee57ff7f4" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a340f241d2ceed1deb47ae36c4144b2707ec7dd0b649f894cb39bb595986324" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.107", -] - -[[package]] -name = "darling_macro" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "data-encoding" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "derive_more" -version = "0.99.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.107", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[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-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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - -[[package]] -name = "dtoa-short" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" -dependencies = [ - "dtoa", -] - -[[package]] -name = "embed_plist" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53dd2e43a7d32952a6054141ee0d75183958620e84e5eab045de362dff13dc99" - -[[package]] -name = "fastrand" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" -dependencies = [ - "instant", -] - -[[package]] -name = "field-offset" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" -dependencies = [ - "memoffset", - "rustc_version", -] - -[[package]] -name = "filetime" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "winapi", -] - -[[package]] -name = "flate2" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" -dependencies = [ - "cfg-if", - "crc32fast", - "libc", - "miniz_oxide 0.4.4", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "futf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.16", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gdk" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614258e81ec35ed8770e64a0838f3a47f95b398bc51e724d3b3fa09c1ee0f8d5" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73aa2f5de1b45710da90a55863276667dc3a3264aaf6a2aeace62bb015244d49" -dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "gdk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps 6.0.1", -] - -[[package]] -name = "gdkx11-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" -dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps 6.0.1", - "x11", -] - -[[package]] -name = "generator" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1d9279ca822891c1a4dae06d185612cf8fc6acfe5dff37781b41297811b12ee" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "winapi", -] - -[[package]] -name = "generic-array" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", -] - -[[package]] -name = "gio" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59105fa464928adf56b159c8d980cc11fbfbe414befb904caac5163d383049bf" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "gio-sys", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f0bc4cfc9ebcdd05cc5057bc51b99c32f8f9bf246274f6a556ffd27279f8fe3" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.1", - "winapi", -] - -[[package]] -name = "glib" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dcfbdb6cc6c02aee163339465d8a40d6f3f64c3a43f729a4195f0e153338b7" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib-macros" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58b262ff65ef771003873cea8c10e0fe854f1c508d48d62a4111a1ff163f7d1" -dependencies = [ - "anyhow", - "heck 0.4.0", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "glib-sys" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa1d4e1a63d8574541e5b92931e4e669ddc87ffa85d58e84e631dba13ad2e10c" -dependencies = [ - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "globset" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] - -[[package]] -name = "gobject-sys" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df6859463843c20cf3837e3a9069b6ab2051aeeadf4c899d33344f4aea83189a" -dependencies = [ - "glib-sys", - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "gtk" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7978eaec05bea63947c801d29a21372f2ed39aec0bf56bf7725d3599094675e" -dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps 6.0.1", -] - -[[package]] -name = "gtk3-macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c891188af69e77a1e8a0b1746fbd03b9b396e7d34d518c5331b15950259f541" -dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "html5ever" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.1", -] - -[[package]] -name = "http-range" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee9694f83d9b7c09682fdb32213682939507884e5bcf227be9aff5d644b90dc" - -[[package]] -name = "httparse" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" - -[[package]] -name = "ico" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" -dependencies = [ - "byteorder", - "png", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "ignore" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" -dependencies = [ - "crossbeam-utils", - "globset", - "lazy_static", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.24.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-rational", - "num-traits", -] - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "infer" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" -dependencies = [ - "cfb", -] - -[[package]] -name = "instant" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itoa" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" - -[[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "javascriptcore-rs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" -dependencies = [ - "bitflags", - "glib", - "javascriptcore-rs-sys", -] - -[[package]] -name = "javascriptcore-rs-sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", -] - -[[package]] -name = "jni" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24967112a1e4301ca5342ea339763613a37592b8a6ce6cf2e4494537c7a42faf" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "json-patch" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" -dependencies = [ - "serde", - "serde_json", - "treediff", -] - -[[package]] -name = "kuchiki" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" -dependencies = [ - "cssparser", - "html5ever", - "matches", - "selectors", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "line-wrap" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] - -[[package]] -name = "lock_api" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "loom" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2111607c723d7857e0d8299d5ce7a0bf4b844d3e44f8de136b13da513eaf8fc4" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf 0.8.0", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" - -[[package]] -name = "memchr" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" - -[[package]] -name = "memoffset" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ndk" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" -dependencies = [ - "bitflags", - "jni-sys", - "ndk-sys", - "num_enum", - "thiserror", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2c8fd66061a707503d515639b8af10fd3807a5b5ee6959f7ff1bd303634bd5" -dependencies = [ - "derivative", - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474fd1d096da3ad17084694eebed40ba09c4a36c5255cd772bd8b98859cc562e" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "once_cell" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "openssl" -version = "0.10.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - -[[package]] -name = "openssl-probe" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - -[[package]] -name = "openssl-sys" -version = "0.9.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "pango" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79211eff430c29cc38c69e0ab54bc78fa1568121ca9737707eee7f92a8417a94" -dependencies = [ - "bitflags", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.0.1", -] - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.42.0", -] - -[[package]] -name = "paste" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pest" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" -dependencies = [ - "ucd-trie", -] - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", -] - -[[package]] -name = "phf" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fc3db1018c4b59d7d582a739436478b6035138b6aecbce989fc91c3e98409f" -dependencies = [ - "phf_macros 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", -] - -[[package]] -name = "phf_codegen" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.4", -] - -[[package]] -name = "phf_macros" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "phf_macros" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plist" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "serde", - "time", - "xml-rs", -] - -[[package]] -name = "png" -version = "0.17.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" -dependencies = [ - "bitflags", - "crc32fast", - "flate2", - "miniz_oxide 0.6.2", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.107", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro2" -version = "1.0.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.3", - "rand_hc 0.3.1", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.3", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom 0.2.3", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core 0.6.3", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "raw-window-handle" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" -dependencies = [ - "cty", -] - -[[package]] -name = "redox_syscall" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" -dependencies = [ - "getrandom 0.2.3", - "redox_syscall", -] - -[[package]] -name = "regex" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustversion" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi", -] - -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "security-framework" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "selectors" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" -dependencies = [ - "bitflags", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "serde_json" -version = "1.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127" -dependencies = [ - "itoa 0.4.7", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "serde_with" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1e6ec4d8950e5b1e894eac0d360742f3b1407a6078a604a731c4b3f49cefbc" -dependencies = [ - "rustversion", - "serde", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12e47be9471c72889ebafb5e14d5ff930d89ae7a67bbdb5f8abb564f845a927e" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "serialize-to-javascript" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" -dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", -] - -[[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "servo_arc" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" -dependencies = [ - "nodrop", - "stable_deref_trait", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "siphasher" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729a25c17d72b06c68cb47955d44fda88ad2d3e7d77e025663fdd69b93dd71a1" - -[[package]] -name = "slab" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" - -[[package]] -name = "smallvec" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "soup2" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" -dependencies = [ - "bitflags", - "gio", - "glib", - "libc", - "once_cell", - "soup2-sys", -] - -[[package]] -name = "soup2-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" -dependencies = [ - "bitflags", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps 5.0.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "state" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf4f5369e6d3044b5e365c9690f451516ac8f0954084622b49ea3fde2f6de5" -dependencies = [ - "loom", -] - -[[package]] -name = "string_cache" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared 0.8.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97" -dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "system-deps" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" -dependencies = [ - "cfg-expr", - "heck 0.3.3", - "pkg-config", - "toml", - "version-compare 0.0.11", -] - -[[package]] -name = "system-deps" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad3a97fdef3daf935d929b3e97e5a6a680cd4622e40c2941ca0875d6566416f8" -dependencies = [ - "cfg-expr", - "heck 0.4.0", - "pkg-config", - "toml", - "version-compare 0.1.0", -] - -[[package]] -name = "tao" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6fd7725dc1e593e9ecabd9fe49c112a204c8c8694db4182e78b2a5af490b1ae" -dependencies = [ - "bitflags", - "cairo-rs", - "cc", - "cocoa", - "core-foundation", - "core-graphics", - "crossbeam-channel", - "dispatch", - "gdk", - "gdk-pixbuf", - "gdk-sys", - "gdkx11-sys", - "gio", - "glib", - "glib-sys", - "gtk", - "image", - "instant", - "jni 0.19.0", - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "paste", - "png", - "raw-window-handle", - "scopeguard", - "serde", - "unicode-segmentation", - "uuid 1.2.2", - "windows 0.37.0", - "windows-implement 0.37.0", - "x11-dl", -] - -[[package]] -name = "tar" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tauri" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63a5d3a76d114e252eeebda97e2affba0943b6e1fa7e49a88ebb520aefcb21b" -dependencies = [ - "anyhow", - "cocoa", - "dirs-next", - "embed_plist", - "flate2", - "futures", - "futures-lite", - "glib", - "glob", - "gtk", - "heck 0.4.0", - "http", - "ignore", - "objc", - "once_cell", - "percent-encoding", - "rand 0.8.4", - "raw-window-handle", - "semver 1.0.4", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "state", - "tar", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "tempfile", - "thiserror", - "tokio", - "url", - "uuid 1.2.2", - "webkit2gtk", - "webview2-com", - "windows 0.37.0", -] - -[[package]] -name = "tauri-build" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" -dependencies = [ - "anyhow", - "cargo_toml", - "heck 0.4.0", - "json-patch", - "semver 1.0.4", - "serde_json", - "tauri-utils", - "winres", -] - -[[package]] -name = "tauri-codegen" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" -dependencies = [ - "base64", - "brotli", - "ico", - "json-patch", - "plist", - "png", - "proc-macro2", - "quote", - "semver 1.0.4", - "serde", - "serde_json", - "sha2", - "tauri-utils", - "thiserror", - "time", - "uuid 1.2.2", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" -dependencies = [ - "heck 0.4.0", - "proc-macro2", - "quote", - "syn 1.0.107", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-plugin-websocket" -version = "0.0.0" -dependencies = [ - "futures-util", - "log", - "rand 0.8.4", - "serde", - "serde_json", - "tauri", - "thiserror", - "tokio", - "tokio-tungstenite", -] - -[[package]] -name = "tauri-runtime" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4cff3b4d9469727fa2107c4b3d2eda110df1ba45103fb420178e536362fae4" -dependencies = [ - "gtk", - "http", - "http-range", - "infer", - "raw-window-handle", - "serde", - "serde_json", - "tauri-utils", - "thiserror", - "uuid 1.2.2", - "webview2-com", - "windows 0.37.0", -] - -[[package]] -name = "tauri-runtime-wry" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa8c4edaf01d8b556e7172c844b1b4dd3399adcd1a606bd520fc3e65f698546" -dependencies = [ - "cocoa", - "gtk", - "percent-encoding", - "rand 0.8.4", - "raw-window-handle", - "tauri-runtime", - "tauri-utils", - "uuid 1.2.2", - "webkit2gtk", - "webview2-com", - "windows 0.37.0", - "wry", -] - -[[package]] -name = "tauri-utils" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" -dependencies = [ - "brotli", - "ctor", - "glob", - "heck 0.4.0", - "html5ever", - "infer", - "json-patch", - "kuchiki", - "memchr", - "phf 0.10.0", - "proc-macro2", - "quote", - "semver 1.0.4", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", - "walkdir", - "windows 0.39.0", -] - -[[package]] -name = "tempfile" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" -dependencies = [ - "cfg-if", - "libc", - "rand 0.8.4", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "tendril" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "thin-slice" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "thread_local" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" -dependencies = [ - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" -dependencies = [ - "itoa 1.0.1", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" - -[[package]] -name = "time-macros" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" -dependencies = [ - "autocfg", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys 0.45.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2" -dependencies = [ - "futures-util", - "log", - "native-tls", - "tokio", - "tokio-native-tls", - "tungstenite", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "treediff" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] - -[[package]] -name = "tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "native-tls", - "rand 0.8.4", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd-trie" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" - -[[package]] -name = "unicode-bidi" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" - -[[package]] -name = "url" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - -[[package]] -name = "uuid" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" -dependencies = [ - "getrandom 0.2.3", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" - -[[package]] -name = "version-compare" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" - -[[package]] -name = "version_check" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "webkit2gtk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk", - "gdk-sys", - "gio", - "gio-sys", - "glib", - "glib-sys", - "gobject-sys", - "gtk", - "gtk-sys", - "javascriptcore-rs", - "libc", - "once_cell", - "soup2", - "webkit2gtk-sys", -] - -[[package]] -name = "webkit2gtk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" -dependencies = [ - "atk-sys", - "bitflags", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "javascriptcore-rs-sys", - "libc", - "pango-sys", - "pkg-config", - "soup2-sys", - "system-deps 6.0.1", -] - -[[package]] -name = "webview2-com" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a489a9420acabb3c2ed0434b6f71f6b56b9485ec32665a28dec1ee186d716e0f" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys", - "windows 0.37.0", - "windows-implement 0.37.0", -] - -[[package]] -name = "webview2-com-macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.107", -] - -[[package]] -name = "webview2-com-sys" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0258c53ee9adc0a4f8ba1c8c317588f7a58c7048a55b621d469ba75ab3709ca1" -dependencies = [ - "regex", - "serde", - "serde_json", - "thiserror", - "windows 0.37.0", - "windows-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" -dependencies = [ - "windows-implement 0.37.0", - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", -] - -[[package]] -name = "windows" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" -dependencies = [ - "windows-implement 0.39.0", - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", -] - -[[package]] -name = "windows-bindgen" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bed7be31ade0af08fec9b5343e9edcc005d22b1f11859b8a59b24797f5858e8" -dependencies = [ - "windows-metadata", - "windows-tokens 0.37.0", -] - -[[package]] -name = "windows-implement" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a1062e555f7d9d66fd1130ed4f7c6ec41a47529ee0850cd0e926d95b26bb14" -dependencies = [ - "syn 1.0.107", - "windows-tokens 0.37.0", -] - -[[package]] -name = "windows-implement" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" -dependencies = [ - "syn 1.0.107", - "windows-tokens 0.39.0", -] - -[[package]] -name = "windows-metadata" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f33f2b90a6664e369c41ab5ff262d06f048fc9685d9bf8a0e99a47750bb0463" - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-tokens" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3263d25f1170419995b78ff10c06b949e8a986c35c208dc24333c64753a87169" - -[[package]] -name = "windows-tokens" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "winres" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4fb510bbfe5b8992ff15f77a2e6fe6cf062878f0eda00c0f44963a807ca5dc" -dependencies = [ - "toml", -] - -[[package]] -name = "wry" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce19dddbd3ce01dc8f14eb6d4c8f914123bf8379aaa838f6da4f981ff7104a3f" -dependencies = [ - "block", - "cocoa", - "core-graphics", - "gdk", - "gio", - "glib", - "gtk", - "http", - "jni 0.18.0", - "libc", - "log", - "objc", - "objc_id", - "once_cell", - "serde", - "serde_json", - "tao", - "thiserror", - "url", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows 0.37.0", - "windows-implement 0.37.0", -] - -[[package]] -name = "x11" -version = "2.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd0565fa8bfba8c5efe02725b14dff114c866724eff2cfd44d76cea74bcd87a" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "x11-dl" -version = "2.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" -dependencies = [ - "lazy_static", - "libc", - "pkg-config", -] - -[[package]] -name = "xattr" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -dependencies = [ - "libc", -] - -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" diff --git a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml b/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml index 9765b4df2..de26acb25 100644 --- a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml @@ -1,5 +1,3 @@ -[workspace] - [package] name = "app" version = "0.1.0" @@ -19,5 +17,4 @@ tokio-tungstenite = "0.20" tauri-build = { version = "1", features = [] } [features] -default = [ "custom-protocol" ] custom-protocol = [ "tauri/custom-protocol" ] From a67f7cb7c8ef8df20a00c748e1b624aad2d9487a Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 29 Nov 2023 12:56:26 +0100 Subject: [PATCH 010/643] chore(authenticator): Inline u2f crate (#780) * chore(authenticator): Inline u2f crate * update chrono * update rustix * clippy --- Cargo.lock | 87 +++----- plugins/authenticator/Cargo.toml | 4 +- plugins/authenticator/src/error.rs | 2 +- plugins/authenticator/src/lib.rs | 1 + plugins/authenticator/src/u2f.rs | 6 +- plugins/authenticator/src/u2f_crate/LICENSE | 8 + .../src/u2f_crate/authorization.rs | 65 ++++++ plugins/authenticator/src/u2f_crate/crypto.rs | 156 ++++++++++++++ .../authenticator/src/u2f_crate/messages.rs | 54 +++++ plugins/authenticator/src/u2f_crate/mod.rs | 12 ++ .../authenticator/src/u2f_crate/protocol.rs | 191 ++++++++++++++++++ .../authenticator/src/u2f_crate/register.rs | 101 +++++++++ .../authenticator/src/u2f_crate/u2ferror.rs | 39 ++++ plugins/authenticator/src/u2f_crate/util.rs | 66 ++++++ .../src/platform_impl/windows.rs | 2 +- 15 files changed, 725 insertions(+), 69 deletions(-) create mode 100644 plugins/authenticator/src/u2f_crate/LICENSE create mode 100644 plugins/authenticator/src/u2f_crate/authorization.rs create mode 100644 plugins/authenticator/src/u2f_crate/crypto.rs create mode 100644 plugins/authenticator/src/u2f_crate/messages.rs create mode 100644 plugins/authenticator/src/u2f_crate/mod.rs create mode 100644 plugins/authenticator/src/u2f_crate/protocol.rs create mode 100644 plugins/authenticator/src/u2f_crate/register.rs create mode 100644 plugins/authenticator/src/u2f_crate/u2ferror.rs create mode 100644 plugins/authenticator/src/u2f_crate/util.rs diff --git a/Cargo.lock b/Cargo.lock index 622988cf8..4b13ca10b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -219,7 +219,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.25", + "rustix 0.37.27", "slab", "socket2", "waker-fn", @@ -247,7 +247,7 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 0.37.25", + "rustix 0.37.27", "signal-hook", "windows-sys 0.48.0", ] @@ -368,12 +368,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.13.1" @@ -665,18 +659,17 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.1", ] [[package]] @@ -2233,7 +2226,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -2523,7 +2516,7 @@ dependencies = [ "dirs-next", "objc-foundation", "objc_id", - "time 0.3.20", + "time", ] [[package]] @@ -3296,7 +3289,7 @@ dependencies = [ "line-wrap", "quick-xml 0.29.0", "serde", - "time 0.3.20", + "time", ] [[package]] @@ -3751,9 +3744,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.25" +version = "0.37.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", "errno", @@ -3765,9 +3758,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.7" +version = "0.38.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" dependencies = [ "bitflags 2.3.3", "errno", @@ -4005,7 +3998,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros", - "time 0.3.20", + "time", ] [[package]] @@ -4296,7 +4289,7 @@ dependencies = [ "smallvec", "sqlformat", "thiserror", - "time 0.3.20", + "time", "tokio", "tokio-stream", "tracing", @@ -4381,7 +4374,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", - "time 0.3.20", + "time", "tracing", "whoami", ] @@ -4421,7 +4414,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", - "time 0.3.20", + "time", "tracing", "whoami", ] @@ -4444,7 +4437,7 @@ dependencies = [ "percent-encoding", "serde", "sqlx-core", - "time 0.3.20", + "time", "tracing", "url", ] @@ -4807,7 +4800,7 @@ dependencies = [ "sha2 0.10.7", "tauri-utils", "thiserror", - "time 0.3.20", + "time", "uuid", "walkdir", ] @@ -4832,9 +4825,12 @@ version = "0.0.0" dependencies = [ "authenticator", "base64 0.21.2", + "byteorder", + "bytes 0.4.12", "chrono", "log", "once_cell", + "openssl", "rand 0.8.5", "rusty-fork", "serde", @@ -4842,7 +4838,6 @@ dependencies = [ "sha2 0.10.7", "tauri", "thiserror", - "u2f", ] [[package]] @@ -4905,7 +4900,7 @@ dependencies = [ "serde_json", "serde_repr", "tauri", - "time 0.3.20", + "time", ] [[package]] @@ -4957,7 +4952,7 @@ dependencies = [ "sqlx", "tauri", "thiserror", - "time 0.3.20", + "time", "tokio", ] @@ -5135,7 +5130,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -5186,17 +5181,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.20" @@ -5472,23 +5456,6 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "u2f" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2f285392366190c4d46823458f4543ac0f35174759c78e80c5baa39e1f7aa4f" -dependencies = [ - "base64 0.11.0", - "byteorder", - "bytes 0.4.12", - "chrono", - "openssl", - "serde", - "serde_derive", - "serde_json", - "time 0.1.45", -] - [[package]] name = "uds_windows" version = "1.0.2" @@ -5677,12 +5644,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 007e63f46..adaab2fc2 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -19,8 +19,10 @@ authenticator = "0.3.1" once_cell = "1" sha2 = "0.10" base64 = "0.21" -u2f = "0.2" chrono = "0.4" +bytes = "0.4" +byteorder = "1.3" +openssl = "0.10" [dev-dependencies] rand = "0.8" diff --git a/plugins/authenticator/src/error.rs b/plugins/authenticator/src/error.rs index 87a393d29..db731e8f8 100644 --- a/plugins/authenticator/src/error.rs +++ b/plugins/authenticator/src/error.rs @@ -7,7 +7,7 @@ pub enum Error { #[error(transparent)] JSON(#[from] serde_json::Error), #[error(transparent)] - U2F(#[from] u2f::u2ferror::U2fError), + U2F(#[from] crate::u2f_crate::u2ferror::U2fError), #[error(transparent)] Auth(#[from] authenticator::errors::AuthenticatorError), } diff --git a/plugins/authenticator/src/lib.rs b/plugins/authenticator/src/lib.rs index ef889e211..36ed02289 100644 --- a/plugins/authenticator/src/lib.rs +++ b/plugins/authenticator/src/lib.rs @@ -5,6 +5,7 @@ mod auth; mod error; mod u2f; +mod u2f_crate; use tauri::{ plugin::{Builder as PluginBuilder, TauriPlugin}, diff --git a/plugins/authenticator/src/u2f.rs b/plugins/authenticator/src/u2f.rs index e8bd5de96..8a443b168 100644 --- a/plugins/authenticator/src/u2f.rs +++ b/plugins/authenticator/src/u2f.rs @@ -2,13 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use crate::u2f_crate::messages::*; +use crate::u2f_crate::protocol::*; +use crate::u2f_crate::register::*; use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; use chrono::prelude::*; use serde::Serialize; use std::convert::Into; -use u2f::messages::*; -use u2f::protocol::*; -use u2f::register::*; static VERSION: &str = "U2F_V2"; diff --git a/plugins/authenticator/src/u2f_crate/LICENSE b/plugins/authenticator/src/u2f_crate/LICENSE new file mode 100644 index 000000000..d26d5f6c0 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/LICENSE @@ -0,0 +1,8 @@ +Copyright (c) 2017 + +Licensed under either of + + * Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0) + * MIT license (http://opensource.org/licenses/MIT) + +at your option. \ No newline at end of file diff --git a/plugins/authenticator/src/u2f_crate/authorization.rs b/plugins/authenticator/src/u2f_crate/authorization.rs new file mode 100644 index 000000000..611ab8322 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/authorization.rs @@ -0,0 +1,65 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use bytes::{Buf, BufMut}; +use openssl::sha::sha256; +use serde::Serialize; +use std::io::Cursor; + +use crate::u2f_crate::u2ferror::U2fError; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +#[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Authorization { + pub counter: u32, + pub user_presence: bool, +} + +pub fn parse_sign_response( + app_id: String, + client_data: Vec, + public_key: Vec, + sign_data: Vec, +) -> Result { + if sign_data.len() <= 5 { + return Err(U2fError::InvalidSignatureData); + } + + let user_presence_flag = &sign_data[0]; + let counter = &sign_data[1..=4]; + let signature = &sign_data[5..]; + + // Let's build the msg to verify the signature + let app_id_hash = sha256(&app_id.into_bytes()); + let client_data_hash = sha256(&client_data[..]); + + let mut msg = vec![]; + msg.put(app_id_hash.as_ref()); + msg.put(*user_presence_flag); + msg.put(counter); + msg.put(client_data_hash.as_ref()); + + let public_key = super::crypto::NISTP256Key::from_bytes(&public_key)?; + + // The signature is to be verified by the relying party using the public key obtained during registration. + let verified = public_key.verify_signature(signature, msg.as_ref())?; + if !verified { + return Err(U2fError::BadSignature); + } + + let authorization = Authorization { + counter: get_counter(counter), + user_presence: true, + }; + + Ok(authorization) +} + +fn get_counter(counter: &[u8]) -> u32 { + let mut buf = Cursor::new(counter); + buf.get_u32_be() +} diff --git a/plugins/authenticator/src/u2f_crate/crypto.rs b/plugins/authenticator/src/u2f_crate/crypto.rs new file mode 100644 index 000000000..323798054 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/crypto.rs @@ -0,0 +1,156 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +//! Cryptographic operation wrapper for Webauthn. This module exists to +//! allow ease of auditing, safe operation wrappers for the webauthn library, +//! and cryptographic provider abstraction. This module currently uses OpenSSL +//! as the cryptographic primitive provider. + +// Source can be found here: https://github.com/Firstyear/webauthn-rs/blob/master/src/crypto.rs + +#![allow(non_camel_case_types)] + +use openssl::{bn, ec, hash, nid, sign, x509}; +use std::convert::TryFrom; + +// use super::constants::*; +use crate::u2f_crate::u2ferror::U2fError; +use openssl::pkey::Public; + +// use super::proto::*; + +// Why OpenSSL over another rust crate? +// - Well, the openssl crate allows us to reconstruct a public key from the +// x/y group coords, where most others want a pkcs formatted structure. As +// a result, it's easiest to use openssl as it gives us exactly what we need +// for these operations, and despite it's many challenges as a library, it +// has resources and investment into it's maintenance, so we can a least +// assert a higher level of confidence in it that . + +// Object({Integer(-3): Bytes([48, 185, 178, 204, 113, 186, 105, 138, 190, 33, 160, 46, 131, 253, 100, 177, 91, 243, 126, 128, 245, 119, 209, 59, 186, 41, 215, 196, 24, 222, 46, 102]), Integer(-2): Bytes([158, 212, 171, 234, 165, 197, 86, 55, 141, 122, 253, 6, 92, 242, 242, 114, 158, 221, 238, 163, 127, 214, 120, 157, 145, 226, 232, 250, 144, 150, 218, 138]), Integer(-1): U64(1), Integer(1): U64(2), Integer(3): I64(-7)}) +// + +/// An X509PublicKey. This is what is otherwise known as a public certificate +/// which comprises a public key and other signed metadata related to the issuer +/// of the key. +pub struct X509PublicKey { + pubk: x509::X509, +} + +impl std::fmt::Debug for X509PublicKey { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(f, "X509PublicKey") + } +} + +impl TryFrom<&[u8]> for X509PublicKey { + type Error = U2fError; + + // Must be DER bytes. If you have PEM, base64decode first! + fn try_from(d: &[u8]) -> Result { + let pubk = x509::X509::from_der(d)?; + Ok(X509PublicKey { pubk }) + } +} + +impl X509PublicKey { + pub(crate) fn common_name(&self) -> Option { + let cert = &self.pubk; + + let subject = cert.subject_name(); + let common = subject + .entries_by_nid(openssl::nid::Nid::COMMONNAME) + .next() + .map(|b| b.data().as_slice()); + + if let Some(common) = common { + std::str::from_utf8(common).ok().map(|s| s.to_string()) + } else { + None + } + } + + pub(crate) fn is_secp256r1(&self) -> Result { + // Can we get the public key? + let pk = self.pubk.public_key()?; + + let ec_key = pk.ec_key()?; + + ec_key.check_key()?; + + let ec_grpref = ec_key.group(); + + let ec_curve = ec_grpref.curve_name().ok_or(U2fError::OpenSSLNoCurveName)?; + + Ok(ec_curve == nid::Nid::X9_62_PRIME256V1) + } + + pub(crate) fn verify_signature( + &self, + signature: &[u8], + verification_data: &[u8], + ) -> Result { + let pkey = self.pubk.public_key()?; + + // TODO: Should this determine the hash type from the x509 cert? Or other? + let mut verifier = sign::Verifier::new(hash::MessageDigest::sha256(), &pkey)?; + verifier.update(verification_data)?; + Ok(verifier.verify(signature)?) + } +} + +pub struct NISTP256Key { + /// The key's public X coordinate. + pub x: [u8; 32], + /// The key's public Y coordinate. + pub y: [u8; 32], +} + +impl NISTP256Key { + pub fn from_bytes(public_key_bytes: &[u8]) -> Result { + if public_key_bytes.len() != 65 { + return Err(U2fError::InvalidPublicKey); + } + + if public_key_bytes[0] != 0x04 { + return Err(U2fError::InvalidPublicKey); + } + + let mut x: [u8; 32] = Default::default(); + x.copy_from_slice(&public_key_bytes[1..=32]); + + let mut y: [u8; 32] = Default::default(); + y.copy_from_slice(&public_key_bytes[33..=64]); + + Ok(NISTP256Key { x, y }) + } + + fn get_key(&self) -> Result, U2fError> { + let ec_group = ec::EcGroup::from_curve_name(openssl::nid::Nid::X9_62_PRIME256V1)?; + + let xbn = bn::BigNum::from_slice(&self.x)?; + let ybn = bn::BigNum::from_slice(&self.y)?; + + let ec_key = openssl::ec::EcKey::from_public_key_affine_coordinates(&ec_group, &xbn, &ybn)?; + + // Validate the key is sound. IIRC this actually checks the values + // are correctly on the curve as specified + ec_key.check_key()?; + + Ok(ec_key) + } + + pub fn verify_signature( + &self, + signature: &[u8], + verification_data: &[u8], + ) -> Result { + let pkey = self.get_key()?; + + let signature = openssl::ecdsa::EcdsaSig::from_der(signature)?; + let hash = openssl::sha::sha256(verification_data); + + Ok(signature.verify(hash.as_ref(), &pkey)?) + } +} diff --git a/plugins/authenticator/src/u2f_crate/messages.rs b/plugins/authenticator/src/u2f_crate/messages.rs new file mode 100644 index 000000000..6146c83bc --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/messages.rs @@ -0,0 +1,54 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +// As defined by FIDO U2F Javascript API. +// https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html#registration + +use serde::{Deserialize, Serialize}; + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct U2fRegisterRequest { + pub app_id: String, + pub register_requests: Vec, + pub registered_keys: Vec, +} + +#[derive(Serialize)] +pub struct RegisterRequest { + pub version: String, + pub challenge: String, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct RegisteredKey { + pub version: String, + pub key_handle: Option, + pub app_id: String, +} + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RegisterResponse { + pub registration_data: String, + pub version: String, + pub client_data: String, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct U2fSignRequest { + pub app_id: String, + pub challenge: String, + pub registered_keys: Vec, +} + +#[derive(Clone, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SignResponse { + pub key_handle: String, + pub signature_data: String, + pub client_data: String, +} diff --git a/plugins/authenticator/src/u2f_crate/mod.rs b/plugins/authenticator/src/u2f_crate/mod.rs new file mode 100644 index 000000000..0aaebf6ff --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/mod.rs @@ -0,0 +1,12 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +mod util; + +pub mod authorization; +mod crypto; +pub mod messages; +pub mod protocol; +pub mod register; +pub mod u2ferror; diff --git a/plugins/authenticator/src/u2f_crate/protocol.rs b/plugins/authenticator/src/u2f_crate/protocol.rs new file mode 100644 index 000000000..fc7343ea1 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/protocol.rs @@ -0,0 +1,191 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use crate::u2f_crate::authorization::*; +use crate::u2f_crate::messages::*; +use crate::u2f_crate::register::*; +use crate::u2f_crate::u2ferror::U2fError; +use crate::u2f_crate::util::*; + +use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; +use chrono::prelude::*; +use chrono::Duration; +use serde::{Deserialize, Serialize}; + +type Result = ::std::result::Result; + +#[derive(Clone)] +pub struct U2f { + app_id: String, +} + +#[derive(Deserialize, Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Challenge { + pub app_id: String, + pub challenge: String, + pub timestamp: String, +} + +impl Challenge { + // Not used in this plugin. + #[allow(dead_code)] + pub fn new() -> Self { + Challenge { + app_id: String::new(), + challenge: String::new(), + timestamp: String::new(), + } + } +} + +impl U2f { + // The app ID is a string used to uniquely identify an U2F app + pub fn new(app_id: String) -> Self { + U2f { app_id } + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn generate_challenge(&self) -> Result { + let utc: DateTime = Utc::now(); + + let challenge_bytes = generate_challenge(32)?; + let challenge = Challenge { + challenge: URL_SAFE_NO_PAD.encode(challenge_bytes), + timestamp: format!("{:?}", utc), + app_id: self.app_id.clone(), + }; + + Ok(challenge.clone()) + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn request( + &self, + challenge: Challenge, + registrations: Vec, + ) -> Result { + let u2f_request = U2fRegisterRequest { + app_id: self.app_id.clone(), + register_requests: self.register_request(challenge), + registered_keys: self.registered_keys(registrations), + }; + + Ok(u2f_request) + } + + fn register_request(&self, challenge: Challenge) -> Vec { + let mut requests: Vec = vec![]; + + let request = RegisterRequest { + version: U2F_V2.into(), + challenge: challenge.challenge, + }; + requests.push(request); + + requests + } + + pub fn register_response( + &self, + challenge: Challenge, + response: RegisterResponse, + ) -> Result { + if expiration(challenge.timestamp) > Duration::seconds(300) { + return Err(U2fError::ChallengeExpired); + } + + let registration_data: Vec = URL_SAFE_NO_PAD + .decode(&response.registration_data[..]) + .unwrap(); + let client_data: Vec = URL_SAFE_NO_PAD.decode(&response.client_data[..]).unwrap(); + + parse_registration(challenge.app_id, client_data, registration_data) + } + + fn registered_keys(&self, registrations: Vec) -> Vec { + let mut keys: Vec = vec![]; + + for registration in registrations { + keys.push(get_registered_key( + self.app_id.clone(), + registration.key_handle, + )); + } + + keys + } + + // Not used in this plugin. + #[allow(dead_code)] + pub fn sign_request( + &self, + challenge: Challenge, + registrations: Vec, + ) -> U2fSignRequest { + let mut keys: Vec = vec![]; + + for registration in registrations { + keys.push(get_registered_key( + self.app_id.clone(), + registration.key_handle, + )); + } + + let signed_request = U2fSignRequest { + app_id: self.app_id.clone(), + challenge: URL_SAFE_NO_PAD.encode(challenge.challenge.as_bytes()), + registered_keys: keys, + }; + + signed_request + } + + pub fn sign_response( + &self, + challenge: Challenge, + reg: Registration, + sign_resp: SignResponse, + counter: u32, + ) -> Result { + if expiration(challenge.timestamp) > Duration::seconds(300) { + return Err(U2fError::ChallengeExpired); + } + + if sign_resp.key_handle != get_encoded(®.key_handle[..]) { + return Err(U2fError::WrongKeyHandler); + } + + let client_data: Vec = URL_SAFE_NO_PAD + .decode(&sign_resp.client_data[..]) + .map_err(|_e| U2fError::InvalidClientData)?; + let sign_data: Vec = URL_SAFE_NO_PAD + .decode(&sign_resp.signature_data[..]) + .map_err(|_e| U2fError::InvalidSignatureData)?; + + let public_key = reg.pub_key; + + let auth = parse_sign_response( + self.app_id.clone(), + client_data.clone(), + public_key, + sign_data.clone(), + ); + + match auth { + Ok(ref res) => { + // CounterTooLow is raised when the counter value received from the device is + // lower than last stored counter value. + if res.counter < counter { + Err(U2fError::CounterTooLow) + } else { + Ok(res.counter) + } + } + Err(e) => Err(e), + } + } +} diff --git a/plugins/authenticator/src/u2f_crate/register.rs b/plugins/authenticator/src/u2f_crate/register.rs new file mode 100644 index 000000000..3717b0036 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/register.rs @@ -0,0 +1,101 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use byteorder::{BigEndian, ByteOrder}; +use bytes::{BufMut, Bytes}; +use openssl::sha::sha256; +use serde::Serialize; + +use crate::u2f_crate::messages::RegisteredKey; +use crate::u2f_crate::u2ferror::U2fError; +use crate::u2f_crate::util::*; +use std::convert::TryFrom; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +// Single enrolment or pairing between an application and a token. +#[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct Registration { + pub key_handle: Vec, + pub pub_key: Vec, + + // AttestationCert can be null for Authenticate requests. + pub attestation_cert: Option>, + pub device_name: Option, +} + +pub fn parse_registration( + app_id: String, + client_data: Vec, + registration_data: Vec, +) -> Result { + let reserved_byte = registration_data[0]; + if reserved_byte != 0x05 { + return Err(U2fError::InvalidReservedByte); + } + + let mut mem = Bytes::from(registration_data); + + //Start parsing ... advance the reserved byte. + let _ = mem.split_to(1); + + // P-256 NIST elliptic curve + let public_key = mem.split_to(65); + + // Key Handle + let key_handle_size = mem.split_to(1); + let key_len = BigEndian::read_uint(&key_handle_size[..], 1); + let key_handle = mem.split_to(key_len as usize); + + // The certificate length needs to be inferred by parsing. + let cert_len = asn_length(mem.clone()).unwrap(); + let attestation_certificate = mem.split_to(cert_len); + + // Remaining data corresponds to the signature + let signature = mem; + + // Let's build the msg to verify the signature + let app_id_hash = sha256(&app_id.into_bytes()); + let client_data_hash = sha256(&client_data[..]); + + let mut msg = vec![0x00]; // A byte reserved for future use [1 byte] with the value 0x00 + msg.put(app_id_hash.as_ref()); + msg.put(client_data_hash.as_ref()); + msg.put(key_handle.clone()); + msg.put(public_key.clone()); + + // The signature is to be verified by the relying party using the public key certified + // in the attestation certificate. + let cerificate_public_key = + super::crypto::X509PublicKey::try_from(&attestation_certificate[..])?; + + if !(cerificate_public_key.is_secp256r1()?) { + return Err(U2fError::BadCertificate); + } + + let verified = cerificate_public_key.verify_signature(&signature[..], &msg[..])?; + + if !verified { + return Err(U2fError::BadCertificate); + } + + let registration = Registration { + key_handle: key_handle[..].to_vec(), + pub_key: public_key[..].to_vec(), + attestation_cert: Some(attestation_certificate[..].to_vec()), + device_name: cerificate_public_key.common_name(), + }; + + Ok(registration) +} + +pub fn get_registered_key(app_id: String, key_handle: Vec) -> RegisteredKey { + RegisteredKey { + app_id, + version: U2F_V2.into(), + key_handle: Some(get_encoded(key_handle.as_slice())), + } +} diff --git a/plugins/authenticator/src/u2f_crate/u2ferror.rs b/plugins/authenticator/src/u2f_crate/u2ferror.rs new file mode 100644 index 000000000..9ae8fa92e --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/u2ferror.rs @@ -0,0 +1,39 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum U2fError { + #[error("ASM1 Decoder error")] + Asm1DecoderError, + #[error("Not able to verify signature")] + BadSignature, + #[error("Not able to generate random bytes")] + RandomSecureBytesError, + #[error("Invalid Reserved Byte")] + InvalidReservedByte, + #[error("Challenge Expired")] + ChallengeExpired, + #[error("Wrong Key Handler")] + WrongKeyHandler, + #[error("Invalid Client Data")] + InvalidClientData, + #[error("Invalid Signature Data")] + InvalidSignatureData, + #[error("Invalid User Presence Byte")] + InvalidUserPresenceByte, + #[error("Failed to parse certificate")] + BadCertificate, + #[error("Not Trusted Anchor")] + NotTrustedAnchor, + #[error("Counter too low")] + CounterTooLow, + #[error("Invalid public key")] + OpenSSLNoCurveName, + #[error("OpenSSL no curve name")] + InvalidPublicKey, + #[error(transparent)] + OpenSSLError(#[from] openssl::error::ErrorStack), +} diff --git a/plugins/authenticator/src/u2f_crate/util.rs b/plugins/authenticator/src/u2f_crate/util.rs new file mode 100644 index 000000000..cba58d4d7 --- /dev/null +++ b/plugins/authenticator/src/u2f_crate/util.rs @@ -0,0 +1,66 @@ +// Copyright 2021 Flavio Oliveira +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use crate::u2f_crate::u2ferror::U2fError; +use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; +use bytes::Bytes; +use chrono::prelude::*; +use chrono::Duration; +use openssl::rand; + +/// The `Result` type used in this crate. +type Result = ::std::result::Result; + +pub const U2F_V2: &str = "U2F_V2"; + +// Generates a challenge from a secure, random source. +pub fn generate_challenge(size: usize) -> Result> { + let mut bytes: Vec = vec![0; size]; + rand::rand_bytes(&mut bytes).map_err(|_e| U2fError::RandomSecureBytesError)?; + Ok(bytes) +} + +pub fn expiration(timestamp: String) -> Duration { + let now: DateTime = Utc::now(); + + let ts = timestamp.parse::>(); + + now.signed_duration_since(ts.unwrap()) +} + +// Decode initial bytes of buffer as ASN and return the length of the encoded structure. +// http://en.wikipedia.org/wiki/X.690 +pub fn asn_length(mem: Bytes) -> Result { + let buffer: &[u8] = &mem[..]; + + if mem.len() < 2 || buffer[0] != 0x30 { + // Type + return Err(U2fError::Asm1DecoderError); + } + + let len = buffer[1]; // Len + if len & 0x80 == 0 { + return Ok((len & 0x7f) as usize); + } + + let numbem_of_bytes = len & 0x7f; + if numbem_of_bytes == 0 { + return Err(U2fError::Asm1DecoderError); + } + + let mut length: usize = 0; + for num in 0..numbem_of_bytes { + length = length * 0x100 + (buffer[(2 + num) as usize] as usize); + } + + length += numbem_of_bytes as usize; + + Ok(length + 2) // Add the 2 initial bytes: type and length. +} + +pub fn get_encoded(data: &[u8]) -> String { + let encoded: String = URL_SAFE_NO_PAD.encode(data); + + encoded.trim_end_matches('=').to_string() +} diff --git a/plugins/single-instance/src/platform_impl/windows.rs b/plugins/single-instance/src/platform_impl/windows.rs index 5919d3e1a..63e956450 100644 --- a/plugins/single-instance/src/platform_impl/windows.rs +++ b/plugins/single-instance/src/platform_impl/windows.rs @@ -115,7 +115,7 @@ unsafe extern "system" fn single_instance_window_proc( let data = CStr::from_ptr((*cds_ptr).lpData as _).to_string_lossy(); let mut s = data.split('|'); let cwd = s.next().unwrap(); - let args = s.into_iter().map(|s| s.to_string()).collect(); + let args = s.map(|s| s.to_string()).collect(); callback(app_handle, args, cwd.to_string()); } 1 From 4195240f360647743a5d53671c94fc0c3edb3271 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 13:05:47 +0100 Subject: [PATCH 011/643] chore(deps): update dependency vite to v5.0.4 (#779) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 36 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 184f52208..0f23137f1 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -18,7 +18,7 @@ "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", - "vite": "5.0.3" + "vite": "5.0.4" }, "dependencies": { "tauri-plugin-websocket-api": "link:../../" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a433cf323..9d88c2e61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,7 +185,7 @@ importers: version: 2.1.1(@sveltejs/kit@1.27.6) '@sveltejs/kit': specifier: 1.27.6 - version: 1.27.6(svelte@4.2.7)(vite@5.0.3) + version: 1.27.6(svelte@4.2.7)(vite@5.0.4) '@tauri-apps/cli': specifier: 1.5.5 version: 1.5.5 @@ -202,8 +202,8 @@ importers: specifier: 5.3.2 version: 5.3.2 vite: - specifier: 5.0.3 - version: 5.0.3 + specifier: 5.0.4 + version: 5.0.4 plugins/window-state: dependencies: @@ -724,11 +724,11 @@ packages: peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.2.7)(vite@5.0.3) + '@sveltejs/kit': 1.27.6(svelte@4.2.7)(vite@5.0.4) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.6(svelte@4.2.7)(vite@5.0.3): + /@sveltejs/kit@1.27.6(svelte@4.2.7)(vite@5.0.4): resolution: {integrity: sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==} engines: {node: ^16.14 || >=18} hasBin: true @@ -737,7 +737,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.3) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.4) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 @@ -751,12 +751,12 @@ packages: svelte: 4.2.7 tiny-glob: 0.2.9 undici: 5.26.4 - vite: 5.0.3 + vite: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.3): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.4): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -764,30 +764,30 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.3) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.4) debug: 4.3.4 svelte: 4.2.7 - vite: 5.0.3 + vite: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.7)(vite@5.0.3): + /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.7)(vite@5.0.4): resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.3) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.4) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.7 svelte-hmr: 0.15.3(svelte@4.2.7) - vite: 5.0.3 - vitefu: 0.2.4(vite@5.0.3) + vite: 5.0.4 + vitefu: 0.2.4(vite@5.0.4) transitivePeerDependencies: - supports-color dev: true @@ -3052,8 +3052,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.0.3: - resolution: {integrity: sha512-WgEq8WEKpZ8c0DL4M1+E+kBZEJyjBmGVrul6z8Ljfhv+PPbNF4aGq014DwNYxGz2FGq6NKL0N8usdiESWd2l2w==} + /vite@5.0.4: + resolution: {integrity: sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3087,7 +3087,7 @@ packages: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@5.0.3): + /vitefu@0.2.4(vite@5.0.4): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -3095,7 +3095,7 @@ packages: vite: optional: true dependencies: - vite: 5.0.3 + vite: 5.0.4 dev: true /which-boxed-primitive@1.0.2: From e7b022d62e4afef31db5219062fa8a958a771162 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 13:07:16 +0100 Subject: [PATCH 012/643] fix(deps): update rust crate byteorder to 1.5 (#781) * fix(deps): update rust crate byteorder to 1.5 * Update Cargo.toml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Fabian-Lars --- Cargo.lock | 4 ++-- plugins/authenticator/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b13ca10b..cbf750e16 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -524,9 +524,9 @@ checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index adaab2fc2..231bf02cb 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -21,7 +21,7 @@ sha2 = "0.10" base64 = "0.21" chrono = "0.4" bytes = "0.4" -byteorder = "1.3" +byteorder = "1" openssl = "0.10" [dev-dependencies] From 9b2e9ab6c9b853a861292c69770458e5409992c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 14:34:45 +0100 Subject: [PATCH 013/643] chore(deps): update dependency @tauri-apps/cli to v1.5.6 (#778) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/vanilla/package.json | 2 +- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 72 +++++++++---------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index be0ea6c75..047373ecc 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "1.5.5" + "@tauri-apps/cli": "1.5.6" } } diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 0f23137f1..c56d8d666 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@sveltejs/adapter-auto": "2.1.1", "@sveltejs/kit": "1.27.6", - "@tauri-apps/cli": "1.5.5", + "@tauri-apps/cli": "1.5.6", "svelte": "4.2.7", "svelte-check": "3.6.2", "tslib": "2.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d88c2e61..ad8423d29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,8 +121,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 1.5.5 - version: 1.5.5 + specifier: 1.5.6 + version: 1.5.6 plugins/sql: dependencies: @@ -187,8 +187,8 @@ importers: specifier: 1.27.6 version: 1.27.6(svelte@4.2.7)(vite@5.0.4) '@tauri-apps/cli': - specifier: 1.5.5 - version: 1.5.5 + specifier: 1.5.6 + version: 1.5.6 svelte: specifier: 4.2.7 version: 4.2.7 @@ -797,8 +797,8 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@1.5.5: - resolution: {integrity: sha512-CmKc/PjlI1+oD88VtR1Nr0pmrf/cUU1XFRazU+FB9ChWO3ZPp4MeA+eSemiln0F1XJR9fMJw/QS58IPH4GydLw==} + /@tauri-apps/cli-darwin-arm64@1.5.6: + resolution: {integrity: sha512-NNvG3XLtciCMsBahbDNUEvq184VZmOveTGOuy0So2R33b/6FDkuWaSgWZsR1mISpOuP034htQYW0VITCLelfqg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@1.5.5: - resolution: {integrity: sha512-d7l/4FB5uWGkMHM08UI6+qk45PAeBYMSC19l0Sz47WrRHQDMIX4V591ydnUg8AffWK/I3r1DJtQmd6C89g7JwQ==} + /@tauri-apps/cli-darwin-x64@1.5.6: + resolution: {integrity: sha512-nkiqmtUQw3N1j4WoVjv81q6zWuZFhBLya/RNGUL94oafORloOZoSY0uTZJAoeieb3Y1YK0rCHSDl02MyV2Fi4A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.5: - resolution: {integrity: sha512-avFw/BvW01qhXPbzfVPy/KU/FYJ/SUoCe9DP8oA/eSh49VzE9JvlH62iqjtGtA8XzxfTJRezXdCQbrq7OkQHKQ==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.6: + resolution: {integrity: sha512-z6SPx+axZexmWXTIVPNs4Tg7FtvdJl9EKxYN6JPjOmDZcqA13iyqWBQal2DA/GMZ1Xqo3vyJf6EoEaKaliymPQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.5: - resolution: {integrity: sha512-j7yvbZ/IG+W5QtEqK9nSz33lJtaZEFvNnFs0Bxz8r2TjF80m8SdlfxL38R/OVl7xM7ctJWRyM6ws9mBWT0uHNA==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.6: + resolution: {integrity: sha512-QuQjMQmpsCbzBrmtQiG4uhnfAbdFx3nzm+9LtqjuZlurc12+Mj5MTgqQ3AOwQedH3f7C+KlvbqD2AdXpwTg7VA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.5: - resolution: {integrity: sha512-neLu3FEYE2IixnqtX10+jsvkJx26kxmh5ekktzjolu5HqV73nquCj7VK/V5uyRMyMQeGEPyhbT09A36DUl+zDA==} + /@tauri-apps/cli-linux-arm64-musl@1.5.6: + resolution: {integrity: sha512-8j5dH3odweFeom7bRGlfzDApWVOT4jIq8/214Wl+JeiNVehouIBo9lZGeghZBH3XKFRwEvU23i7sRVjuh2s8mg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.5: - resolution: {integrity: sha512-zZlfklupFaV6RxPze9kQytp1N/K4q/QuYUsgQ5GB/7/OX4EWTUkOpNCeVEocmHag4+9UCQkb1HxdTkXiEVcXEQ==} + /@tauri-apps/cli-linux-x64-gnu@1.5.6: + resolution: {integrity: sha512-gbFHYHfdEGW0ffk8SigDsoXks6USpilF6wR0nqB/JbWzbzFR/sBuLVNQlJl1RKNakyJHu+lsFxGy0fcTdoX8xA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.5: - resolution: {integrity: sha512-2VByWblZnSgLZJyhRxggy528ahcYFH8jboZZ2BUaYT/P5WeJ1lOoQwQj9ssEUrGauGPNS3PmmfBCF7u5oaMRJA==} + /@tauri-apps/cli-linux-x64-musl@1.5.6: + resolution: {integrity: sha512-9v688ogoLkeFYQNgqiSErfhTreLUd8B3prIBSYUt+x4+5Kcw91zWvIh+VSxL1n3KCGGsM7cuXhkGPaxwlEh1ug==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.5: - resolution: {integrity: sha512-4UZFHMIJaqgPGT+PHfDDp63OgJsXwLd+0u8x1+2hFMT25dEYj+KzKOVwktYgN6UT9F7rEyzNTTZe7ZZpAkGT5Q==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.6: + resolution: {integrity: sha512-DRNDXFNZb6y5IZrw+lhTTA9l4wbzO4TNRBAlHAiXUrH+pRFZ/ZJtv5WEuAj9ocVSahVw2NaK5Yaold4NPAxHog==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.5: - resolution: {integrity: sha512-t4XbmMyDtX7kW+wQrlWO4tZus+w77w+Hz5/NBQsjRNnO3lbuYMYaF4IZpt0tZG6lQ0uyvH+o2v5dbZhUTpVT0Q==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.6: + resolution: {integrity: sha512-oUYKNR/IZjF4fsOzRpw0xesl2lOjhsQEyWlgbpT25T83EU113Xgck9UjtI7xemNI/OPCv1tPiaM1e7/ABdg5iA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -878,8 +878,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.5: - resolution: {integrity: sha512-7OiUfBmYjQ9LGTvl0Zs567JQIQuxpTCDraca3cpJFV/6TsRLEZAvXo3sgqEFOJopImrCWTpUT4FyzsGC76KlIg==} + /@tauri-apps/cli-win32-x64-msvc@1.5.6: + resolution: {integrity: sha512-RmEf1os9C8//uq2hbjXi7Vgz9ne7798ZxqemAZdUwo1pv3oLVZSz1/IvZmUHPdy2e6zSeySqWu1D0Y3QRNN+dg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -887,21 +887,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@1.5.5: - resolution: {integrity: sha512-AUFqiA5vbriMd6xWDLWwxzW2FtEhSmL0KcMktkQQGzM+QKFnFbQsubvvd95YDAIX2Q4L1eygGv7ebNX0QVA7sg==} + /@tauri-apps/cli@1.5.6: + resolution: {integrity: sha512-k4Y19oVCnt7WZb2TnDzLqfs7o98Jq0tUoVMv+JQSzuRDJqaVu2xMBZ8dYplEn+EccdR5SOMyzaLBJWu38TVK1A==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.5 - '@tauri-apps/cli-darwin-x64': 1.5.5 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.5 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.5 - '@tauri-apps/cli-linux-arm64-musl': 1.5.5 - '@tauri-apps/cli-linux-x64-gnu': 1.5.5 - '@tauri-apps/cli-linux-x64-musl': 1.5.5 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.5 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.5 - '@tauri-apps/cli-win32-x64-msvc': 1.5.5 + '@tauri-apps/cli-darwin-arm64': 1.5.6 + '@tauri-apps/cli-darwin-x64': 1.5.6 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.6 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.6 + '@tauri-apps/cli-linux-arm64-musl': 1.5.6 + '@tauri-apps/cli-linux-x64-gnu': 1.5.6 + '@tauri-apps/cli-linux-x64-musl': 1.5.6 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.6 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.6 + '@tauri-apps/cli-win32-x64-msvc': 1.5.6 dev: true /@types/cookie@0.5.1: From 3df9bc73f8ac21835e298a11c062d4a2a1242e8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 10:35:45 +0100 Subject: [PATCH 014/643] chore(deps): update dependency rollup to v4.6.1 (#785) * chore(deps): update dependency rollup to v4.6.1 * dedupe --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- package.json | 2 +- pnpm-lock.yaml | 108 ++++++++++++++++++++++++------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index e49f627a1..5cfd8992e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.0", - "rollup": "4.6.0", + "rollup": "4.6.1", "typescript": "5.3.2" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad8423d29..42265ac98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.6.0) + version: 15.2.3(rollup@4.6.1) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.6.0) + version: 0.4.4(rollup@4.6.1) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.6.0)(typescript@5.3.2) + version: 11.1.5(rollup@4.6.1)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': specifier: 6.13.1 version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) @@ -52,8 +52,8 @@ importers: specifier: 3.1.0 version: 3.1.0 rollup: - specifier: 4.6.0 - version: 4.6.0 + specifier: 4.6.1 + version: 4.6.1 typescript: specifier: 5.3.2 version: 5.3.2 @@ -556,7 +556,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.1): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -565,16 +565,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.6.0) + '@rollup/pluginutils': 5.0.2(rollup@4.6.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.6.0 + rollup: 4.6.1 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.6.0): + /@rollup/plugin-terser@0.4.4(rollup@4.6.1): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -583,13 +583,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.6.0 + rollup: 4.6.1 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.6.0)(typescript@5.3.2): + /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.2): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -602,13 +602,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.6.0) + '@rollup/pluginutils': 5.0.2(rollup@4.6.1) resolve: 1.22.8 - rollup: 4.6.0 + rollup: 4.6.1 typescript: 5.3.2 dev: true - /@rollup/pluginutils@5.0.2(rollup@4.6.0): + /@rollup/pluginutils@5.0.2(rollup@4.6.1): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -620,99 +620,99 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.6.0 + rollup: 4.6.1 dev: true - /@rollup/rollup-android-arm-eabi@4.6.0: - resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==} + /@rollup/rollup-android-arm-eabi@4.6.1: + resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.6.0: - resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==} + /@rollup/rollup-android-arm64@4.6.1: + resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.6.0: - resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==} + /@rollup/rollup-darwin-arm64@4.6.1: + resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.6.0: - resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==} + /@rollup/rollup-darwin-x64@4.6.1: + resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.6.0: - resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.6.1: + resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.6.0: - resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==} + /@rollup/rollup-linux-arm64-gnu@4.6.1: + resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.6.0: - resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==} + /@rollup/rollup-linux-arm64-musl@4.6.1: + resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.6.0: - resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==} + /@rollup/rollup-linux-x64-gnu@4.6.1: + resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.6.0: - resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==} + /@rollup/rollup-linux-x64-musl@4.6.1: + resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.6.0: - resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==} + /@rollup/rollup-win32-arm64-msvc@4.6.1: + resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.6.0: - resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==} + /@rollup/rollup-win32-ia32-msvc@4.6.1: + resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.6.0: - resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==} + /@rollup/rollup-win32-x64-msvc@4.6.1: + resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} cpu: [x64] os: [win32] requiresBuild: true @@ -2583,23 +2583,23 @@ packages: glob: 7.2.3 dev: true - /rollup@4.6.0: - resolution: {integrity: sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==} + /rollup@4.6.1: + resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.6.0 - '@rollup/rollup-android-arm64': 4.6.0 - '@rollup/rollup-darwin-arm64': 4.6.0 - '@rollup/rollup-darwin-x64': 4.6.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.6.0 - '@rollup/rollup-linux-arm64-gnu': 4.6.0 - '@rollup/rollup-linux-arm64-musl': 4.6.0 - '@rollup/rollup-linux-x64-gnu': 4.6.0 - '@rollup/rollup-linux-x64-musl': 4.6.0 - '@rollup/rollup-win32-arm64-msvc': 4.6.0 - '@rollup/rollup-win32-ia32-msvc': 4.6.0 - '@rollup/rollup-win32-x64-msvc': 4.6.0 + '@rollup/rollup-android-arm-eabi': 4.6.1 + '@rollup/rollup-android-arm64': 4.6.1 + '@rollup/rollup-darwin-arm64': 4.6.1 + '@rollup/rollup-darwin-x64': 4.6.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 + '@rollup/rollup-linux-arm64-gnu': 4.6.1 + '@rollup/rollup-linux-arm64-musl': 4.6.1 + '@rollup/rollup-linux-x64-gnu': 4.6.1 + '@rollup/rollup-linux-x64-musl': 4.6.1 + '@rollup/rollup-win32-arm64-msvc': 4.6.1 + '@rollup/rollup-win32-ia32-msvc': 4.6.1 + '@rollup/rollup-win32-x64-msvc': 4.6.1 fsevents: 2.3.3 dev: true @@ -3082,7 +3082,7 @@ packages: dependencies: esbuild: 0.19.6 postcss: 8.4.31 - rollup: 4.6.0 + rollup: 4.6.1 optionalDependencies: fsevents: 2.3.3 dev: true From c98545b3aefa93980f7ff5e512ffb5e8e6e7aa37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:04:44 +0100 Subject: [PATCH 015/643] fix(deps): update rust crate bytes to v1 (#783) * fix(deps): update rust crate bytes to v1 * adapt api --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- Cargo.lock | 53 ++++++------------- plugins/authenticator/Cargo.toml | 2 +- .../src/u2f_crate/authorization.rs | 4 +- 3 files changed, 20 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cbf750e16..cb65fc6b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -530,19 +530,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "0.4.12" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -741,7 +731,7 @@ version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ - "bytes 1.4.0", + "bytes", "memchr", ] @@ -1812,7 +1802,7 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ - "bytes 1.4.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -1930,7 +1920,7 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "bytes 1.4.0", + "bytes", "fnv", "itoa 1.0.9", ] @@ -1941,7 +1931,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.4.0", + "bytes", "http", "pin-project-lite", ] @@ -1970,7 +1960,7 @@ version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ - "bytes 1.4.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -1994,7 +1984,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.4.0", + "bytes", "hyper", "native-tls", "tokio", @@ -2204,15 +2194,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.8.0" @@ -3531,7 +3512,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6435842fc2fea44b528719eb8c32203bbc1bb2f5b619fbe0c0a3d8350fd8d2a8" dependencies = [ - "bytes 1.4.0", + "bytes", "futures", "pin-project-lite", ] @@ -3616,7 +3597,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ "base64 0.21.2", - "bytes 1.4.0", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -4262,7 +4243,7 @@ dependencies = [ "ahash 0.8.3", "atoi", "byteorder", - "bytes 1.4.0", + "bytes", "crc", "crossbeam-queue", "dotenvy", @@ -4346,7 +4327,7 @@ dependencies = [ "base64 0.21.2", "bitflags 2.3.3", "byteorder", - "bytes 1.4.0", + "bytes", "crc", "digest 0.10.7", "dotenvy", @@ -4714,7 +4695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" dependencies = [ "anyhow", - "bytes 1.4.0", + "bytes", "cocoa", "dirs-next", "embed_plist", @@ -4826,7 +4807,7 @@ dependencies = [ "authenticator", "base64 0.21.2", "byteorder", - "bytes 0.4.12", + "bytes", "chrono", "log", "once_cell", @@ -5245,7 +5226,7 @@ checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg", "backtrace", - "bytes 1.4.0", + "bytes", "libc", "mio", "num_cpus", @@ -5295,7 +5276,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ - "bytes 1.4.0", + "bytes", "futures-core", "futures-sink", "pin-project-lite", @@ -5437,7 +5418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", - "bytes 1.4.0", + "bytes", "data-encoding", "http", "httparse", diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 231bf02cb..e0e71a75a 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -20,7 +20,7 @@ once_cell = "1" sha2 = "0.10" base64 = "0.21" chrono = "0.4" -bytes = "0.4" +bytes = "1" byteorder = "1" openssl = "0.10" diff --git a/plugins/authenticator/src/u2f_crate/authorization.rs b/plugins/authenticator/src/u2f_crate/authorization.rs index 611ab8322..35a1a3e1e 100644 --- a/plugins/authenticator/src/u2f_crate/authorization.rs +++ b/plugins/authenticator/src/u2f_crate/authorization.rs @@ -39,7 +39,7 @@ pub fn parse_sign_response( let mut msg = vec![]; msg.put(app_id_hash.as_ref()); - msg.put(*user_presence_flag); + msg.put_u8(*user_presence_flag); msg.put(counter); msg.put(client_data_hash.as_ref()); @@ -61,5 +61,5 @@ pub fn parse_sign_response( fn get_counter(counter: &[u8]) -> u32 { let mut buf = Cursor::new(counter); - buf.get_u32_be() + buf.get_u32() } From a18d4427652afd1b65b193a2a72cd172c3c6f2ec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:12:03 +0100 Subject: [PATCH 016/643] chore(deps): update dependency svelte to v4.2.8 (#786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 48 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index c56d8d666..6589ec157 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -14,7 +14,7 @@ "@sveltejs/adapter-auto": "2.1.1", "@sveltejs/kit": "1.27.6", "@tauri-apps/cli": "1.5.6", - "svelte": "4.2.7", + "svelte": "4.2.8", "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42265ac98..35c51dcf5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,16 +185,16 @@ importers: version: 2.1.1(@sveltejs/kit@1.27.6) '@sveltejs/kit': specifier: 1.27.6 - version: 1.27.6(svelte@4.2.7)(vite@5.0.4) + version: 1.27.6(svelte@4.2.8)(vite@5.0.4) '@tauri-apps/cli': specifier: 1.5.6 version: 1.5.6 svelte: - specifier: 4.2.7 - version: 4.2.7 + specifier: 4.2.8 + version: 4.2.8 svelte-check: specifier: 3.6.2 - version: 3.6.2(svelte@4.2.7) + version: 3.6.2(svelte@4.2.8) tslib: specifier: 2.6.2 version: 2.6.2 @@ -724,11 +724,11 @@ packages: peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.2.7)(vite@5.0.4) + '@sveltejs/kit': 1.27.6(svelte@4.2.8)(vite@5.0.4) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.6(svelte@4.2.7)(vite@5.0.4): + /@sveltejs/kit@1.27.6(svelte@4.2.8)(vite@5.0.4): resolution: {integrity: sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==} engines: {node: ^16.14 || >=18} hasBin: true @@ -737,7 +737,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.4) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 @@ -748,7 +748,7 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.2 - svelte: 4.2.7 + svelte: 4.2.8 tiny-glob: 0.2.9 undici: 5.26.4 vite: 5.0.4 @@ -756,7 +756,7 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.4): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.4): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -764,28 +764,28 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.7)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.4) debug: 4.3.4 - svelte: 4.2.7 + svelte: 4.2.8 vite: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.7)(vite@5.0.4): + /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.4): resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.7)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.4) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 - svelte: 4.2.7 - svelte-hmr: 0.15.3(svelte@4.2.7) + svelte: 4.2.8 + svelte-hmr: 0.15.3(svelte@4.2.8) vite: 5.0.4 vitefu: 0.2.4(vite@5.0.4) transitivePeerDependencies: @@ -2816,7 +2816,7 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.6.2(svelte@4.2.7): + /svelte-check@3.6.2(svelte@4.2.8): resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} hasBin: true peerDependencies: @@ -2828,8 +2828,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.7 - svelte-preprocess: 5.1.0(svelte@4.2.7)(typescript@5.3.2) + svelte: 4.2.8 + svelte-preprocess: 5.1.0(svelte@4.2.8)(typescript@5.3.2) typescript: 5.3.2 transitivePeerDependencies: - '@babel/core' @@ -2843,16 +2843,16 @@ packages: - sugarss dev: true - /svelte-hmr@0.15.3(svelte@4.2.7): + /svelte-hmr@0.15.3(svelte@4.2.8): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.7 + svelte: 4.2.8 dev: true - /svelte-preprocess@5.1.0(svelte@4.2.7)(typescript@5.3.2): + /svelte-preprocess@5.1.0(svelte@4.2.8)(typescript@5.3.2): resolution: {integrity: sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -2895,12 +2895,12 @@ packages: magic-string: 0.27.0 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.7 + svelte: 4.2.8 typescript: 5.3.2 dev: true - /svelte@4.2.7: - resolution: {integrity: sha512-UExR1KS7raTdycsUrKLtStayu4hpdV3VZQgM0akX8XbXgLBlosdE/Sf3crOgyh9xIjqSYB3UEBuUlIQKRQX2hg==} + /svelte@4.2.8: + resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 From e1eb82fe9292f3e16b247fcb22ded688d6a8b080 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:16:17 +0100 Subject: [PATCH 017/643] fix(deps): update rust crate byte-unit to v5 (#764) * fix(deps): update rust crate byte-unit to v5 * Update Cargo.toml [skip ci] --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Fabian-Lars --- Cargo.lock | 15 +++++++++++++-- plugins/log/Cargo.toml | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb65fc6b6..f2dc1697d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -508,10 +508,11 @@ checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-unit" -version = "4.0.19" +version = "5.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c" +checksum = "bc40af92e0f7f964b7ab1ebc81315cce78fc484802d534143321c956f58d7be3" dependencies = [ + "rust_decimal", "serde", "utf8-width", ] @@ -3708,6 +3709,16 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +dependencies = [ + "arrayvec", + "num-traits", +] + [[package]] name = "rustc-demangle" version = "0.1.23" diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index dfa723413..01e312d58 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -14,10 +14,10 @@ serde.workspace = true serde_json.workspace = true tauri.workspace = true serde_repr = "0.1" -byte-unit = "4.0" +byte-unit = "5" fern = "0.6" log = { workspace = true, features = ["kv_unstable"] } time = { version = "0.3", features = ["formatting", "local-offset"] } [features] -colored = ["fern/colored"] \ No newline at end of file +colored = ["fern/colored"] From aabb44015909b46f0d5876a739f8e896cce8a4ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 13:00:09 +0100 Subject: [PATCH 018/643] fix(deps): update rust crate http to v1 (#729) * fix(deps): update rust crate http to v1 * Update Cargo.toml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Fabian-Lars --- Cargo.lock | 29 ++++++++++++++++++++--------- plugins/localhost/Cargo.toml | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f2dc1697d..7de64938d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1808,7 +1808,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.9", "indexmap 1.9.3", "slab", "tokio", @@ -1926,6 +1926,17 @@ dependencies = [ "itoa 1.0.9", ] +[[package]] +name = "http" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.9", +] + [[package]] name = "http-body" version = "0.4.5" @@ -1933,7 +1944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", "pin-project-lite", ] @@ -1966,7 +1977,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.9", "http-body", "httparse", "httpdate", @@ -3603,7 +3614,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.9", "http-body", "hyper", "hyper-tls", @@ -4717,7 +4728,7 @@ dependencies = [ "glob", "gtk", "heck 0.4.1", - "http", + "http 0.2.9", "ignore", "notify-rust", "objc", @@ -4872,7 +4883,7 @@ dependencies = [ name = "tauri-plugin-localhost" version = "0.1.0" dependencies = [ - "http", + "http 1.0.0", "log", "serde", "serde_json", @@ -5030,7 +5041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "108683199cb18f96d2d4134187bb789964143c845d2d154848dda209191fd769" dependencies = [ "gtk", - "http", + "http 0.2.9", "http-range", "rand 0.8.5", "raw-window-handle", @@ -5431,7 +5442,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 0.2.9", "httparse", "log", "native-tls", @@ -6291,7 +6302,7 @@ dependencies = [ "glib", "gtk", "html5ever", - "http", + "http 0.2.9", "kuchiki", "libc", "log", diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 12fad9a07..e56b16f10 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -16,4 +16,4 @@ tauri.workspace = true log.workspace = true thiserror.workspace = true tiny_http = "0.12" -http = "0.2" \ No newline at end of file +http = "1" From b01da63d55822c528053e759da29284f82411ae0 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 30 Nov 2023 13:17:41 +0100 Subject: [PATCH 019/643] update ahash (#787) --- Cargo.lock | 73 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7de64938d..ee5ad96e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -54,9 +54,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom 0.2.10", "once_cell", @@ -65,14 +65,15 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "getrandom 0.2.10", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -260,7 +261,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -277,7 +278,7 @@ checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -905,7 +906,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -961,7 +962,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -972,7 +973,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -1190,7 +1191,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -1446,7 +1447,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -1822,7 +1823,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash 0.7.7", ] [[package]] @@ -1831,7 +1832,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "allocator-api2", ] @@ -2966,7 +2967,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -3229,7 +3230,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -3941,7 +3942,7 @@ checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -3963,7 +3964,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -4013,7 +4014,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -4262,7 +4263,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd4cef4251aabbae751a3710927945901ee1d97ee96d757f6880ebb9a79bfd53" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "atoi", "byteorder", "bytes", @@ -4585,9 +4586,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" dependencies = [ "proc-macro2", "quote", @@ -5171,7 +5172,7 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -5376,7 +5377,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] @@ -5674,7 +5675,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", "wasm-bindgen-shared", ] @@ -5708,7 +5709,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6440,6 +6441,26 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zerocopy" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.32", +] + [[package]] name = "zeroize" version = "1.6.0" @@ -6457,7 +6478,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.32", ] [[package]] From b67dc85936bd42ebcbf6d8b3bcfba858ed45d43b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 22:36:17 +0100 Subject: [PATCH 020/643] chore(deps): update dependency @tauri-apps/cli to v1.5.7 (#788) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/vanilla/package.json | 2 +- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 72 +++++++++---------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 047373ecc..445f4db07 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "1.5.6" + "@tauri-apps/cli": "1.5.7" } } diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 6589ec157..1f4ca4c13 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@sveltejs/adapter-auto": "2.1.1", "@sveltejs/kit": "1.27.6", - "@tauri-apps/cli": "1.5.6", + "@tauri-apps/cli": "1.5.7", "svelte": "4.2.8", "svelte-check": "3.6.2", "tslib": "2.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35c51dcf5..3818e82ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,8 +121,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 1.5.6 - version: 1.5.6 + specifier: 1.5.7 + version: 1.5.7 plugins/sql: dependencies: @@ -187,8 +187,8 @@ importers: specifier: 1.27.6 version: 1.27.6(svelte@4.2.8)(vite@5.0.4) '@tauri-apps/cli': - specifier: 1.5.6 - version: 1.5.6 + specifier: 1.5.7 + version: 1.5.7 svelte: specifier: 4.2.8 version: 4.2.8 @@ -797,8 +797,8 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@1.5.6: - resolution: {integrity: sha512-NNvG3XLtciCMsBahbDNUEvq184VZmOveTGOuy0So2R33b/6FDkuWaSgWZsR1mISpOuP034htQYW0VITCLelfqg==} + /@tauri-apps/cli-darwin-arm64@1.5.7: + resolution: {integrity: sha512-eUpOUhs2IOpKaLa6RyGupP2owDLfd0q2FR/AILzryjtBtKJJRDQQvuotf+LcbEce2Nc2AHeYJIqYAsB4sw9K+g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@1.5.6: - resolution: {integrity: sha512-nkiqmtUQw3N1j4WoVjv81q6zWuZFhBLya/RNGUL94oafORloOZoSY0uTZJAoeieb3Y1YK0rCHSDl02MyV2Fi4A==} + /@tauri-apps/cli-darwin-x64@1.5.7: + resolution: {integrity: sha512-zfumTv1xUuR+RB1pzhRy+51tB6cm8I76g0xUBaXOfEdOJ9FqW5GW2jdnEUbpNuU65qJ1lB8LVWHKGrSWWKazew==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.6: - resolution: {integrity: sha512-z6SPx+axZexmWXTIVPNs4Tg7FtvdJl9EKxYN6JPjOmDZcqA13iyqWBQal2DA/GMZ1Xqo3vyJf6EoEaKaliymPQ==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.7: + resolution: {integrity: sha512-JngWNqS06bMND9PhiPWp0e+yknJJuSozsSbo+iMzHoJNRauBZCUx+HnUcygUR66Cy6qM4eJvLXtsRG7ApxvWmg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.6: - resolution: {integrity: sha512-QuQjMQmpsCbzBrmtQiG4uhnfAbdFx3nzm+9LtqjuZlurc12+Mj5MTgqQ3AOwQedH3f7C+KlvbqD2AdXpwTg7VA==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.7: + resolution: {integrity: sha512-WyIYP9BskgBGq+kf4cLAyru8ArrxGH2eMYGBJvuNEuSaqBhbV0i1uUxvyWdazllZLAEz1WvSocUmSwLknr1+sQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.6: - resolution: {integrity: sha512-8j5dH3odweFeom7bRGlfzDApWVOT4jIq8/214Wl+JeiNVehouIBo9lZGeghZBH3XKFRwEvU23i7sRVjuh2s8mg==} + /@tauri-apps/cli-linux-arm64-musl@1.5.7: + resolution: {integrity: sha512-OrDpihQP2MB0JY1a/wP9wsl9dDjFDpVEZOQxt4hU+UVGRCZQok7ghPBg4+Xpd1CkNkcCCuIeY8VxRvwLXpnIzg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.6: - resolution: {integrity: sha512-gbFHYHfdEGW0ffk8SigDsoXks6USpilF6wR0nqB/JbWzbzFR/sBuLVNQlJl1RKNakyJHu+lsFxGy0fcTdoX8xA==} + /@tauri-apps/cli-linux-x64-gnu@1.5.7: + resolution: {integrity: sha512-4T7FAYVk76rZi8VkuLpiKUAqaSxlva86C1fHm/RtmoTKwZEV+MI3vIMoVg+AwhyWIy9PS55C75nF7+OwbnFnvQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.6: - resolution: {integrity: sha512-9v688ogoLkeFYQNgqiSErfhTreLUd8B3prIBSYUt+x4+5Kcw91zWvIh+VSxL1n3KCGGsM7cuXhkGPaxwlEh1ug==} + /@tauri-apps/cli-linux-x64-musl@1.5.7: + resolution: {integrity: sha512-LL9aMK601BmQjAUDcKWtt5KvAM0xXi0iJpOjoUD3LPfr5dLvBMTflVHQDAEtuZexLQyqpU09+60781PrI/FCTw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.6: - resolution: {integrity: sha512-DRNDXFNZb6y5IZrw+lhTTA9l4wbzO4TNRBAlHAiXUrH+pRFZ/ZJtv5WEuAj9ocVSahVw2NaK5Yaold4NPAxHog==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.7: + resolution: {integrity: sha512-TmAdM6GVkfir3AUFsDV2gyc25kIbJeAnwT72OnmJGAECHs/t/GLP9IkFLLVcFKsiosRf8BXhVyQ84NYkSWo14w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.6: - resolution: {integrity: sha512-oUYKNR/IZjF4fsOzRpw0xesl2lOjhsQEyWlgbpT25T83EU113Xgck9UjtI7xemNI/OPCv1tPiaM1e7/ABdg5iA==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.7: + resolution: {integrity: sha512-bqWfxwCfLmrfZy69sEU19KHm5TFEaMb8KIekd4aRq/kyOlrjKLdZxN1PyNRP8zpJA1lTiRHzfUDfhpmnZH/skg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -878,8 +878,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.6: - resolution: {integrity: sha512-RmEf1os9C8//uq2hbjXi7Vgz9ne7798ZxqemAZdUwo1pv3oLVZSz1/IvZmUHPdy2e6zSeySqWu1D0Y3QRNN+dg==} + /@tauri-apps/cli-win32-x64-msvc@1.5.7: + resolution: {integrity: sha512-OxLHVBNdzyQ//xT3kwjQFnJTn/N5zta/9fofAkXfnL7vqmVn6s/RY1LDa3sxCHlRaKw0n3ShpygRbM9M8+sO9w==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -887,21 +887,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@1.5.6: - resolution: {integrity: sha512-k4Y19oVCnt7WZb2TnDzLqfs7o98Jq0tUoVMv+JQSzuRDJqaVu2xMBZ8dYplEn+EccdR5SOMyzaLBJWu38TVK1A==} + /@tauri-apps/cli@1.5.7: + resolution: {integrity: sha512-z7nXLpDAYfQqR5pYhQlWOr88DgPq1AfQyxHhGiakiVgWlaG0ikEfQxop2txrd52H0TRADG0JHR9vFrVFPv4hVQ==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.6 - '@tauri-apps/cli-darwin-x64': 1.5.6 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.6 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.6 - '@tauri-apps/cli-linux-arm64-musl': 1.5.6 - '@tauri-apps/cli-linux-x64-gnu': 1.5.6 - '@tauri-apps/cli-linux-x64-musl': 1.5.6 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.6 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.6 - '@tauri-apps/cli-win32-x64-msvc': 1.5.6 + '@tauri-apps/cli-darwin-arm64': 1.5.7 + '@tauri-apps/cli-darwin-x64': 1.5.7 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.7 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.7 + '@tauri-apps/cli-linux-arm64-musl': 1.5.7 + '@tauri-apps/cli-linux-x64-gnu': 1.5.7 + '@tauri-apps/cli-linux-x64-musl': 1.5.7 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.7 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.7 + '@tauri-apps/cli-win32-x64-msvc': 1.5.7 dev: true /@types/cookie@0.5.1: From ad5ec05e2639b33f0475a0eefa8684bfa4b92be8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 08:04:18 +0100 Subject: [PATCH 021/643] chore(deps): update dependency eslint to v8.55.0 (#789) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 128 ++++++++++++++++++++++++------------------------- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 5cfd8992e..fdf6dd3e4 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-typescript": "11.1.5", "@typescript-eslint/eslint-plugin": "6.13.1", "@typescript-eslint/parser": "6.13.1", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-prettier": "9.0.0", "eslint-config-standard-with-typescript": "40.0.0", "eslint-plugin-import": "2.29.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3818e82ef..dfefaebe8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,28 +23,28 @@ importers: version: 11.1.5(rollup@4.6.1)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': specifier: 6.13.1 - version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) '@typescript-eslint/parser': specifier: 6.13.1 - version: 6.13.1(eslint@8.54.0)(typescript@5.3.2) + version: 6.13.1(eslint@8.55.0)(typescript@5.3.2) eslint: - specifier: 8.54.0 - version: 8.54.0 + specifier: 8.55.0 + version: 8.55.0 eslint-config-prettier: specifier: 9.0.0 - version: 9.0.0(eslint@8.54.0) + version: 9.0.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) eslint-plugin-import: specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) + version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) eslint-plugin-n: specifier: 16.3.1 - version: 16.3.1(eslint@8.54.0) + version: 16.3.1(eslint@8.55.0) eslint-plugin-promise: specifier: 6.1.1 - version: 6.1.1(eslint@8.54.0) + version: 6.1.1(eslint@8.55.0) eslint-plugin-security: specifier: 1.7.1 version: 1.7.1 @@ -428,13 +428,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.55.0 eslint-visitor-keys: 3.4.3 dev: true @@ -443,8 +443,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -460,8 +460,8 @@ packages: - supports-color dev: true - /@eslint/js@8.54.0: - resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + /@eslint/js@8.55.0: + resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -932,7 +932,7 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -944,13 +944,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/type-utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.55.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -961,7 +961,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/parser@6.13.1(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -976,7 +976,7 @@ packages: '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) '@typescript-eslint/visitor-keys': 6.13.1 debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.55.0 typescript: 5.3.2 transitivePeerDependencies: - supports-color @@ -990,7 +990,7 @@ packages: '@typescript-eslint/visitor-keys': 6.13.1 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/type-utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1001,9 +1001,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) debug: 4.3.4 - eslint: 8.54.0 + eslint: 8.55.0 ts-api-utils: 1.0.1(typescript@5.3.2) typescript: 5.3.2 transitivePeerDependencies: @@ -1036,19 +1036,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.3.2): + /@typescript-eslint/utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.13.1 '@typescript-eslint/types': 6.13.1 '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - eslint: 8.54.0 + eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1519,16 +1519,16 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@9.0.0(eslint@8.54.0): + /eslint-config-prettier@9.0.0(eslint@8.55.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.3.2): + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1538,19 +1538,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) - eslint-plugin-n: 16.3.1(eslint@8.54.0) - eslint-plugin-promise: 6.1.1(eslint@8.54.0) + '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + eslint: 8.55.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-promise: 6.1.1(eslint@8.55.0) typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1559,10 +1559,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.54.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) - eslint-plugin-n: 16.3.1(eslint@8.54.0) - eslint-plugin-promise: 6.1.1(eslint@8.54.0) + eslint: 8.55.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-promise: 6.1.1(eslint@8.55.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -1575,7 +1575,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1596,26 +1596,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) debug: 3.2.7 - eslint: 8.54.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.1.0(eslint@8.54.0): + /eslint-plugin-es-x@7.1.0(eslint@8.55.0): resolution: {integrity: sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.6.2 - eslint: 8.54.0 + eslint: 8.55.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1625,16 +1625,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.54.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -1650,16 +1650,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.54.0): + /eslint-plugin-n@16.3.1(eslint@8.55.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) builtins: 5.0.1 - eslint: 8.54.0 - eslint-plugin-es-x: 7.1.0(eslint@8.54.0) + eslint: 8.55.0 + eslint-plugin-es-x: 7.1.0(eslint@8.55.0) get-tsconfig: 4.7.2 ignore: 5.2.4 is-builtin-module: 3.2.1 @@ -1669,13 +1669,13 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.54.0): + /eslint-plugin-promise@6.1.1(eslint@8.55.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.54.0 + eslint: 8.55.0 dev: true /eslint-plugin-security@1.7.1: @@ -1697,15 +1697,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.54.0: - resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + /eslint@8.55.0: + resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.54.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.55.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 From 6a19feca1d14c4be5a6a11714d7e35b203dceb6d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:20:43 +0100 Subject: [PATCH 022/643] chore(deps): update dependency eslint-config-prettier to v9.1.0 (#790) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fdf6dd3e4..bffd072c8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@typescript-eslint/eslint-plugin": "6.13.1", "@typescript-eslint/parser": "6.13.1", "eslint": "8.55.0", - "eslint-config-prettier": "9.0.0", + "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "40.0.0", "eslint-plugin-import": "2.29.0", "eslint-plugin-n": "16.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfefaebe8..e2c7ab881 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,8 +31,8 @@ importers: specifier: 8.55.0 version: 8.55.0 eslint-config-prettier: - specifier: 9.0.0 - version: 9.0.0(eslint@8.55.0) + specifier: 9.1.0 + version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 40.0.0 version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) @@ -1519,8 +1519,8 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@9.0.0(eslint@8.55.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + /eslint-config-prettier@9.1.0(eslint@8.55.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' From 899c6262f82e5196caf01308caa678a653763328 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:58:04 +0100 Subject: [PATCH 023/643] chore(deps): update typescript-eslint monorepo to v6.13.2 (#795) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index bffd072c8..127e2f20a 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.13.1", - "@typescript-eslint/parser": "6.13.1", + "@typescript-eslint/eslint-plugin": "6.13.2", + "@typescript-eslint/parser": "6.13.2", "eslint": "8.55.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "40.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2c7ab881..4c9838d36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.6.1)(typescript@5.3.2) '@typescript-eslint/eslint-plugin': - specifier: 6.13.1 - version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) + specifier: 6.13.2 + version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: 6.13.1 - version: 6.13.1(eslint@8.55.0)(typescript@5.3.2) + specifier: 6.13.2 + version: 6.13.2(eslint@8.55.0)(typescript@5.3.2) eslint: specifier: 8.55.0 version: 8.55.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) eslint-plugin-import: specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-n: specifier: 16.3.1 version: 16.3.1(eslint@8.55.0) @@ -932,8 +932,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} + /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2): + resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -944,11 +944,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4 eslint: 8.55.0 graphemer: 1.4.0 @@ -961,8 +961,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} + /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.2): + resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -971,10 +971,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4 eslint: 8.55.0 typescript: 5.3.2 @@ -982,16 +982,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.13.1: - resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} + /@typescript-eslint/scope-manager@6.13.2: + resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} + /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): + resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1000,8 +1000,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) debug: 4.3.4 eslint: 8.55.0 ts-api-utils: 1.0.1(typescript@5.3.2) @@ -1010,13 +1010,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.13.1: - resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} + /@typescript-eslint/types@6.13.2: + resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): - resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} + /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.2): + resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1024,8 +1024,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1036,8 +1036,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} + /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): + resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1045,9 +1045,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: @@ -1055,11 +1055,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.13.1: - resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} + /@typescript-eslint/visitor-keys@6.13.2: + resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/types': 6.13.2 eslint-visitor-keys: 3.4.3 dev: true @@ -1528,7 +1528,7 @@ packages: eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1538,11 +1538,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) eslint: 8.55.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-n: 16.3.1(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) typescript: 5.3.2 @@ -1560,7 +1560,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-n: 16.3.1(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) dev: true @@ -1575,7 +1575,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1596,7 +1596,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) debug: 3.2.7 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 @@ -1615,7 +1615,7 @@ packages: eslint: 8.55.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1625,7 +1625,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1634,7 +1634,7 @@ packages: doctrine: 2.1.0 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 56750d31e6a6cf070ae14bc230e37fe4d128fa7f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 19:38:37 +0100 Subject: [PATCH 024/643] chore(deps): update dependency @sveltejs/kit to v1.27.7 (#799) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- plugins/websocket/examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 1f4ca4c13..3dff52ac8 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "2.1.1", - "@sveltejs/kit": "1.27.6", + "@sveltejs/kit": "1.27.7", "@tauri-apps/cli": "1.5.7", "svelte": "4.2.8", "svelte-check": "3.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c9838d36..11f35cba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,10 +182,10 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: 2.1.1 - version: 2.1.1(@sveltejs/kit@1.27.6) + version: 2.1.1(@sveltejs/kit@1.27.7) '@sveltejs/kit': - specifier: 1.27.6 - version: 1.27.6(svelte@4.2.8)(vite@5.0.4) + specifier: 1.27.7 + version: 1.27.7(svelte@4.2.8)(vite@5.0.4) '@tauri-apps/cli': specifier: 1.5.7 version: 1.5.7 @@ -719,17 +719,17 @@ packages: dev: true optional: true - /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.6): + /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.7): resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.2.8)(vite@5.0.4) + '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.4) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.6(svelte@4.2.8)(vite@5.0.4): - resolution: {integrity: sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==} + /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.4): + resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true From 2a28c81da6f8b76771c5aa1ae84fc4f132392386 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:03:44 +0100 Subject: [PATCH 025/643] chore(deps): update dependency vite to v5.0.5 [security] (#801) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 48 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index 3dff52ac8..b95b991fd 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -18,7 +18,7 @@ "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", - "vite": "5.0.4" + "vite": "5.0.5" }, "dependencies": { "tauri-plugin-websocket-api": "link:../../" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11f35cba1..614fe7fa4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,7 +185,7 @@ importers: version: 2.1.1(@sveltejs/kit@1.27.7) '@sveltejs/kit': specifier: 1.27.7 - version: 1.27.7(svelte@4.2.8)(vite@5.0.4) + version: 1.27.7(svelte@4.2.8)(vite@5.0.5) '@tauri-apps/cli': specifier: 1.5.7 version: 1.5.7 @@ -202,8 +202,8 @@ importers: specifier: 5.3.2 version: 5.3.2 vite: - specifier: 5.0.4 - version: 5.0.4 + specifier: 5.0.5 + version: 5.0.5 plugins/window-state: dependencies: @@ -724,11 +724,11 @@ packages: peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.4) + '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.5) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.4): + /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.5): resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} engines: {node: ^16.14 || >=18} hasBin: true @@ -737,7 +737,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.5) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 @@ -751,12 +751,12 @@ packages: svelte: 4.2.8 tiny-glob: 0.2.9 undici: 5.26.4 - vite: 5.0.4 + vite: 5.0.5 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.4): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.5): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -764,30 +764,30 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.5) debug: 4.3.4 svelte: 4.2.8 - vite: 5.0.4 + vite: 5.0.5 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.4): + /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.5): resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.4) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.5) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.8 svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.0.4 - vitefu: 0.2.4(vite@5.0.4) + vite: 5.0.5 + vitefu: 0.2.4(vite@5.0.5) transitivePeerDependencies: - supports-color dev: true @@ -2349,8 +2349,8 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -2490,11 +2490,11 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -3052,8 +3052,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.0.4: - resolution: {integrity: sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==} + /vite@5.0.5: + resolution: {integrity: sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3081,13 +3081,13 @@ packages: optional: true dependencies: esbuild: 0.19.6 - postcss: 8.4.31 + postcss: 8.4.32 rollup: 4.6.1 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@5.0.4): + /vitefu@0.2.4(vite@5.0.5): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -3095,7 +3095,7 @@ packages: vite: optional: true dependencies: - vite: 5.0.4 + vite: 5.0.5 dev: true /which-boxed-primitive@1.0.2: From 84208e0a53d0dcea6629659b88b1968469d7c030 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:08:24 +0100 Subject: [PATCH 026/643] chore(deps): update dependency vite to v5.0.6 (#794) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 36 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index b95b991fd..ab67cb881 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -18,7 +18,7 @@ "svelte-check": "3.6.2", "tslib": "2.6.2", "typescript": "5.3.2", - "vite": "5.0.5" + "vite": "5.0.6" }, "dependencies": { "tauri-plugin-websocket-api": "link:../../" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 614fe7fa4..31ea94a55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,7 +185,7 @@ importers: version: 2.1.1(@sveltejs/kit@1.27.7) '@sveltejs/kit': specifier: 1.27.7 - version: 1.27.7(svelte@4.2.8)(vite@5.0.5) + version: 1.27.7(svelte@4.2.8)(vite@5.0.6) '@tauri-apps/cli': specifier: 1.5.7 version: 1.5.7 @@ -202,8 +202,8 @@ importers: specifier: 5.3.2 version: 5.3.2 vite: - specifier: 5.0.5 - version: 5.0.5 + specifier: 5.0.6 + version: 5.0.6 plugins/window-state: dependencies: @@ -724,11 +724,11 @@ packages: peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.5) + '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.6) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.5): + /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.6): resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} engines: {node: ^16.14 || >=18} hasBin: true @@ -737,7 +737,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.5) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.6) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 @@ -751,12 +751,12 @@ packages: svelte: 4.2.8 tiny-glob: 0.2.9 undici: 5.26.4 - vite: 5.0.5 + vite: 5.0.6 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.5): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.6): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -764,30 +764,30 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.5) + '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.6) debug: 4.3.4 svelte: 4.2.8 - vite: 5.0.5 + vite: 5.0.6 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.5): + /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.6): resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.5) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.6) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.8 svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.0.5 - vitefu: 0.2.4(vite@5.0.5) + vite: 5.0.6 + vitefu: 0.2.4(vite@5.0.6) transitivePeerDependencies: - supports-color dev: true @@ -3052,8 +3052,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.0.5: - resolution: {integrity: sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==} + /vite@5.0.6: + resolution: {integrity: sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3087,7 +3087,7 @@ packages: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@5.0.5): + /vitefu@0.2.4(vite@5.0.6): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -3095,7 +3095,7 @@ packages: vite: optional: true dependencies: - vite: 5.0.5 + vite: 5.0.6 dev: true /which-boxed-primitive@1.0.2: From c7336bc33015dff2f7adfe27ae64eae4d4f0cfc8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 21:46:26 +0100 Subject: [PATCH 027/643] chore(deps): update dependency typescript to v5.3.3 (#803) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- .../examples/svelte-app/package.json | 2 +- pnpm-lock.yaml | 86 +++++++++---------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index 127e2f20a..6221c87eb 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "eslint-plugin-security": "1.7.1", "prettier": "3.1.0", "rollup": "4.6.1", - "typescript": "5.3.2" + "typescript": "5.3.3" }, "resolutions": { "semver": ">=7.5.2", diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json index ab67cb881..15a750c10 100644 --- a/plugins/websocket/examples/svelte-app/package.json +++ b/plugins/websocket/examples/svelte-app/package.json @@ -17,7 +17,7 @@ "svelte": "4.2.8", "svelte-check": "3.6.2", "tslib": "2.6.2", - "typescript": "5.3.2", + "typescript": "5.3.3", "vite": "5.0.6" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31ea94a55..02ced54fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: version: 0.4.4(rollup@4.6.1) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.6.1)(typescript@5.3.2) + version: 11.1.5(rollup@4.6.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.13.2 - version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) + version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: 6.13.2 - version: 6.13.2(eslint@8.55.0)(typescript@5.3.2) + version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) eslint: specifier: 8.55.0 version: 8.55.0 @@ -35,7 +35,7 @@ importers: version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.0 version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) @@ -55,8 +55,8 @@ importers: specifier: 4.6.1 version: 4.6.1 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: 5.3.3 + version: 5.3.3 plugins/authenticator: dependencies: @@ -199,8 +199,8 @@ importers: specifier: 2.6.2 version: 2.6.2 typescript: - specifier: 5.3.2 - version: 5.3.2 + specifier: 5.3.3 + version: 5.3.3 vite: specifier: 5.0.6 version: 5.0.6 @@ -589,7 +589,7 @@ packages: terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.2): + /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -605,7 +605,7 @@ packages: '@rollup/pluginutils': 5.0.2(rollup@4.6.1) resolve: 1.22.8 rollup: 4.6.1 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /@rollup/pluginutils@5.0.2(rollup@4.6.1): @@ -932,7 +932,7 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2): + /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -944,10 +944,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4 eslint: 8.55.0 @@ -955,13 +955,13 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.2): + /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -973,11 +973,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.13.2 '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4 eslint: 8.55.0 - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -990,7 +990,7 @@ packages: '@typescript-eslint/visitor-keys': 6.13.2 dev: true - /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): + /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1000,12 +1000,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.55.0 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1015,7 +1015,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.2): + /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1030,13 +1030,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.2): + /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1047,7 +1047,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.13.2 '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: @@ -1528,7 +1528,7 @@ packages: eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1538,14 +1538,14 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) eslint: 8.55.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-n: 16.3.1(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1596,7 +1596,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 @@ -1625,7 +1625,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -2829,8 +2829,8 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.8 - svelte-preprocess: 5.1.0(svelte@4.2.8)(typescript@5.3.2) - typescript: 5.3.2 + svelte-preprocess: 5.1.0(svelte@4.2.8)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -2852,7 +2852,7 @@ packages: svelte: 4.2.8 dev: true - /svelte-preprocess@5.1.0(svelte@4.2.8)(typescript@5.3.2): + /svelte-preprocess@5.1.0(svelte@4.2.8)(typescript@5.3.3): resolution: {integrity: sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -2896,7 +2896,7 @@ packages: sorcery: 0.11.0 strip-indent: 3.0.0 svelte: 4.2.8 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /svelte@4.2.8: @@ -2952,13 +2952,13 @@ packages: engines: {node: '>=6'} dev: true - /ts-api-utils@1.0.1(typescript@5.3.2): + /ts-api-utils@1.0.1(typescript@5.3.3): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true /tsconfig-paths@3.14.2: @@ -3024,8 +3024,8 @@ packages: is-typed-array: 1.1.12 dev: true - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true dev: true From 8d00fc08f01848dfbb86b012a879259adce40555 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 10:27:31 +0100 Subject: [PATCH 028/643] fix(deps): update rust crate tokio-tungstenite to 0.21 (#804) * fix(deps): update rust crate tokio-tungstenite to 0.21 * http version mismatch --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- Cargo.lock | 11 ++++++----- plugins/websocket/Cargo.toml | 3 ++- .../examples/svelte-app/src-tauri/Cargo.toml | 2 +- plugins/websocket/src/lib.rs | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ee5ad96e3..bd97c3169 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5012,6 +5012,7 @@ name = "tauri-plugin-websocket" version = "0.0.0" dependencies = [ "futures-util", + "http 1.0.0", "log", "rand 0.8.5", "serde", @@ -5281,9 +5282,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" dependencies = [ "futures-util", "log", @@ -5436,14 +5437,14 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.9", + "http 1.0.0", "httparse", "log", "native-tls", diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index ec5091a3b..249f3c9b1 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -15,7 +15,8 @@ serde_json.workspace = true tauri.workspace = true log.workspace = true thiserror.workspace = true +http = "1" rand = "0.8" futures-util = "0.3" tokio = { version = "1", features = ["net", "sync"] } -tokio-tungstenite = { version = "0.20", features = ["native-tls"] } +tokio-tungstenite = { version = "0.21", features = ["native-tls"] } diff --git a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml b/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml index de26acb25..2828bedbd 100644 --- a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml @@ -11,7 +11,7 @@ tauri = { version = "1", features = [] } tokio = { version = "1", features = ["net"] } futures-util = "0.3" tauri-plugin-websocket = { path = "../../../" } -tokio-tungstenite = "0.20" +tokio-tungstenite = "0.21" [build-dependencies] tauri-build = { version = "1", features = [] } diff --git a/plugins/websocket/src/lib.rs b/plugins/websocket/src/lib.rs index ad692d605..f7922c5b9 100644 --- a/plugins/websocket/src/lib.rs +++ b/plugins/websocket/src/lib.rs @@ -1,4 +1,5 @@ use futures_util::{stream::SplitSink, SinkExt, StreamExt}; +use http::header::{HeaderName, HeaderValue}; use serde::{ser::Serializer, Deserialize, Serialize}; use tauri::{ api::ipc::{format_callback, CallbackFn}, @@ -9,6 +10,7 @@ use tokio::{net::TcpStream, sync::Mutex}; use tokio_tungstenite::{ connect_async_with_config, tungstenite::{ + client::IntoClientRequest, protocol::{CloseFrame as ProtocolCloseFrame, WebSocketConfig}, Message, }, @@ -17,8 +19,6 @@ use tokio_tungstenite::{ use std::collections::HashMap; use std::str::FromStr; -use tauri::http::header::{HeaderName, HeaderValue}; -use tokio_tungstenite::tungstenite::client::IntoClientRequest; type Id = u32; type WebSocket = WebSocketStream>; From eef088dde4c7cc5501800de212fea5deb454afee Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 7 Dec 2023 15:03:37 +0100 Subject: [PATCH 029/643] chore(websocket): Convert websocket example to vanilla ts (#805) * chore(websocket): Convert ws example to vanilla-ts * fix gitignore --- .../websocket/examples/svelte-app/.gitignore | 12 - .../examples/svelte-app/package.json | 27 - .../examples/svelte-app/src/app.d.ts | 9 - .../examples/svelte-app/src/app.html | 13 - .../svelte-app/src/routes/+page.svelte | 35 - .../examples/svelte-app/static/favicon.png | Bin 1571 -> 0 bytes .../examples/svelte-app/svelte.config.js | 15 - .../examples/svelte-app/tsconfig.json | 17 - .../examples/svelte-app/vite.config.ts | 8 - .../websocket/examples/tauri-app/.gitignore | 25 + .../{svelte-app => tauri-app}/dist/.gitkeep | 0 .../websocket/examples/tauri-app/index.html | 20 + .../websocket/examples/tauri-app/package.json | 19 + .../examples/tauri-app/public/vite.svg | 1 + .../src-tauri/.gitignore | 0 .../src-tauri/Cargo.toml | 0 .../src-tauri/build.rs | 0 .../src-tauri/icons/128x128.png | Bin .../src-tauri/icons/128x128@2x.png | Bin .../src-tauri/icons/32x32.png | Bin .../src-tauri/icons/Square107x107Logo.png | Bin .../src-tauri/icons/Square142x142Logo.png | Bin .../src-tauri/icons/Square150x150Logo.png | Bin .../src-tauri/icons/Square284x284Logo.png | Bin .../src-tauri/icons/Square30x30Logo.png | Bin .../src-tauri/icons/Square310x310Logo.png | Bin .../src-tauri/icons/Square44x44Logo.png | Bin .../src-tauri/icons/Square71x71Logo.png | Bin .../src-tauri/icons/Square89x89Logo.png | Bin .../src-tauri/icons/StoreLogo.png | Bin .../src-tauri/icons/icon.icns | Bin .../src-tauri/icons/icon.ico | Bin .../src-tauri/icons/icon.png | Bin .../src-tauri/rustfmt.toml | 0 .../src-tauri/src/main.rs | 0 .../src-tauri/tauri.conf.json | 0 .../websocket/examples/tauri-app/src/main.ts | 50 + .../global.css => tauri-app/src/style.css} | 4 + .../examples/tauri-app/src/typescript.svg | 1 + .../examples/tauri-app/src/vite-env.d.ts | 1 + .../examples/tauri-app/tsconfig.json | 23 + pnpm-lock.yaml | 896 ++++-------------- 42 files changed, 352 insertions(+), 824 deletions(-) delete mode 100644 plugins/websocket/examples/svelte-app/.gitignore delete mode 100644 plugins/websocket/examples/svelte-app/package.json delete mode 100644 plugins/websocket/examples/svelte-app/src/app.d.ts delete mode 100644 plugins/websocket/examples/svelte-app/src/app.html delete mode 100644 plugins/websocket/examples/svelte-app/src/routes/+page.svelte delete mode 100644 plugins/websocket/examples/svelte-app/static/favicon.png delete mode 100644 plugins/websocket/examples/svelte-app/svelte.config.js delete mode 100644 plugins/websocket/examples/svelte-app/tsconfig.json delete mode 100644 plugins/websocket/examples/svelte-app/vite.config.ts create mode 100644 plugins/websocket/examples/tauri-app/.gitignore rename plugins/websocket/examples/{svelte-app => tauri-app}/dist/.gitkeep (100%) create mode 100644 plugins/websocket/examples/tauri-app/index.html create mode 100644 plugins/websocket/examples/tauri-app/package.json create mode 100644 plugins/websocket/examples/tauri-app/public/vite.svg rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/.gitignore (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/Cargo.toml (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/build.rs (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/128x128.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/128x128@2x.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/32x32.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square107x107Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square142x142Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square150x150Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square284x284Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square30x30Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square310x310Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square44x44Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square71x71Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/Square89x89Logo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/StoreLogo.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/icon.icns (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/icon.ico (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/icons/icon.png (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/rustfmt.toml (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/src/main.rs (100%) rename plugins/websocket/examples/{svelte-app => tauri-app}/src-tauri/tauri.conf.json (100%) create mode 100644 plugins/websocket/examples/tauri-app/src/main.ts rename plugins/websocket/examples/{svelte-app/static/global.css => tauri-app/src/style.css} (97%) create mode 100644 plugins/websocket/examples/tauri-app/src/typescript.svg create mode 100644 plugins/websocket/examples/tauri-app/src/vite-env.d.ts create mode 100644 plugins/websocket/examples/tauri-app/tsconfig.json diff --git a/plugins/websocket/examples/svelte-app/.gitignore b/plugins/websocket/examples/svelte-app/.gitignore deleted file mode 100644 index 8c9131717..000000000 --- a/plugins/websocket/examples/svelte-app/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.DS_Store -node_modules -/build -/.svelte-kit -/package -.env -.env.* -!.env.example -vite.config.js.timestamp-* -vite.config.ts.timestamp-* -dist/** -!dist/.gitkeep \ No newline at end of file diff --git a/plugins/websocket/examples/svelte-app/package.json b/plugins/websocket/examples/svelte-app/package.json deleted file mode 100644 index 15a750c10..000000000 --- a/plugins/websocket/examples/svelte-app/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "svelte-app", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "tauri": "tauri" - }, - "devDependencies": { - "@sveltejs/adapter-auto": "2.1.1", - "@sveltejs/kit": "1.27.7", - "@tauri-apps/cli": "1.5.7", - "svelte": "4.2.8", - "svelte-check": "3.6.2", - "tslib": "2.6.2", - "typescript": "5.3.3", - "vite": "5.0.6" - }, - "dependencies": { - "tauri-plugin-websocket-api": "link:../../" - }, - "type": "module" -} diff --git a/plugins/websocket/examples/svelte-app/src/app.d.ts b/plugins/websocket/examples/svelte-app/src/app.d.ts deleted file mode 100644 index 1cea0dcf2..000000000 --- a/plugins/websocket/examples/svelte-app/src/app.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// See https://kit.svelte.dev/docs/types#app -// for information about these interfaces -// and what to do when importing types -declare namespace App { - // interface Error {} - // interface Locals {} - // interface PageData {} - // interface Platform {} -} diff --git a/plugins/websocket/examples/svelte-app/src/app.html b/plugins/websocket/examples/svelte-app/src/app.html deleted file mode 100644 index 73cf3cd33..000000000 --- a/plugins/websocket/examples/svelte-app/src/app.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/plugins/websocket/examples/svelte-app/src/routes/+page.svelte b/plugins/websocket/examples/svelte-app/src/routes/+page.svelte deleted file mode 100644 index 26e53cb04..000000000 --- a/plugins/websocket/examples/svelte-app/src/routes/+page.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - -
- - - -
-
{@html response}
diff --git a/plugins/websocket/examples/svelte-app/static/favicon.png b/plugins/websocket/examples/svelte-app/static/favicon.png deleted file mode 100644 index 825b9e65af7c104cfb07089bb28659393b4f2097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH + + + + + + WebSocket Plugin Example + + +
+
+ + + +
+
+
+ + + diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json new file mode 100644 index 000000000..88cfbe1af --- /dev/null +++ b/plugins/websocket/examples/tauri-app/package.json @@ -0,0 +1,19 @@ +{ + "name": "tauri-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@tauri-apps/cli": "1.5.7", + "typescript": "^5.3.3", + "vite": "^5.0.6" + }, + "dependencies": { + "tauri-plugin-websocket-api": "link:..\\.." + } +} diff --git a/plugins/websocket/examples/tauri-app/public/vite.svg b/plugins/websocket/examples/tauri-app/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/plugins/websocket/examples/tauri-app/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugins/websocket/examples/svelte-app/src-tauri/.gitignore b/plugins/websocket/examples/tauri-app/src-tauri/.gitignore similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/.gitignore rename to plugins/websocket/examples/tauri-app/src-tauri/.gitignore diff --git a/plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/Cargo.toml rename to plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml diff --git a/plugins/websocket/examples/svelte-app/src-tauri/build.rs b/plugins/websocket/examples/tauri-app/src-tauri/build.rs similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/build.rs rename to plugins/websocket/examples/tauri-app/src-tauri/build.rs diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/128x128.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/128x128.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/128x128.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/128x128.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/128x128@2x.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/128x128@2x.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/128x128@2x.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/128x128@2x.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/32x32.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/32x32.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/32x32.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/32x32.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square107x107Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square107x107Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square107x107Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square107x107Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square142x142Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square142x142Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square142x142Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square142x142Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square150x150Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square150x150Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square150x150Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square150x150Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square284x284Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square284x284Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square284x284Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square284x284Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square30x30Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square30x30Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square30x30Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square30x30Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square310x310Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square310x310Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square310x310Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square310x310Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square44x44Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square44x44Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square44x44Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square44x44Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square71x71Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square71x71Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square71x71Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square71x71Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/Square89x89Logo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/Square89x89Logo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/Square89x89Logo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/Square89x89Logo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/StoreLogo.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/StoreLogo.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/StoreLogo.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/StoreLogo.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.icns b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.icns similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.icns rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.icns diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.ico b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.ico similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.ico rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.ico diff --git a/plugins/websocket/examples/svelte-app/src-tauri/icons/icon.png b/plugins/websocket/examples/tauri-app/src-tauri/icons/icon.png similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/icons/icon.png rename to plugins/websocket/examples/tauri-app/src-tauri/icons/icon.png diff --git a/plugins/websocket/examples/svelte-app/src-tauri/rustfmt.toml b/plugins/websocket/examples/tauri-app/src-tauri/rustfmt.toml similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/rustfmt.toml rename to plugins/websocket/examples/tauri-app/src-tauri/rustfmt.toml diff --git a/plugins/websocket/examples/svelte-app/src-tauri/src/main.rs b/plugins/websocket/examples/tauri-app/src-tauri/src/main.rs similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/src/main.rs rename to plugins/websocket/examples/tauri-app/src-tauri/src/main.rs diff --git a/plugins/websocket/examples/svelte-app/src-tauri/tauri.conf.json b/plugins/websocket/examples/tauri-app/src-tauri/tauri.conf.json similarity index 100% rename from plugins/websocket/examples/svelte-app/src-tauri/tauri.conf.json rename to plugins/websocket/examples/tauri-app/src-tauri/tauri.conf.json diff --git a/plugins/websocket/examples/tauri-app/src/main.ts b/plugins/websocket/examples/tauri-app/src/main.ts new file mode 100644 index 000000000..764477ab6 --- /dev/null +++ b/plugins/websocket/examples/tauri-app/src/main.ts @@ -0,0 +1,50 @@ +import WebSocket from "tauri-plugin-websocket-api"; +import "./style.css"; + +let ws: WebSocket; + +document.addEventListener("DOMContentLoaded", async () => { + document.querySelector("#send")?.addEventListener("click", send); + document.querySelector("#disconnect")?.addEventListener("click", disconnect); + await connect(); +}); + +function _updateResponse(returnValue: unknown) { + const msg = document.createElement("p"); + msg.textContent = + typeof returnValue === "string" ? returnValue : JSON.stringify(returnValue); + document.querySelector("#response-container")?.appendChild(msg); +} + +async function connect() { + try { + ws = await WebSocket.connect("ws://127.0.0.1:8080").then((r) => { + _updateResponse("Connected"); + return r; + }); + } catch (e) { + _updateResponse(e); + } + ws.addListener(_updateResponse); +} + +function send() { + ws.send(document.querySelector("#msg-input")?.textContent || "") + .then(() => _updateResponse("Message sent")) + .catch(_updateResponse); +} + +function disconnect() { + ws.disconnect() + .then(() => _updateResponse("Disconnected")) + .catch(_updateResponse); +} + +document.querySelector("#app")!.innerHTML = ` +
+ + + +
+
+`; diff --git a/plugins/websocket/examples/svelte-app/static/global.css b/plugins/websocket/examples/tauri-app/src/style.css similarity index 97% rename from plugins/websocket/examples/svelte-app/static/global.css rename to plugins/websocket/examples/tauri-app/src/style.css index d8d4fb960..21d7637f3 100644 --- a/plugins/websocket/examples/svelte-app/static/global.css +++ b/plugins/websocket/examples/tauri-app/src/style.css @@ -66,3 +66,7 @@ button:not(:disabled):active { button:focus { border-color: #666; } + +p { + margin: 3px 0; +} diff --git a/plugins/websocket/examples/tauri-app/src/typescript.svg b/plugins/websocket/examples/tauri-app/src/typescript.svg new file mode 100644 index 000000000..d91c910cc --- /dev/null +++ b/plugins/websocket/examples/tauri-app/src/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugins/websocket/examples/tauri-app/src/vite-env.d.ts b/plugins/websocket/examples/tauri-app/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/plugins/websocket/examples/tauri-app/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/plugins/websocket/examples/tauri-app/tsconfig.json b/plugins/websocket/examples/tauri-app/tsconfig.json new file mode 100644 index 000000000..75abdef26 --- /dev/null +++ b/plugins/websocket/examples/tauri-app/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02ced54fc..30a362722 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,35 +174,20 @@ importers: specifier: 2.6.2 version: 2.6.2 - plugins/websocket/examples/svelte-app: + plugins/websocket/examples/tauri-app: dependencies: tauri-plugin-websocket-api: - specifier: link:../../ + specifier: link:..\.. version: link:../.. devDependencies: - '@sveltejs/adapter-auto': - specifier: 2.1.1 - version: 2.1.1(@sveltejs/kit@1.27.7) - '@sveltejs/kit': - specifier: 1.27.7 - version: 1.27.7(svelte@4.2.8)(vite@5.0.6) '@tauri-apps/cli': specifier: 1.5.7 version: 1.5.7 - svelte: - specifier: 4.2.8 - version: 4.2.8 - svelte-check: - specifier: 3.6.2 - version: 3.6.2(svelte@4.2.8) - tslib: - specifier: 2.6.2 - version: 2.6.2 typescript: - specifier: 5.3.3 + specifier: ^5.3.3 version: 5.3.3 vite: - specifier: 5.0.6 + specifier: ^5.0.6 version: 5.0.6 plugins/window-state: @@ -222,16 +207,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - dev: true - - /@esbuild/android-arm64@0.19.6: - resolution: {integrity: sha512-KQ/hbe9SJvIJ4sR+2PcZ41IBV+LPJyYp6V1K1P1xcMRup9iYsBoQn4MzE3mhMLOld27Au2eDcLlIREeKGUXpHQ==} + /@esbuild/android-arm64@0.19.8: + resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -239,8 +216,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.6: - resolution: {integrity: sha512-muPzBqXJKCbMYoNbb1JpZh/ynl0xS6/+pLjrofcR3Nad82SbsCogYzUE6Aq9QT3cLP0jR/IVK/NHC9b90mSHtg==} + /@esbuild/android-arm@0.19.8: + resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -248,8 +225,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.6: - resolution: {integrity: sha512-VVJVZQ7p5BBOKoNxd0Ly3xUM78Y4DyOoFKdkdAe2m11jbh0LEU4bPles4e/72EMl4tapko8o915UalN/5zhspg==} + /@esbuild/android-x64@0.19.8: + resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -257,8 +234,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.6: - resolution: {integrity: sha512-91LoRp/uZAKx6ESNspL3I46ypwzdqyDLXZH7x2QYCLgtnaU08+AXEbabY2yExIz03/am0DivsTtbdxzGejfXpA==} + /@esbuild/darwin-arm64@0.19.8: + resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -266,8 +243,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.6: - resolution: {integrity: sha512-QCGHw770ubjBU1J3ZkFJh671MFajGTYMZumPs9E/rqU52md6lIil97BR0CbPq6U+vTh3xnTNDHKRdR8ggHnmxQ==} + /@esbuild/darwin-x64@0.19.8: + resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -275,8 +252,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.6: - resolution: {integrity: sha512-J53d0jGsDcLzWk9d9SPmlyF+wzVxjXpOH7jVW5ae7PvrDst4kiAz6sX+E8btz0GB6oH12zC+aHRD945jdjF2Vg==} + /@esbuild/freebsd-arm64@0.19.8: + resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -284,8 +261,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.6: - resolution: {integrity: sha512-hn9qvkjHSIB5Z9JgCCjED6YYVGCNpqB7dEGavBdG6EjBD8S/UcNUIlGcB35NCkMETkdYwfZSvD9VoDJX6VeUVA==} + /@esbuild/freebsd-x64@0.19.8: + resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -293,8 +270,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.6: - resolution: {integrity: sha512-HQCOrk9XlH3KngASLaBfHpcoYEGUt829A9MyxaI8RMkfRA8SakG6YQEITAuwmtzFdEu5GU4eyhKcpv27dFaOBg==} + /@esbuild/linux-arm64@0.19.8: + resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -302,8 +279,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.6: - resolution: {integrity: sha512-G8IR5zFgpXad/Zp7gr7ZyTKyqZuThU6z1JjmRyN1vSF8j0bOlGzUwFSMTbctLAdd7QHpeyu0cRiuKrqK1ZTwvQ==} + /@esbuild/linux-arm@0.19.8: + resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -311,8 +288,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.6: - resolution: {integrity: sha512-22eOR08zL/OXkmEhxOfshfOGo8P69k8oKHkwkDrUlcB12S/sw/+COM4PhAPT0cAYW/gpqY2uXp3TpjQVJitz7w==} + /@esbuild/linux-ia32@0.19.8: + resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -320,8 +297,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.6: - resolution: {integrity: sha512-82RvaYAh/SUJyjWA8jDpyZCHQjmEggL//sC7F3VKYcBMumQjUL3C5WDl/tJpEiKtt7XrWmgjaLkrk205zfvwTA==} + /@esbuild/linux-loong64@0.19.8: + resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -329,8 +306,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.6: - resolution: {integrity: sha512-8tvnwyYJpR618vboIv2l8tK2SuK/RqUIGMfMENkeDGo3hsEIrpGldMGYFcWxWeEILe5Fi72zoXLmhZ7PR23oQA==} + /@esbuild/linux-mips64el@0.19.8: + resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -338,8 +315,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.6: - resolution: {integrity: sha512-Qt+D7xiPajxVNk5tQiEJwhmarNnLPdjXAoA5uWMpbfStZB0+YU6a3CtbWYSy+sgAsnyx4IGZjWsTzBzrvg/fMA==} + /@esbuild/linux-ppc64@0.19.8: + resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -347,8 +324,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.6: - resolution: {integrity: sha512-lxRdk0iJ9CWYDH1Wpnnnc640ajF4RmQ+w6oHFZmAIYu577meE9Ka/DCtpOrwr9McMY11ocbp4jirgGgCi7Ls/g==} + /@esbuild/linux-riscv64@0.19.8: + resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -356,8 +333,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.6: - resolution: {integrity: sha512-MopyYV39vnfuykHanRWHGRcRC3AwU7b0QY4TI8ISLfAGfK+tMkXyFuyT1epw/lM0pflQlS53JoD22yN83DHZgA==} + /@esbuild/linux-s390x@0.19.8: + resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -365,8 +342,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.6: - resolution: {integrity: sha512-UWcieaBzsN8WYbzFF5Jq7QULETPcQvlX7KL4xWGIB54OknXJjBO37sPqk7N82WU13JGWvmDzFBi1weVBajPovg==} + /@esbuild/linux-x64@0.19.8: + resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -374,8 +351,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.6: - resolution: {integrity: sha512-EpWiLX0fzvZn1wxtLxZrEW+oQED9Pwpnh+w4Ffv8ZLuMhUoqR9q9rL4+qHW8F4Mg5oQEKxAoT0G+8JYNqCiR6g==} + /@esbuild/netbsd-x64@0.19.8: + resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -383,8 +360,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.6: - resolution: {integrity: sha512-fFqTVEktM1PGs2sLKH4M5mhAVEzGpeZJuasAMRnvDZNCV0Cjvm1Hu35moL2vC0DOrAQjNTvj4zWrol/lwQ8Deg==} + /@esbuild/openbsd-x64@0.19.8: + resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -392,8 +369,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.6: - resolution: {integrity: sha512-M+XIAnBpaNvaVAhbe3uBXtgWyWynSdlww/JNZws0FlMPSBy+EpatPXNIlKAdtbFVII9OpX91ZfMb17TU3JKTBA==} + /@esbuild/sunos-x64@0.19.8: + resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -401,8 +378,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.6: - resolution: {integrity: sha512-2DchFXn7vp/B6Tc2eKdTsLzE0ygqKkNUhUBCNtMx2Llk4POIVMUq5rUYjdcedFlGLeRe1uLCpVvCmE+G8XYybA==} + /@esbuild/win32-arm64@0.19.8: + resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -410,8 +387,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.6: - resolution: {integrity: sha512-PBo/HPDQllyWdjwAVX+Gl2hH0dfBydL97BAH/grHKC8fubqp02aL4S63otZ25q3sBdINtOBbz1qTZQfXbP4VBg==} + /@esbuild/win32-ia32@0.19.8: + resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -419,8 +396,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.6: - resolution: {integrity: sha512-OE7yIdbDif2kKfrGa+V0vx/B3FJv2L4KnIiLlvtibPyO9UkgO3rzYE0HhpREo2vmJ1Ixq1zwm9/0er+3VOSZJA==} + /@esbuild/win32-x64@0.19.8: + resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -438,8 +415,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -450,8 +427,8 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 + globals: 13.23.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -465,11 +442,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/busboy@2.0.0: - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} - engines: {node: '>=14'} - dev: true - /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} @@ -496,11 +468,11 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.20 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true @@ -509,26 +481,22 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/source-map@0.3.3: - resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - dev: true - - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + '@jridgewell/trace-mapping': 0.3.20 dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@nodelib/fs.scandir@2.1.5: @@ -552,10 +520,6 @@ packages: fastq: 1.15.0 dev: true - /@polka/url@1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.1): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} @@ -565,7 +529,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.6.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -585,8 +549,8 @@ packages: dependencies: rollup: 4.6.1 serialize-javascript: 6.0.1 - smob: 1.4.0 - terser: 5.19.0 + smob: 1.4.1 + terser: 5.25.0 dev: true /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.3): @@ -602,22 +566,22 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.6.1) resolve: 1.22.8 rollup: 4.6.1 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.0.2(rollup@4.6.1): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.1.0(rollup@4.6.1): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 4.6.1 @@ -719,79 +683,6 @@ packages: dev: true optional: true - /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.7): - resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==} - peerDependencies: - '@sveltejs/kit': ^1.0.0 - dependencies: - '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@5.0.6) - import-meta-resolve: 4.0.0 - dev: true - - /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@5.0.6): - resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} - engines: {node: ^16.14 || >=18} - hasBin: true - requiresBuild: true - peerDependencies: - svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.6) - '@types/cookie': 0.5.1 - cookie: 0.5.0 - devalue: 4.3.2 - esm-env: 1.0.0 - kleur: 4.1.5 - magic-string: 0.30.5 - mrmime: 1.0.1 - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.2 - svelte: 4.2.8 - tiny-glob: 0.2.9 - undici: 5.26.4 - vite: 5.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.6): - resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^2.2.0 - svelte: ^3.54.0 || ^4.0.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.0(svelte@4.2.8)(vite@5.0.6) - debug: 4.3.4 - svelte: 4.2.8 - vite: 5.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@sveltejs/vite-plugin-svelte@2.5.0(svelte@4.2.8)(vite@5.0.6): - resolution: {integrity: sha512-FxLZLVfFA2soGw7ej8Ohuav7+AOsJILiPlL8FgY5MABDDmDqb637o8Xd/QGkrXLC1qXyG1bnteOw5Z5yrA2lHA==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 - vite: ^4.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.0)(svelte@4.2.8)(vite@5.0.6) - debug: 4.3.4 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.5 - svelte: 4.2.8 - svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.0.6 - vitefu: 0.2.4(vite@5.0.6) - transitivePeerDependencies: - - supports-color - dev: true - /@tauri-apps/api@1.5.1: resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -904,32 +795,24 @@ packages: '@tauri-apps/cli-win32-x64-msvc': 1.5.7 dev: true - /@types/cookie@0.5.1: - resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/estree@1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true - - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/pug@2.0.6: - resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} - dev: true - /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): @@ -943,7 +826,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.13.2 '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) @@ -952,10 +835,10 @@ packages: debug: 4.3.4 eslint: 8.55.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1004,7 +887,7 @@ packages: '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.55.0 - ts-api-utils: 1.0.1(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1030,7 +913,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1043,8 +926,8 @@ packages: eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.13.2 '@typescript-eslint/types': 6.13.2 '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) @@ -1067,16 +950,16 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1102,24 +985,10 @@ packages: color-convert: 2.0.1 dev: true - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 - dev: true - /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: @@ -1132,7 +1001,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 get-intrinsic: 1.2.2 is-string: 1.0.7 @@ -1148,9 +1017,9 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 + es-shim-unscopables: 1.0.2 get-intrinsic: 1.2.2 dev: true @@ -1159,9 +1028,9 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 + es-shim-unscopables: 1.0.2 dev: true /array.prototype.flatmap@1.3.2: @@ -1169,9 +1038,9 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 + es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -1180,7 +1049,7 @@ packages: dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 @@ -1192,21 +1061,10 @@ packages: engines: {node: '>= 0.4'} dev: true - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 - dev: true - /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1221,10 +1079,6 @@ packages: fill-range: 7.0.1 dev: true - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -1261,31 +1115,6 @@ packages: supports-color: 7.2.0 dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /code-red@1.0.3: - resolution: {integrity: sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.0 - acorn: 8.10.0 - estree-walker: 3.0.3 - periscopic: 3.1.0 - dev: true - /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1305,11 +1134,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: true - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1319,14 +1143,6 @@ packages: which: 2.0.2 dev: true - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.0.2 - dev: true - /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1365,31 +1181,18 @@ packages: dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true - - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - - /devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - dev: true - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1419,18 +1222,18 @@ packages: arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 call-bind: 1.0.5 - es-set-tostringtag: 2.0.1 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.0 - internal-slot: 1.0.5 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -1441,7 +1244,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 @@ -1456,19 +1259,19 @@ packages: which-typed-array: 1.1.13 dev: true - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.2 - has: 1.0.3 has-tostringtag: 1.0.0 + hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: @@ -1480,38 +1283,34 @@ packages: is-symbol: 1.0.4 dev: true - /es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - dev: true - - /esbuild@0.19.6: - resolution: {integrity: sha512-Xl7dntjA2OEIvpr9j0DVxxnog2fyTGnyVoQXAMQI6eR3mf9zCQds7VIKUDCotDgE/p4ncTgeRqgX8t5d6oP4Gw==} + /esbuild@0.19.8: + resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.6 - '@esbuild/android-arm64': 0.19.6 - '@esbuild/android-x64': 0.19.6 - '@esbuild/darwin-arm64': 0.19.6 - '@esbuild/darwin-x64': 0.19.6 - '@esbuild/freebsd-arm64': 0.19.6 - '@esbuild/freebsd-x64': 0.19.6 - '@esbuild/linux-arm': 0.19.6 - '@esbuild/linux-arm64': 0.19.6 - '@esbuild/linux-ia32': 0.19.6 - '@esbuild/linux-loong64': 0.19.6 - '@esbuild/linux-mips64el': 0.19.6 - '@esbuild/linux-ppc64': 0.19.6 - '@esbuild/linux-riscv64': 0.19.6 - '@esbuild/linux-s390x': 0.19.6 - '@esbuild/linux-x64': 0.19.6 - '@esbuild/netbsd-x64': 0.19.6 - '@esbuild/openbsd-x64': 0.19.6 - '@esbuild/sunos-x64': 0.19.6 - '@esbuild/win32-arm64': 0.19.6 - '@esbuild/win32-ia32': 0.19.6 - '@esbuild/win32-x64': 0.19.6 + '@esbuild/android-arm': 0.19.8 + '@esbuild/android-arm64': 0.19.8 + '@esbuild/android-x64': 0.19.8 + '@esbuild/darwin-arm64': 0.19.8 + '@esbuild/darwin-x64': 0.19.8 + '@esbuild/freebsd-arm64': 0.19.8 + '@esbuild/freebsd-x64': 0.19.8 + '@esbuild/linux-arm': 0.19.8 + '@esbuild/linux-arm64': 0.19.8 + '@esbuild/linux-ia32': 0.19.8 + '@esbuild/linux-loong64': 0.19.8 + '@esbuild/linux-mips64el': 0.19.8 + '@esbuild/linux-ppc64': 0.19.8 + '@esbuild/linux-riscv64': 0.19.8 + '@esbuild/linux-s390x': 0.19.8 + '@esbuild/linux-x64': 0.19.8 + '@esbuild/netbsd-x64': 0.19.8 + '@esbuild/openbsd-x64': 0.19.8 + '@esbuild/sunos-x64': 0.19.8 + '@esbuild/win32-arm64': 0.19.8 + '@esbuild/win32-ia32': 0.19.8 + '@esbuild/win32-x64': 0.19.8 dev: true /escape-string-regexp@4.0.0: @@ -1519,6 +1318,15 @@ packages: engines: {node: '>=10'} dev: true + /eslint-compat-utils@0.1.2(eslint@8.55.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.55.0 + dev: true + /eslint-config-prettier@9.1.0(eslint@8.55.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -1604,15 +1412,16 @@ packages: - supports-color dev: true - /eslint-plugin-es-x@7.1.0(eslint@8.55.0): - resolution: {integrity: sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==} + /eslint-plugin-es-x@7.5.0(eslint@8.55.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) dev: true /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0): @@ -1659,9 +1468,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) builtins: 5.0.1 eslint: 8.55.0 - eslint-plugin-es-x: 7.1.0(eslint@8.55.0) + eslint-plugin-es-x: 7.5.0(eslint@8.55.0) get-tsconfig: 4.7.2 - ignore: 5.2.4 + ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 @@ -1703,7 +1512,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.6.2 + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.55.0 '@humanwhocodes/config-array': 0.11.13 @@ -1725,9 +1534,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1744,16 +1553,12 @@ packages: - supports-color dev: true - /esm-env@1.0.0: - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - dev: true - /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -1780,12 +1585,6 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.0 - dev: true - /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1795,8 +1594,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1824,7 +1623,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -1842,16 +1641,17 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true /for-each@0.3.3: @@ -1881,7 +1681,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -1938,8 +1738,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1949,11 +1749,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 - dev: true - - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -1962,26 +1758,18 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.2 dev: true - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -1995,8 +1783,8 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: get-intrinsic: 1.2.2 dev: true @@ -2018,13 +1806,6 @@ packages: has-symbols: 1.0.3 dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.2 - dev: true - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -2032,8 +1813,8 @@ packages: function-bind: 1.1.2 dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} dev: true @@ -2045,10 +1826,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - dev: true - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2065,12 +1842,12 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.2 - has: 1.0.3 + hasown: 2.0.0 side-channel: 1.0.4 dev: true @@ -2088,13 +1865,6 @@ packages: has-bigints: 1.0.2 dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -2166,12 +1936,6 @@ packages: engines: {node: '>=8'} dev: true - /is-reference@3.0.1: - resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} - dependencies: - '@types/estree': 1.0.0 - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -2228,6 +1992,10 @@ packages: argparse: 2.0.1 dev: true + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -2243,9 +2011,10 @@ packages: minimist: 1.2.8 dev: true - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 dev: true /levn@0.4.1: @@ -2256,10 +2025,6 @@ packages: type-check: 0.4.0 dev: true - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: true - /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2278,24 +2043,6 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true - /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2309,11 +2056,6 @@ packages: picomatch: 2.3.1 dev: true - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -2324,23 +2066,6 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: true - - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - dev: true - /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -2359,11 +2084,6 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -2373,12 +2093,12 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -2388,7 +2108,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -2396,7 +2116,7 @@ packages: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 get-intrinsic: 1.2.2 dev: true @@ -2406,7 +2126,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -2473,14 +2193,6 @@ packages: engines: {node: '>=8'} dev: true - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - dependencies: - '@types/estree': 1.0.0 - estree-walker: 3.0.3 - is-reference: 3.0.1 - dev: true - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -2510,8 +2222,8 @@ packages: hasBin: true dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -2525,13 +2237,6 @@ packages: safe-buffer: 5.2.1 dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -2542,7 +2247,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 set-function-name: 2.0.1 dev: true @@ -2569,13 +2274,6 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -2609,13 +2307,6 @@ packages: queue-microtask: 1.2.3 dev: true - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} @@ -2644,15 +2335,6 @@ packages: regexp-tree: 0.1.27 dev: true - /sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -2667,10 +2349,6 @@ packages: randombytes: 2.1.0 dev: true - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true - /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} @@ -2678,7 +2356,7 @@ packages: define-data-property: 1.1.1 get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /set-function-name@2.0.1: @@ -2687,7 +2365,7 @@ packages: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /shebang-command@2.0.0: @@ -2710,32 +2388,13 @@ packages: object-inspect: 1.13.1 dev: true - /sirv@2.0.2: - resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.21 - mrmime: 1.0.1 - totalist: 3.0.1 - dev: true - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /smob@1.4.0: - resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==} - dev: true - - /sorcery@0.11.0: - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - buffer-crc32: 0.2.13 - minimist: 1.2.8 - sander: 0.5.1 + /smob@1.4.1: + resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} dev: true /source-map-js@1.0.2: @@ -2760,7 +2419,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -2768,7 +2427,7 @@ packages: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -2776,7 +2435,7 @@ packages: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.5 - define-properties: 1.2.0 + define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -2792,13 +2451,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2816,115 +2468,13 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.6.2(svelte@4.2.8): - resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - dependencies: - '@jridgewell/trace-mapping': 0.3.18 - chokidar: 3.5.3 - fast-glob: 3.2.12 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 - svelte: 4.2.8 - svelte-preprocess: 5.1.0(svelte@4.2.8)(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - dev: true - - /svelte-hmr@0.15.3(svelte@4.2.8): - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - dependencies: - svelte: 4.2.8 - dev: true - - /svelte-preprocess@5.1.0(svelte@4.2.8)(typescript@5.3.3): - resolution: {integrity: sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==} - engines: {node: '>= 14.10.0'} - requiresBuild: true - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - dependencies: - '@types/pug': 2.0.6 - detect-indent: 6.1.0 - magic-string: 0.27.0 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.8 - typescript: 5.3.3 - dev: true - - /svelte@4.2.8: - resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} - engines: {node: '>=16'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - acorn: 8.10.0 - aria-query: 5.3.0 - axobject-query: 3.2.1 - code-red: 1.0.3 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.1 - locate-character: 3.0.0 - magic-string: 0.30.5 - periscopic: 3.1.0 - dev: true - - /terser@5.19.0: - resolution: {integrity: sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==} + /terser@5.25.0: + resolution: {integrity: sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.3 - acorn: 8.10.0 + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -2933,13 +2483,6 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: true - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -2947,13 +2490,8 @@ packages: is-number: 7.0.0 dev: true - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: true - - /ts-api-utils@1.0.1(typescript@5.3.3): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' @@ -3039,17 +2577,10 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /undici@5.26.4: - resolution: {integrity: sha512-OG+QOf0fTLtazL9P9X7yqWxQ+Z0395Wk6DSkyTxtaq3wQEjIroVe7Y4asCX/vcCxYpNGMnwz8F0qbRYUoaQVMw==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.0.0 - dev: true - /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /vite@5.0.6: @@ -3080,24 +2611,13 @@ packages: terser: optional: true dependencies: - esbuild: 0.19.6 + esbuild: 0.19.8 postcss: 8.4.32 rollup: 4.6.1 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@5.0.6): - resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 - peerDependenciesMeta: - vite: - optional: true - dependencies: - vite: 5.0.6 - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: From a5792e220aea568e2d9fabfceff15ef5fcca5473 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 7 Dec 2023 15:44:55 +0100 Subject: [PATCH 030/643] chore: Update rustix in lockfile (#806) https://github.com/tauri-apps/plugins-workspace/security/dependabot/36 --- Cargo.lock | 53 +++++++++++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd97c3169..f5525a903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -404,9 +404,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" dependencies = [ "serde", ] @@ -1202,23 +1202,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -2220,7 +2209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.8", + "rustix 0.38.26", "windows-sys 0.48.0", ] @@ -2376,9 +2365,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libloading" @@ -2456,9 +2445,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2726,7 +2715,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "crossbeam-channel", "filetime", "fsevent-sys", @@ -2950,7 +2939,7 @@ version = "0.10.60" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "cfg-if", "foreign-types", "libc", @@ -3762,15 +3751,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.8" +version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.5", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -4348,7 +4337,7 @@ checksum = "8ca69bf415b93b60b80dc8fda3cb4ef52b2336614d8da2de5456cc942a110482" dependencies = [ "atoi", "base64 0.21.2", - "bitflags 2.3.3", + "bitflags 2.4.1", "byteorder", "bytes", "crc", @@ -4391,7 +4380,7 @@ checksum = "a0db2df1b8731c3651e204629dd55e52adbae0462fa1bdcbed56a2302c18181e" dependencies = [ "atoi", "base64 0.21.2", - "bitflags 2.3.3", + "bitflags 2.4.1", "byteorder", "crc", "dotenvy", @@ -5028,7 +5017,7 @@ name = "tauri-plugin-window-state" version = "0.1.0" dependencies = [ "bincode", - "bitflags 2.3.3", + "bitflags 2.4.1", "log", "serde", "serde_json", @@ -5135,7 +5124,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.8", + "rustix 0.38.26", "windows-sys 0.48.0", ] From af2892f6a1271907c0efc67f0b7c09799bb64dd4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 17:21:14 +0100 Subject: [PATCH 031/643] chore(deps): update dependency eslint-config-standard-with-typescript to v42 (#808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6221c87eb..d188710f8 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@typescript-eslint/parser": "6.13.2", "eslint": "8.55.0", "eslint-config-prettier": "9.1.0", - "eslint-config-standard-with-typescript": "40.0.0", + "eslint-config-standard-with-typescript": "42.0.0", "eslint-plugin-import": "2.29.0", "eslint-plugin-n": "16.3.1", "eslint-plugin-promise": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30a362722..1e26c840b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: 9.1.0 version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: - specifier: 40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) + specifier: 42.0.0 + version: 42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.0 version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) @@ -1336,8 +1336,8 @@ packages: eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} + /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 From 5c883bdd330be9fb148a0c0c9850337453f23ff8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Dec 2023 11:21:11 +0100 Subject: [PATCH 032/643] chore(deps): update dependency prettier to v3.1.1 (#809) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d188710f8..fcbd18dce 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint-plugin-n": "16.3.1", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", - "prettier": "3.1.0", + "prettier": "3.1.1", "rollup": "4.6.1", "typescript": "5.3.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e26c840b..7acb16701 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 1.7.1 version: 1.7.1 prettier: - specifier: 3.1.0 - version: 3.1.0 + specifier: 3.1.1 + version: 3.1.1 rollup: specifier: 4.6.1 version: 4.6.1 @@ -2216,8 +2216,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} engines: {node: '>=14'} hasBin: true dev: true From 776ff9c97ea8194c631bb51a337db3d29e19fbb3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 08:11:50 +0100 Subject: [PATCH 033/643] chore(deps): update dependency eslint-plugin-n to v16.4.0 (#811) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index fcbd18dce..7eba5d6d9 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "42.0.0", "eslint-plugin-import": "2.29.0", - "eslint-plugin-n": "16.3.1", + "eslint-plugin-n": "16.4.0", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7acb16701..ffb93d3c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,13 +35,13 @@ importers: version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 42.0.0 - version: 42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) + version: 42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.0 version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-n: - specifier: 16.3.1 - version: 16.3.1(eslint@8.55.0) + specifier: 16.4.0 + version: 16.4.0(eslint@8.55.0) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.55.0) @@ -1336,7 +1336,7 @@ packages: eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1349,16 +1349,16 @@ packages: '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) eslint: 8.55.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-n: 16.4.0(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1369,7 +1369,7 @@ packages: dependencies: eslint: 8.55.0 eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-n: 16.4.0(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) dev: true @@ -1459,8 +1459,8 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-n@16.4.0(eslint@8.55.0): + resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' From 65ea3d9adfc0126043f659f30206cf69d787db86 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 09:45:39 +0100 Subject: [PATCH 034/643] chore(deps): update dependency rollup to v4.8.0 (#807) * chore(deps): update dependency rollup to v4.8.0 * dedupe * let renovate run dedupe --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- package.json | 2 +- pnpm-lock.yaml | 117 ++++++++++++++++++++++++++----------------------- renovate.json | 3 +- 3 files changed, 66 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 7eba5d6d9..94a59bcda 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.1", - "rollup": "4.6.1", + "rollup": "4.8.0", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ffb93d3c4..f2fba3f3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.6.1) + version: 15.2.3(rollup@4.8.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.6.1) + version: 0.4.4(rollup@4.8.0) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.6.1)(typescript@5.3.3) + version: 11.1.5(rollup@4.8.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.13.2 version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.6.1 - version: 4.6.1 + specifier: 4.8.0 + version: 4.8.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.6.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.8.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.8.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.6.1 + rollup: 4.8.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.6.1): + /@rollup/plugin-terser@0.4.4(rollup@4.8.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.6.1 + rollup: 4.8.0 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.6.1)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.8.0)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.6.1) + '@rollup/pluginutils': 5.1.0(rollup@4.8.0) resolve: 1.22.8 - rollup: 4.6.1 + rollup: 4.8.0 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.6.1): + /@rollup/pluginutils@5.1.0(rollup@4.8.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,99 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.6.1 + rollup: 4.8.0 dev: true - /@rollup/rollup-android-arm-eabi@4.6.1: - resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} + /@rollup/rollup-android-arm-eabi@4.8.0: + resolution: {integrity: sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.6.1: - resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} + /@rollup/rollup-android-arm64@4.8.0: + resolution: {integrity: sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.6.1: - resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} + /@rollup/rollup-darwin-arm64@4.8.0: + resolution: {integrity: sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.6.1: - resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} + /@rollup/rollup-darwin-x64@4.8.0: + resolution: {integrity: sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.6.1: - resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.8.0: + resolution: {integrity: sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.6.1: - resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} + /@rollup/rollup-linux-arm64-gnu@4.8.0: + resolution: {integrity: sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.6.1: - resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} + /@rollup/rollup-linux-arm64-musl@4.8.0: + resolution: {integrity: sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.6.1: - resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} + /@rollup/rollup-linux-riscv64-gnu@4.8.0: + resolution: {integrity: sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.8.0: + resolution: {integrity: sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.6.1: - resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} + /@rollup/rollup-linux-x64-musl@4.8.0: + resolution: {integrity: sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.6.1: - resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} + /@rollup/rollup-win32-arm64-msvc@4.8.0: + resolution: {integrity: sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.6.1: - resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} + /@rollup/rollup-win32-ia32-msvc@4.8.0: + resolution: {integrity: sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.6.1: - resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} + /@rollup/rollup-win32-x64-msvc@4.8.0: + resolution: {integrity: sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==} cpu: [x64] os: [win32] requiresBuild: true @@ -2281,23 +2289,24 @@ packages: glob: 7.2.3 dev: true - /rollup@4.6.1: - resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} + /rollup@4.8.0: + resolution: {integrity: sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.6.1 - '@rollup/rollup-android-arm64': 4.6.1 - '@rollup/rollup-darwin-arm64': 4.6.1 - '@rollup/rollup-darwin-x64': 4.6.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 - '@rollup/rollup-linux-arm64-gnu': 4.6.1 - '@rollup/rollup-linux-arm64-musl': 4.6.1 - '@rollup/rollup-linux-x64-gnu': 4.6.1 - '@rollup/rollup-linux-x64-musl': 4.6.1 - '@rollup/rollup-win32-arm64-msvc': 4.6.1 - '@rollup/rollup-win32-ia32-msvc': 4.6.1 - '@rollup/rollup-win32-x64-msvc': 4.6.1 + '@rollup/rollup-android-arm-eabi': 4.8.0 + '@rollup/rollup-android-arm64': 4.8.0 + '@rollup/rollup-darwin-arm64': 4.8.0 + '@rollup/rollup-darwin-x64': 4.8.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.8.0 + '@rollup/rollup-linux-arm64-gnu': 4.8.0 + '@rollup/rollup-linux-arm64-musl': 4.8.0 + '@rollup/rollup-linux-riscv64-gnu': 4.8.0 + '@rollup/rollup-linux-x64-gnu': 4.8.0 + '@rollup/rollup-linux-x64-musl': 4.8.0 + '@rollup/rollup-win32-arm64-msvc': 4.8.0 + '@rollup/rollup-win32-ia32-msvc': 4.8.0 + '@rollup/rollup-win32-x64-msvc': 4.8.0 fsevents: 2.3.3 dev: true @@ -2613,7 +2622,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.6.1 + rollup: 4.8.0 optionalDependencies: fsevents: 2.3.3 dev: true diff --git a/renovate.json b/renovate.json index 2eddfb445..43f4e81a2 100644 --- a/renovate.json +++ b/renovate.json @@ -18,5 +18,6 @@ "matchDepTypes": ["engines", "packageManager"], "enabled": false } - ] + ], + "postUpdateOptions": ["pnpmDedupe"] } From 4f8df2f86b32821198cd14a687fb743132265c71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 20:33:27 +0100 Subject: [PATCH 035/643] chore(deps): update typescript-eslint monorepo to v6.14.0 (#813) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 94a59bcda..ba1ae3b03 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.13.2", - "@typescript-eslint/parser": "6.13.2", + "@typescript-eslint/eslint-plugin": "6.14.0", + "@typescript-eslint/parser": "6.14.0", "eslint": "8.55.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "42.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2fba3f3e..7c1eaa0e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.8.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.13.2 - version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) + specifier: 6.14.0 + version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.13.2 - version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) + specifier: 6.14.0 + version: 6.14.0(eslint@8.55.0)(typescript@5.3.3) eslint: specifier: 8.55.0 version: 8.55.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.55.0) eslint-config-standard-with-typescript: specifier: 42.0.0 - version: 42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) + version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) + version: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) eslint-plugin-n: specifier: 16.4.0 version: 16.4.0(eslint@8.55.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} + /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/type-utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.14.0 debug: 4.3.4 eslint: 8.55.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} + /@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.14.0 debug: 4.3.4 eslint: 8.55.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.13.2: - resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} + /@typescript-eslint/scope-manager@6.14.0: + resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/visitor-keys': 6.14.0 dev: true - /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} + /@typescript-eslint/type-utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.55.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.13.2: - resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} + /@typescript-eslint/types@6.14.0: + resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): - resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} + /@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3): + resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/visitor-keys': 6.14.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -927,8 +927,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} + /@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -936,9 +936,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: @@ -946,11 +946,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.13.2: - resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} + /@typescript-eslint/visitor-keys@6.14.0: + resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/types': 6.14.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1344,7 +1344,7 @@ packages: eslint: 8.55.0 dev: true - /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1354,11 +1354,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) eslint: 8.55.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) eslint-plugin-n: 16.4.0(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) typescript: 5.3.3 @@ -1376,7 +1376,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) eslint-plugin-n: 16.4.0(eslint@8.55.0) eslint-plugin-promise: 6.1.1(eslint@8.55.0) dev: true @@ -1391,7 +1391,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1412,7 +1412,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 @@ -1432,7 +1432,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.55.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1442,7 +1442,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1451,7 +1451,7 @@ packages: doctrine: 2.1.0 eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 3af968ce8f7f00bf70861e0b94a3da7f5771748a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 11:14:47 +0100 Subject: [PATCH 036/643] fix(deps): update dependency @tauri-apps/api to v1.5.2 (#814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- plugins/authenticator/package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/fs-extra/package.json | 2 +- plugins/fs-watch/package.json | 2 +- plugins/log/package.json | 2 +- plugins/positioner/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++++++--------------- shared/template/package.json | 2 +- 14 files changed, 39 insertions(+), 39 deletions(-) diff --git a/plugins/authenticator/package.json b/plugins/authenticator/package.json index a22009a69..bb9b7cef5 100644 --- a/plugins/authenticator/package.json +++ b/plugins/authenticator/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index e05e147ce..05d1cc5f9 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/fs-extra/package.json b/plugins/fs-extra/package.json index a483359ba..5baf8884e 100644 --- a/plugins/fs-extra/package.json +++ b/plugins/fs-extra/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/fs-watch/package.json b/plugins/fs-watch/package.json index d6670948f..ac04e4389 100644 --- a/plugins/fs-watch/package.json +++ b/plugins/fs-watch/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/log/package.json b/plugins/log/package.json index 16d4555d1..b1b960a87 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 5a740928c..5c2ca41dc 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index dd957c702..cc4250e6e 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/store/package.json b/plugins/store/package.json index 343916690..78dd71b52 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 24875fe66..43104f12c 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index f844cf648..a75a99994 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 0e2ac693f..92c86ddce 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index 7c837151f..f167675f6 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c1eaa0e8..270a3eef3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: plugins/authenticator: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -71,8 +71,8 @@ importers: plugins/autostart: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -81,8 +81,8 @@ importers: plugins/fs-extra: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -91,8 +91,8 @@ importers: plugins/fs-watch: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -101,8 +101,8 @@ importers: plugins/log: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -111,8 +111,8 @@ importers: plugins/positioner: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -127,8 +127,8 @@ importers: plugins/sql: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -137,8 +137,8 @@ importers: plugins/store: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -147,8 +147,8 @@ importers: plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -157,8 +157,8 @@ importers: plugins/upload: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -167,8 +167,8 @@ importers: plugins/websocket: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -193,8 +193,8 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.2 + version: 1.5.2 devDependencies: tslib: specifier: 2.6.2 @@ -691,8 +691,8 @@ packages: dev: true optional: true - /@tauri-apps/api@1.5.1: - resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==} + /@tauri-apps/api@1.5.2: + resolution: {integrity: sha512-tZK3XJiIUnUdHN7rGqA+j57dvT3/7z2bEiPfWmO3uAymv2JMBJrfGwbyDWLjGue37UVhh0gLYSkA9wV+/bASwA==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false diff --git a/shared/template/package.json b/shared/template/package.json index b7a1d2418..73915fab9 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.2" } } From 46dfb75d92d9800b0449d2e76b140b0c5e3cf6cb Mon Sep 17 00:00:00 2001 From: FabianLars Date: Tue, 12 Dec 2023 11:18:20 +0100 Subject: [PATCH 037/643] Revert "fix(deps): update dependency @tauri-apps/api to v1.5.2 (#814)" This reverts commit 3af968ce8f7f00bf70861e0b94a3da7f5771748a. --- plugins/authenticator/package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/fs-extra/package.json | 2 +- plugins/fs-watch/package.json | 2 +- plugins/log/package.json | 2 +- plugins/positioner/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++++++--------------- shared/template/package.json | 2 +- 14 files changed, 39 insertions(+), 39 deletions(-) diff --git a/plugins/authenticator/package.json b/plugins/authenticator/package.json index bb9b7cef5..a22009a69 100644 --- a/plugins/authenticator/package.json +++ b/plugins/authenticator/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index 05d1cc5f9..e05e147ce 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/fs-extra/package.json b/plugins/fs-extra/package.json index 5baf8884e..a483359ba 100644 --- a/plugins/fs-extra/package.json +++ b/plugins/fs-extra/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/fs-watch/package.json b/plugins/fs-watch/package.json index ac04e4389..d6670948f 100644 --- a/plugins/fs-watch/package.json +++ b/plugins/fs-watch/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/log/package.json b/plugins/log/package.json index b1b960a87..16d4555d1 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 5c2ca41dc..5a740928c 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index cc4250e6e..dd957c702 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/store/package.json b/plugins/store/package.json index 78dd71b52..343916690 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 43104f12c..24875fe66 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index a75a99994..f844cf648 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 92c86ddce..0e2ac693f 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index f167675f6..7c837151f 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 270a3eef3..7c1eaa0e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: plugins/authenticator: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -71,8 +71,8 @@ importers: plugins/autostart: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -81,8 +81,8 @@ importers: plugins/fs-extra: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -91,8 +91,8 @@ importers: plugins/fs-watch: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -101,8 +101,8 @@ importers: plugins/log: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -111,8 +111,8 @@ importers: plugins/positioner: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -127,8 +127,8 @@ importers: plugins/sql: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -137,8 +137,8 @@ importers: plugins/store: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -147,8 +147,8 @@ importers: plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -157,8 +157,8 @@ importers: plugins/upload: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -167,8 +167,8 @@ importers: plugins/websocket: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -193,8 +193,8 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.1 + version: 1.5.1 devDependencies: tslib: specifier: 2.6.2 @@ -691,8 +691,8 @@ packages: dev: true optional: true - /@tauri-apps/api@1.5.2: - resolution: {integrity: sha512-tZK3XJiIUnUdHN7rGqA+j57dvT3/7z2bEiPfWmO3uAymv2JMBJrfGwbyDWLjGue37UVhh0gLYSkA9wV+/bASwA==} + /@tauri-apps/api@1.5.1: + resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false diff --git a/shared/template/package.json b/shared/template/package.json index 73915fab9..b7a1d2418 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.2" + "@tauri-apps/api": "1.5.1" } } From 5e73de50e72e053351620fda5d7de03574d8bfa4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:34:12 +0100 Subject: [PATCH 038/643] chore(deps): update dependency rollup to v4.9.0 (#816) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index ba1ae3b03..179f9e0b5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.1", - "rollup": "4.8.0", + "rollup": "4.9.0", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c1eaa0e8..cec424340 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.8.0) + version: 15.2.3(rollup@4.9.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.8.0) + version: 0.4.4(rollup@4.9.0) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.8.0)(typescript@5.3.3) + version: 11.1.5(rollup@4.9.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.14.0 version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.8.0 - version: 4.8.0 + specifier: 4.9.0 + version: 4.9.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.8.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.8.0) + '@rollup/pluginutils': 5.1.0(rollup@4.9.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.8.0 + rollup: 4.9.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.8.0): + /@rollup/plugin-terser@0.4.4(rollup@4.9.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.8.0 + rollup: 4.9.0 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.8.0)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.9.0)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.8.0) + '@rollup/pluginutils': 5.1.0(rollup@4.9.0) resolve: 1.22.8 - rollup: 4.8.0 + rollup: 4.9.0 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.8.0): + /@rollup/pluginutils@5.1.0(rollup@4.9.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.8.0 + rollup: 4.9.0 dev: true - /@rollup/rollup-android-arm-eabi@4.8.0: - resolution: {integrity: sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==} + /@rollup/rollup-android-arm-eabi@4.9.0: + resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.8.0: - resolution: {integrity: sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==} + /@rollup/rollup-android-arm64@4.9.0: + resolution: {integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.8.0: - resolution: {integrity: sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==} + /@rollup/rollup-darwin-arm64@4.9.0: + resolution: {integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.8.0: - resolution: {integrity: sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==} + /@rollup/rollup-darwin-x64@4.9.0: + resolution: {integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.8.0: - resolution: {integrity: sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.0: + resolution: {integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.8.0: - resolution: {integrity: sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==} + /@rollup/rollup-linux-arm64-gnu@4.9.0: + resolution: {integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.8.0: - resolution: {integrity: sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==} + /@rollup/rollup-linux-arm64-musl@4.9.0: + resolution: {integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.8.0: - resolution: {integrity: sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.0: + resolution: {integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.8.0: - resolution: {integrity: sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==} + /@rollup/rollup-linux-x64-gnu@4.9.0: + resolution: {integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.8.0: - resolution: {integrity: sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==} + /@rollup/rollup-linux-x64-musl@4.9.0: + resolution: {integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.8.0: - resolution: {integrity: sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==} + /@rollup/rollup-win32-arm64-msvc@4.9.0: + resolution: {integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.8.0: - resolution: {integrity: sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==} + /@rollup/rollup-win32-ia32-msvc@4.9.0: + resolution: {integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.8.0: - resolution: {integrity: sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==} + /@rollup/rollup-win32-x64-msvc@4.9.0: + resolution: {integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==} cpu: [x64] os: [win32] requiresBuild: true @@ -2289,24 +2289,24 @@ packages: glob: 7.2.3 dev: true - /rollup@4.8.0: - resolution: {integrity: sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==} + /rollup@4.9.0: + resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.8.0 - '@rollup/rollup-android-arm64': 4.8.0 - '@rollup/rollup-darwin-arm64': 4.8.0 - '@rollup/rollup-darwin-x64': 4.8.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.8.0 - '@rollup/rollup-linux-arm64-gnu': 4.8.0 - '@rollup/rollup-linux-arm64-musl': 4.8.0 - '@rollup/rollup-linux-riscv64-gnu': 4.8.0 - '@rollup/rollup-linux-x64-gnu': 4.8.0 - '@rollup/rollup-linux-x64-musl': 4.8.0 - '@rollup/rollup-win32-arm64-msvc': 4.8.0 - '@rollup/rollup-win32-ia32-msvc': 4.8.0 - '@rollup/rollup-win32-x64-msvc': 4.8.0 + '@rollup/rollup-android-arm-eabi': 4.9.0 + '@rollup/rollup-android-arm64': 4.9.0 + '@rollup/rollup-darwin-arm64': 4.9.0 + '@rollup/rollup-darwin-x64': 4.9.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.0 + '@rollup/rollup-linux-arm64-gnu': 4.9.0 + '@rollup/rollup-linux-arm64-musl': 4.9.0 + '@rollup/rollup-linux-riscv64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-musl': 4.9.0 + '@rollup/rollup-win32-arm64-msvc': 4.9.0 + '@rollup/rollup-win32-ia32-msvc': 4.9.0 + '@rollup/rollup-win32-x64-msvc': 4.9.0 fsevents: 2.3.3 dev: true @@ -2622,7 +2622,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.8.0 + rollup: 4.9.0 optionalDependencies: fsevents: 2.3.3 dev: true From cc352416e5a429efddbb41ca8b65298ade7a8030 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 13:30:28 +0100 Subject: [PATCH 039/643] chore(deps): update dependency eslint to v8.56.0 (#822) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 128 ++++++++++++++++++++++++------------------------- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 179f9e0b5..b0c907ad8 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-typescript": "11.1.5", "@typescript-eslint/eslint-plugin": "6.14.0", "@typescript-eslint/parser": "6.14.0", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "42.0.0", "eslint-plugin-import": "2.29.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cec424340..90237cdec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,28 +23,28 @@ importers: version: 11.1.5(rollup@4.9.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.14.0 - version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) + version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: 6.14.0 - version: 6.14.0(eslint@8.55.0)(typescript@5.3.3) + version: 6.14.0(eslint@8.56.0)(typescript@5.3.3) eslint: - specifier: 8.55.0 - version: 8.55.0 + specifier: 8.56.0 + version: 8.56.0 eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@8.55.0) + version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 42.0.0 - version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3) + version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) + version: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.4.0 - version: 16.4.0(eslint@8.55.0) + version: 16.4.0(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 - version: 6.1.1(eslint@8.55.0) + version: 6.1.1(eslint@8.56.0) eslint-plugin-security: specifier: 1.7.1 version: 1.7.1 @@ -405,13 +405,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -437,8 +437,8 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -823,7 +823,7 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -835,13 +835,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/type-utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.14.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 @@ -852,7 +852,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.14.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -867,7 +867,7 @@ packages: '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.14.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -881,7 +881,7 @@ packages: '@typescript-eslint/visitor-keys': 6.14.0 dev: true - /@typescript-eslint/type-utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.14.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -892,9 +892,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -927,19 +927,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.14.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.14.0 '@typescript-eslint/types': 6.14.0 '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - eslint: 8.55.0 + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1326,25 +1326,25 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.55.0): + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1354,19 +1354,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) - eslint-plugin-n: 16.4.0(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-plugin-n: 16.4.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1375,10 +1375,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0) - eslint-plugin-n: 16.4.0(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-plugin-n: 16.4.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -1391,7 +1391,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1412,27 +1412,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.55.0): + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -1442,16 +1442,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -1467,16 +1467,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.4.0(eslint@8.55.0): + /eslint-plugin-n@16.4.0(eslint@8.56.0): resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.5.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 ignore: 5.3.0 is-builtin-module: 3.2.1 @@ -1486,13 +1486,13 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.55.0): + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true /eslint-plugin-security@1.7.1: @@ -1514,15 +1514,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 From 90fef3ae2d8f4be20ee4a39ec19a12013ffeea51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 13:39:08 +0100 Subject: [PATCH 040/643] chore(deps): update dependency rollup to v4.9.1 (#827) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index b0c907ad8..f0e9bf311 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", "prettier": "3.1.1", - "rollup": "4.9.0", + "rollup": "4.9.1", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90237cdec..3b49500ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.0) + version: 15.2.3(rollup@4.9.1) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.0) + version: 0.4.4(rollup@4.9.1) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.9.0)(typescript@5.3.3) + version: 11.1.5(rollup@4.9.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.14.0 version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.9.0 - version: 4.9.0 + specifier: 4.9.1 + version: 4.9.1 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.1): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.0) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.0 + rollup: 4.9.1 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.0): + /@rollup/plugin-terser@0.4.4(rollup@4.9.1): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.0 + rollup: 4.9.1 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.9.0)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.9.1)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.0) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) resolve: 1.22.8 - rollup: 4.9.0 + rollup: 4.9.1 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.0): + /@rollup/pluginutils@5.1.0(rollup@4.9.1): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.0 + rollup: 4.9.1 dev: true - /@rollup/rollup-android-arm-eabi@4.9.0: - resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==} + /@rollup/rollup-android-arm-eabi@4.9.1: + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.0: - resolution: {integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==} + /@rollup/rollup-android-arm64@4.9.1: + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.0: - resolution: {integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==} + /@rollup/rollup-darwin-arm64@4.9.1: + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.0: - resolution: {integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==} + /@rollup/rollup-darwin-x64@4.9.1: + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.0: - resolution: {integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.0: - resolution: {integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==} + /@rollup/rollup-linux-arm64-gnu@4.9.1: + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.0: - resolution: {integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==} + /@rollup/rollup-linux-arm64-musl@4.9.1: + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.0: - resolution: {integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==} + /@rollup/rollup-linux-riscv64-gnu@4.9.1: + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.0: - resolution: {integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==} + /@rollup/rollup-linux-x64-gnu@4.9.1: + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.0: - resolution: {integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==} + /@rollup/rollup-linux-x64-musl@4.9.1: + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.0: - resolution: {integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==} + /@rollup/rollup-win32-arm64-msvc@4.9.1: + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.0: - resolution: {integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==} + /@rollup/rollup-win32-ia32-msvc@4.9.1: + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.0: - resolution: {integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==} + /@rollup/rollup-win32-x64-msvc@4.9.1: + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} cpu: [x64] os: [win32] requiresBuild: true @@ -2289,24 +2289,24 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.0: - resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==} + /rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.0 - '@rollup/rollup-android-arm64': 4.9.0 - '@rollup/rollup-darwin-arm64': 4.9.0 - '@rollup/rollup-darwin-x64': 4.9.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.0 - '@rollup/rollup-linux-arm64-gnu': 4.9.0 - '@rollup/rollup-linux-arm64-musl': 4.9.0 - '@rollup/rollup-linux-riscv64-gnu': 4.9.0 - '@rollup/rollup-linux-x64-gnu': 4.9.0 - '@rollup/rollup-linux-x64-musl': 4.9.0 - '@rollup/rollup-win32-arm64-msvc': 4.9.0 - '@rollup/rollup-win32-ia32-msvc': 4.9.0 - '@rollup/rollup-win32-x64-msvc': 4.9.0 + '@rollup/rollup-android-arm-eabi': 4.9.1 + '@rollup/rollup-android-arm64': 4.9.1 + '@rollup/rollup-darwin-arm64': 4.9.1 + '@rollup/rollup-darwin-x64': 4.9.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 + '@rollup/rollup-linux-arm64-musl': 4.9.1 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-musl': 4.9.1 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 + '@rollup/rollup-win32-x64-msvc': 4.9.1 fsevents: 2.3.3 dev: true @@ -2622,7 +2622,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.0 + rollup: 4.9.1 optionalDependencies: fsevents: 2.3.3 dev: true From e6b67480851c45380deb1e97c6d604d7226d10ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 13:49:00 +0100 Subject: [PATCH 041/643] chore(deps): update dependency eslint-plugin-import to v2.29.1 (#819) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index f0e9bf311..be549b91f 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "42.0.0", - "eslint-plugin-import": "2.29.0", + "eslint-plugin-import": "2.29.1", "eslint-plugin-n": "16.4.0", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "1.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b49500ec..da3f7216c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 42.0.0 - version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: - specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + specifier: 2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.4.0 version: 16.4.0(eslint@8.56.0) @@ -1344,7 +1344,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1357,8 +1357,8 @@ packages: '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) eslint-plugin-n: 16.4.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1366,7 +1366,7 @@ packages: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1376,7 +1376,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) eslint-plugin-n: 16.4.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1432,8 +1432,8 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1460,7 +1460,7 @@ packages: object.groupby: 1.0.1 object.values: 1.1.7 semver: 7.5.4 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -2508,8 +2508,8 @@ packages: typescript: 5.3.3 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 From 4aa61dcc9e9abcfba5709cca9770f08aa578a3e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 14:46:20 +0100 Subject: [PATCH 042/643] chore(deps): update dependency eslint-config-standard-with-typescript to v43 (#823) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index be549b91f..da3f96fff 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@typescript-eslint/parser": "6.14.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", - "eslint-config-standard-with-typescript": "42.0.0", + "eslint-config-standard-with-typescript": "43.0.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-n": "16.4.0", "eslint-plugin-promise": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da3f7216c..3936cb793 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: 9.1.0 version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: - specifier: 42.0.0 - version: 42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: 43.0.0 + version: 43.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) @@ -1344,8 +1344,8 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@42.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==} + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 From 27eb8c74afb4da4ff7cfb3bc7e97b1c11c91112b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:25:52 +0100 Subject: [PATCH 043/643] chore(deps): update dependency eslint-plugin-security to v2 (#817) * chore(deps): update dependency eslint-plugin-security to v2 * legacy --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- .eslintrc.json | 2 +- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 96b58264e..84c29bc56 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -7,7 +7,7 @@ "prettier", "eslint:recommended", "plugin:@typescript-eslint/recommended", - "plugin:security/recommended" + "plugin:security/recommended-legacy" ], "overrides": [], "parser": "@typescript-eslint/parser", diff --git a/package.json b/package.json index da3f96fff..a9aad8c99 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "eslint-plugin-import": "2.29.1", "eslint-plugin-n": "16.4.0", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-security": "1.7.1", + "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", "rollup": "4.9.1", "typescript": "5.3.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3936cb793..c917743a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,8 +46,8 @@ importers: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) eslint-plugin-security: - specifier: 1.7.1 - version: 1.7.1 + specifier: 2.1.0 + version: 2.1.0 prettier: specifier: 3.1.1 version: 3.1.1 @@ -1495,8 +1495,8 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-security@1.7.1: - resolution: {integrity: sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==} + /eslint-plugin-security@2.1.0: + resolution: {integrity: sha512-ywxclP954bf8d3gr6KOQ/AFc+PRvWuhOxtPOEtiHmVYiZr/mcgQtmSJq6+hTEXC5ylTjHnPPG+PEnzlDiWMXbQ==} dependencies: safe-regex: 2.1.1 dev: true From 563ca73de0f49e5ca50fba8168f350b8b6a9219b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 21:02:55 +0100 Subject: [PATCH 044/643] chore(deps): update typescript-eslint monorepo to v6.15.0 (#831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index a9aad8c99..6ebbf3d90 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.14.0", - "@typescript-eslint/parser": "6.14.0", + "@typescript-eslint/eslint-plugin": "6.15.0", + "@typescript-eslint/parser": "6.15.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c917743a3..34842cf83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.9.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.14.0 - version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.15.0 + version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.14.0 - version: 6.14.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.15.0 + version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.4.0 version: 16.4.0(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} + /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/type-utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.14.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==} + /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.14.0: - resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==} + /@typescript-eslint/scope-manager@6.15.0: + resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 dev: true - /@typescript-eslint/type-utils@6.14.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==} + /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.14.0: - resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==} + /@typescript-eslint/types@6.15.0: + resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3): - resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==} + /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): + resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -927,8 +927,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.14.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==} + /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -936,9 +936,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -946,11 +946,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.14.0: - resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==} + /@typescript-eslint/visitor-keys@6.15.0: + resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/types': 6.15.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1344,7 +1344,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1354,11 +1354,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) eslint-plugin-n: 16.4.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1376,7 +1376,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) eslint-plugin-n: 16.4.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1391,7 +1391,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1412,7 +1412,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1432,7 +1432,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1442,7 +1442,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1451,7 +1451,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 35d821cbf10872989d9a458401ab790cf0bd7a8d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 11:24:56 +0100 Subject: [PATCH 045/643] chore(deps): update dependency eslint-plugin-n to v16.5.0 (#842) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 6ebbf3d90..35d9305e4 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-n": "16.4.0", + "eslint-plugin-n": "16.5.0", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34842cf83..a67f1c193 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,13 +35,13 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) eslint-plugin-n: - specifier: 16.4.0 - version: 16.4.0(eslint@8.56.0) + specifier: 16.5.0 + version: 16.5.0(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) @@ -1344,7 +1344,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1357,16 +1357,16 @@ packages: '@typescript-eslint/eslint-plugin': 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) - eslint-plugin-n: 16.4.0(eslint@8.56.0) + eslint-plugin-n: 16.5.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1377,7 +1377,7 @@ packages: dependencies: eslint: 8.56.0 eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) - eslint-plugin-n: 16.4.0(eslint@8.56.0) + eslint-plugin-n: 16.5.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1467,8 +1467,8 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.4.0(eslint@8.56.0): - resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} + /eslint-plugin-n@16.5.0(eslint@8.56.0): + resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' From 7de603ebff4c8900d1cc24644c5c5a2dd06ab48b Mon Sep 17 00:00:00 2001 From: Trevor Fitzgerald Date: Wed, 20 Dec 2023 06:03:34 -0500 Subject: [PATCH 046/643] fix(fs-watch): Fix DebouncedEvent type to match what notify-rs returns (#840) --- plugins/fs-watch/guest-js/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/fs-watch/guest-js/index.ts b/plugins/fs-watch/guest-js/index.ts index d5370decb..25de28d18 100644 --- a/plugins/fs-watch/guest-js/index.ts +++ b/plugins/fs-watch/guest-js/index.ts @@ -35,8 +35,8 @@ type RawEventKind = | "other"; export type DebouncedEvent = - | { kind: "any"; path: string } - | { kind: "AnyContinous"; path: string }; + | { kind: "Any"; path: string }[] + | { kind: "AnyContinuous"; path: string }[]; async function unwatch(id: number): Promise { await invoke("plugin:fs-watch|unwatch", { id }); From 9b994169651cc61194c60cb3205227421144e243 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:19:25 +0100 Subject: [PATCH 047/643] fix(deps): update tauri monorepo (#815) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- plugins/authenticator/package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/fs-extra/package.json | 2 +- plugins/fs-watch/package.json | 2 +- plugins/log/package.json | 2 +- plugins/positioner/package.json | 2 +- .../examples/vanilla/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/upload/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 124 +++++++++--------- shared/template/package.json | 2 +- 16 files changed, 77 insertions(+), 77 deletions(-) diff --git a/plugins/authenticator/package.json b/plugins/authenticator/package.json index a22009a69..5f0225a39 100644 --- a/plugins/authenticator/package.json +++ b/plugins/authenticator/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index e05e147ce..b77c7a2e8 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/fs-extra/package.json b/plugins/fs-extra/package.json index a483359ba..44bffe833 100644 --- a/plugins/fs-extra/package.json +++ b/plugins/fs-extra/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/fs-watch/package.json b/plugins/fs-watch/package.json index d6670948f..fd58b1c71 100644 --- a/plugins/fs-watch/package.json +++ b/plugins/fs-watch/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/log/package.json b/plugins/log/package.json index 16d4555d1..26962282d 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 5a740928c..d751fa576 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 445f4db07..7288c63e4 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "1.5.7" + "@tauri-apps/cli": "1.5.9" } } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index dd957c702..280b65e17 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/store/package.json b/plugins/store/package.json index 343916690..0536e91a9 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 24875fe66..72728ede9 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index f844cf648..98513706b 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 88cfbe1af..4f012ebcc 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "1.5.7", + "@tauri-apps/cli": "1.5.9", "typescript": "^5.3.3", "vite": "^5.0.6" }, diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 0e2ac693f..38d230c3b 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index 7c837151f..54a47af84 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -28,6 +28,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a67f1c193..edd88c7c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: plugins/authenticator: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -71,8 +71,8 @@ importers: plugins/autostart: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -81,8 +81,8 @@ importers: plugins/fs-extra: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -91,8 +91,8 @@ importers: plugins/fs-watch: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -101,8 +101,8 @@ importers: plugins/log: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -111,8 +111,8 @@ importers: plugins/positioner: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -121,14 +121,14 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 1.5.7 - version: 1.5.7 + specifier: 1.5.9 + version: 1.5.9 plugins/sql: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -137,8 +137,8 @@ importers: plugins/store: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -147,8 +147,8 @@ importers: plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -157,8 +157,8 @@ importers: plugins/upload: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -167,8 +167,8 @@ importers: plugins/websocket: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -181,8 +181,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 1.5.7 - version: 1.5.7 + specifier: 1.5.9 + version: 1.5.9 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -193,8 +193,8 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: 1.5.1 - version: 1.5.1 + specifier: 1.5.3 + version: 1.5.3 devDependencies: tslib: specifier: 2.6.2 @@ -691,13 +691,13 @@ packages: dev: true optional: true - /@tauri-apps/api@1.5.1: - resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==} + /@tauri-apps/api@1.5.3: + resolution: {integrity: sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@1.5.7: - resolution: {integrity: sha512-eUpOUhs2IOpKaLa6RyGupP2owDLfd0q2FR/AILzryjtBtKJJRDQQvuotf+LcbEce2Nc2AHeYJIqYAsB4sw9K+g==} + /@tauri-apps/cli-darwin-arm64@1.5.9: + resolution: {integrity: sha512-7C2Jf8f0gzv778mLYb7Eszqqv1bm9Wzews81MRTqKrUIcC+eZEtDXLex+JaEkEzFEUrgIafdOvMBVEavF030IA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -705,8 +705,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@1.5.7: - resolution: {integrity: sha512-zfumTv1xUuR+RB1pzhRy+51tB6cm8I76g0xUBaXOfEdOJ9FqW5GW2jdnEUbpNuU65qJ1lB8LVWHKGrSWWKazew==} + /@tauri-apps/cli-darwin-x64@1.5.9: + resolution: {integrity: sha512-LHKytpkofPYgH8RShWvwDa3hD1ws131x7g7zNasJPfOiCWLqYVQFUuQVmjEUt8+dpHe/P/err5h4z+YZru2d0A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -714,8 +714,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.7: - resolution: {integrity: sha512-JngWNqS06bMND9PhiPWp0e+yknJJuSozsSbo+iMzHoJNRauBZCUx+HnUcygUR66Cy6qM4eJvLXtsRG7ApxvWmg==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.9: + resolution: {integrity: sha512-teGK20IYKx+dVn8wFq/Lg57Q9ce7foq1KHSfyHi464LVt1T0V1rsmULSgZpQPPj/NYPF5BG78PcWYv64yH86jw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -723,8 +723,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.7: - resolution: {integrity: sha512-WyIYP9BskgBGq+kf4cLAyru8ArrxGH2eMYGBJvuNEuSaqBhbV0i1uUxvyWdazllZLAEz1WvSocUmSwLknr1+sQ==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.9: + resolution: {integrity: sha512-onJ/DW5Crw38qVx+wquY4uBbfCxVhzhdJmlCYqnYyXsZZmSiPUfSyhV58y+5TYB0q1hG8eYdB5x8VAwzByhGzw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -732,8 +732,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.7: - resolution: {integrity: sha512-OrDpihQP2MB0JY1a/wP9wsl9dDjFDpVEZOQxt4hU+UVGRCZQok7ghPBg4+Xpd1CkNkcCCuIeY8VxRvwLXpnIzg==} + /@tauri-apps/cli-linux-arm64-musl@1.5.9: + resolution: {integrity: sha512-23AYoLD3acakLp9NtheKQDJl8F66eTOflxoPzdJNRy13hUSxb+W9qpz4rRA+CIzkjICFvO2i3UWjeV9QwDVpsQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -741,8 +741,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.7: - resolution: {integrity: sha512-4T7FAYVk76rZi8VkuLpiKUAqaSxlva86C1fHm/RtmoTKwZEV+MI3vIMoVg+AwhyWIy9PS55C75nF7+OwbnFnvQ==} + /@tauri-apps/cli-linux-x64-gnu@1.5.9: + resolution: {integrity: sha512-9PQA1rE7gh41W2ylyKd5qOGOds55ymaYPml9KOpM0g+cxmCXa+8Wf9K5NKvACnJldJJ6cekWzIyB4eN6o5T+yQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -750,8 +750,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.7: - resolution: {integrity: sha512-LL9aMK601BmQjAUDcKWtt5KvAM0xXi0iJpOjoUD3LPfr5dLvBMTflVHQDAEtuZexLQyqpU09+60781PrI/FCTw==} + /@tauri-apps/cli-linux-x64-musl@1.5.9: + resolution: {integrity: sha512-5hdbNFeDsrJ/pXZ4cSQV4bJwUXPPxXxN3/pAtNUqIph7q+vLcBXOXIMoS64iuyaluJC59lhEwlWZFz+EPv0Hqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -759,8 +759,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.7: - resolution: {integrity: sha512-TmAdM6GVkfir3AUFsDV2gyc25kIbJeAnwT72OnmJGAECHs/t/GLP9IkFLLVcFKsiosRf8BXhVyQ84NYkSWo14w==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.9: + resolution: {integrity: sha512-O18JufjSB3hSJYu5WWByONouGeX7DraLAtXLErsG1r/VS3zHd/zyuzycrVUaObNXk5bfGlIP0Ypt+RvZJILN2w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -768,8 +768,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.7: - resolution: {integrity: sha512-bqWfxwCfLmrfZy69sEU19KHm5TFEaMb8KIekd4aRq/kyOlrjKLdZxN1PyNRP8zpJA1lTiRHzfUDfhpmnZH/skg==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.9: + resolution: {integrity: sha512-FQxtxTZu0JVBihfd/lmpxo7jyMOesjWQehfyVUqtgMfm5+Pvvw0Y+ZioeDi1TZkFVrT3QDYy8R4LqDLSZVMQRA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -777,8 +777,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.7: - resolution: {integrity: sha512-OxLHVBNdzyQ//xT3kwjQFnJTn/N5zta/9fofAkXfnL7vqmVn6s/RY1LDa3sxCHlRaKw0n3ShpygRbM9M8+sO9w==} + /@tauri-apps/cli-win32-x64-msvc@1.5.9: + resolution: {integrity: sha512-EeI1+L518cIBLKw0qUFwnLIySBeSmPQjPLIlNwSukHSro4tAQPHycEVGgKrdToiCWgaZJBA0e5aRSds0Du2TWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -786,21 +786,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@1.5.7: - resolution: {integrity: sha512-z7nXLpDAYfQqR5pYhQlWOr88DgPq1AfQyxHhGiakiVgWlaG0ikEfQxop2txrd52H0TRADG0JHR9vFrVFPv4hVQ==} + /@tauri-apps/cli@1.5.9: + resolution: {integrity: sha512-knSt/9AvCTeyfC6wkyeouF9hBW/0Mzuw+5vBKEvzaGPQsfFJo1ZCp5FkdiZpGBBfnm09BhugasGRTGofzatfqQ==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.7 - '@tauri-apps/cli-darwin-x64': 1.5.7 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.7 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.7 - '@tauri-apps/cli-linux-arm64-musl': 1.5.7 - '@tauri-apps/cli-linux-x64-gnu': 1.5.7 - '@tauri-apps/cli-linux-x64-musl': 1.5.7 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.7 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.7 - '@tauri-apps/cli-win32-x64-msvc': 1.5.7 + '@tauri-apps/cli-darwin-arm64': 1.5.9 + '@tauri-apps/cli-darwin-x64': 1.5.9 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.9 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.9 + '@tauri-apps/cli-linux-arm64-musl': 1.5.9 + '@tauri-apps/cli-linux-x64-gnu': 1.5.9 + '@tauri-apps/cli-linux-x64-musl': 1.5.9 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.9 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.9 + '@tauri-apps/cli-win32-x64-msvc': 1.5.9 dev: true /@types/estree@1.0.5: diff --git a/shared/template/package.json b/shared/template/package.json index b7a1d2418..287997fc6 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.2" }, "dependencies": { - "@tauri-apps/api": "1.5.1" + "@tauri-apps/api": "1.5.3" } } From 7c442019e1abc8b0378c838a6001b86616b5855f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Dec 2023 13:55:11 +0100 Subject: [PATCH 048/643] chore(deps): update typescript-eslint monorepo to v6.16.0 (#852) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 116 +++++++++++++++++++++++++++---------------------- 2 files changed, 67 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 35d9305e4..a2346101d 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.15.0", - "@typescript-eslint/parser": "6.15.0", + "@typescript-eslint/eslint-plugin": "6.16.0", + "@typescript-eslint/parser": "6.16.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index edd88c7c0..1211a015d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.9.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.15.0 - version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.16.0 + version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.15.0 - version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.16.0 + version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.5.0 version: 16.5.0(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.15.0 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} + /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.15.0 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.15.0: - resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} + /@typescript-eslint/scope-manager@6.16.0: + resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} + /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.15.0: - resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} + /@typescript-eslint/types@6.16.0: + resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): - resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} + /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): + resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,11 +915,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -927,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} + /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -936,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -946,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.15.0: - resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} + /@typescript-eslint/visitor-keys@6.16.0: + resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/types': 6.16.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1080,6 +1081,12 @@ packages: concat-map: 0.0.1 dev: true + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1344,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1354,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) eslint-plugin-n: 16.5.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1376,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) eslint-plugin-n: 16.5.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1391,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1412,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1432,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1442,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1451,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -2070,6 +2077,13 @@ packages: brace-expansion: 1.1.11 dev: true + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true From 71d755f5f528f1687aad8ef9ba014fb3b67644ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 15:17:10 +0100 Subject: [PATCH 049/643] chore(deps): update dependency eslint-plugin-n to v16.6.0 (#863) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index a2346101d..7bf397522 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-n": "16.5.0", + "eslint-plugin-n": "16.6.0", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1211a015d..16153a2a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,13 +35,13 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) eslint-plugin-n: - specifier: 16.5.0 - version: 16.5.0(eslint@8.56.0) + specifier: 16.6.0 + version: 16.6.0(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) @@ -427,7 +427,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.23.0 + globals: 13.24.0 ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1364,16 +1364,16 @@ packages: '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) - eslint-plugin-n: 16.5.0(eslint@8.56.0) + eslint-plugin-n: 16.6.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.5.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1384,7 +1384,7 @@ packages: dependencies: eslint: 8.56.0 eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) - eslint-plugin-n: 16.5.0(eslint@8.56.0) + eslint-plugin-n: 16.6.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1474,8 +1474,8 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.5.0(eslint@8.56.0): - resolution: {integrity: sha512-Hw02Bj1QrZIlKyj471Tb1jSReTl4ghIMHGuBGiMVmw+s0jOPbI4CBuYpGbZr+tdQ+VAvSK6FDSta3J4ib/SKHQ==} + /eslint-plugin-n@16.6.0(eslint@8.56.0): + resolution: {integrity: sha512-Ag3tYFF90lYU8JdHEl9qSSpeLYbVnO+Oj7sgPUarWUacv1mPL3d5h5yG4Bv3tLe71hrcxmgTi7oByYwKXaVatw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -1485,6 +1485,7 @@ packages: eslint: 8.56.0 eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 @@ -1549,7 +1550,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.0 imurmurhash: 0.1.4 @@ -1753,8 +1754,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 From 27d610387cf2fcf416d2d7148b24641599a08e1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 14:56:02 +0100 Subject: [PATCH 050/643] chore(deps): update dependency rollup to v4.9.2 (#864) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 7bf397522..78e0b95ff 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", - "rollup": "4.9.1", + "rollup": "4.9.2", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16153a2a5..601e37713 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.1) + version: 15.2.3(rollup@4.9.2) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.1) + version: 0.4.4(rollup@4.9.2) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.9.1)(typescript@5.3.3) + version: 11.1.5(rollup@4.9.2)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.16.0 version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.9.1 - version: 4.9.1 + specifier: 4.9.2 + version: 4.9.2 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.1): + /@rollup/plugin-terser@0.4.4(rollup@4.9.2): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.1 + rollup: 4.9.2 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.9.1)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.9.2)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) resolve: 1.22.8 - rollup: 4.9.1 + rollup: 4.9.2 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.1): + /@rollup/pluginutils@5.1.0(rollup@4.9.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + /@rollup/rollup-android-arm-eabi@4.9.2: + resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + /@rollup/rollup-android-arm64@4.9.2: + resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + /@rollup/rollup-darwin-arm64@4.9.2: + resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + /@rollup/rollup-darwin-x64@4.9.2: + resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.2: + resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + /@rollup/rollup-linux-arm64-gnu@4.9.2: + resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + /@rollup/rollup-linux-arm64-musl@4.9.2: + resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.2: + resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + /@rollup/rollup-linux-x64-gnu@4.9.2: + resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + /@rollup/rollup-linux-x64-musl@4.9.2: + resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + /@rollup/rollup-win32-arm64-msvc@4.9.2: + resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + /@rollup/rollup-win32-ia32-msvc@4.9.2: + resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + /@rollup/rollup-win32-x64-msvc@4.9.2: + resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,24 +2304,24 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + /rollup@4.9.2: + resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.1 - '@rollup/rollup-android-arm64': 4.9.1 - '@rollup/rollup-darwin-arm64': 4.9.1 - '@rollup/rollup-darwin-x64': 4.9.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 - '@rollup/rollup-linux-arm64-gnu': 4.9.1 - '@rollup/rollup-linux-arm64-musl': 4.9.1 - '@rollup/rollup-linux-riscv64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-musl': 4.9.1 - '@rollup/rollup-win32-arm64-msvc': 4.9.1 - '@rollup/rollup-win32-ia32-msvc': 4.9.1 - '@rollup/rollup-win32-x64-msvc': 4.9.1 + '@rollup/rollup-android-arm-eabi': 4.9.2 + '@rollup/rollup-android-arm64': 4.9.2 + '@rollup/rollup-darwin-arm64': 4.9.2 + '@rollup/rollup-darwin-x64': 4.9.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 + '@rollup/rollup-linux-arm64-gnu': 4.9.2 + '@rollup/rollup-linux-arm64-musl': 4.9.2 + '@rollup/rollup-linux-riscv64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-musl': 4.9.2 + '@rollup/rollup-win32-arm64-msvc': 4.9.2 + '@rollup/rollup-win32-ia32-msvc': 4.9.2 + '@rollup/rollup-win32-x64-msvc': 4.9.2 fsevents: 2.3.3 dev: true @@ -2637,7 +2637,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.1 + rollup: 4.9.2 optionalDependencies: fsevents: 2.3.3 dev: true From df5a6483c20a526d5fc1d7711da872a000580a98 Mon Sep 17 00:00:00 2001 From: Matthias Lohscheidt Date: Mon, 1 Jan 2024 12:21:37 +0100 Subject: [PATCH 051/643] docs(sql): Add migrations section to README (v1) (#870) * Update sql plugin README.md Add section about migration management. * rm shell plugin (v2 only) --------- Co-authored-by: Fabian-Lars --- plugins/sql/README.md | 61 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/plugins/sql/README.md b/plugins/sql/README.md index da1e2e8ec..2f9120a6c 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -96,6 +96,67 @@ const result = await db.execute( ); ``` +## Migrations + +This plugin supports database migrations, allowing you to manage database schema evolution over time. + +### Defining Migrations + +Migrations are defined in Rust using the `Migration` struct. Each migration should include a unique version number, a description, the SQL to be executed, and the type of migration (Up or Down). + +Example of a migration: + +```rust +use tauri_plugin_sql::{Migration, MigrationKind}; + +let migration = Migration { + version: 1, + description: "create_initial_tables", + sql: "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);", + kind: MigrationKind::Up, +}; +``` + +### Adding Migrations to the Plugin Builder + +Migrations are registered with the `Builder` struct provided by the plugin. Use the `add_migrations` method to add your migrations to the plugin for a specific database connection. + +Example of adding migrations: + +```rust +use tauri_plugin_sql::{Builder, Migration, MigrationKind}; + +fn main() { + let migrations = vec![ + // Define your migrations here + Migration { + version: 1, + description: "create_initial_tables", + sql: "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);", + kind: MigrationKind::Up, + } + ]; + + tauri::Builder::default() + .plugin( + tauri_plugin_sql::Builder::default() + .add_migrations("sqlite:mydatabase.db", migrations) + .build(), + ) + ... +} +``` + +### Applying Migrations + +Migrations are applied automatically when the plugin is initialized. The plugin runs these migrations against the database specified by the connection string. Ensure that the migrations are defined in the correct order and are idempotent (safe to run multiple times). + +### Migration Management + +- **Version Control**: Each migration must have a unique version number. This is crucial for ensuring the migrations are applied in the correct order. +- **Idempotency**: Write migrations in a way that they can be safely re-run without causing errors or unintended consequences. +- **Testing**: Thoroughly test migrations to ensure they work as expected and do not compromise the integrity of your database. + ## Contributing PRs accepted. Please make sure to read the Contributing Guide before making a pull request. From 3ffa47c0e8ade8913a286eb8650fb51a85407ea0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 20:28:06 +0100 Subject: [PATCH 052/643] chore(deps): update typescript-eslint monorepo to v6.17.0 (#871) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 78e0b95ff..eb7151ad1 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.16.0", - "@typescript-eslint/parser": "6.16.0", + "@typescript-eslint/eslint-plugin": "6.17.0", + "@typescript-eslint/parser": "6.17.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 601e37713..f993852bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.9.2)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.0 version: 16.6.0(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} + /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} + /@typescript-eslint/scope-manager@6.17.0: + resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} + /@typescript-eslint/types@6.17.0: + resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} + /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): + resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} + /@typescript-eslint/utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} + /@typescript-eslint/visitor-keys@6.17.0: + resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 6.17.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-n: 16.6.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-n: 16.6.0(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 539b566fade8381ba0704984acd4f67aa8a72958 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 15:23:02 +0100 Subject: [PATCH 053/643] chore(deps): update dependency eslint-plugin-n to v16.6.1 (#872) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index eb7151ad1..4a6dc696f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-n": "16.6.0", + "eslint-plugin-n": "16.6.1", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f993852bd..207cce354 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,13 +35,13 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-n: - specifier: 16.6.0 - version: 16.6.0(eslint@8.56.0) + specifier: 16.6.1 + version: 16.6.1(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1364,16 +1364,16 @@ packages: '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.0(eslint@8.56.0) + eslint-plugin-n: 16.6.1(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1384,7 +1384,7 @@ packages: dependencies: eslint: 8.56.0 eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.0(eslint@8.56.0) + eslint-plugin-n: 16.6.1(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1474,8 +1474,8 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.6.0(eslint@8.56.0): - resolution: {integrity: sha512-Ag3tYFF90lYU8JdHEl9qSSpeLYbVnO+Oj7sgPUarWUacv1mPL3d5h5yG4Bv3tLe71hrcxmgTi7oByYwKXaVatw==} + /eslint-plugin-n@16.6.1(eslint@8.56.0): + resolution: {integrity: sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' From 7701cf4107d0b269738146d62ad822242f9d3fee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:51:33 +0100 Subject: [PATCH 054/643] chore(deps): update dependency rollup to v4.9.3 (#876) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 116 +++++++++++++++++++++++++------------------------ 2 files changed, 60 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 4a6dc696f..ff2b7a3cb 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", - "rollup": "4.9.2", + "rollup": "4.9.3", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 207cce354..52ea5aeaf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.2) + version: 15.2.3(rollup@4.9.3) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.2) + version: 0.4.4(rollup@4.9.3) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.9.2)(typescript@5.3.3) + version: 11.1.5(rollup@4.9.3)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.17.0 version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.9.2 - version: 4.9.2 + specifier: 4.9.3 + version: 4.9.3 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.3): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.3) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.2 + rollup: 4.9.3 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.2): + /@rollup/plugin-terser@0.4.4(rollup@4.9.3): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.2 + rollup: 4.9.3 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.9.2)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.9.3)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.3) resolve: 1.22.8 - rollup: 4.9.2 + rollup: 4.9.3 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.2): + /@rollup/pluginutils@5.1.0(rollup@4.9.3): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.2 + rollup: 4.9.3 dev: true - /@rollup/rollup-android-arm-eabi@4.9.2: - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + /@rollup/rollup-android-arm-eabi@4.9.3: + resolution: {integrity: sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.2: - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + /@rollup/rollup-android-arm64@4.9.3: + resolution: {integrity: sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.2: - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} + /@rollup/rollup-darwin-arm64@4.9.3: + resolution: {integrity: sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.2: - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + /@rollup/rollup-darwin-x64@4.9.3: + resolution: {integrity: sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.2: - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.3: + resolution: {integrity: sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.2: - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + /@rollup/rollup-linux-arm64-gnu@4.9.3: + resolution: {integrity: sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.2: - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} + /@rollup/rollup-linux-arm64-musl@4.9.3: + resolution: {integrity: sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.2: - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.3: + resolution: {integrity: sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.2: - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + /@rollup/rollup-linux-x64-gnu@4.9.3: + resolution: {integrity: sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.2: - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} + /@rollup/rollup-linux-x64-musl@4.9.3: + resolution: {integrity: sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.2: - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} + /@rollup/rollup-win32-arm64-msvc@4.9.3: + resolution: {integrity: sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.2: - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} + /@rollup/rollup-win32-ia32-msvc@4.9.3: + resolution: {integrity: sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.2: - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} + /@rollup/rollup-win32-x64-msvc@4.9.3: + resolution: {integrity: sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,24 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + /rollup@4.9.3: + resolution: {integrity: sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 + '@rollup/rollup-android-arm-eabi': 4.9.3 + '@rollup/rollup-android-arm64': 4.9.3 + '@rollup/rollup-darwin-arm64': 4.9.3 + '@rollup/rollup-darwin-x64': 4.9.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.3 + '@rollup/rollup-linux-arm64-gnu': 4.9.3 + '@rollup/rollup-linux-arm64-musl': 4.9.3 + '@rollup/rollup-linux-riscv64-gnu': 4.9.3 + '@rollup/rollup-linux-x64-gnu': 4.9.3 + '@rollup/rollup-linux-x64-musl': 4.9.3 + '@rollup/rollup-win32-arm64-msvc': 4.9.3 + '@rollup/rollup-win32-ia32-msvc': 4.9.3 + '@rollup/rollup-win32-x64-msvc': 4.9.3 fsevents: 2.3.3 dev: true @@ -2637,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.2 + rollup: 4.9.3 optionalDependencies: fsevents: 2.3.3 dev: true From eec61a8a6d2e4f4327e708989a9a21bfd4a0d4ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jan 2024 17:22:44 +0100 Subject: [PATCH 055/643] chore(deps): update dependency rollup to v4.9.4 (#878) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index ff2b7a3cb..072cd430f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", - "rollup": "4.9.3", + "rollup": "4.9.4", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 52ea5aeaf..4d3b5fd67 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.3) + version: 15.2.3(rollup@4.9.4) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.3) + version: 0.4.4(rollup@4.9.4) '@rollup/plugin-typescript': specifier: 11.1.5 - version: 11.1.5(rollup@4.9.3)(typescript@5.3.3) + version: 11.1.5(rollup@4.9.4)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.17.0 version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.9.3 - version: 4.9.3 + specifier: 4.9.4 + version: 4.9.4 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.3): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.4): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.3) + '@rollup/pluginutils': 5.1.0(rollup@4.9.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.3 + rollup: 4.9.4 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.3): + /@rollup/plugin-terser@0.4.4(rollup@4.9.4): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.3 + rollup: 4.9.4 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.9.3)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.5(rollup@4.9.4)(typescript@5.3.3): resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.3) + '@rollup/pluginutils': 5.1.0(rollup@4.9.4) resolve: 1.22.8 - rollup: 4.9.3 + rollup: 4.9.4 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.3): + /@rollup/pluginutils@5.1.0(rollup@4.9.4): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.3 + rollup: 4.9.4 dev: true - /@rollup/rollup-android-arm-eabi@4.9.3: - resolution: {integrity: sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==} + /@rollup/rollup-android-arm-eabi@4.9.4: + resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.3: - resolution: {integrity: sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==} + /@rollup/rollup-android-arm64@4.9.4: + resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.3: - resolution: {integrity: sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==} + /@rollup/rollup-darwin-arm64@4.9.4: + resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.3: - resolution: {integrity: sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==} + /@rollup/rollup-darwin-x64@4.9.4: + resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.3: - resolution: {integrity: sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.4: + resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.3: - resolution: {integrity: sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==} + /@rollup/rollup-linux-arm64-gnu@4.9.4: + resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.3: - resolution: {integrity: sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==} + /@rollup/rollup-linux-arm64-musl@4.9.4: + resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.3: - resolution: {integrity: sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==} + /@rollup/rollup-linux-riscv64-gnu@4.9.4: + resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.3: - resolution: {integrity: sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==} + /@rollup/rollup-linux-x64-gnu@4.9.4: + resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.3: - resolution: {integrity: sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==} + /@rollup/rollup-linux-x64-musl@4.9.4: + resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.3: - resolution: {integrity: sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==} + /@rollup/rollup-win32-arm64-msvc@4.9.4: + resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.3: - resolution: {integrity: sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==} + /@rollup/rollup-win32-ia32-msvc@4.9.4: + resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.3: - resolution: {integrity: sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==} + /@rollup/rollup-win32-x64-msvc@4.9.4: + resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,26 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.3: - resolution: {integrity: sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==} + /rollup@4.9.4: + resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.3 - '@rollup/rollup-android-arm64': 4.9.3 - '@rollup/rollup-darwin-arm64': 4.9.3 - '@rollup/rollup-darwin-x64': 4.9.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.3 - '@rollup/rollup-linux-arm64-gnu': 4.9.3 - '@rollup/rollup-linux-arm64-musl': 4.9.3 - '@rollup/rollup-linux-riscv64-gnu': 4.9.3 - '@rollup/rollup-linux-x64-gnu': 4.9.3 - '@rollup/rollup-linux-x64-musl': 4.9.3 - '@rollup/rollup-win32-arm64-msvc': 4.9.3 - '@rollup/rollup-win32-ia32-msvc': 4.9.3 - '@rollup/rollup-win32-x64-msvc': 4.9.3 + '@rollup/rollup-android-arm-eabi': 4.9.4 + '@rollup/rollup-android-arm64': 4.9.4 + '@rollup/rollup-darwin-arm64': 4.9.4 + '@rollup/rollup-darwin-x64': 4.9.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.4 + '@rollup/rollup-linux-arm64-gnu': 4.9.4 + '@rollup/rollup-linux-arm64-musl': 4.9.4 + '@rollup/rollup-linux-riscv64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-gnu': 4.9.4 + '@rollup/rollup-linux-x64-musl': 4.9.4 + '@rollup/rollup-win32-arm64-msvc': 4.9.4 + '@rollup/rollup-win32-ia32-msvc': 4.9.4 + '@rollup/rollup-win32-x64-msvc': 4.9.4 fsevents: 2.3.3 dev: true @@ -2639,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.3 + rollup: 4.9.4 optionalDependencies: fsevents: 2.3.3 dev: true From d2ea535a16aa26c17d85bb2e757597150c02bb75 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jan 2024 17:33:53 +0100 Subject: [PATCH 056/643] chore(deps): update typescript-eslint monorepo to v6.18.0 (#879) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 072cd430f..fd807dc06 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.17.0", - "@typescript-eslint/parser": "6.17.0", + "@typescript-eslint/eslint-plugin": "6.18.0", + "@typescript-eslint/parser": "6.18.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d3b5fd67..672d7b45c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.9.4)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.17.0 - version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.18.0 + version: 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.17.0 - version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.18.0 + version: 6.18.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.1 version: 16.6.1(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} + /@typescript-eslint/eslint-plugin@6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/type-utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} + /@typescript-eslint/parser@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.17.0: - resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} + /@typescript-eslint/scope-manager@6.18.0: + resolution: {integrity: sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/visitor-keys': 6.18.0 dev: true - /@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} + /@typescript-eslint/type-utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.17.0: - resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} + /@typescript-eslint/types@6.18.0: + resolution: {integrity: sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): - resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} + /@typescript-eslint/typescript-estree@6.18.0(typescript@5.3.3): + resolution: {integrity: sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/visitor-keys': 6.18.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} + /@typescript-eslint/utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.0 + '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.17.0: - resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} + /@typescript-eslint/visitor-keys@6.18.0: + resolution: {integrity: sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/types': 6.18.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) eslint-plugin-n: 16.6.1(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) eslint-plugin-n: 16.6.1(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From c00b00a93cf78e4f1b45c80e1761fcaba7603330 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 08:59:00 +0100 Subject: [PATCH 057/643] chore(deps): update dependency eslint-plugin-n to v16.6.2 (#882) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index fd807dc06..52bc77bf0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-n": "16.6.1", + "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 672d7b45c..fe8b60987 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,13 +35,13 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) eslint-plugin-n: - specifier: 16.6.1 - version: 16.6.1(eslint@8.56.0) + specifier: 16.6.2 + version: 16.6.2(eslint@8.56.0) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1364,16 +1364,16 @@ packages: '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.1(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1384,7 +1384,7 @@ packages: dependencies: eslint: 8.56.0 eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.1(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1474,8 +1474,8 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.6.1(eslint@8.56.0): - resolution: {integrity: sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==} + /eslint-plugin-n@16.6.2(eslint@8.56.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' From 39108ceacb8367dbbc8d89cbe17a6182fa8ad9b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:15:25 +0100 Subject: [PATCH 058/643] chore(deps): update typescript-eslint monorepo to v6.18.1 (#881) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 52bc77bf0..5d4b31b91 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.5", - "@typescript-eslint/eslint-plugin": "6.18.0", - "@typescript-eslint/parser": "6.18.0", + "@typescript-eslint/eslint-plugin": "6.18.1", + "@typescript-eslint/parser": "6.18.1", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe8b60987..56e2631a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.5 version: 11.1.5(rollup@4.9.4)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.18.0 - version: 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.18.1 + version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.18.0 - version: 6.18.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.18.1 + version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==} + /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/type-utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==} + /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.18.0: - resolution: {integrity: sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==} + /@typescript-eslint/scope-manager@6.18.1: + resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 dev: true - /@typescript-eslint/type-utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==} + /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.18.0: - resolution: {integrity: sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==} + /@typescript-eslint/types@6.18.1: + resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.18.0(typescript@5.3.3): - resolution: {integrity: sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==} + /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): + resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==} + /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.18.0: - resolution: {integrity: sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==} + /@typescript-eslint/visitor-keys@6.18.1: + resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/types': 6.18.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 775f7b88edd60df724f7e106ff748cdb967d851e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:25:26 +0100 Subject: [PATCH 059/643] chore(deps): update dependency @rollup/plugin-typescript to v11.1.6 (#884) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5d4b31b91..75978416d 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "devDependencies": { "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", - "@rollup/plugin-typescript": "11.1.5", + "@rollup/plugin-typescript": "11.1.6", "@typescript-eslint/eslint-plugin": "6.18.1", "@typescript-eslint/parser": "6.18.1", "eslint": "8.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56e2631a7..e104360ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 0.4.4 version: 0.4.4(rollup@4.9.4) '@rollup/plugin-typescript': - specifier: 11.1.5 - version: 11.1.5(rollup@4.9.4)(typescript@5.3.3) + specifier: 11.1.6 + version: 11.1.6(rollup@4.9.4)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.18.1 version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) @@ -553,8 +553,8 @@ packages: terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.5(rollup@4.9.4)(typescript@5.3.3): - resolution: {integrity: sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==} + /@rollup/plugin-typescript@11.1.6(rollup@4.9.4)(typescript@5.3.3): + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.14.0||^3.0.0||^4.0.0 From fe092604837ad889ef5a4c246ac5fd4bc90d3117 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 13:32:03 +0100 Subject: [PATCH 060/643] chore(deps): update dependency rollup to v4.9.5 (#888) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 75978416d..06c91ac5c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.1.1", - "rollup": "4.9.4", + "rollup": "4.9.5", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e104360ea..f26f68da5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.4) + version: 15.2.3(rollup@4.9.5) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.4) + version: 0.4.4(rollup@4.9.5) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.9.4)(typescript@5.3.3) + version: 11.1.6(rollup@4.9.5)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.18.1 version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.1.1 version: 3.1.1 rollup: - specifier: 4.9.4 - version: 4.9.4 + specifier: 4.9.5 + version: 4.9.5 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.4): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.5): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.9.5) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.4 + rollup: 4.9.5 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.4): + /@rollup/plugin-terser@0.4.4(rollup@4.9.5): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.4 + rollup: 4.9.5 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.9.4)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.9.5)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.9.5) resolve: 1.22.8 - rollup: 4.9.4 + rollup: 4.9.5 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.4): + /@rollup/pluginutils@5.1.0(rollup@4.9.5): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.4 + rollup: 4.9.5 dev: true - /@rollup/rollup-android-arm-eabi@4.9.4: - resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} + /@rollup/rollup-android-arm-eabi@4.9.5: + resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.4: - resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} + /@rollup/rollup-android-arm64@4.9.5: + resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.4: - resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} + /@rollup/rollup-darwin-arm64@4.9.5: + resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.4: - resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} + /@rollup/rollup-darwin-x64@4.9.5: + resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.4: - resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.5: + resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.4: - resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} + /@rollup/rollup-linux-arm64-gnu@4.9.5: + resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.4: - resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} + /@rollup/rollup-linux-arm64-musl@4.9.5: + resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.4: - resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} + /@rollup/rollup-linux-riscv64-gnu@4.9.5: + resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.4: - resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} + /@rollup/rollup-linux-x64-gnu@4.9.5: + resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.4: - resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} + /@rollup/rollup-linux-x64-musl@4.9.5: + resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.4: - resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} + /@rollup/rollup-win32-arm64-msvc@4.9.5: + resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.4: - resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} + /@rollup/rollup-win32-ia32-msvc@4.9.5: + resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.4: - resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} + /@rollup/rollup-win32-x64-msvc@4.9.5: + resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,26 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.4: - resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} + /rollup@4.9.5: + resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.4 - '@rollup/rollup-android-arm64': 4.9.4 - '@rollup/rollup-darwin-arm64': 4.9.4 - '@rollup/rollup-darwin-x64': 4.9.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.4 - '@rollup/rollup-linux-arm64-gnu': 4.9.4 - '@rollup/rollup-linux-arm64-musl': 4.9.4 - '@rollup/rollup-linux-riscv64-gnu': 4.9.4 - '@rollup/rollup-linux-x64-gnu': 4.9.4 - '@rollup/rollup-linux-x64-musl': 4.9.4 - '@rollup/rollup-win32-arm64-msvc': 4.9.4 - '@rollup/rollup-win32-ia32-msvc': 4.9.4 - '@rollup/rollup-win32-x64-msvc': 4.9.4 + '@rollup/rollup-android-arm-eabi': 4.9.5 + '@rollup/rollup-android-arm64': 4.9.5 + '@rollup/rollup-darwin-arm64': 4.9.5 + '@rollup/rollup-darwin-x64': 4.9.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.5 + '@rollup/rollup-linux-arm64-gnu': 4.9.5 + '@rollup/rollup-linux-arm64-musl': 4.9.5 + '@rollup/rollup-linux-riscv64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-musl': 4.9.5 + '@rollup/rollup-win32-arm64-msvc': 4.9.5 + '@rollup/rollup-win32-ia32-msvc': 4.9.5 + '@rollup/rollup-win32-x64-msvc': 4.9.5 fsevents: 2.3.3 dev: true @@ -2639,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.4 + rollup: 4.9.5 optionalDependencies: fsevents: 2.3.3 dev: true From 2985957afcb755be3cd49c82b3fc55c19052d3f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 21:00:16 +0100 Subject: [PATCH 061/643] chore(deps): update dependency prettier to v3.2.0 (#889) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 06c91ac5c..a17ed67ad 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", - "prettier": "3.1.1", + "prettier": "3.2.0", "rollup": "4.9.5", "typescript": "5.3.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f26f68da5..4901e9d5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 2.1.0 version: 2.1.0 prettier: - specifier: 3.1.1 - version: 3.1.1 + specifier: 3.2.0 + version: 3.2.0 rollup: specifier: 4.9.5 version: 4.9.5 @@ -2239,8 +2239,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + /prettier@3.2.0: + resolution: {integrity: sha512-/vBUecTGaPlRVwyZVROVC58bYIScqaoEJzZmzQXXrZOzqn0TwWz0EnOozOlFO/YAImRnb7XsKpTCd3m1SjS2Ww==} engines: {node: '>=14'} hasBin: true dev: true From 0cdbde386fd7225810a5a57b039d551d08995b29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 21:11:59 +0100 Subject: [PATCH 062/643] chore(deps): update dependency prettier to v3.2.1 (#890) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a17ed67ad..73f399df4 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", - "prettier": "3.2.0", + "prettier": "3.2.1", "rollup": "4.9.5", "typescript": "5.3.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4901e9d5d..993baacab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 2.1.0 version: 2.1.0 prettier: - specifier: 3.2.0 - version: 3.2.0 + specifier: 3.2.1 + version: 3.2.1 rollup: specifier: 4.9.5 version: 4.9.5 @@ -2239,8 +2239,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.2.0: - resolution: {integrity: sha512-/vBUecTGaPlRVwyZVROVC58bYIScqaoEJzZmzQXXrZOzqn0TwWz0EnOozOlFO/YAImRnb7XsKpTCd3m1SjS2Ww==} + /prettier@3.2.1: + resolution: {integrity: sha512-qSUWshj1IobVbKc226Gw2pync27t0Kf0EdufZa9j7uBSJay1CC+B3K5lAAZoqgX3ASiKuWsk6OmzKRetXNObWg==} engines: {node: '>=14'} hasBin: true dev: true From c5e8cd31ec86ba7ddcd524f1377a5bf09229fb9e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jan 2024 14:39:43 +0100 Subject: [PATCH 063/643] chore(deps): update dependency prettier to v3.2.2 (#893) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 73f399df4..4e16df17a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", - "prettier": "3.2.1", + "prettier": "3.2.2", "rollup": "4.9.5", "typescript": "5.3.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 993baacab..136971cf4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 2.1.0 version: 2.1.0 prettier: - specifier: 3.2.1 - version: 3.2.1 + specifier: 3.2.2 + version: 3.2.2 rollup: specifier: 4.9.5 version: 4.9.5 @@ -2239,8 +2239,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.2.1: - resolution: {integrity: sha512-qSUWshj1IobVbKc226Gw2pync27t0Kf0EdufZa9j7uBSJay1CC+B3K5lAAZoqgX3ASiKuWsk6OmzKRetXNObWg==} + /prettier@3.2.2: + resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==} engines: {node: '>=14'} hasBin: true dev: true From 83f9899f7853dec8a8bd19e32d86550d14646d50 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 22:07:58 +0100 Subject: [PATCH 064/643] chore(deps): update typescript-eslint monorepo to v6.19.0 (#896) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 4e16df17a..430b5a0fc 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "6.18.1", - "@typescript-eslint/parser": "6.18.1", + "@typescript-eslint/eslint-plugin": "6.19.0", + "@typescript-eslint/parser": "6.19.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 136971cf4..c59581cd8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.9.5)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.18.1 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.18.1 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.19.0 + version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.18.1: - resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 dev: true - /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.18.1: - resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): - resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} + /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.18.1: - resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/types': 6.19.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From cf0090029888efc6a1f4d178cec773e6cd4c5b69 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 17 Jan 2024 16:45:26 +0100 Subject: [PATCH 065/643] fix(upload): Prevent duplicate progress reports when using Promise.all (#908) * fix(upload): Prevent duplicate progress reports when using Promise.all * fmt --- plugins/upload/guest-js/index.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/upload/guest-js/index.ts b/plugins/upload/guest-js/index.ts index f59ea0fea..08620f02c 100644 --- a/plugins/upload/guest-js/index.ts +++ b/plugins/upload/guest-js/index.ts @@ -15,16 +15,17 @@ async function listenToEventIfNeeded(event: string): Promise { if (listening) { return await Promise.resolve(); } - return await appWindow - .listen(event, ({ payload }) => { - const handler = handlers.get(payload.id); - if (handler != null) { - handler(payload.progress, payload.total); - } - }) - .then(() => { - listening = true; - }); + + // We're not awaiting this Promise to prevent issues with Promise.all + // the listener will still be registered in time. + appWindow.listen(event, ({ payload }) => { + const handler = handlers.get(payload.id); + if (handler != null) { + handler(payload.progress, payload.total); + } + }); + + listening = true; } async function upload( From 32a5f92c8f0483dc90c0553107c7a239be945dd1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 12:04:33 +0100 Subject: [PATCH 066/643] chore(deps-dev): bump vite from 5.0.6 to 5.0.12 (#910) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.6 to 5.0.12. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.0.12/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.0.12/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- plugins/websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 4f012ebcc..30b30705b 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@tauri-apps/cli": "1.5.9", "typescript": "^5.3.3", - "vite": "^5.0.6" + "vite": "^5.0.12" }, "dependencies": { "tauri-plugin-websocket-api": "link:..\\.." diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c59581cd8..ba5fa2bd4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -187,8 +187,8 @@ importers: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.0.6 - version: 5.0.6 + specifier: ^5.0.12 + version: 5.0.12 plugins/window-state: dependencies: @@ -2609,8 +2609,8 @@ packages: punycode: 2.3.1 dev: true - /vite@5.0.6: - resolution: {integrity: sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ==} + /vite@5.0.12: + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: From 38aedb45e39e93290fb2d90dc6f7674d09a1c174 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 12:12:00 +0100 Subject: [PATCH 067/643] chore(deps): update dependency eslint-config-standard-with-typescript to v43.0.1 (#911) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 430b5a0fc..e50e59a90 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@typescript-eslint/parser": "6.19.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", - "eslint-config-standard-with-typescript": "43.0.0", + "eslint-config-standard-with-typescript": "43.0.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba5fa2bd4..d11b1eed6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: 9.1.0 version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: - specifier: 43.0.0 - version: 43.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: 43.0.1 + version: 43.0.1(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) @@ -1351,8 +1351,8 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==} + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 From cd7549f22e36294aa0561b45cf76af43fc8269c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Jan 2024 14:56:28 +0100 Subject: [PATCH 068/643] chore(deps): update dependency rollup to v4.9.6 (#914) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index e50e59a90..3b1d6b0bd 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.2.2", - "rollup": "4.9.5", + "rollup": "4.9.6", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d11b1eed6..56ecc5f2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.5) + version: 15.2.3(rollup@4.9.6) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.5) + version: 0.4.4(rollup@4.9.6) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.9.5)(typescript@5.3.3) + version: 11.1.6(rollup@4.9.6)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.19.0 version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.2.2 version: 3.2.2 rollup: - specifier: 4.9.5 - version: 4.9.5 + specifier: 4.9.6 + version: 4.9.6 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.5): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.6): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.5) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.5 + rollup: 4.9.6 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.5): + /@rollup/plugin-terser@0.4.4(rollup@4.9.6): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.5 + rollup: 4.9.6 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.9.5)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.9.6)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.5) + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) resolve: 1.22.8 - rollup: 4.9.5 + rollup: 4.9.6 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.5): + /@rollup/pluginutils@5.1.0(rollup@4.9.6): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.5 + rollup: 4.9.6 dev: true - /@rollup/rollup-android-arm-eabi@4.9.5: - resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==} + /@rollup/rollup-android-arm-eabi@4.9.6: + resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.5: - resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==} + /@rollup/rollup-android-arm64@4.9.6: + resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.5: - resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==} + /@rollup/rollup-darwin-arm64@4.9.6: + resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.5: - resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==} + /@rollup/rollup-darwin-x64@4.9.6: + resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.5: - resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.5: - resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==} + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.5: - resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==} + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.5: - resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==} + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.5: - resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==} + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.5: - resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==} + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.5: - resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==} + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.5: - resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==} + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.5: - resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==} + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,26 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.5: - resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==} + /rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.5 - '@rollup/rollup-android-arm64': 4.9.5 - '@rollup/rollup-darwin-arm64': 4.9.5 - '@rollup/rollup-darwin-x64': 4.9.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.5 - '@rollup/rollup-linux-arm64-gnu': 4.9.5 - '@rollup/rollup-linux-arm64-musl': 4.9.5 - '@rollup/rollup-linux-riscv64-gnu': 4.9.5 - '@rollup/rollup-linux-x64-gnu': 4.9.5 - '@rollup/rollup-linux-x64-musl': 4.9.5 - '@rollup/rollup-win32-arm64-msvc': 4.9.5 - '@rollup/rollup-win32-ia32-msvc': 4.9.5 - '@rollup/rollup-win32-x64-msvc': 4.9.5 + '@rollup/rollup-android-arm-eabi': 4.9.6 + '@rollup/rollup-android-arm64': 4.9.6 + '@rollup/rollup-darwin-arm64': 4.9.6 + '@rollup/rollup-darwin-x64': 4.9.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 + '@rollup/rollup-linux-arm64-gnu': 4.9.6 + '@rollup/rollup-linux-arm64-musl': 4.9.6 + '@rollup/rollup-linux-riscv64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-musl': 4.9.6 + '@rollup/rollup-win32-arm64-msvc': 4.9.6 + '@rollup/rollup-win32-ia32-msvc': 4.9.6 + '@rollup/rollup-win32-x64-msvc': 4.9.6 fsevents: 2.3.3 dev: true @@ -2639,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.5 + rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 dev: true From 035a4824d64691ca5c342771ee8d775a6a07a5e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 22:08:44 +0100 Subject: [PATCH 069/643] chore(deps): update typescript-eslint monorepo to v6.19.1 (#915) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 3b1d6b0bd..7f8141ca8 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "6.19.0", - "@typescript-eslint/parser": "6.19.0", + "@typescript-eslint/eslint-plugin": "6.19.1", + "@typescript-eslint/parser": "6.19.1", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56ecc5f2a..a486fe4f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.9.6)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.19.0 - version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.19.1 + version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.19.0 - version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.19.1 + version: 6.19.1(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@6.19.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} + /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.0 + '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} + /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.0 + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.19.0: - resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} + /@typescript-eslint/scope-manager@6.19.1: + resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/visitor-keys': 6.19.1 dev: true - /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} + /@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.19.0: - resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} + /@typescript-eslint/types@6.19.1: + resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): - resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} + /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): + resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/visitor-keys': 6.19.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} + /@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.1 + '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.19.0: - resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} + /@typescript-eslint/visitor-keys@6.19.1: + resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/types': 6.19.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.19.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.19.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 70d99086de3a58189d65c49954a3495972880725 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 25 Jan 2024 01:48:46 +0200 Subject: [PATCH 070/643] fix(window-state): restore window position if the one of the window corners intersects with monitor (#898) * fix(window-state): restore window positions that matches monitor positions closes #892 * check for intersections of any window corner instead of only top-left --- .changes/window-state-zero-positions.md | 8 +++ plugins/window-state/src/lib.rs | 82 +++++++++++++++++++------ 2 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 .changes/window-state-zero-positions.md diff --git a/.changes/window-state-zero-positions.md b/.changes/window-state-zero-positions.md new file mode 100644 index 000000000..14e89087c --- /dev/null +++ b/.changes/window-state-zero-positions.md @@ -0,0 +1,8 @@ +--- +"window-state": "patch" +--- + +Address a couple of issues with restoring positions: + +- Fix restoring window positions correctly when the top-left corner of the window was outside of the monitor. +- Fix restore maximization state only maximized on main monitor. diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index f17201caa..30dac7008 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -59,6 +59,11 @@ struct WindowState { height: f64, x: i32, y: i32, + // prev_x and prev_y are used to store position + // before maximization happened, because maximization + // will set x and y to the top-left corner of the monitor + prev_x: i32, + prev_y: i32, maximized: bool, visible: bool, decorated: bool, @@ -72,6 +77,8 @@ impl Default for WindowState { height: Default::default(), x: Default::default(), y: Default::default(), + prev_x: Default::default(), + prev_y: Default::default(), maximized: Default::default(), visible: true, decorated: true, @@ -141,13 +148,23 @@ impl WindowExt for Window { } if flags.contains(StateFlags::POSITION) { + let position = (state.x, state.y).into(); + let size = (state.width, state.height).into(); // restore position to saved value if saved monitor exists // otherwise, let the OS decide where to place the window for m in self.available_monitors()? { - if m.contains((state.x, state.y).into()) { + if m.intersects(position, size) { self.set_position(PhysicalPosition { - x: state.x, - y: state.y, + x: if state.maximized { + state.prev_x + } else { + state.x + }, + y: if state.maximized { + state.prev_y + } else { + state.y + }, })?; } } @@ -243,22 +260,17 @@ impl WindowExtInternal for Window { .unwrap_or(1.); let size = self.inner_size()?.to_logical(scale_factor); - // It doesn't make sense to save a self with 0 height or width + // It doesn't make sense to save a window with 0 height or width if size.width > 0. && size.height > 0. && !is_maximized { state.width = size.width; state.height = size.height; } } - if flags.contains(StateFlags::POSITION) { + if flags.contains(StateFlags::POSITION) && !is_maximized { let position = self.outer_position()?; - if let Ok(Some(monitor)) = self.current_monitor() { - // save only window positions that are inside the current monitor - if monitor.contains(position) && !is_maximized { - state.x = position.x; - state.y = position.y; - } - } + state.x = position.x; + state.y = position.y; } Ok(()) @@ -273,6 +285,10 @@ pub struct Builder { } impl Builder { + pub fn new() -> Self { + Self::default() + } + /// Sets the state flags to control what state gets restored and saved. pub fn with_state_flags(mut self, flags: StateFlags) -> Self { self.state_flags = flags; @@ -345,13 +361,25 @@ impl Builder { .or_insert_with(WindowState::default); } - window.on_window_event(move |e| { - if let WindowEvent::CloseRequested { .. } = e { + window.on_window_event(move |e| match e { + WindowEvent::CloseRequested { .. } => { let mut c = cache.lock().unwrap(); if let Some(state) = c.get_mut(&label) { let _ = window_clone.update_state(state, flags); } } + + WindowEvent::Moved(position) if flags.contains(StateFlags::POSITION) => { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.prev_x = state.x; + state.prev_y = state.y; + + state.x = position.x; + state.y = position.y; + } + } + _ => {} }); }) .on_event(move |app, event| { @@ -364,17 +392,31 @@ impl Builder { } trait MonitorExt { - fn contains(&self, position: PhysicalPosition) -> bool; + fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool; } impl MonitorExt for Monitor { - fn contains(&self, position: PhysicalPosition) -> bool { + fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool { + let size = size.to_physical::(self.scale_factor()); + let PhysicalPosition { x, y } = *self.position(); let PhysicalSize { width, height } = *self.size(); - x < position.x as _ - && position.x < (x + width as i32) - && y < position.y as _ - && position.y < (y + height as i32) + let left = x; + let right = x + width as i32; + let top = y; + let bottom = y + height as i32; + + [ + (position.x, position.y), + (position.x + size.width as i32, position.y), + (position.x, position.y + size.height as i32), + ( + position.x + size.width as i32, + position.y + size.height as i32, + ), + ] + .into_iter() + .any(|(x, y)| x >= left && x < right && y >= top && y < bottom) } } From 9ca77efff2652c2902851a682b15cfb0d39b0fe4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 19:32:02 +0100 Subject: [PATCH 071/643] chore(deps): update typescript-eslint monorepo to v6.20.0 (#920) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 7f8141ca8..db0e558b8 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "6.19.1", - "@typescript-eslint/parser": "6.19.1", + "@typescript-eslint/eslint-plugin": "6.20.0", + "@typescript-eslint/parser": "6.20.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a486fe4f3..55fb358ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.9.6)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.19.1 - version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.20.0 + version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.19.1 - version: 6.19.1(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.20.0 + version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@6.19.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} + /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.19.1: - resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} + /@typescript-eslint/scope-manager@6.20.0: + resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 dev: true - /@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} + /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.19.1: - resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} + /@typescript-eslint/types@6.20.0: + resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): - resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): + resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} + /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.19.1: - resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} + /@typescript-eslint/visitor-keys@6.20.0: + resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/types': 6.20.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.19.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 056a458d3025963874b113ff6cfe897373baf944 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Tue, 30 Jan 2024 12:51:49 +0100 Subject: [PATCH 072/643] ci: Ignore RSA advisory outside of scheduled runs (#922) --- .github/workflows/audit-rust.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index 1ec0225ef..274ba674a 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -33,3 +33,5 @@ jobs: - uses: rustsec/audit-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} + # https://github.com/tauri-apps/plugins-workspace/issues/774 + ignore: ${{ github.event_name != 'schedule' && 'RUSTSEC-2023-0071' || '' }} From 8cb4e3d14de27188465ae1059886c2765854aa16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 12:07:13 +0100 Subject: [PATCH 073/643] chore(deps): update dependency rollup to v4.10.0 (#936) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index db0e558b8..2c78e3066 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.0", "prettier": "3.2.2", - "rollup": "4.9.6", + "rollup": "4.10.0", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55fb358ff..e352e3b5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.9.6) + version: 15.2.3(rollup@4.10.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.9.6) + version: 0.4.4(rollup@4.10.0) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.9.6)(typescript@5.3.3) + version: 11.1.6(rollup@4.10.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.20.0 version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.2.2 version: 3.2.2 rollup: - specifier: 4.9.6 - version: 4.9.6 + specifier: 4.10.0 + version: 4.10.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.6): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.10.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0(rollup@4.10.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.6 + rollup: 4.10.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.6): + /@rollup/plugin-terser@0.4.4(rollup@4.10.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.6 + rollup: 4.10.0 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.9.6)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.10.0)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0(rollup@4.10.0) resolve: 1.22.8 - rollup: 4.9.6 + rollup: 4.10.0 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.6): + /@rollup/pluginutils@5.1.0(rollup@4.10.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.6 + rollup: 4.10.0 dev: true - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + /@rollup/rollup-android-arm-eabi@4.10.0: + resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + /@rollup/rollup-android-arm64@4.10.0: + resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + /@rollup/rollup-darwin-arm64@4.10.0: + resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + /@rollup/rollup-darwin-x64@4.10.0: + resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.10.0: + resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm64-gnu@4.10.0: + resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-musl@4.10.0: + resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + /@rollup/rollup-linux-riscv64-gnu@4.10.0: + resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + /@rollup/rollup-linux-x64-gnu@4.10.0: + resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + /@rollup/rollup-linux-x64-musl@4.10.0: + resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + /@rollup/rollup-win32-arm64-msvc@4.10.0: + resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + /@rollup/rollup-win32-ia32-msvc@4.10.0: + resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + /@rollup/rollup-win32-x64-msvc@4.10.0: + resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,26 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + /rollup@4.10.0: + resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 + '@rollup/rollup-android-arm-eabi': 4.10.0 + '@rollup/rollup-android-arm64': 4.10.0 + '@rollup/rollup-darwin-arm64': 4.10.0 + '@rollup/rollup-darwin-x64': 4.10.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 + '@rollup/rollup-linux-arm64-gnu': 4.10.0 + '@rollup/rollup-linux-arm64-musl': 4.10.0 + '@rollup/rollup-linux-riscv64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-musl': 4.10.0 + '@rollup/rollup-win32-arm64-msvc': 4.10.0 + '@rollup/rollup-win32-ia32-msvc': 4.10.0 + '@rollup/rollup-win32-x64-msvc': 4.10.0 fsevents: 2.3.3 dev: true @@ -2639,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.9.6 + rollup: 4.10.0 optionalDependencies: fsevents: 2.3.3 dev: true From 67405aed06f495c3ea42e0a62b789e2be48abb3a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 15:49:14 +0100 Subject: [PATCH 074/643] chore(deps): update typescript-eslint monorepo to v6.21.0 (#932) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 2c78e3066..94dd5f41b 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "6.20.0", - "@typescript-eslint/parser": "6.20.0", + "@typescript-eslint/eslint-plugin": "6.21.0", + "@typescript-eslint/parser": "6.21.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e352e3b5b..c4a6818b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.10.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.20.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.20.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.21.0 + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -852,8 +852,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -862,10 +862,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -873,16 +873,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -891,8 +891,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -901,13 +901,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -915,8 +915,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -928,8 +928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -937,9 +937,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -947,11 +947,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1351,7 +1351,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1361,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1383,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1398,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1419,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1439,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1449,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1458,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 1adb9125476d409e3b0c1c18cf3b4ecd1ee77173 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:13:57 +0100 Subject: [PATCH 075/643] chore(deps): update dependency eslint-plugin-security to v2.1.1 (#953) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 94dd5f41b..8bdc4528c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "eslint-plugin-import": "2.29.1", "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-security": "2.1.0", + "eslint-plugin-security": "2.1.1", "prettier": "3.2.2", "rollup": "4.10.0", "typescript": "5.3.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4a6818b9..035bbcca2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,8 +46,8 @@ importers: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) eslint-plugin-security: - specifier: 2.1.0 - version: 2.1.0 + specifier: 2.1.1 + version: 2.1.1 prettier: specifier: 3.2.2 version: 3.2.2 @@ -1503,8 +1503,8 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-security@2.1.0: - resolution: {integrity: sha512-ywxclP954bf8d3gr6KOQ/AFc+PRvWuhOxtPOEtiHmVYiZr/mcgQtmSJq6+hTEXC5ylTjHnPPG+PEnzlDiWMXbQ==} + /eslint-plugin-security@2.1.1: + resolution: {integrity: sha512-7cspIGj7WTfR3EhaILzAPcfCo5R9FbeWvbgsPYWivSurTBKW88VQxtP3c4aWMG9Hz/GfJlJVdXEJ3c8LqS+u2w==} dependencies: safe-regex: 2.1.1 dev: true From c7f92ddf2f6f5c98e779c458f0932d2ce3e5a4a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:25:24 +0100 Subject: [PATCH 076/643] chore(deps): update dependency rollup to v4.11.0 (#955) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 8bdc4528c..f0fa7e357 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.1", "prettier": "3.2.2", - "rollup": "4.10.0", + "rollup": "4.11.0", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 035bbcca2..9353496bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.10.0) + version: 15.2.3(rollup@4.11.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.10.0) + version: 0.4.4(rollup@4.11.0) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.10.0)(typescript@5.3.3) + version: 11.1.6(rollup@4.11.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 6.21.0 version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.2.2 version: 3.2.2 rollup: - specifier: 4.10.0 - version: 4.10.0 + specifier: 4.11.0 + version: 4.11.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.10.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.11.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.10.0) + '@rollup/pluginutils': 5.1.0(rollup@4.11.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.10.0 + rollup: 4.11.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.10.0): + /@rollup/plugin-terser@0.4.4(rollup@4.11.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.10.0 + rollup: 4.11.0 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.10.0)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.11.0)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.10.0) + '@rollup/pluginutils': 5.1.0(rollup@4.11.0) resolve: 1.22.8 - rollup: 4.10.0 + rollup: 4.11.0 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.10.0): + /@rollup/pluginutils@5.1.0(rollup@4.11.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.10.0 + rollup: 4.11.0 dev: true - /@rollup/rollup-android-arm-eabi@4.10.0: - resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} + /@rollup/rollup-android-arm-eabi@4.11.0: + resolution: {integrity: sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.10.0: - resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} + /@rollup/rollup-android-arm64@4.11.0: + resolution: {integrity: sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.10.0: - resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} + /@rollup/rollup-darwin-arm64@4.11.0: + resolution: {integrity: sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.10.0: - resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} + /@rollup/rollup-darwin-x64@4.11.0: + resolution: {integrity: sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.10.0: - resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} + /@rollup/rollup-linux-arm-gnueabihf@4.11.0: + resolution: {integrity: sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.10.0: - resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} + /@rollup/rollup-linux-arm64-gnu@4.11.0: + resolution: {integrity: sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.10.0: - resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} + /@rollup/rollup-linux-arm64-musl@4.11.0: + resolution: {integrity: sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.10.0: - resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} + /@rollup/rollup-linux-riscv64-gnu@4.11.0: + resolution: {integrity: sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.10.0: - resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} + /@rollup/rollup-linux-x64-gnu@4.11.0: + resolution: {integrity: sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.10.0: - resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} + /@rollup/rollup-linux-x64-musl@4.11.0: + resolution: {integrity: sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.10.0: - resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} + /@rollup/rollup-win32-arm64-msvc@4.11.0: + resolution: {integrity: sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.10.0: - resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} + /@rollup/rollup-win32-ia32-msvc@4.11.0: + resolution: {integrity: sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.10.0: - resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} + /@rollup/rollup-win32-x64-msvc@4.11.0: + resolution: {integrity: sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==} cpu: [x64] os: [win32] requiresBuild: true @@ -2304,26 +2304,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.10.0: - resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} + /rollup@4.11.0: + resolution: {integrity: sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.10.0 - '@rollup/rollup-android-arm64': 4.10.0 - '@rollup/rollup-darwin-arm64': 4.10.0 - '@rollup/rollup-darwin-x64': 4.10.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 - '@rollup/rollup-linux-arm64-gnu': 4.10.0 - '@rollup/rollup-linux-arm64-musl': 4.10.0 - '@rollup/rollup-linux-riscv64-gnu': 4.10.0 - '@rollup/rollup-linux-x64-gnu': 4.10.0 - '@rollup/rollup-linux-x64-musl': 4.10.0 - '@rollup/rollup-win32-arm64-msvc': 4.10.0 - '@rollup/rollup-win32-ia32-msvc': 4.10.0 - '@rollup/rollup-win32-x64-msvc': 4.10.0 + '@rollup/rollup-android-arm-eabi': 4.11.0 + '@rollup/rollup-android-arm64': 4.11.0 + '@rollup/rollup-darwin-arm64': 4.11.0 + '@rollup/rollup-darwin-x64': 4.11.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.11.0 + '@rollup/rollup-linux-arm64-gnu': 4.11.0 + '@rollup/rollup-linux-arm64-musl': 4.11.0 + '@rollup/rollup-linux-riscv64-gnu': 4.11.0 + '@rollup/rollup-linux-x64-gnu': 4.11.0 + '@rollup/rollup-linux-x64-musl': 4.11.0 + '@rollup/rollup-win32-arm64-msvc': 4.11.0 + '@rollup/rollup-win32-ia32-msvc': 4.11.0 + '@rollup/rollup-win32-x64-msvc': 4.11.0 fsevents: 2.3.3 dev: true @@ -2639,7 +2639,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.10.0 + rollup: 4.11.0 optionalDependencies: fsevents: 2.3.3 dev: true From 9299c919c7ad000ff138124393df4c9097a44c89 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:31:09 +0100 Subject: [PATCH 077/643] chore(deps): update dependency prettier to v3.2.5 (#906) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f0fa7e357..87af147ec 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint-plugin-n": "16.6.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.1", - "prettier": "3.2.2", + "prettier": "3.2.5", "rollup": "4.11.0", "typescript": "5.3.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9353496bf..5e61b69e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 2.1.1 version: 2.1.1 prettier: - specifier: 3.2.2 - version: 3.2.2 + specifier: 3.2.5 + version: 3.2.5 rollup: specifier: 4.11.0 version: 4.11.0 @@ -2239,8 +2239,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.2.2: - resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true From 01211ff0759d578e0e9ac8c98c31fdf09077eb34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:32:03 +0100 Subject: [PATCH 078/643] chore(deps): update typescript-eslint monorepo to v7 (#942) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 134 ++++++++++++++++++++++++++++++++++++------------- 2 files changed, 101 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 87af147ec..9a242bc21 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "6.21.0", - "@typescript-eslint/parser": "6.21.0", + "@typescript-eslint/eslint-plugin": "7.0.1", + "@typescript-eslint/parser": "7.0.1", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e61b69e8..10635d0f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.11.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.0.1 + version: 7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.21.0 - version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.0.1 + version: 7.0.1(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,23 +823,23 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + /@typescript-eslint/eslint-plugin@7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.1 + '@typescript-eslint/type-utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.1 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -873,6 +873,27 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@7.0.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.0.1 + '@typescript-eslint/types': 7.0.1 + '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.1 + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@6.21.0: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -881,18 +902,26 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + /@typescript-eslint/scope-manager@7.0.1: + resolution: {integrity: sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.0.1 + '@typescript-eslint/visitor-keys': 7.0.1 + dev: true + + /@typescript-eslint/type-utils@7.0.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -906,6 +935,11 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@7.0.1: + resolution: {integrity: sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -928,18 +962,40 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + /@typescript-eslint/typescript-estree@7.0.1(typescript@5.3.3): + resolution: {integrity: sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.0.1 + '@typescript-eslint/visitor-keys': 7.0.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@7.0.1(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.1 + '@typescript-eslint/types': 7.0.1 + '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -955,6 +1011,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@7.0.1: + resolution: {integrity: sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.0.1 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -1351,7 +1415,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1361,11 +1425,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1383,7 +1447,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1398,7 +1462,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1419,7 +1483,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1439,7 +1503,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1449,7 +1513,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1458,7 +1522,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From e096f63bdac43ab12f55df8a71eae1caab044a9e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 16:56:06 +0100 Subject: [PATCH 079/643] chore(deps): update dependency rollup to v4.12.0 (#958) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 9a242bc21..38132c584 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.1", "prettier": "3.2.5", - "rollup": "4.11.0", + "rollup": "4.12.0", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10635d0f4..d8aaa7fd9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.11.0) + version: 15.2.3(rollup@4.12.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.11.0) + version: 0.4.4(rollup@4.12.0) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.11.0)(typescript@5.3.3) + version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 7.0.1 version: 7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.2.5 version: 3.2.5 rollup: - specifier: 4.11.0 - version: 4.11.0 + specifier: 4.12.0 + version: 4.12.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -520,7 +520,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.11.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -529,16 +529,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.11.0) + '@rollup/pluginutils': 5.1.0(rollup@4.12.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.11.0 + rollup: 4.12.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.11.0): + /@rollup/plugin-terser@0.4.4(rollup@4.12.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -547,13 +547,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.11.0 + rollup: 4.12.0 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.25.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.11.0)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.12.0)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -566,13 +566,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.11.0) + '@rollup/pluginutils': 5.1.0(rollup@4.12.0) resolve: 1.22.8 - rollup: 4.11.0 + rollup: 4.12.0 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.11.0): + /@rollup/pluginutils@5.1.0(rollup@4.12.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -584,107 +584,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.11.0 + rollup: 4.12.0 dev: true - /@rollup/rollup-android-arm-eabi@4.11.0: - resolution: {integrity: sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==} + /@rollup/rollup-android-arm-eabi@4.12.0: + resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.11.0: - resolution: {integrity: sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==} + /@rollup/rollup-android-arm64@4.12.0: + resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.11.0: - resolution: {integrity: sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==} + /@rollup/rollup-darwin-arm64@4.12.0: + resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.11.0: - resolution: {integrity: sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==} + /@rollup/rollup-darwin-x64@4.12.0: + resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.11.0: - resolution: {integrity: sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==} + /@rollup/rollup-linux-arm-gnueabihf@4.12.0: + resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.11.0: - resolution: {integrity: sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==} + /@rollup/rollup-linux-arm64-gnu@4.12.0: + resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.11.0: - resolution: {integrity: sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==} + /@rollup/rollup-linux-arm64-musl@4.12.0: + resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.11.0: - resolution: {integrity: sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==} + /@rollup/rollup-linux-riscv64-gnu@4.12.0: + resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.11.0: - resolution: {integrity: sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==} + /@rollup/rollup-linux-x64-gnu@4.12.0: + resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.11.0: - resolution: {integrity: sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==} + /@rollup/rollup-linux-x64-musl@4.12.0: + resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.11.0: - resolution: {integrity: sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==} + /@rollup/rollup-win32-arm64-msvc@4.12.0: + resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.11.0: - resolution: {integrity: sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==} + /@rollup/rollup-win32-ia32-msvc@4.12.0: + resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.11.0: - resolution: {integrity: sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==} + /@rollup/rollup-win32-x64-msvc@4.12.0: + resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} cpu: [x64] os: [win32] requiresBuild: true @@ -2368,26 +2368,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.11.0: - resolution: {integrity: sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==} + /rollup@4.12.0: + resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.11.0 - '@rollup/rollup-android-arm64': 4.11.0 - '@rollup/rollup-darwin-arm64': 4.11.0 - '@rollup/rollup-darwin-x64': 4.11.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.11.0 - '@rollup/rollup-linux-arm64-gnu': 4.11.0 - '@rollup/rollup-linux-arm64-musl': 4.11.0 - '@rollup/rollup-linux-riscv64-gnu': 4.11.0 - '@rollup/rollup-linux-x64-gnu': 4.11.0 - '@rollup/rollup-linux-x64-musl': 4.11.0 - '@rollup/rollup-win32-arm64-msvc': 4.11.0 - '@rollup/rollup-win32-ia32-msvc': 4.11.0 - '@rollup/rollup-win32-x64-msvc': 4.11.0 + '@rollup/rollup-android-arm-eabi': 4.12.0 + '@rollup/rollup-android-arm64': 4.12.0 + '@rollup/rollup-darwin-arm64': 4.12.0 + '@rollup/rollup-darwin-x64': 4.12.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 + '@rollup/rollup-linux-arm64-gnu': 4.12.0 + '@rollup/rollup-linux-arm64-musl': 4.12.0 + '@rollup/rollup-linux-riscv64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-musl': 4.12.0 + '@rollup/rollup-win32-arm64-msvc': 4.12.0 + '@rollup/rollup-win32-ia32-msvc': 4.12.0 + '@rollup/rollup-win32-x64-msvc': 4.12.0 fsevents: 2.3.3 dev: true @@ -2703,7 +2703,7 @@ packages: dependencies: esbuild: 0.19.8 postcss: 8.4.32 - rollup: 4.11.0 + rollup: 4.12.0 optionalDependencies: fsevents: 2.3.3 dev: true From 4cc2e50d164e486b97043c840229be469401f438 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 16:04:43 +0100 Subject: [PATCH 080/643] chore(deps): update dependency @tauri-apps/cli to v1.5.10 (#967) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/vanilla/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 72 +++++++++---------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 7288c63e4..08160070d 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "1.5.9" + "@tauri-apps/cli": "1.5.10" } } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 30b30705b..21663e242 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "1.5.9", + "@tauri-apps/cli": "1.5.10", "typescript": "^5.3.3", "vite": "^5.0.12" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d8aaa7fd9..519a01398 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,8 +121,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 1.5.9 - version: 1.5.9 + specifier: 1.5.10 + version: 1.5.10 plugins/sql: dependencies: @@ -181,8 +181,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 1.5.9 - version: 1.5.9 + specifier: 1.5.10 + version: 1.5.10 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -696,8 +696,8 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@1.5.9: - resolution: {integrity: sha512-7C2Jf8f0gzv778mLYb7Eszqqv1bm9Wzews81MRTqKrUIcC+eZEtDXLex+JaEkEzFEUrgIafdOvMBVEavF030IA==} + /@tauri-apps/cli-darwin-arm64@1.5.10: + resolution: {integrity: sha512-8dqHaGFKFUEMv3CfEyRP0Ebq28X4Oz74bdi393nBZVqbZM8SN6JdB7kXNb3o3W1TMNSu0M71e6x06YvXSNWvXQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -705,8 +705,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@1.5.9: - resolution: {integrity: sha512-LHKytpkofPYgH8RShWvwDa3hD1ws131x7g7zNasJPfOiCWLqYVQFUuQVmjEUt8+dpHe/P/err5h4z+YZru2d0A==} + /@tauri-apps/cli-darwin-x64@1.5.10: + resolution: {integrity: sha512-qb/9H2FgGRAZPlPj5ingwgpI9B1BUWBUjJpjP+XzSkgjfSQVs3mbdCFz+knGIfrbpw/rBfdOt9BM7biWqIml3Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -714,8 +714,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.9: - resolution: {integrity: sha512-teGK20IYKx+dVn8wFq/Lg57Q9ce7foq1KHSfyHi464LVt1T0V1rsmULSgZpQPPj/NYPF5BG78PcWYv64yH86jw==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.10: + resolution: {integrity: sha512-iYwfKHGQU0Ezvj5OOhILDiv9VSNm3oouctsvUC4ygOLhpVKXDqQ6nQwJzUZey1KjpBPeM7spOOEYZYxNUgAdZA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -723,8 +723,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.9: - resolution: {integrity: sha512-onJ/DW5Crw38qVx+wquY4uBbfCxVhzhdJmlCYqnYyXsZZmSiPUfSyhV58y+5TYB0q1hG8eYdB5x8VAwzByhGzw==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.10: + resolution: {integrity: sha512-kz4tI6Rr8wRuSVrDYpT6mAzHDW/rwPosb2wGatnhKRPb5v9LGPAZflUUUj+AAXnyl6XmD86Rbu7ekkm9BGm1Vw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -732,8 +732,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.9: - resolution: {integrity: sha512-23AYoLD3acakLp9NtheKQDJl8F66eTOflxoPzdJNRy13hUSxb+W9qpz4rRA+CIzkjICFvO2i3UWjeV9QwDVpsQ==} + /@tauri-apps/cli-linux-arm64-musl@1.5.10: + resolution: {integrity: sha512-HswFaeTplIVY6YSjx+awXfLqB4zwzW3D/8WpmxHY3kyxaE4VnXBhKT86YnlA+qX0qZxgsYr0L0EXxk940lHtKQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -741,8 +741,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.9: - resolution: {integrity: sha512-9PQA1rE7gh41W2ylyKd5qOGOds55ymaYPml9KOpM0g+cxmCXa+8Wf9K5NKvACnJldJJ6cekWzIyB4eN6o5T+yQ==} + /@tauri-apps/cli-linux-x64-gnu@1.5.10: + resolution: {integrity: sha512-sOh7slboFQxJCBH5QFNe1Iw3JF2GPWYsq2TlQ6T8GgFh/cb13bK/a1TJG/gOrsRA7/pkIweaSufjpKpPBzAoGQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -750,8 +750,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.9: - resolution: {integrity: sha512-5hdbNFeDsrJ/pXZ4cSQV4bJwUXPPxXxN3/pAtNUqIph7q+vLcBXOXIMoS64iuyaluJC59lhEwlWZFz+EPv0Hqg==} + /@tauri-apps/cli-linux-x64-musl@1.5.10: + resolution: {integrity: sha512-fbTZa3Q01ttIKg6s9rhWGRfdOI23zIPa6loVz6YafHAzr3WLLEXSuG2fI/+01TdX9xdr6glttu8j3H5xE5oDgw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -759,8 +759,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.9: - resolution: {integrity: sha512-O18JufjSB3hSJYu5WWByONouGeX7DraLAtXLErsG1r/VS3zHd/zyuzycrVUaObNXk5bfGlIP0Ypt+RvZJILN2w==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.10: + resolution: {integrity: sha512-Hntd66+Rrjn2dPPHqCVhZSXotNn5u7lfSff/1riIFbR4hZysB1OPlMOEjh51lBYhmcrvhseMfGfwH6D9i7WYKg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -768,8 +768,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.9: - resolution: {integrity: sha512-FQxtxTZu0JVBihfd/lmpxo7jyMOesjWQehfyVUqtgMfm5+Pvvw0Y+ZioeDi1TZkFVrT3QDYy8R4LqDLSZVMQRA==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.10: + resolution: {integrity: sha512-Kgd3qojNhH7qRsS2RKD1rKgUzk4y/v+SWW8Yr/xNo6FIYZzJChawW+WrYyBBtRoftrhLwm09LSnkR21KlGZxbA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -777,8 +777,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.9: - resolution: {integrity: sha512-EeI1+L518cIBLKw0qUFwnLIySBeSmPQjPLIlNwSukHSro4tAQPHycEVGgKrdToiCWgaZJBA0e5aRSds0Du2TWg==} + /@tauri-apps/cli-win32-x64-msvc@1.5.10: + resolution: {integrity: sha512-pvuot24ZeLqQYD3rQHSzHJvUDX/kE18F98yl2mO9IHrHQyasdqlLhr/6kkmOWIvFDqyQNhpFXDzGNPm7yRbB1g==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -786,21 +786,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@1.5.9: - resolution: {integrity: sha512-knSt/9AvCTeyfC6wkyeouF9hBW/0Mzuw+5vBKEvzaGPQsfFJo1ZCp5FkdiZpGBBfnm09BhugasGRTGofzatfqQ==} + /@tauri-apps/cli@1.5.10: + resolution: {integrity: sha512-8+6NJgqSXqsFAEuUERDDRWrLh24TMT4aisn1qpADvKVX4KlBAKE17KTXHI54XQFR8qLbkUFNzprU4M9PV8ighw==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.9 - '@tauri-apps/cli-darwin-x64': 1.5.9 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.9 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.9 - '@tauri-apps/cli-linux-arm64-musl': 1.5.9 - '@tauri-apps/cli-linux-x64-gnu': 1.5.9 - '@tauri-apps/cli-linux-x64-musl': 1.5.9 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.9 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.9 - '@tauri-apps/cli-win32-x64-msvc': 1.5.9 + '@tauri-apps/cli-darwin-arm64': 1.5.10 + '@tauri-apps/cli-darwin-x64': 1.5.10 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.10 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.10 + '@tauri-apps/cli-linux-arm64-musl': 1.5.10 + '@tauri-apps/cli-linux-x64-gnu': 1.5.10 + '@tauri-apps/cli-linux-x64-musl': 1.5.10 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.10 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.10 + '@tauri-apps/cli-win32-x64-msvc': 1.5.10 dev: true /@types/estree@1.0.5: From 58176114f98c977e3435aba3aa910b61115a394e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 20:35:37 +0100 Subject: [PATCH 081/643] chore(deps): update typescript-eslint monorepo to v7.0.2 (#970) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 100 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 38132c584..a7af76e57 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.0.1", - "@typescript-eslint/parser": "7.0.1", + "@typescript-eslint/eslint-plugin": "7.0.2", + "@typescript-eslint/parser": "7.0.2", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 519a01398..06f7d9155 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 7.0.1 - version: 7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.0.2 + version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 7.0.1 - version: 7.0.1(eslint@8.56.0)(typescript@5.3.3) + specifier: 7.0.2 + version: 7.0.2(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.56.0) @@ -823,8 +823,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==} + /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -835,11 +835,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.0.1 - '@typescript-eslint/type-utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.1 + '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -873,8 +873,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.0.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==} + /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -883,10 +883,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.0.1 - '@typescript-eslint/types': 7.0.1 - '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.1 + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -902,16 +902,16 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/scope-manager@7.0.1: - resolution: {integrity: sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==} + /@typescript-eslint/scope-manager@7.0.2: + resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.0.1 - '@typescript-eslint/visitor-keys': 7.0.1 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 dev: true - /@typescript-eslint/type-utils@7.0.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==} + /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -920,8 +920,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -935,8 +935,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.0.1: - resolution: {integrity: sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==} + /@typescript-eslint/types@7.0.2: + resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -962,8 +962,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.0.1(typescript@5.3.3): - resolution: {integrity: sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==} + /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3): + resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -971,8 +971,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.0.1 - '@typescript-eslint/visitor-keys': 7.0.1 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -984,8 +984,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.0.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==} + /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -993,9 +993,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 7.0.1 - '@typescript-eslint/types': 7.0.1 - '@typescript-eslint/typescript-estree': 7.0.1(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -1011,11 +1011,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.0.1: - resolution: {integrity: sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==} + /@typescript-eslint/visitor-keys@7.0.2: + resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.0.1 + '@typescript-eslint/types': 7.0.2 eslint-visitor-keys: 3.4.3 dev: true @@ -1415,7 +1415,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1425,11 +1425,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.0.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) typescript: 5.3.3 @@ -1447,7 +1447,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true @@ -1462,7 +1462,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1483,7 +1483,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -1503,7 +1503,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1513,7 +1513,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.0.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1522,7 +1522,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 From 25aecc00745043a7d1a6d38e35eb86949e8ee23f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 14:38:10 +0100 Subject: [PATCH 082/643] chore(deps): update dependency eslint to v8.57.0 (#988) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 144 ++++++++++++++++++++++++------------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index a7af76e57..c373880ba 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-typescript": "11.1.6", "@typescript-eslint/eslint-plugin": "7.0.2", "@typescript-eslint/parser": "7.0.2", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", "eslint-plugin-import": "2.29.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 06f7d9155..f76944dab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,28 +23,28 @@ importers: version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 7.0.2 - version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3) + version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: 7.0.2 - version: 7.0.2(eslint@8.56.0)(typescript@5.3.3) + version: 7.0.2(eslint@8.57.0)(typescript@5.3.3) eslint: - specifier: 8.56.0 - version: 8.56.0 + specifier: 8.57.0 + version: 8.57.0 eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 - version: 16.6.2(eslint@8.56.0) + version: 16.6.2(eslint@8.57.0) eslint-plugin-promise: specifier: 6.1.1 - version: 6.1.1(eslint@8.56.0) + version: 6.1.1(eslint@8.57.0) eslint-plugin-security: specifier: 2.1.1 version: 2.1.1 @@ -405,13 +405,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -437,16 +437,16 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -458,8 +458,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@jridgewell/gen-mapping@0.3.3: @@ -823,7 +823,7 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -835,13 +835,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 @@ -852,7 +852,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -867,13 +867,13 @@ packages: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@7.0.2(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -888,7 +888,7 @@ packages: '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -910,7 +910,7 @@ packages: '@typescript-eslint/visitor-keys': 7.0.2 dev: true - /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -921,9 +921,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -984,19 +984,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 7.0.2 '@typescript-eslint/types': 7.0.2 '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - eslint: 8.56.0 + eslint: 8.57.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1397,25 +1397,25 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.56.0): + /eslint-compat-utils@0.1.2(eslint@8.57.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1425,19 +1425,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) + '@typescript-eslint/eslint-plugin': 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1446,10 +1446,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -1462,7 +1462,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1483,27 +1483,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + /eslint-plugin-es-x@7.5.0(eslint@8.57.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1513,16 +1513,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -1538,16 +1538,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.6.2(eslint@8.56.0): + /eslint-plugin-n@16.6.2(eslint@8.57.0): resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-es-x: 7.5.0(eslint@8.57.0) get-tsconfig: 4.7.2 globals: 13.24.0 ignore: 5.3.0 @@ -1558,13 +1558,13 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.56.0): + /eslint-plugin-promise@6.1.1(eslint@8.57.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true /eslint-plugin-security@2.1.1: @@ -1586,16 +1586,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 From da76481ad36a563bc1cc06256bef704af7407ee1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 25 Feb 2024 12:30:21 +0100 Subject: [PATCH 083/643] chore(deps): update dependency vite to v5.1.4 (#994) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 160 ++++++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 75 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f76944dab..b8104cd18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -188,7 +188,7 @@ importers: version: 5.3.3 vite: specifier: ^5.0.12 - version: 5.0.12 + version: 5.1.4 plugins/window-state: dependencies: @@ -207,8 +207,17 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@esbuild/android-arm64@0.19.8: - resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -216,8 +225,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.8: - resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -225,8 +234,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.8: - resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -234,8 +243,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.8: - resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -243,8 +252,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.8: - resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -252,8 +261,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.8: - resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -261,8 +270,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.8: - resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -270,8 +279,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.8: - resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -279,8 +288,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.8: - resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -288,8 +297,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.8: - resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -297,8 +306,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.8: - resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -306,8 +315,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.8: - resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -315,8 +324,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.8: - resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -324,8 +333,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.8: - resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -333,8 +342,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.8: - resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -342,8 +351,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.8: - resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -351,8 +360,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.8: - resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -360,8 +369,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.8: - resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -369,8 +378,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.8: - resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -378,8 +387,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.8: - resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -387,8 +396,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.8: - resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -396,8 +405,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.8: - resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1362,34 +1371,35 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.19.8: - resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.8 - '@esbuild/android-arm64': 0.19.8 - '@esbuild/android-x64': 0.19.8 - '@esbuild/darwin-arm64': 0.19.8 - '@esbuild/darwin-x64': 0.19.8 - '@esbuild/freebsd-arm64': 0.19.8 - '@esbuild/freebsd-x64': 0.19.8 - '@esbuild/linux-arm': 0.19.8 - '@esbuild/linux-arm64': 0.19.8 - '@esbuild/linux-ia32': 0.19.8 - '@esbuild/linux-loong64': 0.19.8 - '@esbuild/linux-mips64el': 0.19.8 - '@esbuild/linux-ppc64': 0.19.8 - '@esbuild/linux-riscv64': 0.19.8 - '@esbuild/linux-s390x': 0.19.8 - '@esbuild/linux-x64': 0.19.8 - '@esbuild/netbsd-x64': 0.19.8 - '@esbuild/openbsd-x64': 0.19.8 - '@esbuild/sunos-x64': 0.19.8 - '@esbuild/win32-arm64': 0.19.8 - '@esbuild/win32-ia32': 0.19.8 - '@esbuild/win32-x64': 0.19.8 + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 dev: true /escape-string-regexp@4.0.0: @@ -2289,8 +2299,8 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -2673,8 +2683,8 @@ packages: punycode: 2.3.1 dev: true - /vite@5.0.12: - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + /vite@5.1.4: + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2701,8 +2711,8 @@ packages: terser: optional: true dependencies: - esbuild: 0.19.8 - postcss: 8.4.32 + esbuild: 0.19.12 + postcss: 8.4.35 rollup: 4.12.0 optionalDependencies: fsevents: 2.3.3 From 7c5924290579bbb618d561545c9701c214a8c242 Mon Sep 17 00:00:00 2001 From: Instinct <61635505+uinstinct@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:02:39 +0530 Subject: [PATCH 084/643] chore: fix typo in store plugin README.md (#997) --- plugins/store/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/store/README.md b/plugins/store/README.md index ac3093dcf..2d47434a8 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -91,7 +91,7 @@ fn main() { } ``` -As you may have noticed, the Store crated above isn't accessible to the frontend. To interoperate with stores created by JS use the exported `with_store` method: +As you may have noticed, the Store created above isn't accessible to the frontend. To interoperate with stores created by JS use the exported `with_store` method: ```rust use tauri::Wry; From 382fc3a7bf1cb95fa181d7fc8fe75781b1f9fc20 Mon Sep 17 00:00:00 2001 From: Jarrodsz <90145421+Jarrodsz@users.noreply.github.com> Date: Mon, 26 Feb 2024 18:34:54 +0100 Subject: [PATCH 085/643] chore(store): add AppSettings example (#573) * basic example foundation * add examples to workspace * cleanup and load fix * fmt * reset lockfile --------- Co-authored-by: FabianLars --- Cargo.lock | 215 +----- .../examples/vanilla/src-tauri/Cargo.toml | 8 +- .../vanilla/src-tauri/tauri.conf.json | 2 +- .../examples/AppSettingsManager/.gitignore | 24 + .../.vscode/extensions.json | 3 + .../examples/AppSettingsManager/README.md | 7 + .../examples/AppSettingsManager/dist/.gitkeep | 0 .../examples/AppSettingsManager/index.html | 54 ++ .../examples/AppSettingsManager/package.json | 15 + .../AppSettingsManager/src-tauri/.gitignore | 4 + .../AppSettingsManager/src-tauri/Cargo.toml | 24 + .../AppSettingsManager/src-tauri/build.rs | 3 + .../src-tauri/icons/128x128.png | Bin 0 -> 3512 bytes .../src-tauri/icons/128x128@2x.png | Bin 0 -> 7012 bytes .../src-tauri/icons/32x32.png | Bin 0 -> 974 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 0 -> 903 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1299 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2011 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes .../src-tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes .../src-tauri/icons/icon.icns | Bin 0 -> 98451 bytes .../src-tauri/icons/icon.ico | Bin 0 -> 86642 bytes .../src-tauri/icons/icon.png | Bin 0 -> 14183 bytes .../src-tauri/src/app/mod.rs | 1 + .../src-tauri/src/app/settings.rs | 29 + .../AppSettingsManager/src-tauri/src/main.rs | 40 ++ .../src-tauri/tauri.conf.json | 46 ++ .../AppSettingsManager/src/assets/tauri.svg | 6 + .../src/assets/typescript.svg | 25 + .../AppSettingsManager/src/assets/vite.svg | 1 + .../examples/AppSettingsManager/src/main.ts | 5 + .../AppSettingsManager/src/styles.css | 109 ++++ .../examples/AppSettingsManager/tsconfig.json | 23 + .../AppSettingsManager/vite.config.ts | 17 + .../examples/tauri-app/src-tauri/Cargo.toml | 8 +- pnpm-lock.yaml | 610 ++++++++++-------- 41 files changed, 790 insertions(+), 489 deletions(-) create mode 100644 plugins/store/examples/AppSettingsManager/.gitignore create mode 100644 plugins/store/examples/AppSettingsManager/.vscode/extensions.json create mode 100644 plugins/store/examples/AppSettingsManager/README.md create mode 100644 plugins/store/examples/AppSettingsManager/dist/.gitkeep create mode 100644 plugins/store/examples/AppSettingsManager/index.html create mode 100644 plugins/store/examples/AppSettingsManager/package.json create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/.gitignore create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/build.rs create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128@2x.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/32x32.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square107x107Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square142x142Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square150x150Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square284x284Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square30x30Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square310x310Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square44x44Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square71x71Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/Square89x89Logo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/StoreLogo.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.icns create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.ico create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.png create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/src/app/mod.rs create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/src/app/settings.rs create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs create mode 100644 plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json create mode 100644 plugins/store/examples/AppSettingsManager/src/assets/tauri.svg create mode 100644 plugins/store/examples/AppSettingsManager/src/assets/typescript.svg create mode 100644 plugins/store/examples/AppSettingsManager/src/assets/vite.svg create mode 100644 plugins/store/examples/AppSettingsManager/src/main.ts create mode 100644 plugins/store/examples/AppSettingsManager/src/styles.css create mode 100644 plugins/store/examples/AppSettingsManager/tsconfig.json create mode 100644 plugins/store/examples/AppSettingsManager/vite.config.ts diff --git a/Cargo.lock b/Cargo.lock index f5525a903..e3bb9e6e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -141,6 +141,17 @@ dependencies = [ "tokio-tungstenite", ] +[[package]] +name = "app_settings_manager" +version = "0.0.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-store", +] + [[package]] name = "arrayref" version = "0.3.7" @@ -535,9 +546,6 @@ name = "bytes" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -dependencies = [ - "serde", -] [[package]] name = "cairo-rs" @@ -2489,19 +2497,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" -[[package]] -name = "mac-notification-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" -dependencies = [ - "cc", - "dirs-next", - "objc-foundation", - "objc_id", - "time", -] - [[package]] name = "malloc_buf" version = "0.0.6" @@ -2741,19 +2736,6 @@ dependencies = [ "serde", ] -[[package]] -name = "notify-rust" -version = "4.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" -dependencies = [ - "log", - "mac-notification-sys", - "serde", - "tauri-winrt-notification", - "zbus", -] - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2873,17 +2855,6 @@ dependencies = [ "objc_exception", ] -[[package]] -name = "objc-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] - [[package]] name = "objc_exception" version = "0.1.2" @@ -2987,27 +2958,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_info" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" -dependencies = [ - "log", - "serde", - "winapi", -] - -[[package]] -name = "os_pipe" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "overload" version = "0.1.1" @@ -3270,7 +3220,7 @@ dependencies = [ "base64 0.21.2", "indexmap 1.9.3", "line-wrap", - "quick-xml 0.29.0", + "quick-xml", "serde", "time", ] @@ -3394,15 +3344,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-xml" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" -dependencies = [ - "memchr", -] - [[package]] name = "quick-xml" version = "0.29.0" @@ -3631,30 +3572,6 @@ dependencies = [ "winreg 0.10.1", ] -[[package]] -name = "rfd" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" -dependencies = [ - "block", - "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", - "js-sys", - "lazy_static", - "log", - "objc", - "objc-foundation", - "objc_id", - "raw-window-handle", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.37.0", -] - [[package]] name = "ring" version = "0.16.20" @@ -4082,16 +3999,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_child" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "signal-hook" version = "0.3.17" @@ -4584,19 +4491,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sys-locale" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a11bd9c338fdba09f7881ab41551932ad42e405f61d01e8406baea71c07aee" -dependencies = [ - "js-sys", - "libc", - "wasm-bindgen", - "web-sys", - "windows-sys 0.45.0", -] - [[package]] name = "system-deps" version = "5.0.0" @@ -4707,7 +4601,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fbe522898e35407a8e60dc3870f7579fea2fc262a6a6072eccdd37ae1e1d91e" dependencies = [ "anyhow", - "bytes", "cocoa", "dirs-next", "embed_plist", @@ -4720,26 +4613,19 @@ dependencies = [ "heck 0.4.1", "http 0.2.9", "ignore", - "notify-rust", "objc", "once_cell", "open", - "os_info", - "os_pipe", "percent-encoding", "rand 0.8.5", "raw-window-handle", "regex", - "reqwest", - "rfd", "semver", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "shared_child", "state", - "sys-locale", "tar", "tauri-macros", "tauri-runtime", @@ -5105,16 +4991,6 @@ dependencies = [ "toml 0.7.3", ] -[[package]] -name = "tauri-winrt-notification" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f" -dependencies = [ - "quick-xml 0.23.1", - "windows 0.39.0", -] - [[package]] name = "tempfile" version = "3.7.1" @@ -5877,19 +5753,6 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] -[[package]] -name = "windows" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" -dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", -] - [[package]] name = "windows" version = "0.39.0" @@ -5954,15 +5817,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -5981,21 +5835,6 @@ dependencies = [ "windows-targets 0.52.0", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.48.1" @@ -6056,12 +5895,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - [[package]] name = "windows_aarch64_msvc" version = "0.39.0" @@ -6092,12 +5925,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - [[package]] name = "windows_i686_gnu" version = "0.39.0" @@ -6128,12 +5955,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - [[package]] name = "windows_i686_msvc" version = "0.39.0" @@ -6164,12 +5985,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - [[package]] name = "windows_x86_64_gnu" version = "0.39.0" @@ -6218,12 +6033,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - [[package]] name = "windows_x86_64_msvc" version = "0.39.0" diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index 5771733c3..21c3af739 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -8,13 +8,13 @@ edition = "2021" rust-version = "1.57" [dependencies] -serde_json = "1.0" -serde = { version = "1.0", features = [ "derive" ] } -tauri = { version = "1", features = ["api-all"] } +serde.workspace = true +serde_json.workspace = true +tauri.workspace = true tauri-plugin-single-instance = { path = "../../../" } [build-dependencies] -tauri-build = { version = "1", features = [] } +tauri-build.workspace = true [features] custom-protocol = [ "tauri/custom-protocol" ] diff --git a/plugins/single-instance/examples/vanilla/src-tauri/tauri.conf.json b/plugins/single-instance/examples/vanilla/src-tauri/tauri.conf.json index de4bdb818..df520e8ab 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/tauri.conf.json +++ b/plugins/single-instance/examples/vanilla/src-tauri/tauri.conf.json @@ -44,7 +44,7 @@ "active": false }, "allowlist": { - "all": true + "all": false }, "windows": [ { diff --git a/plugins/store/examples/AppSettingsManager/.gitignore b/plugins/store/examples/AppSettingsManager/.gitignore new file mode 100644 index 000000000..a9b26d1fe --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +#dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/plugins/store/examples/AppSettingsManager/.vscode/extensions.json b/plugins/store/examples/AppSettingsManager/.vscode/extensions.json new file mode 100644 index 000000000..24d7cc6de --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] +} diff --git a/plugins/store/examples/AppSettingsManager/README.md b/plugins/store/examples/AppSettingsManager/README.md new file mode 100644 index 000000000..b381dcf5b --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/README.md @@ -0,0 +1,7 @@ +# Tauri + Vanilla TS + +This template should help get you started developing with Tauri in vanilla HTML, CSS and Typescript. + +## Recommended IDE Setup + +- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) diff --git a/plugins/store/examples/AppSettingsManager/dist/.gitkeep b/plugins/store/examples/AppSettingsManager/dist/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/store/examples/AppSettingsManager/index.html b/plugins/store/examples/AppSettingsManager/index.html new file mode 100644 index 000000000..7c2686927 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/index.html @@ -0,0 +1,54 @@ + + + + + + + Tauri App + + + + + +
+

Welcome to Tauri!

+ + + +

Click on the Tauri logo to learn more about the framework

+ + + +

+
+ + diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json new file mode 100644 index 000000000..54365da5e --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "devDependencies": { + "@tauri-apps/cli": "1.5.10", + "vite": "^5.0.12", + "typescript": "^5.3.3" + } +} diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/.gitignore b/plugins/store/examples/AppSettingsManager/src-tauri/.gitignore new file mode 100644 index 000000000..f4dfb82b2 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml new file mode 100644 index 000000000..a342892fa --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "app_settings_manager" +version = "0.0.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build.workspace = true + +[dependencies] +tauri = { workspace = true, features = ["shell-open"] } +serde.workspace = true +serde_json.workspace = true +tauri-plugin-store = { path = "../../../" } + +[features] +# this feature is used for production builds or when `devPath` points to the filesystem +# DO NOT REMOVE!! +custom-protocol = ["tauri/custom-protocol"] diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/build.rs b/plugins/store/examples/AppSettingsManager/src-tauri/build.rs new file mode 100644 index 000000000..d860e1e6a --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b GIT binary patch literal 3512 zcmZu!WmMA*AN{X@5ssAZ4hg}RDK$z$WD|)8q(Kox0Y~SUfFLF9LkQ9xg5+pHkQyZj zDkY+HjTi%7-|z1|=iYmM_nvdV|6(x4dJME&v;Y7w80hPm{B_*_NJI5kd(|C={uqeDoRfwZhH52|yc%gW$KbRklqd;%n)9tb&?n%O# z$I0;L220R)^IP6y+es|?jxHrGen$?c~Bsw*Vxb3o8plQHeWI3rbjnBXp5pX9HqTWuO>G zRQ{}>rVd7UG#(iE9qW9^MqU@3<)pZ?zUHW{NsmJ3Q4JG-!^a+FH@N-?rrufSTz2kt zsgbV-mlAh#3rrU*1c$Q$Z`6#5MxevV3T81n(EysY$fPI=d~2yQytIX6UQcZ`_MJMH3pUWgl6li~-BSONf3r zlK536r=fc$;FlAxA5ip~O=kQ!Qh+@yRTggr$ElyB$t>1K#>Hh3%|m=#j@fIWxz~Oa zgy8sM9AKNAkAx&dl@8aS_MC^~#q@_$-@o%paDKBaJg)rmjzgGPbH+z?@%*~H z4Ii75`f~aOqqMxb_Jba7)!g1S=~t@5e>RJqC}WVq>IR^>tY_)GT-x_Hi8@jjRrZt% zs90pIfuTBs5ws%(&Bg^gO#XP^6!+?5EEHq;WE@r54GqKkGM0^mI(aNojm| zVG0S*Btj0xH4a^Wh8c?C&+Ox@d{$wqZ^64`j}ljEXJ0;$6#<9l77O|Of)T8#)>|}? z!eHacCT*gnqRm_0=_*z3T%RU}4R(J^q}+K>W49idR5qsz5BFnH>DY zoff)N<@8y)T8m(My#E^L{o;-3SAO(=sw7J4=+500{sYI8=`J5Rfc?52z#IMHj;)WGr>E}we@ zIeKIKWvt9mLppaRtRNDP^*{VOO>LEQS6poJ4e5#Tt_kpo9^o<^zeimWaxvv^KHW!f zk-MMgwmgEVmij6UvM$Jz%~(=A+NO*@yOJ(%+v>uPzvg-~P(3wM4dJ;e7gXUCee(v_ zud^!+*E>d$h9u_3)OdCSgJY$ApFE= z?JmWBujk!hsYX-|Fd>r2iajAbIXjSILOtZeLDV8nTz!Qy6drGY7;oJbA_yUNw_?xV zUO8laCHa*D)_8xw2-6D8o`mn`S15xu3$J4z-Y*Acx9)J}CZl+3yOqv-uRhLw4X!7D zqKS~W3lRFn>n)Xig#`S_m5Fj4_2rk7UzOjPUO&%PpLJwT&HPE&OlA^k^ zjS6jJ7u5mnLW<@KNz~w7(5PBhPpq=q^-u(DSAi|8yy^1X%&$Gf)k{qL`7L|;>XhhB zC^Y3l?}c;n)D$d14fpog45M`S*5bX+%X9o>zp;&7hW!kYCGP!%Oxcw};!lTYP4~W~ zDG002IqTB#@iUuit2pR+plj0Vc_n{1Z2l(6A>o9HFS_w*)0A4usa-i^q*prKijrJo ze_PaodFvh;oa>V@K#b+bQd}pZvoN8_)u!s^RJj}6o_Rg*{&8(qM4P(xDX&KFt%+c8tp? zm=B9yat!6um~{(HjsUkGq5ElYEYr$qW((2}RS39kyE`ToyKaD~@^<+Ky_!4ZE)P)p4d zc%dI#r_Q5bzEfEFOH$N*XaZvv*ouFd_%mQ`b>ju2Glir&B4VvuIFR%Fz(Cxl`j$BM zESp)*0ajFR^PVKAYo?bn!?oy(ZvuUpJ@64 zLdjd~9ci_tAugLI7=ev99k9&?gd8>`-=A#R790}GnYntJc$w$7LP~@A0KwX;D0;nj>cU;=Q!nVd z@Ja)8=95#^J~i5=zrr(~^L6D7YRe7DXcjqNamn+yznIq8oNGM{?HGtJDq7$a5dzww zN+@353p$wrTREs8zCZ-3BJxV-_SZT^rqt+YK(;;1Lj+p~WnT^Y+(i`6BMzvLe80FQ}7CC6@o|^-8js7ZZpwQv0UheBtsR z-mPLgMA{n~#;OBm7__VDjagWHu;>~@q$-xjXFlY&tE?atr^Bqj>*usf^{jv?n#3(ef zO=KtsOwh?{b&U2mu@F~PfpUth&2Mj6wkCedJ}`4%DM%)Vd?^-%csXSD-R49TY5}4G z=fw-hb9*TvxNFe*Xxg-Z*yDEtdWDcQj z{Lb9MmQK4Ft@O|b+YA`O`&Pe$a#GSp;Dw9Fe|%u=J5-mfb@{|if<_Acg8k(e{6C4@ zofnb45l7U^(=3rVrR$K*#FUddX9PGlZ&W#Jz#Mj7!d%Q?D!monnG zpGGcD6A8>TFlCIFBLr#9^GpjaAowCtrG%}|Aiev}^3Q0Fjs-otJx48Ojk(Lo4|jKYWN%L&b8)10oqmJ- zDdfZ9H4j8$-KzHX8B~9*gl81Lv<~`P=m0$Q`wnQah2Hy`6SQyBr|a%Vc*%#l1+H7p zK`ft1XTnFN@K%JON6q(oKLoToebQ!73}NPoOOPD8HDhulKZK8IT62XeGf}&=?=1E^O#oFET7Jh|AE2Zi)-}sSL>9 zrqJAD;{wTm-OFsgQ!GIX=ageM-Ys?lqoHJFU$=#E2@amhup;WPq(c6j&3t$r-FIjk ztL*!wn}n9o1%}fy&d^WQO`{@+;)3qYj9R`5H{fP!4J||Z{Qi~&iikTbs8+kM2I&bR zyf#uQVE^dXPF1Y5kDq+*)6~+pBvErhAH&MCoKaPoyTI@V_OK!y!zT~)p?Mkq(o&aB znadm7y3BXEYE)o;0w+-1<5Z9ov?1R>mMKr2EXIUk2$VLDZIh@ znDNHcu3>xDlnmK{6>I22t!KG}K{wv`F;gMnk(dsu-vTZ>GqQ!gZ;6%IVdt?S5O4fY z+=V6_-CV4w-~0EoYL}Ak{rxmD*n#HLm(d96<^~zrd*m?& z{eU|}-9A_P0mlszy18QVsHYY4NaqEuW2BO$B0$V20%aFf6bSVt(KaFw%oDy$8;R zu5RKuw1Z|tqO2W4{?BU#$?p{sTSG2KMkT>)MUj%O1<6T0=BW+L9lHRTHY6IWjM+-2}HP)%tvd8}yAzYEn literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128@2x.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e81becee571e96f76aa5667f9324c05e5e7a4479 GIT binary patch literal 7012 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 Sh@|Ye~|0>}wMPLT8jm@Y!H33Sz}5aFI6 zM9Lzqz|;A*0sGs=2A1uU!1nk2dGF7knQwr99SAFen)x(eCO;F8y2C~0FD1YxRTPcy zPWVxkUYmeuz}Tv?7&Fe-!UE{)ZW)Mb;H)^#eHDv$`dkZGguJz@^MA!ZNGAUqt{|0H zpZ7Ch9S`q5!>R%}>}62!+(T^evyO+ImSo2wpu)su4^3nw5(%)KD%gbSev^*HZZ&3( z#&c@Z0gH|}Ck)w6fh0&NBJ62ib%R}(3@$VFl*_#l2W$wQ-~4RmZZAt5O*^2Q5}Xr8Hy@c`#pM?kc?hFWxRXr*mUfUCXf4ka5DD~ zat6d85COB05l#(P9*cQZ3EC8fVdS~?&vN#rce(aF9@xp80O2{{FBvU+{X>Hoh;xI` z{$e^Nw1y*VbO8wv`8|-m?NwNaKGTGaF{P^JLB^DbOYWIbn%eT`*!^C1H36=O8Z-M> zkD~88ry`eSo`tEBN4>w7OWZwUzlh{WM1m8R6zepqGcGMaV7vWY9b?K4b6~|HVG)ec wi>I@ws#sZo7or4_*4M>7;p5{nr2pZ?Uu4>Krr0kU)&Kwi07*qoM6N<$f)&@lf&c&j literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square107x107Logo.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4f27198838968bd60ed7d371bfa23496b7fe5 GIT binary patch literal 2863 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 Y2S8W#vM)6=T>t<807*qoM6N<$f*y@n<^TWy literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square284x284Logo.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c021d2ba76619c08969ab688db3b27f29257aa6f GIT binary patch literal 7737 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 literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square30x30Logo.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa GIT binary patch literal 903 zcmV;219<$2P)2 z+CUKPMqaqGiH;zb!R4$B-WXS^YzQr=@UH>k4?*L)&R=zYjBrZenKdc9|JlS$SO*RJ zKt8FSTDAdk1g_WPAO!p^V!AuL;Lm;uQyV;zKq)J3i(;q*;k+pD%f3eltU`PYdy9(k0&%` zuWAPcV6|-y?|?7O1W!KSK}pbk8#~!|FA@(VJkt^V@0lio{afoAeo*f&$W2s6${5!1eKvAGD2$GZwSB98L2ZVS- zKn8ENRkZ*sb!@QugOrQNK3(sy1v%J#m|rpB+h|Nkqa3FRT>74xSs{#&saU2Lf!_Iq zKmuKAESh`gs!fneGWn+nf}l?7jE$HW!Af&vE5=G!QU)U2v&HLIBGXKk4nQx{hsHjL zLPMAo5=*uInFbq7(aa`Y2VX5wCmaeqvECOFv)a>0t>ZaEb*cJccER=BB?KFZhV$c^ znL*l8x*UYZv4WK|j?~Jt6~~F%{pk~z5A*>^M`?r5m9@RJ_x|uEtX(6Vk@Y()MVto* z93wr)%3m%|#OZ~srm>zF(JvDuTq*@;d&^>_BJm5hOU`3FjG70L#Vzv9I?`<7$T@

jU?lMi@tgxr7CqX_r3uw^y4tVU3Pm0sw;|1WSUO%?=bG`*Kmz6u4{#ti;T7AWIBAEh!(Y zz>O01&#X?Ds@L)Sb{CkG#Yz4$3o d@96)?#cz^xWoA}>B$xmI002ovPDHLkV1l3&k#zt7 literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square310x310Logo.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bc04839491e66c07b16ab03743c0c53b4109cc GIT binary patch literal 8591 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 JPDHLkV1lm|RXG3v literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square71x71Logo.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63440d7984936a9caa89275928d8dce97e4d033b GIT binary patch literal 2011 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∓t$dRJGIadE?vc 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 Kx8Vjl{{H|h@<;Lj literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.ico b/plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b3636e4b22ba65db9061cd60a77b02c92022dfd6 GIT binary patch literal 86642 zcmeEP2|U!>7oQpXz6;qIyGWagPzg~;i?ooGXpc%o)+~`MC6#O`?P*_Srl`>>O4^Vl zt=7su|8s`v_4?O)M!om+p5N#5ojdpUyUV%foO|y2yFUVfNMI)j3lqRqBrISj5XKP* z1VzP8|30{X1nva{bow>8iG-;V5CAR=-#C~+ST9E;Xn-Gr!ky0h;1D2Lf*4;X82+F5 z^O!~^Jf^7tRQm(w05$`n0FD500O1jY`PTJCTr&uF8&Ctd3%CcU15g0^07(D;)9Adf zstIlhAP-;y5Cn(-CIB#7-_;YEcYcq9pC`~SCax^yT;tqFlpu0SAAgb0M(%>+U?7k~|H%oqaU zG7;{Jz;i$ysD3TnZ-VD-5EkR2olyjs0?__2E-*ZQm7VF#;NSU+_7OmYx`1^UZOBN# zZ~z&=UqaKwI`Y#Ck2VnUWrsY50ipqDyIunt0QGGg8gr?2RTL#iQ3}^>n-k1l{K?P(24g%0NBOjQwp>0N6 zhjzBRS^h3uXS+k@hxlm#X1Zv9Hv0OTvCgXwwP zq#48g-{<`$)9@L955ofX03HIiAkD1kBgDb{vAtuK;{yB_#QPb z7^H|%!06@BiN3iB9Ci78{h)m}hG)EA_Y1zH`^*1Wf4llgsP9;I#3BHLhv)*3H@g5R zlV^Z+P(Cg!<3L6m(}8Vg0JP8Z6)1FRdI6mvlhg2JHsAe^X#fq({sQKWx@-!-`2=vgJA|ipM_2(ARW89@<$pz0wRD0er!Mg=)&?pq^Uuj`CRX?9*x7azbOAK z@H2G-^F}=%gkdm!Y=a>`Q^09J3jk?AHwd1ygZo_)zQ|)8q{l2D{8#x>{=D$a3qS*8 z111CAXbTwW4yLv;z_e*M;Xm3zM*5f!0C|LU zg0Iuw|9`uKynsF=_C>Le(g8pk&cc1r&p*nakv`gza{%N4>RJSp5&Mw;$GgsaI*5=q zmKXbCpZlKhA9*1IxDCMk>j5T!|4WB?1IvT?0BiuDe+(M19t1$Sg}`OV0>fk8pmV72 z*#F7{U_NW0eAu7a2&1HW%{zY}3)Up9h#SY3NF47`W8{X8O(W ze>OhDK0LaB@qi`(hS@cO+Q^{od->yi%maY-6m1cfpQ(>qnED85VcK)M(q-n4ZhYr6 z?DL`?bPNYS@*baIA02u2N7*x;b?F+k<*G9Px4US_gnGiT>6iw<41l`L%)cG}F9P5* zCd}dgCjf>?g|QY9W!Ign^11>c|FRO{UA~Ycj6Ga{hP6N!@P*9aA*6#kz6$UJfa8a) z0PLSLo}&x!1~BPEU4Uop-N_!}GWdt%ozXHBy3E`wDI75VA-wBVTOGd0>2?(2cQ9fd87SHgfKkd{y|RPf7B@l#{7Ukq=937 zOc#Ow3jj#VQ2-6_9>9Fw2LE>h7~|aU=kVuGP^Lf!^3@q|AAsdz=JPEV<>d=;gux{Y zr8fO}CVvtF`Or1iSA;ZI04@NY0crqf2Qbg8fDHgW2v5Q|Kl{S^JB<1Pbg6?E@=*d9 z00sld071yJ+cxHB)Ap;SM`vCXf0#BfB^<>kvv01CC`J_@zV+k|RO1cjR9xrCYoxrEvTxwtwwxwz<|Ttaj%K_NO@n-D#) zNr4^!2~!9r^m2kfBuuAwurYI`<2*$GG7aW4KF?FYzrJ}2WJ=%F$ALZ$^l_k%1AQFm z<3Jw=`Z&D9AVFj7Vcf(hBajw0PLk8I{=n~yu$%I0l1F|_gft6 za?!s75C&KbVeKIv>~A1Tfy;$^S>XP!%94LQ-B@QI(6mS(b1{&Y5y)*h$P4#F-2%J> z;97ngfVrOkM=plL@Ku28fHc5jNOw5wlMyMV>41&U{MYlew-@jM$UKSWi1i%z1sVeU zKu$RT+^g7KS^tq9eEF;u(!{-I7eKdsAg{ro3%svrg3zYu_I6hNtLVeJcZW6<_r{5W z9Kf!t?gQX{w06LkGW)Ckqi#J1q=PO@02+j=XySeC!(Xgr4?*rvXo^_hg@NZ&fcK|B z2DlINuaa|j(yf8~j{!Y)ppOEuSE|n*`~`aO2=*ree>s8Aroiumy+H0?>jvsU2GBPG z=;Qz${R_D8-%ApBNhqbs;@(qPsP93*<4VBSyzfo^a-b9TrmIOkfqmOJ7U{cs#sQQ) zjN@?6E7p1FcYWRy+?(Y6En4vXkrP0-VF^tK#w6-JW59nn7TQmcKkWG@&j((X0=~uP z-hQtH=${GYfcI4T+Jo+@Gt?Wj_aeZ%V30fWU4-5)>+jL`7Rs>(#)^V{I`GFD0J6ru zJp$e{Cnta(-$VKyUw@_h`2Ke!0N-K#V2j;&S(5D06(DAN%k8`()z$2V%`%#|b`*UD>8D~&L zfjyZ4X%7X+0)!wxe4mgDfbZ8~`;2`JoL7(s41@o(;6BPL5AYs<>HR28r~{iIFUbG< z@AQ6yJ^$)kD0}E5;k#wH_VT0k4(-N0KqT;ZG^8y7X~P(Twf+~h*GLnNJ^BG%;~+iM zg$IBi)lFDeAp61^B&;{GM$^Ah34q72ZljHSUI@JXk-0palP!RBya8n3E&I>nZmDB5BQO}=69e2E^yug@xMGa#CiPk&bb{6;AaJ(r}h=s>B2xhYWHEhjXL#L zT%9(7@eZyQ0^+7G~b+gU#t=Xw1ZKfZik4slKJ9O2%+pQ3AyfCw(M=Qv-4dl$%aK>pZ2JOOwN zfOhPg`f#K-+qWO7cwd|$IUdSh^PTd4DRbt393%OH+*zK({SkV9X522Fz`f}Lpc85U z2Po4f;6Xm%%Q??i@N5*^Biy1H{!9}7@wA}qI7a7yvc&_Kvh9w06?mcm_{Yoevk1Vl z0N_knRcUZx3`~Zz1sP}f!rBEn9PB^p%FoKKSEPgG0VqH@3s{gp&Z)SUG4}lad*uJ6 zK)Uz>^@6dsuoB7}0}uy%8SIz-UqsV~ecSl{6xkli)d1*Dy~i-u0J4Bzy8PWC9{V-0 z*AePHSq#dH>(bqc_Dh7pxzb{qHVNdv5z5tF+2eT6r+_v9*2sRm?(d~}!CI3X@R+fO zoD8(s0hVAMoi6GoSrhVtd3{CD)xLeZKTEk#eqiT>f!7yVkUy*kGTy)ZVKPwvpnl;T z`v^!A_m!0Za8DNM81Cyp7yIPcH{S&?g|I)oo`h#o!}+OPa3-cMoSP{J;MVKGIjld- zfPXjv;3wLCZE(u~-L3ywAUFOWt@~Z=E9f4173BS_oB6+h@arKi>__T(KMc=hA3|+~ zb5c9-T=pVBI$!}{Am{{t*O}@6uyp>~?DJ_RAbZCAIIfj;x9!KdvsGm@d9WKjxBXw( z9UNE|d{;sF z_vFHOopqlvmjeBWZs+?gx~d^9E1Z`t?!kNBAXAV(T^aBIz?A#fE}m6h0tf(IQ5`|8 zBf?qzJt=yxi-YYa)J53m!8nWITm1djy=;&_w%I)@Pp9nFFwdkPlzkU%52T?`BIXX-^U=z+^%Y8wxZC4R-LQx=SMZCZEb4{{Hq(rkziK$fgt*zYTa{eX}c zj`x1XI~!fPKn~tVTZnBLOC$}2?{jXZZo}_~g!DlEs0TF=HxwX&x`gA2U+L`|6+@o_;pr6KgrvTE#aox*ecLry)%;_6Z@) zze9vSlt-8R1%ZEO0pH{A*Y|h-$ec@8|6dRC>+XE-*ZF_#$2kC8J7Ad?(1(ZqUmMQr zYy>dBMaYzAPh9-=*ilGV9_2rrTFWv`e`kbF`7_4i`&f|wg~zbBzbE|0vZ0NJej2<_ z%J}~K*Rt$^pA2WYsQ2hy1C&wM9B_a5KMQ3Ccn9c-?3r=e!4B*Ky%IzF(wi@o1=@0u z1@xb~UH^+g_DT@GM@57AMwoNPbK=NWkVa45FZohOY9O5{xE9fq@d&d3Aa4SEn;826 zI2U9MI09gPCy^;vR@^2?%OB(q>x;ct2XOu$&%^_Ht^ir!y3Uup{oem~5ZBSp} zJ1vSD$M^;`GmqZn-i32If%hnXJ8*H${g3#~e1?2qih9H9c>Bw;ceXubDabPwz^V=a z4XOvhe#wDL$bzx|&%ChzHkA4S=JwjPpdP1!9GTy%{+_JAcmEF5e;tSq-{t)DGfDhu zX<gsXSELq@*pp%q)9^DAK#0I_4q!_Cj%`o79|^koZSIofLK5{ zz!RR01i1?r!h1Zdj`M$%fjCcWNd3SL?E-$Q8^7iJ2lf41&pN0Ow|{T!3o>me@YoT+ z%9_k2kO#~i{`cF;d$hq^ou(?_`Ave)BK9R^tr0vGp%v7!Uns5`xJ zEYR5oFven+S&%>4fCmtF5V$|3FZe6yMOR;d2(n)e!1dqm>Od{%jWzBqAJNP9jxo;c zfbXzDeO?N(WOY8~0Q4gz{#)$;?j7rp0ohYnkU!{2M?BaN4(vF4z%Mu@kbVPpa5hq-y7QiTo1TTGr@QImiNF0 z;93lf)79`S&hE1DFA0b9EHGz70zN}uy`2x{-?#=-o5BBc`(04~u`h@=Addz4*F(Gs z5FXlq#=oTeKawcQ4rGY)>a6SuVU7uL?rsk10N8^cA%o?(U{|4E*1-n6RRq@&_!|Mp z1i+eZ#~yHTkDo0-dNAzU#Wws$FRa58s1?`__&~b&o93$w4Xv0I@sVgJ>dOuKzIA%xSp2=P{uhq)S;eUC_{iCq;(R|UHLzPu&RKbX8V`M zyANkVpxmJT;(Nh&dSC<4R>0hV>LEyDa50>n0Q&S(X&yvv0l8!Q+XnA%cU)nC_e>d~ zJ-|Ji3Mhw3)Q3Hy58HsQJ*2*nPIvbT)IiuVm~U^r@Jy&^S_taE6p-VO?9(ZMG?u~m zQ0f7siR%qN0Sz_)Y+t%V1KKH9 zoCkpUn!xbLRB z{lIU9!!;u+U^%4AI5!Obvs{oae)j{nCwBj9IiUX#)PMe-%b)Qcp(Lb31AHs}Z{14( z+2eX5%jN$&BV^Mi;#w@~K!0%e1G>9U@LTd{-oteR&(1R=S?d=t&*cCcU;(_wcJy1k zW%b^3kOQ9k(IeJ&jRE+97VLv|H}8Eg{^RcL^&c66?`?IS6QK%ogN!{oKdJ*bzl`V1 zqF%AYb8Pp!*3ogS$2_;AyFCA1IA}vUrlW2#-U(ufA_AlR2i?KTaa z|4eX{70&5^i#mXI;OjkF%(~qj7v_sqodJZ$`K;N0=&Rwp83}mzGv3)@>I3SL7s|gU z^FoF&7d(nu3v>GI+gXtRIS7m6#(zejJ;=2PzNvtA0P3s^$Sx7U%6_3Q^#bMZ(kXux zmMFpcX+o{Rb~AwmUNhzVJr~DqJ_aBQ)B#p6BbY<7pjP4jutXMUIuBugDfu(`($yyv z279m;WQhARzm#ov{^R~Z_s;KXXfc!RmJ4!+z1gj}_8P_lufHdE=6yWdVMZ~(^MnwV?1SGI!}(@bF0{|cGk_bQ zyYqcaIe*W^ar<~o7xsCwLJlJ=>Lk#`1M&9*zL&?>_m4t*!Pk@ahGhc(q6nx1xQ`#& z131rxyaRLq=6$YR{Gma zzJKjv+mCC7>^~@fIf!2f_&WXX`J-`7`d6<1U+M?W7vF?&Vprb~&+f%DMX;auJw3qh zfy#p2_%fMp{Wqr8b-l0IZU+3WWP#`3lEr<9uM1$bE8QaCt3X|Ghk^SF@U1+)z6axt z4li7P#JmD9J;1YA6hO9~;9dfJYaJQiBQ@=b{E=T+Z@_+HpKBHH9M|){=5crY zZ$S<&c#c<3>mkYy`;CylGoY!PbbJK5r$ShQQ7=Cupr^Wt?*+m4UU4rGtO2V|03-m4 z0L=GHVGfDB>J?1{`;k4$2G?!j-5ep{C5{DHeP0{j=UWEy=SDg7^uo9RY&+rs-O)J= zQw2N^TIFQNqc0DH{Ik)Q`T;3mL*z8_f=#Q9SI&fVi$Pzm7A z<^&n%I70a85buZkUnoO>G=P=4|C^w9xNq#2k>k%I6lD!E$Mb_k;J-Ya+rYu<81QRa zPzS&kumMj808fJf*8r~p*e;+=hBF)KF9B4LyAOmXgWbUQyT49~CBGr{Bg6JXnl_Mj z9iY4Qe>dcf?-8+-Uti!q<^b>?>mu#}lmd4IxDLQ)C(sK!_&)?(c=w|9r}eoZJzO*9 zguD^~-IYDsAI7_YJ?(S+F&F-sr&yPuKPCYDkc0odeqHlta0%py`Zf?y3h1u<(GD2` zeg+A>CJmH7jLYF2XU3QuZ7{wc1!Hsuk9rNAKZ_77FN_;d&vEXcyZgRSN6tcAJX7Ll zkj)VzJmUG@7?dzT}BRtvs|D|2<*eNQulF> zxHp~!@o$qqo^OLZfpU!l_Z@&~4?n{H2LRY_+c6(p$nn{k$*_)4S~= zt`8bf>ygemKr<_Se$yGf0cSyf$l$`c znLqYUMtA9DH5|@2;oc*VJ=(Bhz#ot{IMgtn2fe!*(qze;$lA2271@8aaJ$RF%O z;W^skfL>QzGwK`WSYHw7Jj-I)P!}=*zwCN{cLjp|0L9KaG8@W^^DbZ4gFo`adVa?y z&>tbxquz2s8K7^2?-$Z>UST)j&*m7vF5@fE>2avnnAX4j>KY4*LRqr_U-RP6{J1s} z0k&2c+mnC#!uJEQO@nga9Pcgw_F?|43|~Lr20Y>Ejdty?;IARrfUbVPSm4!*9`FnL z1Re3vACSiOwkLaXenz=akAZefN4_)2(>e$Jgzw^VohZ1Uv!!nXZ28Iio)dbPFRN z{)-p(1-p2Ob?8wK`G~x&1szBRJ;FUU9Pt0Av(ueQCE&aq%t!G+`ePuU!+@UdD?ys` zAsu`t5Yp_OXFvaRCVnHqPCMEG`?Wi8JkY~4lo|C8>r**k69Dyq7x2UVX{_%?ARnlw zxOQa*z&RS+pYg3a-Q9cTkd7suCI4To`(LU8w4*pDfb(8H09N#9jjCVIk=Li7z41Ap*tNu5T-W=$!;5$m+rQyH! zptCQ~j&&>?c#Ly?tn&3+;V~UtTfn)MRgm^X0KUg54}f{3cHEN<=d7U1m{(E+Kc3Yx z3E&GrnPdCj1o&3^tloomioP877;vJ__g%l|0Ms|M1Gx4X1$_EhI>3|>+6A;NINrPm z$OBvioCDco{~gyHiUBVH*sk}aKhMnTTP~jSz8dQNFZ(^v-%IPS@!@$F@Xa;cvx$2I z>H**4<*#<{HI!!w*tq}99M6wvN0%MIws$GWAM4|*3#ScKo77F_p|#1U)Ix~`5(`5 z-Uf85sx!uT|E_myvx$&;OZ-kKf_Id8od%ns0LX*Sl#5_0|}^-3#>?)|}~VObmlQdn`4I zFq3-y*DF*X#eE#;<3Jw=`Z&0DllK&!ua>irA=OR!#{huigfYLykpEG3q4fw4D1dLk#*$?DE zR*-2|eh?M@!Cn8(8*QB-Kl__HQx0Gf*wo1@3e#WPNm)6QBek7>x*W{e1QYHG_SsJl z=qeDUE90iF0#TTReeJ*2NnZdwFaOL8Iz0eH6~IRCQ0RQj@Iw(gnEb$JSVU&|zz;?C zr+1PG_nH2#{J;;)F~R$c>$AU$uHXFrzkAMP5U>a0E6@YFGWgBkN%U{=J2U*v-M zci#H!FYoks$pa*&z_`)TDL)W&XFgr>{4DscijKB|A^0u_{gBz`U??$$pv!^9jH}Cn zP?&y3^+OSwbUp{aKf~g5`56*K7QtP{6@VFl8SL^xOrQ|O)^&jeG=bos{ZKXVVo-rW zx-2MzO7w%Y@cL{tATC}C_zW)~2rm4B7vI|oS7^3&4^870BpDV)RJjwhl(t9ZRT^x0Gu~~X zUyxI9Re%$v?0t%aStR**yJ?DTL7DAhf8%VnRHf9y^ZKv$4?j)S3=oN~a-Sn2RzA$9 zgpFgDM)fm_2t_1F{*eAemo1~SO$B0z#{(X|e}3IG)zYefm^veNfY~s@LGd+H3o--U zC8lnpEjg5yqYyRzO;E-**Rd7i6zUOV`%3ZcRWtZ}5 z?fMJK57(U9a>n%GbdJ_=2f~!`C+qIBZRee7d9qHup+586v+DuMLTowGsa1NL6Zaq7 z`&eD7XoQ}}xdXhJgac6voy zpi9;Tt4U(<3EFv%=8{_VCS-$Q96q}Q8Vwbw6PNKS=CLWAZJ@hJ%Ef zoD=7(_Me)6;DY3$U7aaE$!UW@_hG1(cM!gKX$To%9va(ZaThX za1H;|<*Bl}ZIi1-*4r1H2*21Kowoa$>k;ke&JwQ4hvx>wCVN3h-thM=le9~$IodM} z)t!^}DGN=nENZWOf79;txni!k1kHg^Ug2AJC>3*KuNb{`=kU|ES4&n|Kh&}E%{+q# zZW^D~9^R~~YpV<;5Z;ku6(KACLX7|8PSRnk8-q!j0<(EWO}j$Ta>+IBcV2xDdqJBG z$!IS3?S`yjXK$rQO%L{)mQb%3Svf!TjpLx2w;A&eXiOwdPJG|C-&tyAi7 zkL}||1YH_o-8@Vy>|)C*uMz!U?utEWDUozxw`)lA!!31hj&Cs;P)iRupD}O6#c<_= zqi;%#dYTh9LXJm|9g+*b-S&#TVzX!Ad%c#BZO=*T3a@jPi>2ns@a)M?BJCrvHOCXL z`h+-t;3*4US7tj>PN~#=*o}P)Jy)haF^uBdY{(%zD6h?m-Dmeg>88Duk^2VZM3Ts< z{Y%nm^UX#E+!ii+J|}Xl`6zRdGUeeyGi)bEx$)bNeZC;wz-@bm`iX6gAwDUu_ICIi zYzYo6ZjDb+mrNps$M(C`k$kk7eOqite2(ShlVuS@vB=?Gy{~> zMl@eA_gH%-wM^|ieJ_#Ei1>u}3BS(1#=T|IPn#Vy$B&aaNe|$sdIZfTtUXO>%ILSa z|0CV1ccJyZ`d7yB7;@-`jD40po&V#^lv;O+nbi$;b_&V-NWaF-sdq^Gv+pd)zr#Tr zTsZPd>Qc@DvWuo9gqC^k%)6LpH(T@YX0q;$n3zy=xuN`}t()1F5cZOFCUWZ#){~y_ z&o>U4;zGu><`@gQ7q2 z_z!fXs#_)7RXRns9oQLqYWJ%{J2vGQp(9A7NEZ>KZQ+H;hh5wnHkE^F0)kbgbu zjTq<3DYNI_1TMHJ`isspc(}GDN3Ghza>=X&Y6WxFkHBFy`ZU@#VhaN zY*EAD%C(B##BDQf3hdo@=z!caamxDR%S)xBPH6K~rbhZ*Rv>P&qNUYp(6(``)3)?D zyQpp3&APmg?sIjk4DH8&QJypMGRj^x3 zIL$fMnRl&({pzQ4oU1$=E>0~TG;wcrk#5lX2%5}3pO8Ju{#tQ<7gA@PD?XjEZC=VU zUKbOMD%;VqEjlk0_|`5bDH|!cUK(tA>nJoAYAucJ$xCh&M)q+H|hQ`qXiLU+c^ zYZGc~KMi%Cop<&e-Dd6dk1{|+tZwtvac{gr45|!-TFWLI`k2RZjlOv;;YRGIi7xTc zJJ+o)w2tEr*3+9_E?Rzrq9h@wkStJFs!=^={hKRRde>$o=3 zB)(X~x_v1?i}{N5#{WP5QmPVD$F-j$*C@kJyYS-#c^rCE@hGwCA^lYYtPg zx5_#fJm}vzA!yONXO2S*IkL7bSkF0q{JkRo(_>>jw<>cFeBfQ!bXQ)cSZK9HS*hsC zR*zhDN7F5<{M8Lc-JwYU39j7bcI&?zb;7cx=HL?zO&K=FO4=D*MUq>;G!*%{ioP4(BvZz7cP} zGot0-$HV6e7fm6N4Q#j6nPgb*3Hqq+Q}RhOZoi~+0OUk_w8lNYNWe`q$ErYDLgr%) zu~gkG)V#uq99z7>O*4LuON6olDftlXY;_KA(j?tW1SnOE{Uh@nS?|O!zmZ#;S1Irf zoJLsaJKoARM=L^hk9=rgt8UeJ7i*4CIlh^kI}UR)GNKe0nTYM`xOUYz`Em=PMohBd ztZkwXHQIBWQ$M@(5RO|P6W_Jc@8)hR`Fb>mOQ(0wv?Nm`;5bBt?U$r<6YS4$%{ zu2@1icOZoRiJzLa`OQ)GA%}%xcDu2))o8Eq;s}+^q&;4{uVG_zd|YzJ04uFs$32^F z7%SwRIWuR!-&5gT9lVWf{Uwsw*2wtqI_{^*1kX}guud*-PW<(qoW~Cfr8iHXMJ#=3 z{PtMz{fN0^3cUJP?-a~9?;YbnxbW=MDtU96{>QiIxt0}cvkzsn)jIB2utD+!%_T)Q z{$aUTqs$^tYi|KP@sx^5)>Su1CTgX{i^2#m1C91JZ{NSE#GBV;m>W-4Vm$k<6JhkR zfwMQP3gilC4ctH}3VO$RXxauVl`BM#S*9^2^5#n<-#!eQEz=P5GI%!MakW?HYP=`J zNh;p*eqlTJRMa-jmYbhA+9?A%UKh8t@C82Bt(qNaH2ZQ{MOtxoS!Sf7zY)b-sMS4P zjlA5Ra{$MYuu&N+*AzPVOW!7yaC~SSI6YXF38i>pJR_!ME+x`|xTPpUSvrRx{v5dAsj1FtTr_P(=n zO3=ws=TAjbR#N&0CP;;im#v*pcy8YR91%W45O0SZnObmY? z(HK0Nvn8A=`Se0tt?Rkr8>g>&HlN(U=OQ?8Ix$GT%+z_1=0#3JJ{R@sRaO}*#ubVV zuW%{ow@lIgPOjKo+1Kq9p`umc`24Iu&cbw=c1mPe_|&>n3yf<=x=to+yeX&H`rNf6 zH+Am^YR1b}(rwbRw+R|&p6&>E>mxK$+R&*$MR)#1uIHq^YfEz2!mbUr8M#cY)_2Dtf;-W0m8JLPVMOD(0S?rW57d+RWQq6KT$N4o zPt$o7#j8WI5|*Dk_l<%b`~wY-;Xd^b>F&|TNPd@a6(4NoQA ziIZchPOqAukTNI2-%+62$9%_Y&C}~j>e+N(<;yA1Qle6K8*I7L&!^uqqnO9nHa~V9 zxO&D-A-|wCrdp2^Jl1n=T%DXcOxR)jYV%PlA(?5}z@79tpFMB}# zLV-!!*ch=ukJQ!u8|w*r9s`NhH&Z6&RH`1_IgvPuyiC%*XjA)~C~ET3tfNyaLk&8H zHKv4_oGX?!cFZ59E5*K8g|~j=o>Lc6PjJ$jC+}6G%0q)ET=b+^e%?pE;V$)|8WGht zF%M;)>YYg*P)upx>7ikAw=n5s$%6Hg<82oQf6TTh&<^AoW0b35rgum9B>Rf;t(14r zvm0W(MwB;XAtfg)QJkPZ#9DvioLPk@o^HHA;upEKVU@VS^vhPnDjoCLTuB63O7z@Y zDIa+5Om)kvPf%UE@sg!`hc~ItVpH*vJ5q1CN>+RM+fL{5B{e=UO_WrBRvuqYrsye2 zo;bwjBT(z&bi@p*l+cdHkEXxeR1xEH!_fStQ{|?47pIBrO1@yDFXD6a+Nk(O+4J?8 zb7J?Zy=&et~&cEUfz7%$SQODsZ z;*sNtf@A9T4i>+qVg5e)-KoJ0nnMB-YRYWX+zL#GlQHBZ0zlxmP^Q%74~C?h!cw}CO>#~f1rTZ zJvHgMYa6^4`Mqh&$b7po=sgcGbqC)&&cqG%v&xrBHXAMzZ>_SJJ}*|n>b7R?6=8Xm zYWMv!BTsBo($BlH{;J9%%kxpI+yXTyyK9dthAE9!AG*N#aK8uFYRJ$`BaQKorp75H zxfUD@ugEhY$X+x_(atik&Qh{Yq+J|Q@AXh|uAi9+yXu?3D4$^Em)fHX$D4|XPoFsX z?L3-@Ax(Wzy+gfd^%26z)N=)brlHGx_ths5YW#S|lyJ`6cGP|Ha;<}6+nrUi@4co( zkou`AQ*P`RX>6y^Me|;$kCWOJanSej2THY6sFX^zqoTx0(k_lHxf8sRQs&OZS1zSR ztv-?GJ9oh_6KE$-&$S0oZf~E^I5xCuZcX-ahtWo( zZ8FE{5tkR3R<>F$ihc}3c*PTZo9{Y0+L}DHdU|iYUT&L=;ij}tQ9|4;87VQ%H6jM% z*Ug@jb#%hmfL-y#0ffU=h57;m8!cy<(7Xl;#7ao*Od!Z+5&}Fn?BS2uzuolO&M`Mr zbXE-4*V_ARt@!k9_k<`{D#Vh<`%Yildc{gHBGkP2%x(9iRga|NSNXckTr}#cpYZ(L z!Y9Si2M8~C?Da;i=@%OzsXi-cYP!{n8(grjX37bxTgt!Xo?|RH`Kv9>?cOq{hyk|LDbp zpovGD%GZSw=Lho_D_Zg@2wfO{$yTWUCzETQ``n}hZM1dvh~<~6IFzN+`iTo3d{SMg zTWuONF?IRa#Rm(oSBlP-Y|B`ezFKtNyS!r-uM6Ws2LboA`8My?KOc2&Qml}u#F>3k zyvA&9alY*G7QP*u(#lPR4m%7U$l)?@OI_=UEsJa(58jrrtXyO_0V-+!0!!{NE}vQ`@B$iI(Mrj}b|sJu6B*+8yuoy0$< zUxCm)wQT;82{Fk5H%;RVxD#~9&IM-=1!Tx2>FF=h4Ol$h>lEohT*56O`5jSfJO+mN z>3N3vlS1fg!O$^;dGW1#>xc*j!wP6_Tt!+`2MZsR#7mF5?rk1No z2bbg-?+B{sKT^rg$I+ww?75r?cKngbT)9K7+TNdhLJHkVTCilH`=+S9fq`?!+@#0I zpP+My@7Jz)$?5uLT(;NMJK20guB9*Qm!T^8fxPfagJeytJ~ib<&HHw7J5KK$&rxqZ zcZ@O%i)4=?PBD8Xp;Xm6_SGH_v%n!ir95q=t|Q{>4Xi5z7N~em`EWg>-~5rU-oGJ# zvYE6!jzE_wH8YtoJKA;T-LydEorU$+^%sd#Do2kDUA8E^Sub^n#~Mx^_Jn|r+2xyg zwZ(bj-m#?yoZ)<{n_*3CWXn-7pBCd5Z*N|kwKCU1T-=3Fl32oiX0D?~!2S*Me72k* zw`ofZH}O~#?n+Z&Td!4pE8hF*qbUXn*PP<+P-BZZX53gZ%XTuGiLM9r6ZhKHg=Y$7 zt_x4miPm;bf1tcGFPp?KFo-wOqv(!E`K$x9RGm#@WvT`1jtCB%rI{aZ5~bm;EI72kH%ycfrW_{RPI68S9x*XN@6vVG zQ5GA-)}5Z4o$6edwRC}d{rw4zM`x^QahsZKlyN^dG~|3S=~hb;r_Te875;_wj+GCL z?{zGV)v?+^f2_YXQH!j7NH_MCrdm0BsR*Pz^~QqNniKhBk1klDd1Rj1(z>jd^SDif zjI1MTEpIHh(z`QY`l7utY5u3oN7)8tzZT!FP~n#ydudYP%KBk9M~c1Otzi(EsJxOr zd4JkblWlPpi3g?-ig>N_g^Rb;joMGssFbVz7K0L+ptAvl+vhYu|Zc?F6CpNmArTHHhHU$K}%LdrTZUHPD!u-)RCTQGPER8 z{QX143FlME=M0KlZ#11-eb>}>&55XvWb-2#2DX!}16Rv59+fw%FeaXH3EoaPQ?StEC!GjCy9FbNoQ|yzyGQeAnG5Ik!fz_`^K& z^)3TzCcD|&jM=cUZAk6~ZqE1Y)=rPy`ZcH*S{$|&A0zsp|I-G_fsB{ub*JoM2tQ2L zylt4qisj^MlHR9M6?C5a9gHe_P#SkYJh(l@`3-64b*Y8kw{(f6&5~XMcO!;OHrlgn zUcjef;fBPM118+c7m6XLMprxwx*f5Q-(0>X{nA`T@*IlYJYJWT;xGNPHch0D-_h}o z)9=&f@g}Xe%pOS}S+u{y!Qa9raUECvf&1(}+FbjZS8r$ta27lD=FzsWHvt-zP5qUs zKA0abyKYxHsi?)Y(BUajGBRmmRG>Yt(2%=w#ivh`jUV>2v@k4`FPP*L60|)}{Beh7 zr0=<)<3|Yt#^leHl2oH7Pr98#SRi?G@a9_Cf^(v?E?gCp5P#S~;0c`VGNd-ke95o{ z@{PkOdtc?2B`ErnB=^_xEER6Nm>Bwsr*5`h$(q@3RIF^9IS#0a`|y2`T|Dh#p=;@c z7eoC=s(3fBxj8A2G(6TruHp2#s#4;j zZ|3yA>B49`qee$F+sNgKnG#boZdD)Q<YKP2 zs4Qv7anqe`bdD<^lZ)P8a#8-ByplDJUTtf}CQQ)LsHZfnC^*j+=fQi*p>R+1s?iEV zyzPedue{7F@Q^t3oYBY^r`1|48mkoEN2Tv9ko6CtUY*x6#(T(hg|vkyj}57#z1bGC zmXSSM^~cdSM-F){*KZg(c>SK_icJpIH_rLruCvk$R8cFwJ+lAZiKeBN;&cVRjfVz2 z?{``J^jw>EiPX(98{Ot>i)MzdCz|=kDm9t$6Yj$4$pnsfLp+tB)* z?3)H{DRQbjt#*F=ro*4e#_zVpdh#h!RB~;mRnjNBoPEhL%HguJZd~-t#TLF%MS_#Z zDZCK7+J2z%P~MY0npX6u$@iQHgZLtSh91aYMy%WF{%CxDYMIkOk9t1=e#6W%eOMRJ zcrG1tBYb$$%vfKObD42E-siO^EhLKPFB5+w#8cZb|5$>4+q-nxX-cPalLYQ z1;w>CE0en=Ix$Sfu5$AP?=TO6pz+5@wRKtU+BT7E_DvxEpaHeVfwHwm36dNAt zDPvxVQ397o@1b2L)XcVe^-4%Hn{@Gbt)YOp7bQpZM4V`&y4buTw(acJ_9L~fB=~9% zdAit5(^;!};d6Q0*fRH(MSF*c9!!3yH_3yzrB=lIfO6*5;nAslzHe=(y^%V6HAp_% z*rH)jz{JZ}pWA-OQV90RUa`?g+Ow}EU9EVBn#G9H%qZOv>tQb(YV*!!2 z`TRb=BM}`LneW242kV%-yQ$){Du1-0>nB+8`J#s?+a2P#eDTibr?g;3_+^8DMDyEyDF?+!7U z5Nr6fj#%4Z(9sfcUh|daNY}9qgLp*hxb+5=e6rhaQ@GRA!M@CQb;fw&OhdW?f3dZR zgp}L^LlU3S+mwYGUJsHIkiLlMwpXdz!iHs6)+g)>HG6W1bG@Kz(fXD#*TpHLhbPJI zNm4$x!y~A)#Qfd)W0Q|_AK4uTOHdOUgJk{A+txbgPOEMpJ64_{&YqIg5i?qWKpU%g zx@1vcCP((3i1k%xGWG}7-rhdcUvp}%Lq>k;+#5c-17;4E8_)TUaJnf(PFf&%gV(rK z`VOrZ{n=)Xj~%G~!0zI>@_pl@4rUop=&{tPc_2{-f}~l&c1lRoxV!$cV_#l>ztJ(c zb)r|A+y)t;T~5)S_fKiq2<*<-w>I5fhj?A`72D9QbqQPZvqBJzrhf0`3QU_E(j?x7;L@8t-(q(7`rp@pkrvH6>i_;#Ko(wRPsL zo#Sye)tzVUZsi9HC-18;{W#H{Pk&tOgAIu(3AIZl8{48nhd^r_pFDrjq3xe!mJB*7 zno=$s+;K8)r$V*;%`?87#kzy#9Y!K43t zypQuqTFnsNpz8uu3wLo3fq^-^`ehDo6$3Zy8GPoHy73F8Jtk$NcYk!deXOBWt@=*j zZtdZh%$HQByvh zDKkj0khiI$!IFQ~0ox`A=sUg`<_}>GSY*wdDnvbeYNlxQoiqAQ7fz(fE=vn*4^CaGN?bTK_D##a z_E{z?_j`Js9+okh=os?+;|rf#n9o`gWxSuo_@Hb2E`14&A8 zjEMgh<*?kL>_!QpNp!H;3o^<=5{0JjD}E+upSUpA)}7}-#Y$6HT=h^M`R1woGhNPX z*#(xCNvA0OEg^TBHJc{96WVV_kfbUJA}QWm2)_bsMSl5C9W6(@#{CwIchZS$-k;ZYGPdJDSzC-KM=H0HL13b*21oL3(MEQj{zmO?B8`*HZ(B`{ zS!`E%k5Kc0SarUN>(TTzlUCRU+uu)COLgZjI6!;MZY(CXwQ&T|@#bM-X}^H=IUk;7 z{`XAm39l1syt7&MkhTny=z@%Whb(T z%WnKyiPQ0(E2ZfsS&=pG(=T}j`>iss;7xTt;qAHWZqsbSM#-X`8FYU!fvDZ;2Q4R= zXEqAR<;91hH(4b)c5kn&!Bi65Iw10fm(n%-a<(QjX26N@xiuRr#w7_!C zw6Zj1iHWA^V-(ej9IxoSIIia0ni1{2hJGe~7pEL^rTa^SpFJ zx9X|!z1c73SX5SpiE9L0@g8)va8H`q^GSpu@}~#pPcDDnIDN!^0aFEQoA9TK)p7a9 zkBp4i!NcpA5z%y=y4YH}DL8MYOJlRi;Jadzz05YZlb3VU?oHj)e_phfci!N!#mdj) zP7;*kNZ9N2gzML|%*QFtjd)11bDTRcMJH~}w16DP*{7D| z8n&()SHWA}p6Qp!c1kSf?4!oDB(b>gWsfBlBEx1WW+~g7t-9I3xz2e-v#4bH61(Ni zgzFpIbaU4|SCekvr91=|8bhjf3=o}05T24hutZ?F-zDWRE~x=K=$~?{9Ix))w&O$U z8M0dLMB&EwYMjZ3CZswC!5RdAki2A(u&u^S`>XUErP4OGm!%#S0!3M+eo7L&ietjf zi_MHIVlHdTXtZp;9vg9M`Meu$$JsUN*SSn^4Z4^#Kq!0tpbylb1l1iIWlW9JlZD6R zOKwm|pj|YJJ$Pcv$fx`1D<;+PYiMvj6;?J+k9n9@MKe=(sF-&&s$|1~6~W5WRCW0R zQqSC0E$@0Igk#HfLW%G%2(Gxj4!>QldTRHtF zr4z)>hLPUPm2r)_Tv<8sTtCg{_NpfeQ=K{1#*62rmaX5g$VZXm)+F^~H4Ige1LbqQ`G9?f1|^D=;_W3V&Zdh8?@x!Q&0z6Fs1JE^Oz-|SY=+Opc;YJ*Vu zvZuMuZmX6XESz@L@MeUm?haq0j^hdYZFF_C=W*vu%{3AB=`S()Drfeo(E3c>!t9KB zPOfj3E%(tTei$PEEPq{-?M8}gxnz3$dTGo2?ai$dwZtjTRTnqz=G7)9Wot-$)~4AtqbWl%UF-ZS=7MT=BuV(PN=JZO(iz2yu~XSwZGR?vKQ^camR z;^>vd_65$oEf1Hhc$4fY{d(FNKWe(qiPgev1za$K7NVJOEbf0%KJ@((las1768+s) z%;6YY+HxVl@w@|fO9QNaUkFR`%Xo1%BeRVJ0~-AWd&71#h&QCj>IZ|^ zA8`5j-Eb&ST-kncTEj(IxA`S6Oa_-&OC)nmPp=Iyd&y>P`hcx?S7TkQ3}0#}!E6|R z%&fG5nuM652ZKD7Yi(dzCxJuvn!$xy$7UYEmZ##yqoiC*(`aOv#ixr?oyvtc+n=$Y zHoCO&*r7#MM;h*&9=t%$;X{7Z<+8vst|o2L#Z&#=d|xf|D;{32HP%xnfbS(eILJoX zqSwQLd*aVm5xj`YjwoLf{c!V9e9ggrjsvR8OqamZ z@iC{HUq97rr#GImmX^*KMohw)slZVMf-&x<{rHR)#pZGEv>Uv*e_8B+NnRY`Aw0wcjnWgm z4i!>ko_R;gav3Ey`mWBq9`9Uob{3_r>h#BE$$_Vw4)D}@ve|G7Z_e7X`$?JRN^_xw zk8M}=FFp1W#wzzFUA}VURceQb>m&ljr+k8TOQw;}qG!t`)tdw_4dd5hx1Kyrzs`~K zTCL)gX@mf)4O@LmR?nz>B=uq)$w#i>y-nq_Ylki?^A~&DuS-;xGu_sjyxK-gA2ueX z>BqjS*I=LZT5QyolQ%uox1!y&ZK@rRqbd~!?pe5W~@TCR5E!f0-JN!)8k&=zgD^6*6Av;ORUa<$9WSQj4p+>Q!rnbp*1MHbl+wcce+CCaAD8EHNrX%LdbF_AnjY~B_%9fcdBzP_Gw zrh81kyr%xjCg?Z|-{XE{cU57Jy?$}pzKNoVqU94fqU|abl@~7cU-dqKvT0shg_!Ow zD_i3a8BXSc9m~`b>Xtf$Uzj&xvsqbxmm|X#cpk4hunQKhE`^95ILGgksr)?rJmJ3B z7tFgctx z7#`}v*seB<%c-(I?+I;vH$t1NW6Jx;#pf-vNsjjncFkYIx#@qcoQprx-yg@fF|ugN zHkVv7mzev?Epo|5C>q*?&2%GCa>=FK8d(x4m)x3-klPlLYq?)izN6Usb|ch64??x( z_WS%EzklKP2b}Xb=RD5k^?tpd@8e=e>N6zGj-$7>#TqEe3sjwJ5A|xk2E@VUmR}~_CV^_|G=M2k!(iDUumE&^I{=P=X)xH}?wRWc< z2F;X7-bcjxwF#TbxgR%n#L?`ReoLK-z1PV7ombro33=4Yb-THogZ*?IcY%?6+K#(4 zK@e5r+fYyYRPw!4luvp)%goUr9c;{s8AgGO;k?z@Fvk>hmX#N^FgTC_SD2)3J*)t?D97Ua|a#gP!HZ}h`w4mox{%kWQ(42T_f^)SiQ)z@&f zXk#qycX(ywOkEWlkr7RRX3Vw|JaU1nC3Z&AwbGh>#x^*c4Ji=s(}9VsXbA=y)8pXR z((g4{1*!O1oe|W$J7*{m8EY_H8=Fv(X!hNzDAWBu{Ak3&(TK za&>GY&WBz~?Q)RLdA_%|vnR02S+n;OX96yj&o#)dhO$n}-9mHRxW0&l67`Us%M!%$ z78^2fMaeWD-B-a(iLUPNkh4hBQNms@i{(e>FK^G@iYiLnp@;%Hs??>O9}zMLLh)gX zs;js(+-pwaMQ-9G!Oy>kr=|Ot*!a|t!JcNKEced7R?4MbJnGYIFOvT4f^79U8S>P> zW_*A{0LfZHlLycROBgSVT&TM)7(jcA?62rDT zxL-xiq>`bAEudHqA|ZRliL`pc**ZWW z7a5F8uC1O9K)|a^gF1Wo-PP@BFlE-5qivGFhQVL`Ncm!x2vvLzE3J!PKovkX=<^w;$#|*{-3#-;lz7(NC%ath)OXpeYXaQ>Elip9&N7C5th2!Gy$S zbJuxNuWhVjErkCvrw3*iu}>a=!f}L%Oy)Ne+E!rZN+?)6rep3w`P>y_2pjaik#!D+ zI$%7y@HaK>use5emETNuwjH~aC*rU2j72C0H*^bO@&!m)TefkO;l65964?5mde6ff6;y@+is%x(IOQNL zt{(rXW=OY1r{~9a`86Qq^WnBbRl>d|L`@;ORJj2DP?;w^Ex>+y;XO;HA;X>8&;qUW zGNDPBB=?8g#(a-%QYWC;V$ zFKw+WDK?O!^QcU`$z@`U452q;TGXTjafgXWv@K#b^v13h(Z<9b0PJxFWEd^3OLHm; zw(XQXlT2_PF%#F}5T@+8wo-A|=&^2HmVa(axq$&%DfCB5a8=n`1!|_}tbS@E!ZJ^1 zf#WmjlYIP!jZ)N?u|#3Yi1pLW_=atSAZ*JPfj1+Ws$OG z313h8CQjD5E5DYY*531m^G~Q~8W@ZTfLo1r+wU*x6ot?&aoHDOfRuV$rTM2D$4hlV z{?HdA<8tY0lJU4~CvkF~x?ld7vA0EKn@@q|ZWfrr5)&K@avzS-D)aeii2Hxl{QR$SC}|sBR)4XPFAh@xs+mB}csE@A5$cWq0B-FI AKmY&$ literal 0 HcmV?d00001 diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.png b/plugins/store/examples/AppSettingsManager/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6 GIT binary patch literal 14183 zcmc&*hgTC%wBCeJLXln+C6oXPQk9~VfFMXm0g;ZP*k}rfNJ&5hL6qJ^iXdG;rPl-j zsR|1I=p-T?fe4|6B>UEP-v97&PEK|+vvX&6XYSnlec!}dTN-n*A7cjqfXn2P;S~UY zLx*sHjRpFlJRYS&KS;kz4*meZ!T;|I175!of&PT~UopM_RDCs#mpz{dm* z+I40CP^Xy~>f1hst(sm!stqil+5R3%vrLgnC*MQ4d&;9 z;#YCkVE=nijZ2oA&dg$~*dLv_6klcUz7sXWtz@@nzE~+QLAmPNQ10W&z^aJ+*{z+z zt-jG-nm6Hv%>O@s2=9)k5=H0YTwx6IkHBFr70X+2Kfcr`H(y{fR z8Q<7Y37J#y=Kn5k;}svC@8y;k%s8IeiS9W5+_UWF*7kR-CtmhCKsAN~BK3Ojr_5q*Urhq{djxt3B<3W0RE@xz&;xiz;*JqY4s_gI4FUqmME@*3Wu>7lh_8& zB$3)u5php6pcfT~!%No9%OBoWCk_1S(^XeLrK~Vz*_#5FV}6cA0z453@b=X>+lDBN zch$4uT8yz18o_n~DmW=h5lu#OsWf|8?Q?Y~UvZMSV=8<2jnQZ_07yu{0QluMTf*z7 zz()`I6F$DfxX!E+iYt$JP2Ch1BzT|!T#s(*?$`C_hx;S?s=!bZ0EqPu9KNAcJiQ5s zNx}f_>rWX4>nl^Z>Y!)&ZZ2QEOl3oE@JAE_f<|z__L}RQ)qFjdoIK}NuxuUbqZN8U zy^K9S?h=4wUu9w3d^r*>Udo;y`R{yXclT?Ul5HeAEEud&gVtyZgeUN7YR$1K7RwH7b3(fRy}50|?$WJ%>i1m1@UG!Wgl zM~Jw{8I29T{4WTe8ifE(@^XYKU*%*kFofQO$?~?x!$GD+CS^IO1;dL?ph{S{`8Bz$ z+3Rh}(HG%Byj}zT(L#7oWx_*D@zZ)B+7J$KM%ZBFWEScH7N`Q}bLiy7J%B|I4p3rk zFxnkn05zEnmrFUUo?$1Rh{R}HH{k8_CQN@e1H$=mz&XEh4DUL<#v1y&9Hwy>Njhx{ z;QYr)_{=;il0nX>VEHpn9JmjEqsI(rGCd7vv)oJ5*ARa!j)NWs>g{|2;X5CJmk-EK zv^tPoETjJ_0De6*A?RcyypRQ7I013v5LzCx1NCcw-^B-sV+RWCDTgR_9#IeV!Iya( z$O1z+t~Ag}|KJ0Pry|`OIekM>To(;IzY;V)JsV@S0(o{=T(K3+-$#E`J&Jp;VQ&Gw9_7mzJ39HdS7WBj2hu>RK@AZc>+DtZ97&R$;ONX zA}>#G6M5ksnvL$nK`XM+YjvREi{N}rnk=i@wq34B>DhNqYVN;At|cO(a0o!(z0YdJ znLzBf+CAf0aj&D@?O^l8>(De=#D*wRKQ`d!>4sdkR%k$M^3u$H==}1XP-Q$SJtS=t z<>&Zd2mi@1alLgs`+8#v<^)$t0tolJE5fV(xCwLi=WMxv;Ug^c%|EOM5r#&1H^+K? zuewVttC9LA1ghD#aEURO0Fv4vjPZVXufT04CA?N2)b2@+5PYku%$CcyD}V%Ai>BOs z$1$^lluni>GavLpUVXfVlf$Q2+_a(`)ACnom>F$$ivy}SI%8hE$1Ln$LhpK?EvhvY z8L@DN$!KFla`|aeF+J>&4T*~ncpRgE)p;zcKIv zf`ROvVnV~01}M37dV@r%Hgw(7weTfLvK1_rz}##QVWD3H-Ki**{=??71MhK3vON$> z$Z9-Ff7Q%D&JJjx^sGAlT(e~p(W;jDA!~PXzOD7CSU@ms zkM41VQ8k^na;s+gi5__`g&sH+(CK$DXw*7==4%3TngKJAW}C{`leYBf^_^j17)QDb z)SOo2`A^#D4{PahKET#;UWry0mwQ)^&5}|Bo4E=ov0gh%W2DHv)R6 zt1Iu;Zj8GvX(ih~kxa=f>2|zj3kU+Xrtj<-(}|-eWQu>QKQR}7hrp=msOBIi87jSB$axtJt0QnD1iN^| zWfb=-EX$qL_lbP@H=En;JbmYoVf|6Uub>og-)g3}H%FC8%LO4so|5EYGfT-T5@;Z^ zltw{qklaj%P``y9^I13K@jhsKp?nc4dGA*ehGb-B-gvgbkK`SL%SIyretz;wo-`&? zv!=C1&geB?u7haS2K$#+2q1-jbtP{pR7K%LU}td|qUZf(W)Tc@mxhfcSeM@_{N`q} z4?q2sMJgfl*_B~X^YP+V;DLX!_R5PgIWZn~@*>g>_dp6p7-tTq1_jZB2aXFS5p#wp zxlzyL2$@NMJMFU;y`+F|GDbmrEbOusQ;1!H96=K*cps@vKl3-CyuZt?=n9h64yPgs zBRpmfq7KC{uE6A$$F1G<4o`Bvi1-4nSRVY-D?}Y~=P*jHN`#&BuI{a?csJTr>+^g- z{7Brs`OjTyT^43-?P_(oGKE!Xej6~VM~m3PzC?@xD(cN`wMsv+lqGR)$_6hg1#4F1 z>9}PH_Bp!kpGM`H4Ze!nA`2-or$Z0K<2okvs{H<^G5zoYje|s6Gf(r8(3ZgJlmITEnnmW5+=gk+X0ts!tNRpE5Jzk4)k@xh<)3BpV${G~HD)O7 zO&@C%0Ga+2g&g7Rr1MV+g>RX0SH`!%0t!`cWp;%4=~l1oo2`gb5A6VAHFN!T#g{(_ z5tssyS~!)W<)lH@*x~~puJLxDG8GTi8Xdg)C?ejt%aB7vm$Zv;ZwXUgJvmIJMwqTV z#&CSNW-F$GhQ`Go!vj#6>{eewXMM99aj!pPW#5%q#FH#ydFci$D))O)QlCi_0EM{r$W{SkJg`Ic3Y(t3i8=o`n#ziabr z5u$TNp+`u$?&8i&2D1My<)2rMJeLL(L;)PN#DEg3yTH-|2y8Hca#L=m8CZ zsdOnOC=^!y|ia&g?BlXg)XP{0d|T8Nwhfat~l z^w##=Fn@B7fBk}p#M?Cd#M$i)jc#V-PJmp_O!6-(KRm~aAdd400*00CHJEHgmtrr? z{MKr>GYPT+$^1cNJaoCrj_2Aj7| zuCpx4(fR~fB0w-hG1D8?qs17kMu&{e4=WwTB{_B?d_e7m%nMp&m9yR6?C{`^HFH@S`Ey0K9Dk^+berIidxcQvOgnin#^-O>I zNF(l_XJgQF-KE^~GGT<#MuM*uZOyoi-gj%mA`)apRZ%Yr&`tzt5oQ7i2k{w|pPsb0 zz;&P%WbPF!qjefP{yR^gkP|#%Z{|FNS5z?_^oZ1l`HLt83$&>Y@PPG0*|sG?iNE!#k<9vt`aps~m8rA=`QXa(YV{8vDwjk5 z8qW}xn20VZ$tMjiu$YDSC-dO znG6L`L2EiX}$a8Onl~{PzxAn%rIn zJNM~=!OI}ZlJWb3r-k1Yx%M)oAWjVOrio4XjjFn$-;cg%bYYx98=-fU>*<0Wviq6Z z@*1!wztr?7-8s~$;&t_6wJ&=Yh?y5%VJFjPMw#2Bw<^guDXdvy&;M?$H#UbL&_N0?VNk)as8Y*!5)|8hr8rI3bUn*@3e z9t$Q4=~u-Fu0q?R~EXBlK$R--by1SCTyQU13HNSDYY|%p60rI zCThl)A+>lEP%q?)TTAXKnnUs7#6;j-N!(AvVd-&dTcSYS&53#d!K7R)p*c?+OHhFt zu!iY}7CWs4izL;NOiZ)^DMJ62`{Xfx3Na zx3MI$BXIsU41N*L!xo8Ayg7aw^UhYhHBLkZGRi|!^1ML|Eq%?-@^enGRSNQvwA{^D zggCHKj_N=O_uq6<7O^XrL5(tZ{1U<~O(&x^4)(rGvHlR?{6hAB6rZ2~lxsjQh@9!P zd4HTdCR`}9D(30hFO$y|UEaqEAzcg!*m4AdU~}MumD*#bt4v?7mtHT&*xI4_qi`EB0 zxH_3fe{#;nF^IY@_9}o0q+WJZG0alF{F*yx6x6NzZO7Eg4o`4gewgfp(D#cj+ zoFo5kbKX#IG3nArL@%DGbb?+&x_}09GlQps&B+-15th20HvHho?~RTbmf`houEWB> z4u>mH{wJyVZR~_p8R^0x@K`)=U)Y8B%{(0Iu{lYD+$^9fLC7&1W0nn`0B^tW@I?cH zLI3^0M+;pI&uspdUEjBuK8 z^itfn`6__A%iE;|guR7ZUq8_~>}KhG&MIJir|#JR0(>~X@ZB86)@<9LNzdyX5Cv=j zsy^KMa`!8+x$E0*u1-&Dqp*4Ku*o=10elGplcNF4NQ-jb# z(*r!T#L5*oQ4==X@hy`X#1+|nE4v5sr1UOT?X;B>kzhAv;)Ve&m7RJ4Zp~XoQA$!N z$j-6C7LK{`c54$XkPIeU`*r+UI_XAisJyP~1?GInw+ZritPp3`h;8+LF~%X~(lj)I z1-o&$*EeD>)dU;Xkjj*^r}}2^wi|vo}_z5DE(j`*u=_yu`62TW68d=daMJF z>8{4-<(XxLf71f!Z{fd`do)_chDWNcwK`^xqG$Mm7=bvt^cfO)I}-I$j)^8sZ~qh(lq zZAr(i7Tdb)jpA?eL*3x<`qUuVUKQ;L_=$7EEcM&hh?zZnnunW>RO;&SurY!F(+#Vl zCuUDYDDn~E;EqSOVP#y*;MNfpZ)kKCOHf=upFFH2S0pxbYXY~BBi&$bT>ij?ES_i6 zOHu8>Bg*CHr0fqm^fF13#NtBlUGG zc4T_|`qP_zUaEVe;U^9qV9Gy8dtL6A0GT_Cp0=J{3SLe^a{sqTHs_$JMf&#LhiTn& zc1;~t=`;6TzJ|7~#ZSzoHT?bi0ebXbqX`N@qOHp^kOEUw6rq-T!@|du1l9 z(A?=_?B5{GiLa6F?$hv0oV?PmvsI-8?BO0QYnPRFRh#Z4>~;&C)+r9l#2GHUjq3H@ zZ>cAI5+nqv`PBIR4oX`T;9JV}!=Be5Qsgs{?!FZx>tXCh#m%pgC%`X1ld`je) zAWlVDB8Ty!9S^V>vz1`?P6`-7Q}5>6w*A{qM=Mep5q|rO<)I{V%x%E$tSw;rpGuCq z4CuXrO(Ah3zU+m7uU2I`umNa5x_t9b%h=ard^lP={?Ryv6@h*p0v;K_ns%rW_*|ZB zhj*tBuJOTB-j|FCU4iku>e3bjix!R6wEpGlsizXVF_1O#_y|}|_qiO}vjP4{1X8

5l#v3A#xI3*z~1~fvo9Q(N^(==!|_FZ z*duZ=+M1~)8E|otX8KNZlr?qels#x_1Xq@9IIw~@9uAREJVH)Xw^}UclF6327}E42 zT)E&?U%TK?(+K7%R!`H5oX0i)4Qn5??Iw3p5J~6_u+aWehY{DSn}3V2p$bgjnAu?o)v@iC254fXeMv50$9YrpU`N?u@QIWs)T?SP|fa}(|9 zqAX+!7`cx=4)cCBg5h~pu(?@9`)aCr#oyz$ld=#RFxYCNZCZls@4v2~*e-t6PEVvV z&bbK3b3wt(Coc!ufAbXXC<**#HQ%J9k`New6iG<5RjtO4XVO?dCvwxD{kJ#tfQr(X zg^NTwF-FwAeS_{V4bfel8l`~NbfrTR2s!G>WduFWxH(t~aK4q=6rEE^$+Uox>gJO2 z{L<;6Q6nHa5#ZEM>H58not!)z(6*_=^~8}jWf*IG$AUKVWOZ4?)GfF z+BM#*wKKmLFD7E~W3U!$IVm$k_k1f&Kz6WV8@55P?r~bcg-Za-!rvW?ns&)KOGT2~ zlkAyqhQj=P$Eg3w#K~}zH@J5bo-BfHjInKSz$@?+Z)NPD4pHj^_Qxmi`UqoTy=`sV zLVxrXGuBr=QRm|}wg75yetQQK4fY3#P_~J}zEfPnb2C4Wo!E(d*(cA;b?7$g2in<( zPn)ghX}nzJPmb6(3Dpeg_GW~Hc}Lt=lgsSZz z!5QXyz7KaR;D`3Ee}d`af{H>WWZ|Io1QI3~4Ll_`g1(cRnhLK73Ro)7zPCd={1W2x zRp%Xlvv4>!<2@}$hz|!V{T}_eHx2xkLl^hQoZTCnsjCl|W_@5Fx2(+j0ogy&Y+;L- z<)G$*CiN7hOm^s!{U>1F7U=iNk{+u~dAC!eDz%=|glFW0jEZU1&o(G_c#wTxUjnG} z#cg3>jEpUi#Mlq@t?Msg_#geK^Lx@DyHWf7=AS5vVyM7YOjvUVCfcpVR<(+5!H?9- zySI6s>o3m&*zr||=wcPGyBkQV`EWJl@bH8qobjOp+sXL*)=&yX)8aAbf~tGv?a2SN zu^Ddo-z?DWk9h9Yz#5p^NU#x~wYSd?H@w@!2Gb4G)6-utEMV~~M85Br5ff(v5O1|T z zIR`9v=XXbK8N1BZV|h34+~1u1oJ_h>7aS*^LOi zS?hm+ec#1L<6bZ!Oc9OG-gV_V$j{5(O1RZD9`g%{h;v>0d zWiz)=`n67_-$k!Qp(dKW6m@Xi_CesKg~LL=e5V3#YN>;l#X) zHz6W=*ucpXy35@nx1)e|M-IcA>?RmWa)fP$3;*?-yraubd*HgRmAxty2ChoMmOJ(z zJKCPRl#%}U=5It0RrpPM-!VH}hd=~)Dgrd$Xa{xl7m@&qyV;7{bKiJt1}0(zWG;nM z*1KXcyD)ss@$q)hg31UNhb@0?Nl9`#klSY~0mVw;&b=%QK~s8IFXc!F5p^a~%zWmV zZJtPB8R=a#DYTy5Z)F|d(vv8Le0cDUfp(A=+8=zftD?-zNk522{i7(|otj9m+yuVX+hY6rRUn6cGGIp1ZdbJid*Uj}>|6O+%M$p(Q32+w2=sfwN14nBnms&GWQT;bYy>aG9 zPr6Cd#uA1P#}T@__%bE|_zq$$Uq0D;)oI(51NepuZw_VsS}Wm3fO?65Ghs-L5Y7GJ zLIb!-G_V};j1QOoJGZuU!{_^uLL^q?67ac`_1g7Ci)<1m$~^foc2@Oz_+n^`6C*Q) z4T02iPh}_YT5x8sN4uk?9(*=IfB@7nLJx4m+z4*1%olhnL{b0QQ?J_k&g=uRR#T@ck<>fO@F?_=pHVa@D;b*RSyCu;(cPAe?GFc~o>pnJbs_ zl1l-I8t{|mTecYcs@j1uvW09EKFp82PJS04Fs+8ys-MS8Kj%a0`K9hOFsr?0KT05_ z-qPfC|ADFn6bo)#`5S)^%6XKt9>$%BPRiU2ACnI78LtlM!3Y|@WCuRmwTvdeR}e|O zoQ_8f>>i3%vce(s;hDMjqMi|dq)o^x#NC#}_V3i1xARk!cH>NLtnx*VG91+hRXb2i z(8Rh(carI}sY2CavhN=3-`7;QH(11wQh zP;d43IbKw1Bs8TPtY$TgJe$}bJ6dRQH}XAxtwrzArUe%5#s*>t*c4ri%riv3((Aa}(}jAR@Z4(p z-St<0$zye=znm-re+QT%YgT0lPQW`C`>bnml$OKpIUb_K)Ln?HtlN7&D? zce9gBWPlhOdWJU%Z$Rp)g}T_;Q-S+@A>VbkYDi-}Xb&x8WhB@;QZD`|oq&vvW6`i`65b&(uy+Zt<<-oGX}plTUIr!V9THGPYbgYYYZ zj~5jMhZ@h}sNarolPDj80vQqXKK3UV90%jX`t-X^Z2HIP%yZi7SW7I*uG-UA1 zVuRN1Z-#@F^j8(GI^$^4?DPv4;ZtL1WdyjrQq$d>ItF4s&Rdc;l6asHjkJ2YfANQ0tp93~R_WJ6W;!Fw6 z`_&T%lm@4jAACAX+oQ?1G)|xS;NylhQw_dgg=$xgY#$BUy?y&%#DFTBJ}oo*y`*WW zh0BBTF|O=ILcEXiIx*WvX?<#QHH=ot+7rnLLWDsQ6n9`7(>}SUD$c_hy|u87|2ehz z!$4Gq)@1SaVZOOIr){?PUr#i=QZXpTP4SE^_HdZ615YT-Mxq zaU=o9m|f2%zQ!`{{bY$e6hmX3)`!B|4Epd^b@RK%3s?=p?RQz&wO;j-(5P1kck$wd zSJ&DfjKN$?vegNGkE)ftChzIhc-&J&UP~)iQS{5IgFrWb(-TpP389q}c`g5_UKr}* zTV`e40XXe8`o2v{SM^gaF{tN~vs1oYEH0ZIG<2|4fWlpe;{Q7v2eV4MT?@pAC#FQ} z1#v^nMVh9F(f8xk1twtl9n%~9=PhY~kse$*zeza6>Y~mucCA-aK#_m8kW$;ho}k)d zef)!x)+xig;L+^Zn@-hLjJ|=MGQgJO48Zh|BVx3qjQpD~&keYzu08*c`6L77$Odq^)ySMSKo~EG>7qO4) zGQ)1PUpjB%VxfNDiDf4Ro1o$&^7Z)mNLab|_7)vaPv5!^CHt3vXwv#|+`R07+H52% zKo%nK#80s-o)YZj?*ITk+}k^g+myi0bp#KfHwslIGiuDjs~yxHx&gptDVWHG=70&V zJ8Io-FR9z~W&kLF(n_>c?3f)cYo6``BMI)wm3jZFbPN8=?HR1B%7>HqNtp?ns~LRX z9I^(_-#Wqs4rYIAzyB*x_rTr;$D0IjmOVaIb*f!eRcm`A$QFiU*E+iYVy(ww*D#+G z4HPQp`u-fa`BDzB*4ZfjHvM8IMi!3!Rv9Ifk3a)bnSGPt_|HayKxwKr8EiZp4ENUM z53~}@bJhH>Z+4qaz_de#z`Nk~-Xj#@`R5upr+J$E_E78H>WPHkEn!|F-Wx92_)~gF z2)F3pQ^!@nTj?i4U^t|f_WD0c>fxtBtXMyIl3x(VyD-sm2;X&fx~*6;rc?rV_gch` zyN$kU`>}KvO#R2AS=Jr7_3Ipox2Z@^{e^GbkT-DuOD$?@^P~b?+CL`B%(rGrZX(XK zB;huyA)r%y72y_VVMa0v_3;!uONHw zoRni;$j1Ra@!^urL#n@$>-xC*WIGo_R5kih{`Gxs4?X65^Z|d%#zxiVbe&$7!wqpB z&Gqq9c!_(*Qp%}ybz$e$eNfD%25@W1%^-Lv!No&Q7eO-*_+I+nyzFbkExed7(pohd zFcaui&L7DXAzjue3 zAncEwaY=bSyTKAntX{Y``Td(kG^niT%yilzTza@SJ?iu5#t=xpcNrHq;5&!j8s6Oy zetM@f_AI0nlI6oafRq+dpX=eD9JgvAw&63Y9DJu}eMQtm%uMgk3K#)+7{ZlVy3fxP zBR(sz&2{V9I!pzKO(qAsz>_xVOOyl^XwC?y4S(8G3sSSj#eFOS0}q)SBw@cO2`27r ze(`We&e5WW?y7A~hhHz4;n*9u=1}rRDJ6V7K~!v*_peughtWU0tpa}h8`F4r1z?lD zN3U_T4#UQb{975_<1b`0`)vi|=5-7rGUbFJ>TCOS;$2XR!cZ|m1HXl4PvaWzU#)Av zV^0!NYg2Yd5~CSM9#DJGNkF{Ab335tD*S3or#<1O%fW*o?Xu^@CP<*c{YpDF|k?t^m$uBbp4Lwi@Baxp9=Mc*(~xK6`g z=hKP^8aedgD#a7mFY}l#Mq+QAZERu0OuxWZS1ULRxwAufv^C?3d%-W=%KJC3-uH}o z1oZPfArJj~@24Pyk@?>uWUms4%sf^D0npR@uxOruAu#d#f3rWINyCbv1WuszHEAz& z=?qL;EJ^}GJt`ml*Cb64NCM3D_Z;&ll82@1V*Vfr;x~{CbpuZ_w~aAeS^5l>0R?!d zOUu`UqI4T!6aN@F4>pDmc_^2GLMq=H1kArrC$v-S;Ly(W+)6v}=fJXt#Kw?r z<4BNZ)kbJ5nvgPW^BF=39{nSI5a0dBXlGZnU!2@8@uC@|B?9ISkRZ)P@>eoY*k`i{ zpIdaL3~cVlGz+YqmT|aE=C-@QkuSOE`e&o-2a`_m#D7^@wTL-hCp^eggtg@r#Kl1# zw4tC;ko=KFA>wgkGS=z*cj@L-#$`K*B|(33f}w1JKLmw^yYL(j>aO0cuko3}1W8{o zrx%w0qh*SnV6qR)#I-k`UGfwvg=!lp*Y)<$?(s5G;XptR`oXMthRorcd&W&C2| z!^L@skGCA-~}Ka^T8SSo0nynP|RU!FKm;e3uRh%sH=JP2(kzg*8>fg z*#_C9z>d<_M#%~*0rduNj`qqMZAAIrbkJN$h+hkbG|IT8OK{Ug*BfV7`67$&?LOS3 zhT3Rfp==4iG-;np#jrT<8R%UC;K~puSgdfHC=_ot5?)jrFH>g5KAHEmwtQHkiiyN6B2g)XX%#m5#`fPyR!RI z5M2-E&!BSvrD+Em(}f*VFd%7AUmA0^Xux{c6R@kes6AJzJ& z$cFLCdjgU*hhG=2ehpu4QV4{1_1}3xN*GT943{@|4Thv)b7D;}$=^aWh^Br?N?865 ze}23(;yHT?oU)V+g#unK^kTnu+&VG#yu?!i1ZS zX#zTt$Y09M-=Rc6Iuhe|Ob~eU*%@fPZN~VrOx>t^1`Q%}NUp)J0DC-ery?iN=fNtg zq7es_@hL>?<+(aOv@b@GpD7&pcXKau3j!2~_)QD3BkTSIY|}(3XJQ?06)6p4G;-;}Y@)~&+B4D(Q#kj~nC@K=65{rb~5fQ?27_$O{UA`h=+ zk-SJ^m5V?CHa5hGtTxIb(OyI-KI(h=_sPXWD{u)Jfy&f{MB0%pYWZKL>oHzz7diuV z|7}09KDCW$bxeIded}%F(v~XTCr-r)5uOjh(AFjgg#6KCwXCfpXOq1yFS3^Z6P|1A z<+TjRjM)9!)l+*g$=V9-@u+q_sGjk)=&553xTvh7zFfhz|Ai$yQkNtPN!M4%ED^8g zosuJv=Y%Lz8R20ju_!X6`D( + store: &Store, + ) -> Result> { + let launch_at_login = store + .get("appSettings.launchAtLogin") + .and_then(|v| v.as_bool()) + .unwrap_or(false); + + let theme = store + .get("appSettings.theme") + .and_then(|v| v.as_str()) + .map(|s| s.to_string()) + .unwrap_or_else(|| "dark".to_string()); + + Ok(AppSettings { + launch_at_login, + theme, + }) + } +} diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs new file mode 100644 index 000000000..61594c4bc --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs @@ -0,0 +1,40 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use tauri_plugin_store::StoreBuilder; + +mod app; +use app::settings::AppSettings; + +fn main() { + tauri::Builder::default() + .plugin(tauri_plugin_store::Builder::default().build()) + .setup(|app| { + // Init store and load it from disk + let mut store = StoreBuilder::new(app.handle(), "settings.json".parse()?).build(); + + // If there are no saved settings yet, this will return an error so we ignore the return value. + let _ = store.load(); + + let app_settings = AppSettings::load_from_store(&store); + + match app_settings { + Ok(app_settings) => { + let theme = app_settings.theme; + let launch_at_login = app_settings.launch_at_login; + + println!("theme {}", theme); + println!("launch_at_login {}", launch_at_login); + + Ok(()) + } + Err(err) => { + eprintln!("Error loading settings: {}", err); + // Handle the error case if needed + Err(err) // Convert the error to a Box and return Err(err) here + } + } + }) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json b/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json new file mode 100644 index 000000000..d7122a312 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json @@ -0,0 +1,46 @@ +{ + "build": { + "beforeDevCommand": "pnpm dev", + "beforeBuildCommand": "pnpm build", + "devPath": "http://localhost:1420", + "distDir": "../dist", + "withGlobalTauri": true + }, + "package": { + "productName": "AppSettingsManager", + "version": "0.0.0" + }, + "tauri": { + "allowlist": { + "all": false, + "shell": { + "all": false, + "open": true + } + }, + "bundle": { + "active": true, + "targets": "all", + "identifier": "com.tauri.dev", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + }, + "security": { + "csp": null + }, + "windows": [ + { + "fullscreen": false, + "resizable": true, + "title": "AppSettingsManager", + "width": 800, + "height": 600 + } + ] + } +} diff --git a/plugins/store/examples/AppSettingsManager/src/assets/tauri.svg b/plugins/store/examples/AppSettingsManager/src/assets/tauri.svg new file mode 100644 index 000000000..31b62c928 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src/assets/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/plugins/store/examples/AppSettingsManager/src/assets/typescript.svg b/plugins/store/examples/AppSettingsManager/src/assets/typescript.svg new file mode 100644 index 000000000..30a5edd33 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src/assets/typescript.svg @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/plugins/store/examples/AppSettingsManager/src/assets/vite.svg b/plugins/store/examples/AppSettingsManager/src/assets/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src/assets/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugins/store/examples/AppSettingsManager/src/main.ts b/plugins/store/examples/AppSettingsManager/src/main.ts new file mode 100644 index 000000000..75280a343 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src/main.ts @@ -0,0 +1,5 @@ +window.addEventListener("DOMContentLoaded", () => { + document.querySelector("#greet-form")?.addEventListener("submit", (e) => { + e.preventDefault(); + }); +}); diff --git a/plugins/store/examples/AppSettingsManager/src/styles.css b/plugins/store/examples/AppSettingsManager/src/styles.css new file mode 100644 index 000000000..f7de85bf0 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/src/styles.css @@ -0,0 +1,109 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +.container { + margin: 0; + padding-top: 10vh; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: 0.75s; +} + +.logo.tauri:hover { + filter: drop-shadow(0 0 2em #24c8db); +} + +.row { + display: flex; + justify-content: center; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +h1 { + text-align: center; +} + +input, +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + color: #0f0f0f; + background-color: #ffffff; + transition: border-color 0.25s; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); +} + +button { + cursor: pointer; +} + +button:hover { + border-color: #396cd8; +} +button:active { + border-color: #396cd8; + background-color: #e8e8e8; +} + +input, +button { + outline: none; +} + +#greet-input { + margin-right: 5px; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } + + a:hover { + color: #24c8db; + } + + input, + button { + color: #ffffff; + background-color: #0f0f0f98; + } + button:active { + background-color: #0f0f0f69; + } +} diff --git a/plugins/store/examples/AppSettingsManager/tsconfig.json b/plugins/store/examples/AppSettingsManager/tsconfig.json new file mode 100644 index 000000000..75abdef26 --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/plugins/store/examples/AppSettingsManager/vite.config.ts b/plugins/store/examples/AppSettingsManager/vite.config.ts new file mode 100644 index 000000000..466844d4f --- /dev/null +++ b/plugins/store/examples/AppSettingsManager/vite.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig(async () => ({ + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // + // 1. prevent vite from obscuring rust errors + clearScreen: false, + // 2. tauri expects a fixed port, fail if that port is not available + server: { + port: 1420, + strictPort: true, + }, + // 3. to make use of `TAURI_DEBUG` and other env variables + // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand + envPrefix: ["VITE_", "TAURI_"], +})); diff --git a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index 2828bedbd..ed1ab7d6f 100644 --- a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -5,16 +5,16 @@ description = "A Tauri App" edition = "2021" [dependencies] -serde = { version = "1", features = ["derive"] } -serde_json = "1" -tauri = { version = "1", features = [] } +serde.workspace = true +serde_json.workspace = true +tauri.workspace = true tokio = { version = "1", features = ["net"] } futures-util = "0.3" tauri-plugin-websocket = { path = "../../../" } tokio-tungstenite = "0.21" [build-dependencies] -tauri-build = { version = "1", features = [] } +tauri-build.workspace = true [features] custom-protocol = [ "tauri/custom-protocol" ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8104cd18..97dc9c7e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,18 @@ importers: specifier: 2.6.2 version: 2.6.2 + plugins/store/examples/AppSettingsManager: + devDependencies: + '@tauri-apps/cli': + specifier: 1.5.10 + version: 1.5.10 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vite: + specifier: ^5.0.12 + version: 5.1.4 + plugins/stronghold: dependencies: '@tauri-apps/api': @@ -424,8 +436,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -437,7 +449,7 @@ packages: debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -477,11 +489,11 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.18 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true @@ -490,22 +502,26 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + /@jridgewell/source-map@0.3.3: + resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 dev: true /@nodelib/fs.scandir@2.1.5: @@ -558,8 +574,8 @@ packages: dependencies: rollup: 4.12.0 serialize-javascript: 6.0.1 - smob: 1.4.1 - terser: 5.25.0 + smob: 1.4.0 + terser: 5.19.0 dev: true /@rollup/plugin-typescript@11.1.6(rollup@4.12.0)(typescript@5.3.3): @@ -816,8 +832,8 @@ packages: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/json5@0.0.29: @@ -828,8 +844,8 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3): @@ -843,7 +859,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.6.2 '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 7.0.2 '@typescript-eslint/type-utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) @@ -852,17 +868,17 @@ packages: debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.2.4 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.5.3 + ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + /@typescript-eslint/parser@6.4.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -871,10 +887,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.3.3 @@ -903,12 +919,12 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + /@typescript-eslint/scope-manager@6.4.0: + resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 dev: true /@typescript-eslint/scope-manager@7.0.2: @@ -933,14 +949,14 @@ packages: '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + /@typescript-eslint/types@6.4.0: + resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -949,8 +965,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.3.3): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -958,14 +974,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.5.3 + ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -986,8 +1001,8 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.5.3 + ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1000,23 +1015,23 @@ packages: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 7.0.2 '@typescript-eslint/types': 7.0.2 '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) eslint: 8.57.0 - semver: 7.5.4 + semver: 7.5.3 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + /@typescript-eslint/visitor-keys@6.4.0: + resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/types': 6.4.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1032,16 +1047,16 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /acorn-jsx@5.3.2(acorn@8.11.2): + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.2 + acorn: 8.10.0 dev: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1071,21 +1086,22 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 dev: true /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.22.4 + get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -1094,24 +1110,35 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + /array.prototype.filter@1.0.3: + resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + + /array.prototype.findlastindex@1.2.4: + resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.4 + es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 es-shim-unscopables: 1.0.2 dev: true @@ -1119,28 +1146,31 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 es-shim-unscopables: 1.0.2 dev: true - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 + es-abstract: 1.22.4 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.2 dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 dev: true /balanced-match@1.0.2: @@ -1179,15 +1209,18 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.5.3 dev: true - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 dev: true /callsites@3.1.0: @@ -1263,21 +1296,21 @@ packages: engines: {node: '>=0.10.0'} dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 dev: true /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 dev: true @@ -1302,64 +1335,82 @@ packages: esutils: 2.0.3 dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + /es-abstract@1.22.4: + resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 globalthis: 1.0.3 gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + hasown: 2.0.1 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.3 string.prototype.trim: 1.2.8 string.prototype.trimend: 1.0.7 string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 dev: true - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.1 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /es-to-primitive@1.2.1: @@ -1436,7 +1487,7 @@ packages: typescript: '*' dependencies: '@typescript-eslint/eslint-plugin': 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) @@ -1508,7 +1559,7 @@ packages: eslint: '>=8' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.6.2 eslint: 8.57.0 eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true @@ -1525,7 +1576,7 @@ packages: dependencies: '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 @@ -1533,14 +1584,14 @@ packages: eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.0 + hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.7 - object.groupby: 1.0.1 + object.groupby: 1.0.2 object.values: 1.1.7 - semver: 7.5.4 + semver: 7.5.3 tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -1560,12 +1611,12 @@ packages: eslint-plugin-es-x: 7.5.0(eslint@8.57.0) get-tsconfig: 4.7.2 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.2.4 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 - semver: 7.5.4 + semver: 7.5.3 dev: true /eslint-plugin-promise@6.1.1(eslint@8.57.0): @@ -1602,7 +1653,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -1626,7 +1677,7 @@ packages: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.2.4 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1647,8 +1698,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 dev: true @@ -1684,8 +1735,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1713,7 +1764,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.2.0 + flat-cache: 3.0.4 dev: true /fill-range@7.0.1: @@ -1731,17 +1782,16 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 - keyv: 4.5.4 + flatted: 3.2.7 rimraf: 3.0.2 dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true /for-each@0.3.3: @@ -1770,9 +1820,9 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 functions-have-names: 1.2.3 dev: true @@ -1780,21 +1830,24 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.1 + dev: true + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 dev: true /get-tsconfig@4.7.2: @@ -1848,8 +1901,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.0 + fast-glob: 3.2.12 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -1857,7 +1910,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /graphemer@1.4.0: @@ -1873,14 +1926,14 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: true @@ -1889,22 +1942,22 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 dev: true - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} dev: true @@ -1932,21 +1985,21 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 + es-errors: 1.3.0 + hasown: 2.0.1 side-channel: 1.0.4 dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 dev: true /is-bigint@1.0.4: @@ -1959,8 +2012,8 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true /is-builtin-module@3.2.1: @@ -1978,14 +2031,14 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-extglob@2.1.1: @@ -2013,7 +2066,7 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-number@7.0.0: @@ -2030,21 +2083,21 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-symbol@1.0.4: @@ -2054,17 +2107,17 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 dev: true /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /isarray@2.0.5: @@ -2082,10 +2135,6 @@ packages: argparse: 2.0.1 dev: true - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -2101,12 +2150,6 @@ packages: minimist: 1.2.8 dev: true - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2194,7 +2237,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -2204,27 +2247,28 @@ packages: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 dev: true - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + /object.groupby@1.0.2: + resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} dependencies: - call-bind: 1.0.5 + array.prototype.filter: 1.0.3 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.22.4 + es-errors: 1.3.0 dev: true /object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 dev: true /once@1.4.0: @@ -2299,6 +2343,11 @@ packages: engines: {node: '>=8.6'} dev: true + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss@8.4.35: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} @@ -2319,8 +2368,8 @@ packages: hasBin: true dev: true - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} dev: true @@ -2339,13 +2388,14 @@ packages: hasBin: true dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 dev: true /resolve-from@4.0.0: @@ -2407,12 +2457,12 @@ packages: queue-microtask: 1.2.3 dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -2421,11 +2471,12 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 dev: true @@ -2435,8 +2486,8 @@ packages: regexp-tree: 0.1.27 dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2449,23 +2500,26 @@ packages: randombytes: 2.1.0 dev: true - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true /shebang-command@2.0.0: @@ -2483,8 +2537,8 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 object-inspect: 1.13.1 dev: true @@ -2493,8 +2547,8 @@ packages: engines: {node: '>=8'} dev: true - /smob@1.4.1: - resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} + /smob@1.4.0: + resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==} dev: true /source-map-js@1.0.2: @@ -2518,25 +2572,25 @@ packages: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 dev: true /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.4 dev: true /strip-ansi@6.0.1: @@ -2568,13 +2622,13 @@ packages: engines: {node: '>= 0.4'} dev: true - /terser@5.25.0: - resolution: {integrity: sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==} + /terser@5.19.0: + resolution: {integrity: sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 + '@jridgewell/source-map': 0.3.3 + acorn: 8.10.0 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -2590,8 +2644,8 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + /ts-api-utils@1.0.1(typescript@5.3.3): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' @@ -2624,42 +2678,44 @@ packages: engines: {node: '>=10'} dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typescript@5.3.3: @@ -2671,7 +2727,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -2680,7 +2736,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.1 + punycode: 2.3.0 dev: true /vite@5.1.4: @@ -2728,15 +2784,15 @@ packages: is-symbol: 1.0.4 dev: true - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /which@2.0.2: From 67df245eeea52aefa72950d0070b64b0d064c319 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 18:37:04 +0100 Subject: [PATCH 086/643] chore(deps): update typescript-eslint monorepo to v7.1.0 (#998) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 100 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index c373880ba..7bf0c264b 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.0.2", - "@typescript-eslint/parser": "7.0.2", + "@typescript-eslint/eslint-plugin": "7.1.0", + "@typescript-eslint/parser": "7.1.0", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 97dc9c7e6..40b0c9f09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 7.0.2 - version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) + specifier: 7.1.0 + version: 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 7.0.2 - version: 7.0.2(eslint@8.57.0)(typescript@5.3.3) + specifier: 7.1.0 + version: 7.1.0(eslint@8.57.0)(typescript@5.3.3) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -848,8 +848,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} + /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -860,11 +860,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/type-utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -898,8 +898,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.0.2(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} + /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -908,10 +908,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.3.3 @@ -927,16 +927,16 @@ packages: '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/scope-manager@7.0.2: - resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} + /@typescript-eslint/scope-manager@7.1.0: + resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/visitor-keys': 7.1.0 dev: true - /@typescript-eslint/type-utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} + /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -945,8 +945,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.0.1(typescript@5.3.3) @@ -960,8 +960,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.0.2: - resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} + /@typescript-eslint/types@7.1.0: + resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -986,8 +986,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3): - resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} + /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): + resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -995,8 +995,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1008,8 +1008,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} + /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1017,9 +1017,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1035,11 +1035,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.0.2: - resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} + /@typescript-eslint/visitor-keys@7.1.0: + resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/types': 7.1.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1476,7 +1476,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.0.2)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1486,11 +1486,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.3.3 @@ -1508,7 +1508,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -1523,7 +1523,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1544,7 +1544,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1564,7 +1564,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1574,7 +1574,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -1583,7 +1583,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 From f59436dad09939bd12655c229bd1fdcceff0b883 Mon Sep 17 00:00:00 2001 From: Tillmann <112912081+tillmann-crabnebula@users.noreply.github.com> Date: Tue, 27 Feb 2024 23:43:31 +0900 Subject: [PATCH 087/643] Added Security Policy to All Plugins (#930) * Added contact and security policy to remaining plugins and the repository * Added default security policy to shared template --- SECURITY.md | 23 +++++++++++++++++++++++ plugins/authenticator/SECURITY.md | 23 +++++++++++++++++++++++ plugins/autostart/SECURITY.md | 23 +++++++++++++++++++++++ plugins/biometric/SECURITY.md | 23 +++++++++++++++++++++++ plugins/cli/SECURITY.md | 23 +++++++++++++++++++++++ plugins/clipboard-manager/SECURITY.md | 23 +++++++++++++++++++++++ plugins/deep-link/SECURITY.md | 23 +++++++++++++++++++++++ plugins/dialog/SECURITY.md | 23 +++++++++++++++++++++++ plugins/global-shortcut/SECURITY.md | 23 +++++++++++++++++++++++ plugins/http/SECURITY.md | 23 +++++++++++++++++++++++ plugins/localhost/SECURITY.md | 23 +++++++++++++++++++++++ plugins/nfc/SECURITY.md | 23 +++++++++++++++++++++++ plugins/notification/SECURITY.md | 23 +++++++++++++++++++++++ plugins/os/SECURITY.md | 23 +++++++++++++++++++++++ plugins/persisted-scope/SECURITY.md | 23 +++++++++++++++++++++++ plugins/positioner/SECURITY.md | 23 +++++++++++++++++++++++ plugins/process/SECURITY.md | 23 +++++++++++++++++++++++ plugins/shell/SECURITY.md | 23 +++++++++++++++++++++++ plugins/single-instance/SECURITY.md | 23 +++++++++++++++++++++++ plugins/sql/SECURITY.md | 23 +++++++++++++++++++++++ plugins/store/SECURITY.md | 23 +++++++++++++++++++++++ plugins/stronghold/SECURITY.md | 23 +++++++++++++++++++++++ plugins/updater/SECURITY.md | 23 +++++++++++++++++++++++ plugins/upload/SECURITY.md | 23 +++++++++++++++++++++++ plugins/websocket/SECURITY.md | 23 +++++++++++++++++++++++ plugins/window-state/SECURITY.md | 23 +++++++++++++++++++++++ shared/template/SECURITY.md | 23 +++++++++++++++++++++++ 27 files changed, 621 insertions(+) create mode 100644 SECURITY.md create mode 100644 plugins/authenticator/SECURITY.md create mode 100644 plugins/autostart/SECURITY.md create mode 100644 plugins/biometric/SECURITY.md create mode 100644 plugins/cli/SECURITY.md create mode 100644 plugins/clipboard-manager/SECURITY.md create mode 100644 plugins/deep-link/SECURITY.md create mode 100644 plugins/dialog/SECURITY.md create mode 100644 plugins/global-shortcut/SECURITY.md create mode 100644 plugins/http/SECURITY.md create mode 100644 plugins/localhost/SECURITY.md create mode 100644 plugins/nfc/SECURITY.md create mode 100644 plugins/notification/SECURITY.md create mode 100644 plugins/os/SECURITY.md create mode 100644 plugins/persisted-scope/SECURITY.md create mode 100644 plugins/positioner/SECURITY.md create mode 100644 plugins/process/SECURITY.md create mode 100644 plugins/shell/SECURITY.md create mode 100644 plugins/single-instance/SECURITY.md create mode 100644 plugins/sql/SECURITY.md create mode 100644 plugins/store/SECURITY.md create mode 100644 plugins/stronghold/SECURITY.md create mode 100644 plugins/updater/SECURITY.md create mode 100644 plugins/upload/SECURITY.md create mode 100644 plugins/websocket/SECURITY.md create mode 100644 plugins/window-state/SECURITY.md create mode 100644 shared/template/SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/authenticator/SECURITY.md b/plugins/authenticator/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/authenticator/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/autostart/SECURITY.md b/plugins/autostart/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/autostart/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/biometric/SECURITY.md b/plugins/biometric/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/biometric/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/cli/SECURITY.md b/plugins/cli/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/cli/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/clipboard-manager/SECURITY.md b/plugins/clipboard-manager/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/clipboard-manager/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/deep-link/SECURITY.md b/plugins/deep-link/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/deep-link/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/dialog/SECURITY.md b/plugins/dialog/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/dialog/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/global-shortcut/SECURITY.md b/plugins/global-shortcut/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/global-shortcut/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/http/SECURITY.md b/plugins/http/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/http/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/localhost/SECURITY.md b/plugins/localhost/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/localhost/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/nfc/SECURITY.md b/plugins/nfc/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/nfc/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/notification/SECURITY.md b/plugins/notification/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/notification/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/os/SECURITY.md b/plugins/os/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/os/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/persisted-scope/SECURITY.md b/plugins/persisted-scope/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/persisted-scope/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/positioner/SECURITY.md b/plugins/positioner/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/positioner/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/process/SECURITY.md b/plugins/process/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/process/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/shell/SECURITY.md b/plugins/shell/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/shell/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/single-instance/SECURITY.md b/plugins/single-instance/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/single-instance/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/sql/SECURITY.md b/plugins/sql/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/sql/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/store/SECURITY.md b/plugins/store/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/store/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/stronghold/SECURITY.md b/plugins/stronghold/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/stronghold/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/updater/SECURITY.md b/plugins/updater/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/updater/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/upload/SECURITY.md b/plugins/upload/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/upload/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/websocket/SECURITY.md b/plugins/websocket/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/websocket/SECURITY.md @@ -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). \ No newline at end of file diff --git a/plugins/window-state/SECURITY.md b/plugins/window-state/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/plugins/window-state/SECURITY.md @@ -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). \ No newline at end of file diff --git a/shared/template/SECURITY.md b/shared/template/SECURITY.md new file mode 100644 index 000000000..67d831fc9 --- /dev/null +++ b/shared/template/SECURITY.md @@ -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). \ No newline at end of file From 9d4b25cf85fbf38f2506f5a5bcd79465d61bab54 Mon Sep 17 00:00:00 2001 From: AHQ Date: Wed, 28 Feb 2024 22:33:51 +0530 Subject: [PATCH 088/643] Bump tauri to v2 beta.7 (#1001) * Bump tauri to v2 beta.7 * change file --------- Co-authored-by: Amr Bashir --- .changes/tauri-beta.7.md | 57 ++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 6 ++--- 2 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 .changes/tauri-beta.7.md diff --git a/.changes/tauri-beta.7.md b/.changes/tauri-beta.7.md new file mode 100644 index 000000000..3df24ab3f --- /dev/null +++ b/.changes/tauri-beta.7.md @@ -0,0 +1,57 @@ +--- +"authenticator": patch +"autostart": patch +"barcode-scanner": patch +"biometric": patch +"cli": patch +"clipboard-manager": patch +"deep-link": patch +"dialog": patch +"fs": patch +"global-shortcut": patch +"http": patch +"localhost": patch +"log-plugin": patch +"nfc": patch +"notification": patch +"os": patch +"persisted-scope": patch +"positioner": patch +"process": patch +"shell": patch +"single-instance": patch +"sql": patch +"store": patch +"stronghold": patch +"updater": patch +"upload": patch +"websocket": patch +"window-state": patch +"authenticator-js": patch +"autostart-js": patch +"barcode-scanner-js": patch +"biometric-js": patch +"cli-js": patch +"clipboard-manager-js": patch +"deep-link-js": patch +"dialog-js": patch +"fs-js": patch +"global-shortcut-js": patch +"http-js": patch +"log-js": patch +"nfc-js": patch +"notification-js": patch +"os-js": patch +"positioner-js": patch +"process-js": patch +"shell-js": patch +"sql-js": patch +"store-js": patch +"stronghold-js": patch +"updater-js": patch +"upload-js": patch +"websocket-js": patch +"window-state-js": patch +--- + +Update to tauri beta.7. diff --git a/Cargo.toml b/Cargo.toml index cdc5865ef..d318e1989 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,9 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = "2.0.0-beta.4" -tauri-build = "2.0.0-beta.3" -tauri-plugin = "2.0.0-beta.3" +tauri = "2.0.0-beta.7" +tauri-build = "2.0.0-beta.5" +tauri-plugin = "2.0.0-beta.5" serde_json = "1" thiserror = "1" url = "2" From 0d3b6b8acae9c875e7810710eef2aacf6da0c561 Mon Sep 17 00:00:00 2001 From: tommyo Date: Wed, 28 Feb 2024 16:16:08 -0500 Subject: [PATCH 089/643] feat(log): added attachLogger (#717) --- plugins/log/guest-js/index.ts | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/plugins/log/guest-js/index.ts b/plugins/log/guest-js/index.ts index 5f1c1d92e..e12add7d0 100644 --- a/plugins/log/guest-js/index.ts +++ b/plugins/log/guest-js/index.ts @@ -1,5 +1,5 @@ import { invoke } from "@tauri-apps/api/tauri"; -import { listen, UnlistenFn } from "@tauri-apps/api/event"; +import { listen, type UnlistenFn, type Event } from "@tauri-apps/api/event"; export type LogOptions = { file?: string; @@ -184,19 +184,37 @@ interface RecordPayload { message: string; } -export async function attachConsole(): Promise { - return await listen("log://log", (event) => { - const payload = event.payload as RecordPayload; +type LoggerFn = (fn: RecordPayload) => void; +/** + * Attaches a listener for the log, and calls the passed function for each log entry. + * @param fn + * + * @returns a function to cancel the listener. + */ +export async function attachLogger(fn: LoggerFn): Promise { + return await listen("log://log", (event: Event) => { + let { message, level } = event.payload; + // Strip ANSI escape codes - const message = payload.message.replace( + message = message.replace( // TODO: Investigate security/detect-unsafe-regex // eslint-disable-next-line no-control-regex, security/detect-unsafe-regex /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "", ); + fn({ message, level }); + }); +} - switch (payload.level) { +/** + * Attaches a listener that writes log entries to the console as they come in. + * + * @returns a function to cancel the listener. + */ +export async function attachConsole(): Promise { + return attachLogger(({ level, message }: RecordPayload) => { + switch (level) { case LogLevel.Trace: console.log(message); break; @@ -214,7 +232,7 @@ export async function attachConsole(): Promise { break; default: // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - throw new Error(`unknown log level ${payload.level}`); + throw new Error(`unknown log level ${level}`); } }); } From c3c55d5b4e869d4bb1656914ab18cad528d25a1a Mon Sep 17 00:00:00 2001 From: Vova Yatsyuk <306080+vovayatsyuk@users.noreply.github.com> Date: Wed, 28 Feb 2024 23:44:55 +0200 Subject: [PATCH 090/643] fix(autostart): Use full exe path on macos when LaunchAgent is used (#841) --- plugins/autostart/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/autostart/src/lib.rs b/plugins/autostart/src/lib.rs index 3c76c34ab..2c0c25a28 100644 --- a/plugins/autostart/src/lib.rs +++ b/plugins/autostart/src/lib.rs @@ -119,7 +119,7 @@ pub fn init( // exe path to not break it. let exe_path = current_exe.canonicalize()?.display().to_string(); let parts: Vec<&str> = exe_path.split(".app/").collect(); - let app_path = if parts.len() == 2 { + let app_path = if parts.len() == 2 && matches!(macos_launcher, MacosLauncher::AppleScript) { format!("{}.app", parts.get(0).unwrap().to_string()) } else { exe_path From ed682dd96eb765e7cd3cdbc3cc64f794a0d6f9df Mon Sep 17 00:00:00 2001 From: FabianLars Date: Wed, 28 Feb 2024 23:13:56 +0100 Subject: [PATCH 091/643] chore: Run cargo fmt --- plugins/autostart/src/lib.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/autostart/src/lib.rs b/plugins/autostart/src/lib.rs index 2c0c25a28..821690a27 100644 --- a/plugins/autostart/src/lib.rs +++ b/plugins/autostart/src/lib.rs @@ -119,11 +119,12 @@ pub fn init( // exe path to not break it. let exe_path = current_exe.canonicalize()?.display().to_string(); let parts: Vec<&str> = exe_path.split(".app/").collect(); - let app_path = if parts.len() == 2 && matches!(macos_launcher, MacosLauncher::AppleScript) { - format!("{}.app", parts.get(0).unwrap().to_string()) - } else { - exe_path - }; + let app_path = + if parts.len() == 2 && matches!(macos_launcher, MacosLauncher::AppleScript) { + format!("{}.app", parts.get(0).unwrap().to_string()) + } else { + exe_path + }; info!("auto_start path {}", &app_path); builder.set_app_path(&app_path); } From 99bea2559c2c0648c2519c50a18cd124dacef57b Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 29 Feb 2024 18:34:43 +0100 Subject: [PATCH 092/643] chore: Update tauri to beta.8 (#1005) * chore: Update tauri to beta.8 fixes #1000 * Update and rename tauri-beta.7.md to tauri-beta-8.md --- .changes/{tauri-beta.7.md => tauri-beta-8.md} | 2 +- Cargo.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename .changes/{tauri-beta.7.md => tauri-beta-8.md} (97%) diff --git a/.changes/tauri-beta.7.md b/.changes/tauri-beta-8.md similarity index 97% rename from .changes/tauri-beta.7.md rename to .changes/tauri-beta-8.md index 3df24ab3f..2bbcc16f3 100644 --- a/.changes/tauri-beta.7.md +++ b/.changes/tauri-beta-8.md @@ -54,4 +54,4 @@ "window-state-js": patch --- -Update to tauri beta.7. +Update to tauri beta.8. diff --git a/Cargo.toml b/Cargo.toml index d318e1989..63a7acb84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,9 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = "2.0.0-beta.7" -tauri-build = "2.0.0-beta.5" -tauri-plugin = "2.0.0-beta.5" +tauri = "2.0.0-beta.8" +tauri-build = "2.0.0-beta.6" +tauri-plugin = "2.0.0-beta.6" serde_json = "1" thiserror = "1" url = "2" From 2397ec5937e594397e533925ccd257cae30b4cd1 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 4 Mar 2024 21:52:40 +0800 Subject: [PATCH 093/643] fix: single instance doesn't shutdown immediately (#1019) * Fix single instance doesn't shutdown immediately * Add change file --- .changes/fix-shutdown-timing.md | 5 +++++ plugins/single-instance/src/platform_impl/linux.rs | 3 ++- plugins/single-instance/src/platform_impl/windows.rs | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changes/fix-shutdown-timing.md diff --git a/.changes/fix-shutdown-timing.md b/.changes/fix-shutdown-timing.md new file mode 100644 index 000000000..568f5766d --- /dev/null +++ b/.changes/fix-shutdown-timing.md @@ -0,0 +1,5 @@ +--- +'single-instance': patch +--- + +Fix doesn't shutdown immediately. diff --git a/plugins/single-instance/src/platform_impl/linux.rs b/plugins/single-instance/src/platform_impl/linux.rs index c613a0d6d..d900cf8be 100644 --- a/plugins/single-instance/src/platform_impl/linux.rs +++ b/plugins/single-instance/src/platform_impl/linux.rs @@ -70,7 +70,8 @@ pub fn init(f: Box>) -> TauriPlugin { ), ); } - std::process::exit(0) + app.cleanup_before_exit(); + std::process::exit(0); } _ => {} } diff --git a/plugins/single-instance/src/platform_impl/windows.rs b/plugins/single-instance/src/platform_impl/windows.rs index f66b2d1ae..63be767d6 100644 --- a/plugins/single-instance/src/platform_impl/windows.rs +++ b/plugins/single-instance/src/platform_impl/windows.rs @@ -62,7 +62,8 @@ pub fn init(f: Box>) -> TauriPlugin { lpData: bytes.as_ptr() as _, }; SendMessageW(hwnd, WM_COPYDATA, 0, &cds as *const _ as _); - app.exit(0); + app.cleanup_before_exit(); + std::process::exit(0); } } } else { From 85c4b8b67a97f67351b2409b6b9fb092e1321d36 Mon Sep 17 00:00:00 2001 From: Victor Aremu Date: Mon, 4 Mar 2024 16:19:51 +0100 Subject: [PATCH 094/643] feat: Improve Stronghold README with usage examples (#1013) * docs: add example password hashing using rust-argon2 crate * feat: add client side usage * update the todo comment --- plugins/stronghold/README.md | 73 ++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index 20bca5e0a..6254aa35e 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -43,8 +43,25 @@ First you need to register the core plugin with Tauri: fn main() { tauri::Builder::default() .plugin(tauri_plugin_stronghold::Builder::new(|password| { - // TODO: hash the password here with e.g. argon2, blake2b or any other secure algorithm - todo!() + // Hash the password here with e.g. argon2, blake2b or any other secure algorithm + // Here is an example implementation using the `rust-argon2` crate for hashing the password + + use argon2::{hash_raw, Config, Variant, Version}; + + let config = Config { + lanes: 4, + mem_cost: 10_000, + time_cost: 10, + variant: Variant::Argon2id, + version: Version::Version13, + ..Default::default() + }; + + let salt = "your-salt".as_bytes(); + + let key = hash_raw(password.as_ref(), salt, &config).expect("failed to hash password"); + + key.to_vec() }) .build()) .run(tauri::generate_context!()) @@ -55,9 +72,57 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { Stronghold, Location } from "tauri-plugin-stronghold-api"; +import { Stronghold, Location, Client } from "tauri-plugin-stronghold-api"; +import { appDataDir } from "@tauri-apps/api/path"; -// TODO +const initStrongHold = async () => { + const vaultPath = `${await appDataDir()}/vault.hold`; + + const vaultKey = "The key to the vault"; + + const stronghold = await Stronghold.load(vaultPath, vaultKey); + + let client: Client; + + const clientName = "name your client"; + + try { + client = await hold.loadClient(clientName); + } catch { + client = await hold.createClient(clientName); + } + + return { + stronghold, + client, + }; +}; + +const { stronghold, client } = await initStrongHold(); + +const store = client.getStore(); + +const key = "my_key"; + +// Insert a record to the store + +const data = Array.from(new TextEncoder().encode("Hello, World!")); + +await store.insert(key, data); + +// Read a record from store + +const data = await store.get(key); + +const value = new TextDecoder().decode(new Uint8Array(data)); + +// Save your updates + +await stronghold.save(); + +// Remove a record from store + +await store.remove(key); ``` ## Contributing From 9586eabd5a96673e4d976757777f470ae358d68a Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Mon, 4 Mar 2024 18:28:53 +0200 Subject: [PATCH 095/643] chore(deps): update to `open-rs@5.1` (#1021) * chore(deps): update to `open-rs@5.1` ref: #1003 * changefile --- .changes/shell-shellexcute.md | 6 ++ Cargo.lock | 142 ++++++++++++---------------------- plugins/shell/Cargo.toml | 2 +- 3 files changed, 57 insertions(+), 93 deletions(-) create mode 100644 .changes/shell-shellexcute.md diff --git a/.changes/shell-shellexcute.md b/.changes/shell-shellexcute.md new file mode 100644 index 000000000..20b7b3104 --- /dev/null +++ b/.changes/shell-shellexcute.md @@ -0,0 +1,6 @@ +--- +"shell": "patch" +"shell-js": "patch" +--- + +On Windows, fix `open` can't open file if the file is being used by a program. diff --git a/Cargo.lock b/Cargo.lock index 13b161697..97d337f5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -562,7 +562,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -579,7 +579,7 @@ dependencies = [ "log", "rand 0.7.3", "runloop", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1174,7 +1174,7 @@ checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" dependencies = [ "is-terminal", "lazy_static", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1633,7 +1633,7 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1644,7 +1644,7 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1671,7 +1671,7 @@ dependencies = [ "dlopen2_derive", "libc", "once_cell", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2472,7 +2472,7 @@ dependencies = [ "gobject-sys 0.16.3", "libc", "system-deps", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2485,7 +2485,7 @@ dependencies = [ "gobject-sys 0.18.0", "libc", "system-deps", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2828,7 +2828,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3266,7 +3266,7 @@ dependencies = [ "jni-sys", "log", "thiserror", - "walkdir 2.4.0", + "walkdir", "windows-sys 0.45.0", ] @@ -3315,16 +3315,6 @@ dependencies = [ "treediff", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "keyboard-types" version = "0.6.2" @@ -3432,7 +3422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ "cfg-if", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3471,7 +3461,7 @@ dependencies = [ "cc", "libc", "pkg-config", - "walkdir 2.4.0", + "walkdir", ] [[package]] @@ -3882,7 +3872,7 @@ dependencies = [ "log", "mio", "serde", - "walkdir 2.4.0", + "walkdir", "windows-sys 0.48.0", ] @@ -3897,7 +3887,7 @@ dependencies = [ "log", "notify", "parking_lot", - "walkdir 2.4.0", + "walkdir", ] [[package]] @@ -3907,7 +3897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4065,9 +4055,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "4.2.0" +version = "5.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a083c0c7e5e4a8ec4176346cf61f67ac674e8bfb059d9226e1c54a96b377c12" +checksum = "68b3fbb0d52bf0cbb5225ba3d2c303aa136031d43abff98284332a9981ecddec" dependencies = [ "is-wsl", "libc", @@ -4146,7 +4136,7 @@ checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" dependencies = [ "log", "serde", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5038,7 +5028,7 @@ dependencies = [ "spin 0.5.2", "untrusted 0.7.1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5277,16 +5267,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" -[[package]] -name = "same-file" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7" -dependencies = [ - "kernel32-sys", - "winapi 0.2.8", -] - [[package]] name = "same-file" version = "1.0.6" @@ -5598,7 +5578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6281,9 +6261,9 @@ checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" [[package]] name = "tauri" -version = "2.0.0-beta.4" +version = "2.0.0-beta.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6b10809e932ed85813fff9ac748cbcc0cf4c78209433b1b6e025660619f2e4" +checksum = "b2bd3d5ccf5316833c0f71c645c25585bddf997a16bea652bf3eab8114273cff" dependencies = [ "anyhow", "bytes", @@ -6334,9 +6314,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ea663cde4862231178215d364b3650dade8cb159fc84a1bea5c365689dacd0" +checksum = "3ca30dbed856449b41abed13a5a46655ea2196075e09e99e22fe8ed0958b6aee" dependencies = [ "anyhow", "cargo_toml", @@ -6353,14 +6333,14 @@ dependencies = [ "tauri-utils", "tauri-winres", "toml 0.8.2", - "walkdir 2.4.0", + "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a770b18aa021b0c8568c8f0d347044a72d349b6a13dd1db28c558832e8e681" +checksum = "bf4ed45a0d2a1723ef4ea71d1aa5809c4a8bcaa92de77f6c9a8f4d4f28c5d86a" dependencies = [ "base64 0.21.7", "brotli", @@ -6380,14 +6360,14 @@ dependencies = [ "time", "url", "uuid", - "walkdir 2.4.0", + "walkdir", ] [[package]] name = "tauri-macros" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b100bf9f05a013719fa6c9bf096da42511888b3671d9c22bffa12a030d76a9" +checksum = "d0a75661fb86b350141e78ad54ce9c60346149afc5cbf41de2ca60a1ebc252b3" dependencies = [ "heck", "proc-macro2", @@ -6399,9 +6379,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140c010cfb7120c9276e6e0b0c271dabb7988be2998011f918b669e766224e55" +checksum = "e9530f0f0d809e77ff9a93da5ff2483faf8fef2cb8ed125ca7b0172cb92685d4" dependencies = [ "anyhow", "glob", @@ -6411,7 +6391,7 @@ dependencies = [ "serde_json", "tauri-utils", "toml 0.8.2", - "walkdir 1.0.7", + "walkdir", ] [[package]] @@ -6723,7 +6703,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6860,9 +6840,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc687ef6571127f0ad9a9bef141ca3f8d9597b7f99949047d5c69ed731cf36c4" +checksum = "0381b4b96e1f4f39a24ca6472c9b016151b103a54b1425233007fdbc26cf20a8" dependencies = [ "gtk", "http 0.2.11", @@ -6878,9 +6858,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07b1d76d4159aec5c2cff742e30b0f5b3675a2520b979acbbc66c5f92c99491" +checksum = "4eef6a8373c9936b33a58c1bdbdd76fe4603d00ebe72304c0777bf0674e455aa" dependencies = [ "cocoa 0.25.0", "gtk", @@ -6892,6 +6872,7 @@ dependencies = [ "tao", "tauri-runtime", "tauri-utils", + "url", "webkit2gtk", "webview2-com", "windows 0.52.0", @@ -6900,9 +6881,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-beta.3" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2729b59832a96dd05f4f2ced33e2ab976ca60c58c1d675afe6aabc486eb51143" +checksum = "92e35e2f9a5ee8539d00dde621f176647747736a388a07c3083a0cc1b96ba6d7" dependencies = [ "aes-gcm 0.10.3", "brotli", @@ -6931,7 +6912,7 @@ dependencies = [ "thiserror", "toml 0.8.2", "url", - "walkdir 2.4.0", + "walkdir", ] [[package]] @@ -7466,7 +7447,7 @@ checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ "memoffset 0.9.0", "tempfile", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7647,24 +7628,13 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" -dependencies = [ - "kernel32-sys", - "same-file 0.1.3", - "winapi 0.2.8", -] - [[package]] name = "walkdir" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ - "same-file 1.0.6", + "same-file", "winapi-util", ] @@ -7964,12 +7934,6 @@ dependencies = [ "windows-sys 0.36.1", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -7980,12 +7944,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -7998,7 +7956,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8381,7 +8339,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8406,9 +8364,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9e7b81968555303086ef882a0c213896a76099de4ed0b86a798775c2d54304" +checksum = "8b717040ba9771fd88eb428c6ea6b555f8e734ff8534f02c13e8f10d97f5935e" dependencies = [ "base64 0.21.7", "block", @@ -8432,6 +8390,7 @@ dependencies = [ "objc", "objc_id", "once_cell", + "percent-encoding", "raw-window-handle 0.6.0", "serde", "serde_json", @@ -8439,7 +8398,6 @@ dependencies = [ "soup3", "tao-macros", "thiserror", - "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", @@ -8529,7 +8487,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index f4d957ce1..89dfd1aa2 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -26,6 +26,6 @@ log = { workspace = true } thiserror = { workspace = true } shared_child = "1" regex = "1" -open = "4" +open = { version = "5", features = [ "shellexecute-on-windows" ] } encoding_rs = "0.8" os_pipe = "1" From 8a5e05cd83f574ccb28eacb64df6df527e737a99 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Mon, 4 Mar 2024 18:59:24 +0100 Subject: [PATCH 096/643] fix: Fix comp with latest beta (#1018) * fix: Fix comp with latest beta * linux --- .gitignore | 3 +- Cargo.lock | 2 +- examples/api/package.json | 4 +- examples/api/src-tauri/build.rs | 8 +- .../src-tauri/gen/schemas/desktop-schema.json | 82 +- examples/api/src-tauri/src/lib.rs | 2 +- .../permissions/autogenerated/reference.md | 54 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 34 +- .../autostart/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 64 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 24 +- .../biometric/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 19 +- plugins/cli/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 24 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 19 +- .../deep-link/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 54 +- .../dialog/permissions/schemas/schema.json | 56 +- .../fs/permissions/autogenerated/reference.md | 1430 ++++------------- plugins/fs/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 54 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 49 +- plugins/http/permissions/schemas/schema.json | 56 +- plugins/localhost/src/lib.rs | 10 - .../permissions/autogenerated/reference.md | 19 +- plugins/log/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 34 +- plugins/nfc/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 39 +- .../permissions/schemas/schema.json | 56 +- .../os/permissions/autogenerated/reference.md | 84 +- plugins/os/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 19 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 24 +- .../process/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 44 +- plugins/shell/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 44 +- plugins/sql/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 124 +- plugins/store/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 114 +- .../permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 29 +- .../updater/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 24 +- .../upload/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 29 +- .../websocket/permissions/schemas/schema.json | 56 +- .../permissions/autogenerated/reference.md | 24 +- .../permissions/schemas/schema.json | 56 +- pnpm-lock.yaml | 208 ++- 58 files changed, 2066 insertions(+), 2129 deletions(-) diff --git a/.gitignore b/.gitignore index f8932e563..5ea09efa0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ target node_modules dist-js -dist \ No newline at end of file +dist +**/capabilities/schemas \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 97d337f5a..ca97ee3ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1659,7 +1659,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.1", + "libloading 0.7.4", ] [[package]] diff --git a/examples/api/package.json b/examples/api/package.json index f10d760a0..c14ca3f19 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2", + "@tauri-apps/api": "2.0.0-beta.3", "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.1", "@tauri-apps/plugin-biometric": "2.0.0-beta.1", "@tauri-apps/plugin-cli": "2.0.0-beta.1", @@ -30,7 +30,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-beta.3", + "@tauri-apps/cli": "2.0.0-beta.6", "@unocss/extractor-svelte": "^0.58.0", "internal-ip": "^8.0.0", "svelte": "^4.2.8", diff --git a/examples/api/src-tauri/build.rs b/examples/api/src-tauri/build.rs index 322bc7bf3..88537ddef 100644 --- a/examples/api/src-tauri/build.rs +++ b/examples/api/src-tauri/build.rs @@ -3,11 +3,5 @@ // SPDX-License-Identifier: MIT fn main() { - let mut codegen = tauri_build::CodegenContext::new(); - 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"); + tauri_build::build(); } diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index 88c01d5b5..2d283f77f 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -47,15 +47,22 @@ "default": "", "type": "string" }, - "context": { - "description": "Execution context of the capability.\n\nAt runtime, Tauri filters the IPC command together with the context to determine whether it is allowed or not and its scope.", - "default": "local", - "allOf": [ + "remote": { + "description": "Configure remote URLs that can use the capability permissions.", + "anyOf": [ { - "$ref": "#/definitions/CapabilityContext" + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" } ] }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, "windows": { "description": "List of windows that uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.", "type": "array", @@ -78,7 +85,7 @@ } }, "platforms": { - "description": "Target platforms this capability applies. By default all platforms applies.", + "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", "default": [ "linux", "macOS", @@ -93,42 +100,21 @@ } } }, - "CapabilityContext": { - "description": "Context of the capability.", - "oneOf": [ - { - "description": "Capability refers to local URL usage.", - "type": "string", - "enum": [ - "local" - ] - }, - { - "description": "Capability refers to remote usage.", - "type": "object", - "required": [ - "remote" - ], - "properties": { - "remote": { - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to. Can use glob patterns.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "additionalProperties": false + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to. Can use glob patterns.", + "type": "array", + "items": { + "type": "string" + } } - ] + } }, "PermissionEntry": { "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", @@ -5728,6 +5714,13 @@ "webview:allow-print" ] }, + { + "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", + "type": "string", + "enum": [ + "webview:allow-reparent" + ] + }, { "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -5798,6 +5791,13 @@ "webview:deny-print" ] }, + { + "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", + "type": "string", + "enum": [ + "webview:deny-reparent" + ] + }, { "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", "type": "string", diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index b40290bd2..bacdcf1bc 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -132,7 +132,7 @@ pub fn run() { cmd::log_operation, cmd::perform_request, ]) - .build(tauri::tauri_build_context!()) + .build(tauri::generate_context!()) .expect("error while building tauri application"); #[cfg(target_os = "macos")] diff --git a/plugins/authenticator/permissions/autogenerated/reference.md b/plugins/authenticator/permissions/autogenerated/reference.md index 8e3cbb525..c82e61c79 100644 --- a/plugins/authenticator/permissions/autogenerated/reference.md +++ b/plugins/authenticator/permissions/autogenerated/reference.md @@ -1,42 +1,12 @@ -# Permissions - -## allow-init-auth - -Enables the init_auth command without any pre-configured scope. - -## deny-init-auth - -Denies the init_auth command without any pre-configured scope. - -## allow-register - -Enables the register command without any pre-configured scope. - -## deny-register - -Denies the register command without any pre-configured scope. - -## allow-sign - -Enables the sign command without any pre-configured scope. - -## deny-sign - -Denies the sign command without any pre-configured scope. - -## allow-verify-registration - -Enables the verify_registration command without any pre-configured scope. - -## deny-verify-registration - -Denies the verify_registration command without any pre-configured scope. - -## allow-verify-signature - -Enables the verify_signature command without any pre-configured scope. - -## deny-verify-signature - -Denies the verify_signature command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-init-auth`|Enables the init_auth command without any pre-configured scope.| +|`deny-init-auth`|Denies the init_auth command without any pre-configured scope.| +|`allow-register`|Enables the register command without any pre-configured scope.| +|`deny-register`|Denies the register command without any pre-configured scope.| +|`allow-sign`|Enables the sign command without any pre-configured scope.| +|`deny-sign`|Denies the sign command without any pre-configured scope.| +|`allow-verify-registration`|Enables the verify_registration command without any pre-configured scope.| +|`deny-verify-registration`|Denies the verify_registration command without any pre-configured scope.| +|`allow-verify-signature`|Enables the verify_signature command without any pre-configured scope.| +|`deny-verify-signature`|Denies the verify_signature command without any pre-configured scope.| diff --git a/plugins/authenticator/permissions/schemas/schema.json b/plugins/authenticator/permissions/schemas/schema.json index d5482860c..3d8711b95 100644 --- a/plugins/authenticator/permissions/schemas/schema.json +++ b/plugins/authenticator/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/autostart/permissions/autogenerated/reference.md b/plugins/autostart/permissions/autogenerated/reference.md index e129ae027..73d22eb9d 100644 --- a/plugins/autostart/permissions/autogenerated/reference.md +++ b/plugins/autostart/permissions/autogenerated/reference.md @@ -1,26 +1,8 @@ -# Permissions - -## allow-disable - -Enables the disable command without any pre-configured scope. - -## deny-disable - -Denies the disable command without any pre-configured scope. - -## allow-enable - -Enables the enable command without any pre-configured scope. - -## deny-enable - -Denies the enable command without any pre-configured scope. - -## allow-is-enabled - -Enables the is_enabled command without any pre-configured scope. - -## deny-is-enabled - -Denies the is_enabled command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-disable`|Enables the disable command without any pre-configured scope.| +|`deny-disable`|Denies the disable command without any pre-configured scope.| +|`allow-enable`|Enables the enable command without any pre-configured scope.| +|`deny-enable`|Denies the enable command without any pre-configured scope.| +|`allow-is-enabled`|Enables the is_enabled command without any pre-configured scope.| +|`deny-is-enabled`|Denies the is_enabled command without any pre-configured scope.| diff --git a/plugins/autostart/permissions/schemas/schema.json b/plugins/autostart/permissions/schemas/schema.json index 9a471e091..5fcdb1543 100644 --- a/plugins/autostart/permissions/schemas/schema.json +++ b/plugins/autostart/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/barcode-scanner/permissions/autogenerated/reference.md b/plugins/barcode-scanner/permissions/autogenerated/reference.md index d20ff1480..1d45e36c1 100644 --- a/plugins/barcode-scanner/permissions/autogenerated/reference.md +++ b/plugins/barcode-scanner/permissions/autogenerated/reference.md @@ -1,50 +1,14 @@ -# Permissions - -## allow-cancel - -Enables the cancel command without any pre-configured scope. - -## deny-cancel - -Denies the cancel command without any pre-configured scope. - -## allow-check-permissions - -Enables the check_permissions command without any pre-configured scope. - -## deny-check-permissions - -Denies the check_permissions command without any pre-configured scope. - -## allow-open-app-settings - -Enables the open_app_settings command without any pre-configured scope. - -## deny-open-app-settings - -Denies the open_app_settings command without any pre-configured scope. - -## allow-request-permissions - -Enables the request_permissions command without any pre-configured scope. - -## deny-request-permissions - -Denies the request_permissions command without any pre-configured scope. - -## allow-scan - -Enables the scan command without any pre-configured scope. - -## deny-scan - -Denies the scan command without any pre-configured scope. - -## allow-vibrate - -Enables the vibrate command without any pre-configured scope. - -## deny-vibrate - -Denies the vibrate command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-cancel`|Enables the cancel command without any pre-configured scope.| +|`deny-cancel`|Denies the cancel command without any pre-configured scope.| +|`allow-check-permissions`|Enables the check_permissions command without any pre-configured scope.| +|`deny-check-permissions`|Denies the check_permissions command without any pre-configured scope.| +|`allow-open-app-settings`|Enables the open_app_settings command without any pre-configured scope.| +|`deny-open-app-settings`|Denies the open_app_settings command without any pre-configured scope.| +|`allow-request-permissions`|Enables the request_permissions command without any pre-configured scope.| +|`deny-request-permissions`|Denies the request_permissions command without any pre-configured scope.| +|`allow-scan`|Enables the scan command without any pre-configured scope.| +|`deny-scan`|Denies the scan command without any pre-configured scope.| +|`allow-vibrate`|Enables the vibrate command without any pre-configured scope.| +|`deny-vibrate`|Denies the vibrate command without any pre-configured scope.| diff --git a/plugins/barcode-scanner/permissions/schemas/schema.json b/plugins/barcode-scanner/permissions/schemas/schema.json index 1fd55fd14..200c6a3e3 100644 --- a/plugins/barcode-scanner/permissions/schemas/schema.json +++ b/plugins/barcode-scanner/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/biometric/permissions/autogenerated/reference.md b/plugins/biometric/permissions/autogenerated/reference.md index ef091dfa1..e48ce0662 100644 --- a/plugins/biometric/permissions/autogenerated/reference.md +++ b/plugins/biometric/permissions/autogenerated/reference.md @@ -1,18 +1,6 @@ -# Permissions - -## allow-authenticate - -Enables the authenticate command without any pre-configured scope. - -## deny-authenticate - -Denies the authenticate command without any pre-configured scope. - -## allow-status - -Enables the status command without any pre-configured scope. - -## deny-status - -Denies the status command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-authenticate`|Enables the authenticate command without any pre-configured scope.| +|`deny-authenticate`|Denies the authenticate command without any pre-configured scope.| +|`allow-status`|Enables the status command without any pre-configured scope.| +|`deny-status`|Denies the status command without any pre-configured scope.| diff --git a/plugins/biometric/permissions/schemas/schema.json b/plugins/biometric/permissions/schemas/schema.json index 8a83e483d..600610a42 100644 --- a/plugins/biometric/permissions/schemas/schema.json +++ b/plugins/biometric/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/cli/permissions/autogenerated/reference.md b/plugins/cli/permissions/autogenerated/reference.md index 0f231dc30..f1eedd3eb 100644 --- a/plugins/cli/permissions/autogenerated/reference.md +++ b/plugins/cli/permissions/autogenerated/reference.md @@ -1,14 +1,5 @@ -# Permissions - -## allow-cli-matches - -Enables the cli_matches command without any pre-configured scope. - -## deny-cli-matches - -Denies the cli_matches command without any pre-configured scope. - -## default - -Allows reading the CLI matches - +| Permission | Description | +|------|-----| +|`allow-cli-matches`|Enables the cli_matches command without any pre-configured scope.| +|`deny-cli-matches`|Denies the cli_matches command without any pre-configured scope.| +|`default`|Allows reading the CLI matches| diff --git a/plugins/cli/permissions/schemas/schema.json b/plugins/cli/permissions/schemas/schema.json index 47519c429..4552dc240 100644 --- a/plugins/cli/permissions/schemas/schema.json +++ b/plugins/cli/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/clipboard-manager/permissions/autogenerated/reference.md b/plugins/clipboard-manager/permissions/autogenerated/reference.md index 02d3e533f..e2c166413 100644 --- a/plugins/clipboard-manager/permissions/autogenerated/reference.md +++ b/plugins/clipboard-manager/permissions/autogenerated/reference.md @@ -1,18 +1,6 @@ -# Permissions - -## allow-read - -Enables the read command without any pre-configured scope. - -## deny-read - -Denies the read command without any pre-configured scope. - -## allow-write - -Enables the write command without any pre-configured scope. - -## deny-write - -Denies the write command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-read`|Enables the read command without any pre-configured scope.| +|`deny-read`|Denies the read command without any pre-configured scope.| +|`allow-write`|Enables the write command without any pre-configured scope.| +|`deny-write`|Denies the write command without any pre-configured scope.| diff --git a/plugins/clipboard-manager/permissions/schemas/schema.json b/plugins/clipboard-manager/permissions/schemas/schema.json index 9691ab990..b96f7829c 100644 --- a/plugins/clipboard-manager/permissions/schemas/schema.json +++ b/plugins/clipboard-manager/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/deep-link/permissions/autogenerated/reference.md b/plugins/deep-link/permissions/autogenerated/reference.md index d0791ef90..a60764a30 100644 --- a/plugins/deep-link/permissions/autogenerated/reference.md +++ b/plugins/deep-link/permissions/autogenerated/reference.md @@ -1,14 +1,5 @@ -# Permissions - -## allow-get-current - -Enables the get_current command without any pre-configured scope. - -## deny-get-current - -Denies the get_current command without any pre-configured scope. - -## default - -Allows reading the opened deep link via the get_current command - +| Permission | Description | +|------|-----| +|`allow-get-current`|Enables the get_current command without any pre-configured scope.| +|`deny-get-current`|Denies the get_current command without any pre-configured scope.| +|`default`|Allows reading the opened deep link via the get_current command| diff --git a/plugins/deep-link/permissions/schemas/schema.json b/plugins/deep-link/permissions/schemas/schema.json index 54b3e6500..fc7a2d412 100644 --- a/plugins/deep-link/permissions/schemas/schema.json +++ b/plugins/deep-link/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/dialog/permissions/autogenerated/reference.md b/plugins/dialog/permissions/autogenerated/reference.md index 9c000f9ec..0f5c9a7d9 100644 --- a/plugins/dialog/permissions/autogenerated/reference.md +++ b/plugins/dialog/permissions/autogenerated/reference.md @@ -1,42 +1,12 @@ -# Permissions - -## allow-ask - -Enables the ask command without any pre-configured scope. - -## deny-ask - -Denies the ask command without any pre-configured scope. - -## allow-confirm - -Enables the confirm command without any pre-configured scope. - -## deny-confirm - -Denies the confirm command without any pre-configured scope. - -## allow-message - -Enables the message command without any pre-configured scope. - -## deny-message - -Denies the message command without any pre-configured scope. - -## allow-open - -Enables the open command without any pre-configured scope. - -## deny-open - -Denies the open command without any pre-configured scope. - -## allow-save - -Enables the save command without any pre-configured scope. - -## deny-save - -Denies the save command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-ask`|Enables the ask command without any pre-configured scope.| +|`deny-ask`|Denies the ask command without any pre-configured scope.| +|`allow-confirm`|Enables the confirm command without any pre-configured scope.| +|`deny-confirm`|Denies the confirm command without any pre-configured scope.| +|`allow-message`|Enables the message command without any pre-configured scope.| +|`deny-message`|Denies the message command without any pre-configured scope.| +|`allow-open`|Enables the open command without any pre-configured scope.| +|`deny-open`|Denies the open command without any pre-configured scope.| +|`allow-save`|Enables the save command without any pre-configured scope.| +|`deny-save`|Denies the save command without any pre-configured scope.| diff --git a/plugins/dialog/permissions/schemas/schema.json b/plugins/dialog/permissions/schemas/schema.json index 44d05f827..2b944e3e8 100644 --- a/plugins/dialog/permissions/schemas/schema.json +++ b/plugins/dialog/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/fs/permissions/autogenerated/reference.md b/plugins/fs/permissions/autogenerated/reference.md index 6e1d78d84..753e2505b 100644 --- a/plugins/fs/permissions/autogenerated/reference.md +++ b/plugins/fs/permissions/autogenerated/reference.md @@ -1,1100 +1,279 @@ -# Permissions - -## allow-app-read-recursive - -This allows full recursive read access to the complete `$APP` folder, files and subdirectories. - -## allow-app-write-recursive - -This allows full recusrive write access to the complete `$APP` folder, files and subdirectories. - -## allow-app-read - -This allows non-recursive read access to the `$APP` folder. - -## allow-app-write - -This allows non-recursive write access to the `$APP` folder. - -## allow-app-meta-recursive - -This allows read access to metadata of the `$APP` folder, including file listing and statistics. - -## allow-app-meta - -This allows read access to metadata of the `$APP` folder, including file listing and statistics. - -## scope-app-recursive - -This scope recursive access to the complete `$APP` folder, including sub directories and files. - -## scope-app - -This scope permits access to all files and list content of top level directories in the `$APP`folder. - -## scope-app-index - -This scope permits to list all files and folders in the `$APP`folder. - -## allow-appcache-read-recursive - -This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories. - -## allow-appcache-write-recursive - -This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories. - -## allow-appcache-read - -This allows non-recursive read access to the `$APPCACHE` folder. - -## allow-appcache-write - -This allows non-recursive write access to the `$APPCACHE` folder. - -## allow-appcache-meta-recursive - -This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics. - -## allow-appcache-meta - -This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics. - -## scope-appcache-recursive - -This scope recursive access to the complete `$APPCACHE` folder, including sub directories and files. - -## scope-appcache - -This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder. - -## scope-appcache-index - -This scope permits to list all files and folders in the `$APPCACHE`folder. - -## allow-appconfig-read-recursive - -This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories. - -## allow-appconfig-write-recursive - -This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories. - -## allow-appconfig-read - -This allows non-recursive read access to the `$APPCONFIG` folder. - -## allow-appconfig-write - -This allows non-recursive write access to the `$APPCONFIG` folder. - -## allow-appconfig-meta-recursive - -This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics. - -## allow-appconfig-meta - -This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics. - -## scope-appconfig-recursive - -This scope recursive access to the complete `$APPCONFIG` folder, including sub directories and files. - -## scope-appconfig - -This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder. - -## scope-appconfig-index - -This scope permits to list all files and folders in the `$APPCONFIG`folder. - -## allow-appdata-read-recursive - -This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories. - -## allow-appdata-write-recursive - -This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories. - -## allow-appdata-read - -This allows non-recursive read access to the `$APPDATA` folder. - -## allow-appdata-write - -This allows non-recursive write access to the `$APPDATA` folder. - -## allow-appdata-meta-recursive - -This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics. - -## allow-appdata-meta - -This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics. - -## scope-appdata-recursive - -This scope recursive access to the complete `$APPDATA` folder, including sub directories and files. - -## scope-appdata - -This scope permits access to all files and list content of top level directories in the `$APPDATA`folder. - -## scope-appdata-index - -This scope permits to list all files and folders in the `$APPDATA`folder. - -## allow-applocaldata-read-recursive - -This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories. - -## allow-applocaldata-write-recursive - -This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories. - -## allow-applocaldata-read - -This allows non-recursive read access to the `$APPLOCALDATA` folder. - -## allow-applocaldata-write - -This allows non-recursive write access to the `$APPLOCALDATA` folder. - -## allow-applocaldata-meta-recursive - -This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics. - -## allow-applocaldata-meta - -This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics. - -## scope-applocaldata-recursive - -This scope recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files. - -## scope-applocaldata - -This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder. - -## scope-applocaldata-index - -This scope permits to list all files and folders in the `$APPLOCALDATA`folder. - -## allow-applog-read-recursive - -This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories. - -## allow-applog-write-recursive - -This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories. - -## allow-applog-read - -This allows non-recursive read access to the `$APPLOG` folder. - -## allow-applog-write - -This allows non-recursive write access to the `$APPLOG` folder. - -## allow-applog-meta-recursive - -This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics. - -## allow-applog-meta - -This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics. - -## scope-applog-recursive - -This scope recursive access to the complete `$APPLOG` folder, including sub directories and files. - -## scope-applog - -This scope permits access to all files and list content of top level directories in the `$APPLOG`folder. - -## scope-applog-index - -This scope permits to list all files and folders in the `$APPLOG`folder. - -## allow-audio-read-recursive - -This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories. - -## allow-audio-write-recursive - -This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories. - -## allow-audio-read - -This allows non-recursive read access to the `$AUDIO` folder. - -## allow-audio-write - -This allows non-recursive write access to the `$AUDIO` folder. - -## allow-audio-meta-recursive - -This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics. - -## allow-audio-meta - -This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics. - -## scope-audio-recursive - -This scope recursive access to the complete `$AUDIO` folder, including sub directories and files. - -## scope-audio - -This scope permits access to all files and list content of top level directories in the `$AUDIO`folder. - -## scope-audio-index - -This scope permits to list all files and folders in the `$AUDIO`folder. - -## allow-cache-read-recursive - -This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories. - -## allow-cache-write-recursive - -This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories. - -## allow-cache-read - -This allows non-recursive read access to the `$CACHE` folder. - -## allow-cache-write - -This allows non-recursive write access to the `$CACHE` folder. - -## allow-cache-meta-recursive - -This allows read access to metadata of the `$CACHE` folder, including file listing and statistics. - -## allow-cache-meta - -This allows read access to metadata of the `$CACHE` folder, including file listing and statistics. - -## scope-cache-recursive - -This scope recursive access to the complete `$CACHE` folder, including sub directories and files. - -## scope-cache - -This scope permits access to all files and list content of top level directories in the `$CACHE`folder. - -## scope-cache-index - -This scope permits to list all files and folders in the `$CACHE`folder. - -## allow-config-read-recursive - -This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories. - -## allow-config-write-recursive - -This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories. - -## allow-config-read - -This allows non-recursive read access to the `$CONFIG` folder. - -## allow-config-write - -This allows non-recursive write access to the `$CONFIG` folder. - -## allow-config-meta-recursive - -This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics. - -## allow-config-meta - -This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics. - -## scope-config-recursive - -This scope recursive access to the complete `$CONFIG` folder, including sub directories and files. - -## scope-config - -This scope permits access to all files and list content of top level directories in the `$CONFIG`folder. - -## scope-config-index - -This scope permits to list all files and folders in the `$CONFIG`folder. - -## allow-data-read-recursive - -This allows full recursive read access to the complete `$DATA` folder, files and subdirectories. - -## allow-data-write-recursive - -This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories. - -## allow-data-read - -This allows non-recursive read access to the `$DATA` folder. - -## allow-data-write - -This allows non-recursive write access to the `$DATA` folder. - -## allow-data-meta-recursive - -This allows read access to metadata of the `$DATA` folder, including file listing and statistics. - -## allow-data-meta - -This allows read access to metadata of the `$DATA` folder, including file listing and statistics. - -## scope-data-recursive - -This scope recursive access to the complete `$DATA` folder, including sub directories and files. - -## scope-data - -This scope permits access to all files and list content of top level directories in the `$DATA`folder. - -## scope-data-index - -This scope permits to list all files and folders in the `$DATA`folder. - -## allow-desktop-read-recursive - -This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories. - -## allow-desktop-write-recursive - -This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories. - -## allow-desktop-read - -This allows non-recursive read access to the `$DESKTOP` folder. - -## allow-desktop-write - -This allows non-recursive write access to the `$DESKTOP` folder. - -## allow-desktop-meta-recursive - -This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics. - -## allow-desktop-meta - -This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics. - -## scope-desktop-recursive - -This scope recursive access to the complete `$DESKTOP` folder, including sub directories and files. - -## scope-desktop - -This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder. - -## scope-desktop-index - -This scope permits to list all files and folders in the `$DESKTOP`folder. - -## allow-document-read-recursive - -This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories. - -## allow-document-write-recursive - -This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories. - -## allow-document-read - -This allows non-recursive read access to the `$DOCUMENT` folder. - -## allow-document-write - -This allows non-recursive write access to the `$DOCUMENT` folder. - -## allow-document-meta-recursive - -This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics. - -## allow-document-meta - -This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics. - -## scope-document-recursive - -This scope recursive access to the complete `$DOCUMENT` folder, including sub directories and files. - -## scope-document - -This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder. - -## scope-document-index - -This scope permits to list all files and folders in the `$DOCUMENT`folder. - -## allow-download-read-recursive - -This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories. - -## allow-download-write-recursive - -This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories. - -## allow-download-read - -This allows non-recursive read access to the `$DOWNLOAD` folder. - -## allow-download-write - -This allows non-recursive write access to the `$DOWNLOAD` folder. - -## allow-download-meta-recursive - -This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics. - -## allow-download-meta - -This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics. - -## scope-download-recursive - -This scope recursive access to the complete `$DOWNLOAD` folder, including sub directories and files. - -## scope-download - -This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder. - -## scope-download-index - -This scope permits to list all files and folders in the `$DOWNLOAD`folder. - -## allow-exe-read-recursive - -This allows full recursive read access to the complete `$EXE` folder, files and subdirectories. - -## allow-exe-write-recursive - -This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories. - -## allow-exe-read - -This allows non-recursive read access to the `$EXE` folder. - -## allow-exe-write - -This allows non-recursive write access to the `$EXE` folder. - -## allow-exe-meta-recursive - -This allows read access to metadata of the `$EXE` folder, including file listing and statistics. - -## allow-exe-meta - -This allows read access to metadata of the `$EXE` folder, including file listing and statistics. - -## scope-exe-recursive - -This scope recursive access to the complete `$EXE` folder, including sub directories and files. - -## scope-exe - -This scope permits access to all files and list content of top level directories in the `$EXE`folder. - -## scope-exe-index - -This scope permits to list all files and folders in the `$EXE`folder. - -## allow-font-read-recursive - -This allows full recursive read access to the complete `$FONT` folder, files and subdirectories. - -## allow-font-write-recursive - -This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories. - -## allow-font-read - -This allows non-recursive read access to the `$FONT` folder. - -## allow-font-write - -This allows non-recursive write access to the `$FONT` folder. - -## allow-font-meta-recursive - -This allows read access to metadata of the `$FONT` folder, including file listing and statistics. - -## allow-font-meta - -This allows read access to metadata of the `$FONT` folder, including file listing and statistics. - -## scope-font-recursive - -This scope recursive access to the complete `$FONT` folder, including sub directories and files. - -## scope-font - -This scope permits access to all files and list content of top level directories in the `$FONT`folder. - -## scope-font-index - -This scope permits to list all files and folders in the `$FONT`folder. - -## allow-home-read-recursive - -This allows full recursive read access to the complete `$HOME` folder, files and subdirectories. - -## allow-home-write-recursive - -This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories. - -## allow-home-read - -This allows non-recursive read access to the `$HOME` folder. - -## allow-home-write - -This allows non-recursive write access to the `$HOME` folder. - -## allow-home-meta-recursive - -This allows read access to metadata of the `$HOME` folder, including file listing and statistics. - -## allow-home-meta - -This allows read access to metadata of the `$HOME` folder, including file listing and statistics. - -## scope-home-recursive - -This scope recursive access to the complete `$HOME` folder, including sub directories and files. - -## scope-home - -This scope permits access to all files and list content of top level directories in the `$HOME`folder. - -## scope-home-index - -This scope permits to list all files and folders in the `$HOME`folder. - -## allow-localdata-read-recursive - -This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories. - -## allow-localdata-write-recursive - -This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories. - -## allow-localdata-read - -This allows non-recursive read access to the `$LOCALDATA` folder. - -## allow-localdata-write - -This allows non-recursive write access to the `$LOCALDATA` folder. - -## allow-localdata-meta-recursive - -This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics. - -## allow-localdata-meta - -This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics. - -## scope-localdata-recursive - -This scope recursive access to the complete `$LOCALDATA` folder, including sub directories and files. - -## scope-localdata - -This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder. - -## scope-localdata-index - -This scope permits to list all files and folders in the `$LOCALDATA`folder. - -## allow-log-read-recursive - -This allows full recursive read access to the complete `$LOG` folder, files and subdirectories. - -## allow-log-write-recursive - -This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories. - -## allow-log-read - -This allows non-recursive read access to the `$LOG` folder. - -## allow-log-write - -This allows non-recursive write access to the `$LOG` folder. - -## allow-log-meta-recursive - -This allows read access to metadata of the `$LOG` folder, including file listing and statistics. - -## allow-log-meta - -This allows read access to metadata of the `$LOG` folder, including file listing and statistics. - -## scope-log-recursive - -This scope recursive access to the complete `$LOG` folder, including sub directories and files. - -## scope-log - -This scope permits access to all files and list content of top level directories in the `$LOG`folder. - -## scope-log-index - -This scope permits to list all files and folders in the `$LOG`folder. - -## allow-picture-read-recursive - -This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories. - -## allow-picture-write-recursive - -This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories. - -## allow-picture-read - -This allows non-recursive read access to the `$PICTURE` folder. - -## allow-picture-write - -This allows non-recursive write access to the `$PICTURE` folder. - -## allow-picture-meta-recursive - -This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics. - -## allow-picture-meta - -This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics. - -## scope-picture-recursive - -This scope recursive access to the complete `$PICTURE` folder, including sub directories and files. - -## scope-picture - -This scope permits access to all files and list content of top level directories in the `$PICTURE`folder. - -## scope-picture-index - -This scope permits to list all files and folders in the `$PICTURE`folder. - -## allow-public-read-recursive - -This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories. - -## allow-public-write-recursive - -This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories. - -## allow-public-read - -This allows non-recursive read access to the `$PUBLIC` folder. - -## allow-public-write - -This allows non-recursive write access to the `$PUBLIC` folder. - -## allow-public-meta-recursive - -This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics. - -## allow-public-meta - -This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics. - -## scope-public-recursive - -This scope recursive access to the complete `$PUBLIC` folder, including sub directories and files. - -## scope-public - -This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder. - -## scope-public-index - -This scope permits to list all files and folders in the `$PUBLIC`folder. - -## allow-resource-read-recursive - -This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories. - -## allow-resource-write-recursive - -This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories. - -## allow-resource-read - -This allows non-recursive read access to the `$RESOURCE` folder. - -## allow-resource-write - -This allows non-recursive write access to the `$RESOURCE` folder. - -## allow-resource-meta-recursive - -This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics. - -## allow-resource-meta - -This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics. - -## scope-resource-recursive - -This scope recursive access to the complete `$RESOURCE` folder, including sub directories and files. - -## scope-resource - -This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder. - -## scope-resource-index - -This scope permits to list all files and folders in the `$RESOURCE`folder. - -## allow-runtime-read-recursive - -This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories. - -## allow-runtime-write-recursive - -This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories. - -## allow-runtime-read - -This allows non-recursive read access to the `$RUNTIME` folder. - -## allow-runtime-write - -This allows non-recursive write access to the `$RUNTIME` folder. - -## allow-runtime-meta-recursive - -This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics. - -## allow-runtime-meta - -This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics. - -## scope-runtime-recursive - -This scope recursive access to the complete `$RUNTIME` folder, including sub directories and files. - -## scope-runtime - -This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder. - -## scope-runtime-index - -This scope permits to list all files and folders in the `$RUNTIME`folder. - -## allow-temp-read-recursive - -This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories. - -## allow-temp-write-recursive - -This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories. - -## allow-temp-read - -This allows non-recursive read access to the `$TEMP` folder. - -## allow-temp-write - -This allows non-recursive write access to the `$TEMP` folder. - -## allow-temp-meta-recursive - -This allows read access to metadata of the `$TEMP` folder, including file listing and statistics. - -## allow-temp-meta - -This allows read access to metadata of the `$TEMP` folder, including file listing and statistics. - -## scope-temp-recursive - -This scope recursive access to the complete `$TEMP` folder, including sub directories and files. - -## scope-temp - -This scope permits access to all files and list content of top level directories in the `$TEMP`folder. - -## scope-temp-index - -This scope permits to list all files and folders in the `$TEMP`folder. - -## allow-template-read-recursive - -This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories. - -## allow-template-write-recursive - -This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories. - -## allow-template-read - -This allows non-recursive read access to the `$TEMPLATE` folder. - -## allow-template-write - -This allows non-recursive write access to the `$TEMPLATE` folder. - -## allow-template-meta-recursive - -This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics. - -## allow-template-meta - -This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics. - -## scope-template-recursive - -This scope recursive access to the complete `$TEMPLATE` folder, including sub directories and files. - -## scope-template - -This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder. - -## scope-template-index - -This scope permits to list all files and folders in the `$TEMPLATE`folder. - -## allow-video-read-recursive - -This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories. - -## allow-video-write-recursive - -This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories. - -## allow-video-read - -This allows non-recursive read access to the `$VIDEO` folder. - -## allow-video-write - -This allows non-recursive write access to the `$VIDEO` folder. - -## allow-video-meta-recursive - -This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics. - -## allow-video-meta - -This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics. - -## scope-video-recursive - -This scope recursive access to the complete `$VIDEO` folder, including sub directories and files. - -## scope-video - -This scope permits access to all files and list content of top level directories in the `$VIDEO`folder. - -## scope-video-index - -This scope permits to list all files and folders in the `$VIDEO`folder. - -## allow-copy-file - -Enables the copy_file command without any pre-configured scope. - -## deny-copy-file - -Denies the copy_file command without any pre-configured scope. - -## allow-create - -Enables the create command without any pre-configured scope. - -## deny-create - -Denies the create command without any pre-configured scope. - -## allow-exists - -Enables the exists command without any pre-configured scope. - -## deny-exists - -Denies the exists command without any pre-configured scope. - -## allow-fstat - -Enables the fstat command without any pre-configured scope. - -## deny-fstat - -Denies the fstat command without any pre-configured scope. - -## allow-ftruncate - -Enables the ftruncate command without any pre-configured scope. - -## deny-ftruncate - -Denies the ftruncate command without any pre-configured scope. - -## allow-lstat - -Enables the lstat command without any pre-configured scope. - -## deny-lstat - -Denies the lstat command without any pre-configured scope. - -## allow-mkdir - -Enables the mkdir command without any pre-configured scope. - -## deny-mkdir - -Denies the mkdir command without any pre-configured scope. - -## allow-open - -Enables the open command without any pre-configured scope. - -## deny-open - -Denies the open command without any pre-configured scope. - -## allow-read - -Enables the read command without any pre-configured scope. - -## deny-read - -Denies the read command without any pre-configured scope. - -## allow-read-dir - -Enables the read_dir command without any pre-configured scope. - -## deny-read-dir - -Denies the read_dir command without any pre-configured scope. - -## allow-read-file - -Enables the read_file command without any pre-configured scope. - -## deny-read-file - -Denies the read_file command without any pre-configured scope. - -## allow-read-text-file - -Enables the read_text_file command without any pre-configured scope. - -## deny-read-text-file - -Denies the read_text_file command without any pre-configured scope. - -## allow-read-text-file-lines - -Enables the read_text_file_lines command without any pre-configured scope. - -## deny-read-text-file-lines - -Denies the read_text_file_lines command without any pre-configured scope. - -## allow-read-text-file-lines-next - -Enables the read_text_file_lines_next command without any pre-configured scope. - -## deny-read-text-file-lines-next - -Denies the read_text_file_lines_next command without any pre-configured scope. - -## allow-remove - -Enables the remove command without any pre-configured scope. - -## deny-remove - -Denies the remove command without any pre-configured scope. - -## allow-rename - -Enables the rename command without any pre-configured scope. - -## deny-rename - -Denies the rename command without any pre-configured scope. - -## allow-seek - -Enables the seek command without any pre-configured scope. - -## deny-seek - -Denies the seek command without any pre-configured scope. - -## allow-stat - -Enables the stat command without any pre-configured scope. - -## deny-stat - -Denies the stat command without any pre-configured scope. - -## allow-truncate - -Enables the truncate command without any pre-configured scope. - -## deny-truncate - -Denies the truncate command without any pre-configured scope. - -## allow-unwatch - -Enables the unwatch command without any pre-configured scope. - -## deny-unwatch - -Denies the unwatch command without any pre-configured scope. - -## allow-watch - -Enables the watch command without any pre-configured scope. - -## deny-watch - -Denies the watch command without any pre-configured scope. - -## allow-write - -Enables the write command without any pre-configured scope. - -## deny-write - -Denies the write command without any pre-configured scope. - -## allow-write-file - -Enables the write_file command without any pre-configured scope. - -## deny-write-file - -Denies the write_file command without any pre-configured scope. - -## allow-write-text-file - -Enables the write_text_file command without any pre-configured scope. - -## deny-write-text-file - -Denies the write_text_file command without any pre-configured scope. - -## default - -# Tauri `fs` default permissions +| Permission | Description | +|------|-----| +|`allow-app-read-recursive`|This allows full recursive read access to the complete `$APP` folder, files and subdirectories.| +|`allow-app-write-recursive`|This allows full recusrive write access to the complete `$APP` folder, files and subdirectories.| +|`allow-app-read`|This allows non-recursive read access to the `$APP` folder.| +|`allow-app-write`|This allows non-recursive write access to the `$APP` folder.| +|`allow-app-meta-recursive`|This allows read access to metadata of the `$APP` folder, including file listing and statistics.| +|`allow-app-meta`|This allows read access to metadata of the `$APP` folder, including file listing and statistics.| +|`scope-app-recursive`|This scope recursive access to the complete `$APP` folder, including sub directories and files.| +|`scope-app`|This scope permits access to all files and list content of top level directories in the `$APP`folder.| +|`scope-app-index`|This scope permits to list all files and folders in the `$APP`folder.| +|`allow-appcache-read-recursive`|This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.| +|`allow-appcache-write-recursive`|This allows full recusrive write access to the complete `$APPCACHE` folder, files and subdirectories.| +|`allow-appcache-read`|This allows non-recursive read access to the `$APPCACHE` folder.| +|`allow-appcache-write`|This allows non-recursive write access to the `$APPCACHE` folder.| +|`allow-appcache-meta-recursive`|This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.| +|`allow-appcache-meta`|This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.| +|`scope-appcache-recursive`|This scope recursive access to the complete `$APPCACHE` folder, including sub directories and files.| +|`scope-appcache`|This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.| +|`scope-appcache-index`|This scope permits to list all files and folders in the `$APPCACHE`folder.| +|`allow-appconfig-read-recursive`|This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.| +|`allow-appconfig-write-recursive`|This allows full recusrive write access to the complete `$APPCONFIG` folder, files and subdirectories.| +|`allow-appconfig-read`|This allows non-recursive read access to the `$APPCONFIG` folder.| +|`allow-appconfig-write`|This allows non-recursive write access to the `$APPCONFIG` folder.| +|`allow-appconfig-meta-recursive`|This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.| +|`allow-appconfig-meta`|This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.| +|`scope-appconfig-recursive`|This scope recursive access to the complete `$APPCONFIG` folder, including sub directories and files.| +|`scope-appconfig`|This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.| +|`scope-appconfig-index`|This scope permits to list all files and folders in the `$APPCONFIG`folder.| +|`allow-appdata-read-recursive`|This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.| +|`allow-appdata-write-recursive`|This allows full recusrive write access to the complete `$APPDATA` folder, files and subdirectories.| +|`allow-appdata-read`|This allows non-recursive read access to the `$APPDATA` folder.| +|`allow-appdata-write`|This allows non-recursive write access to the `$APPDATA` folder.| +|`allow-appdata-meta-recursive`|This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.| +|`allow-appdata-meta`|This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.| +|`scope-appdata-recursive`|This scope recursive access to the complete `$APPDATA` folder, including sub directories and files.| +|`scope-appdata`|This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.| +|`scope-appdata-index`|This scope permits to list all files and folders in the `$APPDATA`folder.| +|`allow-applocaldata-read-recursive`|This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.| +|`allow-applocaldata-write-recursive`|This allows full recusrive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.| +|`allow-applocaldata-read`|This allows non-recursive read access to the `$APPLOCALDATA` folder.| +|`allow-applocaldata-write`|This allows non-recursive write access to the `$APPLOCALDATA` folder.| +|`allow-applocaldata-meta-recursive`|This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.| +|`allow-applocaldata-meta`|This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.| +|`scope-applocaldata-recursive`|This scope recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.| +|`scope-applocaldata`|This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.| +|`scope-applocaldata-index`|This scope permits to list all files and folders in the `$APPLOCALDATA`folder.| +|`allow-applog-read-recursive`|This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.| +|`allow-applog-write-recursive`|This allows full recusrive write access to the complete `$APPLOG` folder, files and subdirectories.| +|`allow-applog-read`|This allows non-recursive read access to the `$APPLOG` folder.| +|`allow-applog-write`|This allows non-recursive write access to the `$APPLOG` folder.| +|`allow-applog-meta-recursive`|This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.| +|`allow-applog-meta`|This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.| +|`scope-applog-recursive`|This scope recursive access to the complete `$APPLOG` folder, including sub directories and files.| +|`scope-applog`|This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.| +|`scope-applog-index`|This scope permits to list all files and folders in the `$APPLOG`folder.| +|`allow-audio-read-recursive`|This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.| +|`allow-audio-write-recursive`|This allows full recusrive write access to the complete `$AUDIO` folder, files and subdirectories.| +|`allow-audio-read`|This allows non-recursive read access to the `$AUDIO` folder.| +|`allow-audio-write`|This allows non-recursive write access to the `$AUDIO` folder.| +|`allow-audio-meta-recursive`|This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.| +|`allow-audio-meta`|This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.| +|`scope-audio-recursive`|This scope recursive access to the complete `$AUDIO` folder, including sub directories and files.| +|`scope-audio`|This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.| +|`scope-audio-index`|This scope permits to list all files and folders in the `$AUDIO`folder.| +|`allow-cache-read-recursive`|This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.| +|`allow-cache-write-recursive`|This allows full recusrive write access to the complete `$CACHE` folder, files and subdirectories.| +|`allow-cache-read`|This allows non-recursive read access to the `$CACHE` folder.| +|`allow-cache-write`|This allows non-recursive write access to the `$CACHE` folder.| +|`allow-cache-meta-recursive`|This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.| +|`allow-cache-meta`|This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.| +|`scope-cache-recursive`|This scope recursive access to the complete `$CACHE` folder, including sub directories and files.| +|`scope-cache`|This scope permits access to all files and list content of top level directories in the `$CACHE`folder.| +|`scope-cache-index`|This scope permits to list all files and folders in the `$CACHE`folder.| +|`allow-config-read-recursive`|This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.| +|`allow-config-write-recursive`|This allows full recusrive write access to the complete `$CONFIG` folder, files and subdirectories.| +|`allow-config-read`|This allows non-recursive read access to the `$CONFIG` folder.| +|`allow-config-write`|This allows non-recursive write access to the `$CONFIG` folder.| +|`allow-config-meta-recursive`|This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.| +|`allow-config-meta`|This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.| +|`scope-config-recursive`|This scope recursive access to the complete `$CONFIG` folder, including sub directories and files.| +|`scope-config`|This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.| +|`scope-config-index`|This scope permits to list all files and folders in the `$CONFIG`folder.| +|`allow-data-read-recursive`|This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.| +|`allow-data-write-recursive`|This allows full recusrive write access to the complete `$DATA` folder, files and subdirectories.| +|`allow-data-read`|This allows non-recursive read access to the `$DATA` folder.| +|`allow-data-write`|This allows non-recursive write access to the `$DATA` folder.| +|`allow-data-meta-recursive`|This allows read access to metadata of the `$DATA` folder, including file listing and statistics.| +|`allow-data-meta`|This allows read access to metadata of the `$DATA` folder, including file listing and statistics.| +|`scope-data-recursive`|This scope recursive access to the complete `$DATA` folder, including sub directories and files.| +|`scope-data`|This scope permits access to all files and list content of top level directories in the `$DATA`folder.| +|`scope-data-index`|This scope permits to list all files and folders in the `$DATA`folder.| +|`allow-desktop-read-recursive`|This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.| +|`allow-desktop-write-recursive`|This allows full recusrive write access to the complete `$DESKTOP` folder, files and subdirectories.| +|`allow-desktop-read`|This allows non-recursive read access to the `$DESKTOP` folder.| +|`allow-desktop-write`|This allows non-recursive write access to the `$DESKTOP` folder.| +|`allow-desktop-meta-recursive`|This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.| +|`allow-desktop-meta`|This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.| +|`scope-desktop-recursive`|This scope recursive access to the complete `$DESKTOP` folder, including sub directories and files.| +|`scope-desktop`|This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.| +|`scope-desktop-index`|This scope permits to list all files and folders in the `$DESKTOP`folder.| +|`allow-document-read-recursive`|This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.| +|`allow-document-write-recursive`|This allows full recusrive write access to the complete `$DOCUMENT` folder, files and subdirectories.| +|`allow-document-read`|This allows non-recursive read access to the `$DOCUMENT` folder.| +|`allow-document-write`|This allows non-recursive write access to the `$DOCUMENT` folder.| +|`allow-document-meta-recursive`|This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.| +|`allow-document-meta`|This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.| +|`scope-document-recursive`|This scope recursive access to the complete `$DOCUMENT` folder, including sub directories and files.| +|`scope-document`|This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.| +|`scope-document-index`|This scope permits to list all files and folders in the `$DOCUMENT`folder.| +|`allow-download-read-recursive`|This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.| +|`allow-download-write-recursive`|This allows full recusrive write access to the complete `$DOWNLOAD` folder, files and subdirectories.| +|`allow-download-read`|This allows non-recursive read access to the `$DOWNLOAD` folder.| +|`allow-download-write`|This allows non-recursive write access to the `$DOWNLOAD` folder.| +|`allow-download-meta-recursive`|This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.| +|`allow-download-meta`|This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.| +|`scope-download-recursive`|This scope recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.| +|`scope-download`|This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.| +|`scope-download-index`|This scope permits to list all files and folders in the `$DOWNLOAD`folder.| +|`allow-exe-read-recursive`|This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.| +|`allow-exe-write-recursive`|This allows full recusrive write access to the complete `$EXE` folder, files and subdirectories.| +|`allow-exe-read`|This allows non-recursive read access to the `$EXE` folder.| +|`allow-exe-write`|This allows non-recursive write access to the `$EXE` folder.| +|`allow-exe-meta-recursive`|This allows read access to metadata of the `$EXE` folder, including file listing and statistics.| +|`allow-exe-meta`|This allows read access to metadata of the `$EXE` folder, including file listing and statistics.| +|`scope-exe-recursive`|This scope recursive access to the complete `$EXE` folder, including sub directories and files.| +|`scope-exe`|This scope permits access to all files and list content of top level directories in the `$EXE`folder.| +|`scope-exe-index`|This scope permits to list all files and folders in the `$EXE`folder.| +|`allow-font-read-recursive`|This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.| +|`allow-font-write-recursive`|This allows full recusrive write access to the complete `$FONT` folder, files and subdirectories.| +|`allow-font-read`|This allows non-recursive read access to the `$FONT` folder.| +|`allow-font-write`|This allows non-recursive write access to the `$FONT` folder.| +|`allow-font-meta-recursive`|This allows read access to metadata of the `$FONT` folder, including file listing and statistics.| +|`allow-font-meta`|This allows read access to metadata of the `$FONT` folder, including file listing and statistics.| +|`scope-font-recursive`|This scope recursive access to the complete `$FONT` folder, including sub directories and files.| +|`scope-font`|This scope permits access to all files and list content of top level directories in the `$FONT`folder.| +|`scope-font-index`|This scope permits to list all files and folders in the `$FONT`folder.| +|`allow-home-read-recursive`|This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.| +|`allow-home-write-recursive`|This allows full recusrive write access to the complete `$HOME` folder, files and subdirectories.| +|`allow-home-read`|This allows non-recursive read access to the `$HOME` folder.| +|`allow-home-write`|This allows non-recursive write access to the `$HOME` folder.| +|`allow-home-meta-recursive`|This allows read access to metadata of the `$HOME` folder, including file listing and statistics.| +|`allow-home-meta`|This allows read access to metadata of the `$HOME` folder, including file listing and statistics.| +|`scope-home-recursive`|This scope recursive access to the complete `$HOME` folder, including sub directories and files.| +|`scope-home`|This scope permits access to all files and list content of top level directories in the `$HOME`folder.| +|`scope-home-index`|This scope permits to list all files and folders in the `$HOME`folder.| +|`allow-localdata-read-recursive`|This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.| +|`allow-localdata-write-recursive`|This allows full recusrive write access to the complete `$LOCALDATA` folder, files and subdirectories.| +|`allow-localdata-read`|This allows non-recursive read access to the `$LOCALDATA` folder.| +|`allow-localdata-write`|This allows non-recursive write access to the `$LOCALDATA` folder.| +|`allow-localdata-meta-recursive`|This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.| +|`allow-localdata-meta`|This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.| +|`scope-localdata-recursive`|This scope recursive access to the complete `$LOCALDATA` folder, including sub directories and files.| +|`scope-localdata`|This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.| +|`scope-localdata-index`|This scope permits to list all files and folders in the `$LOCALDATA`folder.| +|`allow-log-read-recursive`|This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.| +|`allow-log-write-recursive`|This allows full recusrive write access to the complete `$LOG` folder, files and subdirectories.| +|`allow-log-read`|This allows non-recursive read access to the `$LOG` folder.| +|`allow-log-write`|This allows non-recursive write access to the `$LOG` folder.| +|`allow-log-meta-recursive`|This allows read access to metadata of the `$LOG` folder, including file listing and statistics.| +|`allow-log-meta`|This allows read access to metadata of the `$LOG` folder, including file listing and statistics.| +|`scope-log-recursive`|This scope recursive access to the complete `$LOG` folder, including sub directories and files.| +|`scope-log`|This scope permits access to all files and list content of top level directories in the `$LOG`folder.| +|`scope-log-index`|This scope permits to list all files and folders in the `$LOG`folder.| +|`allow-picture-read-recursive`|This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.| +|`allow-picture-write-recursive`|This allows full recusrive write access to the complete `$PICTURE` folder, files and subdirectories.| +|`allow-picture-read`|This allows non-recursive read access to the `$PICTURE` folder.| +|`allow-picture-write`|This allows non-recursive write access to the `$PICTURE` folder.| +|`allow-picture-meta-recursive`|This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.| +|`allow-picture-meta`|This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.| +|`scope-picture-recursive`|This scope recursive access to the complete `$PICTURE` folder, including sub directories and files.| +|`scope-picture`|This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.| +|`scope-picture-index`|This scope permits to list all files and folders in the `$PICTURE`folder.| +|`allow-public-read-recursive`|This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.| +|`allow-public-write-recursive`|This allows full recusrive write access to the complete `$PUBLIC` folder, files and subdirectories.| +|`allow-public-read`|This allows non-recursive read access to the `$PUBLIC` folder.| +|`allow-public-write`|This allows non-recursive write access to the `$PUBLIC` folder.| +|`allow-public-meta-recursive`|This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.| +|`allow-public-meta`|This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.| +|`scope-public-recursive`|This scope recursive access to the complete `$PUBLIC` folder, including sub directories and files.| +|`scope-public`|This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.| +|`scope-public-index`|This scope permits to list all files and folders in the `$PUBLIC`folder.| +|`allow-resource-read-recursive`|This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.| +|`allow-resource-write-recursive`|This allows full recusrive write access to the complete `$RESOURCE` folder, files and subdirectories.| +|`allow-resource-read`|This allows non-recursive read access to the `$RESOURCE` folder.| +|`allow-resource-write`|This allows non-recursive write access to the `$RESOURCE` folder.| +|`allow-resource-meta-recursive`|This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.| +|`allow-resource-meta`|This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.| +|`scope-resource-recursive`|This scope recursive access to the complete `$RESOURCE` folder, including sub directories and files.| +|`scope-resource`|This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.| +|`scope-resource-index`|This scope permits to list all files and folders in the `$RESOURCE`folder.| +|`allow-runtime-read-recursive`|This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.| +|`allow-runtime-write-recursive`|This allows full recusrive write access to the complete `$RUNTIME` folder, files and subdirectories.| +|`allow-runtime-read`|This allows non-recursive read access to the `$RUNTIME` folder.| +|`allow-runtime-write`|This allows non-recursive write access to the `$RUNTIME` folder.| +|`allow-runtime-meta-recursive`|This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.| +|`allow-runtime-meta`|This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.| +|`scope-runtime-recursive`|This scope recursive access to the complete `$RUNTIME` folder, including sub directories and files.| +|`scope-runtime`|This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.| +|`scope-runtime-index`|This scope permits to list all files and folders in the `$RUNTIME`folder.| +|`allow-temp-read-recursive`|This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.| +|`allow-temp-write-recursive`|This allows full recusrive write access to the complete `$TEMP` folder, files and subdirectories.| +|`allow-temp-read`|This allows non-recursive read access to the `$TEMP` folder.| +|`allow-temp-write`|This allows non-recursive write access to the `$TEMP` folder.| +|`allow-temp-meta-recursive`|This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.| +|`allow-temp-meta`|This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.| +|`scope-temp-recursive`|This scope recursive access to the complete `$TEMP` folder, including sub directories and files.| +|`scope-temp`|This scope permits access to all files and list content of top level directories in the `$TEMP`folder.| +|`scope-temp-index`|This scope permits to list all files and folders in the `$TEMP`folder.| +|`allow-template-read-recursive`|This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.| +|`allow-template-write-recursive`|This allows full recusrive write access to the complete `$TEMPLATE` folder, files and subdirectories.| +|`allow-template-read`|This allows non-recursive read access to the `$TEMPLATE` folder.| +|`allow-template-write`|This allows non-recursive write access to the `$TEMPLATE` folder.| +|`allow-template-meta-recursive`|This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.| +|`allow-template-meta`|This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.| +|`scope-template-recursive`|This scope recursive access to the complete `$TEMPLATE` folder, including sub directories and files.| +|`scope-template`|This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.| +|`scope-template-index`|This scope permits to list all files and folders in the `$TEMPLATE`folder.| +|`allow-video-read-recursive`|This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.| +|`allow-video-write-recursive`|This allows full recusrive write access to the complete `$VIDEO` folder, files and subdirectories.| +|`allow-video-read`|This allows non-recursive read access to the `$VIDEO` folder.| +|`allow-video-write`|This allows non-recursive write access to the `$VIDEO` folder.| +|`allow-video-meta-recursive`|This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.| +|`allow-video-meta`|This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.| +|`scope-video-recursive`|This scope recursive access to the complete `$VIDEO` folder, including sub directories and files.| +|`scope-video`|This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.| +|`scope-video-index`|This scope permits to list all files and folders in the `$VIDEO`folder.| +|`allow-copy-file`|Enables the copy_file command without any pre-configured scope.| +|`deny-copy-file`|Denies the copy_file command without any pre-configured scope.| +|`allow-create`|Enables the create command without any pre-configured scope.| +|`deny-create`|Denies the create command without any pre-configured scope.| +|`allow-exists`|Enables the exists command without any pre-configured scope.| +|`deny-exists`|Denies the exists command without any pre-configured scope.| +|`allow-fstat`|Enables the fstat command without any pre-configured scope.| +|`deny-fstat`|Denies the fstat command without any pre-configured scope.| +|`allow-ftruncate`|Enables the ftruncate command without any pre-configured scope.| +|`deny-ftruncate`|Denies the ftruncate command without any pre-configured scope.| +|`allow-lstat`|Enables the lstat command without any pre-configured scope.| +|`deny-lstat`|Denies the lstat command without any pre-configured scope.| +|`allow-mkdir`|Enables the mkdir command without any pre-configured scope.| +|`deny-mkdir`|Denies the mkdir command without any pre-configured scope.| +|`allow-open`|Enables the open command without any pre-configured scope.| +|`deny-open`|Denies the open command without any pre-configured scope.| +|`allow-read`|Enables the read command without any pre-configured scope.| +|`deny-read`|Denies the read command without any pre-configured scope.| +|`allow-read-dir`|Enables the read_dir command without any pre-configured scope.| +|`deny-read-dir`|Denies the read_dir command without any pre-configured scope.| +|`allow-read-file`|Enables the read_file command without any pre-configured scope.| +|`deny-read-file`|Denies the read_file command without any pre-configured scope.| +|`allow-read-text-file`|Enables the read_text_file command without any pre-configured scope.| +|`deny-read-text-file`|Denies the read_text_file command without any pre-configured scope.| +|`allow-read-text-file-lines`|Enables the read_text_file_lines command without any pre-configured scope.| +|`deny-read-text-file-lines`|Denies the read_text_file_lines command without any pre-configured scope.| +|`allow-read-text-file-lines-next`|Enables the read_text_file_lines_next command without any pre-configured scope.| +|`deny-read-text-file-lines-next`|Denies the read_text_file_lines_next command without any pre-configured scope.| +|`allow-remove`|Enables the remove command without any pre-configured scope.| +|`deny-remove`|Denies the remove command without any pre-configured scope.| +|`allow-rename`|Enables the rename command without any pre-configured scope.| +|`deny-rename`|Denies the rename command without any pre-configured scope.| +|`allow-seek`|Enables the seek command without any pre-configured scope.| +|`deny-seek`|Denies the seek command without any pre-configured scope.| +|`allow-stat`|Enables the stat command without any pre-configured scope.| +|`deny-stat`|Denies the stat command without any pre-configured scope.| +|`allow-truncate`|Enables the truncate command without any pre-configured scope.| +|`deny-truncate`|Denies the truncate command without any pre-configured scope.| +|`allow-unwatch`|Enables the unwatch command without any pre-configured scope.| +|`deny-unwatch`|Denies the unwatch command without any pre-configured scope.| +|`allow-watch`|Enables the watch command without any pre-configured scope.| +|`deny-watch`|Denies the watch command without any pre-configured scope.| +|`allow-write`|Enables the write command without any pre-configured scope.| +|`deny-write`|Denies the write command without any pre-configured scope.| +|`allow-write-file`|Enables the write_file command without any pre-configured scope.| +|`deny-write-file`|Denies the write_file command without any pre-configured scope.| +|`allow-write-text-file`|Enables the write_text_file command without any pre-configured scope.| +|`deny-write-text-file`|Denies the write_text_file command without any pre-configured scope.| +|`default`|# Tauri `fs` default permissions This configuration file defines the default permissions granted to the filesystem. @@ -1116,49 +295,18 @@ This default permission set prevents access to critical components of the Tauri application by default. On Windows the webview data folder access is denied. - - -## deny-default - -This denies access to dangerous Tauri relevant files and folders by default. - -## deny-webview-data-linux - -This denies read access to the +| +|`deny-default`|This denies access to dangerous Tauri relevant files and folders by default.| +|`deny-webview-data-linux`|This denies read access to the `$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here. -Allowing access can lead to sensitive information disclosure and should be well considered. - -## deny-webview-data-windows - -This denies read access to the +Allowing access can lead to sensitive information disclosure and should be well considered.| +|`deny-webview-data-windows`|This denies read access to the `$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here. -Allowing access can lead to sensitive information disclosure and should be well considered. - -## read-all - -This enables all read related commands without any pre-configured accessible paths. - -## read-dirs - -This enables directory read and file metadata related commands without any pre-configured accessible paths. - -## read-files - -This enables file read related commands without any pre-configured accessible paths. - -## read-meta - -This enables all index or metadata related commands without any pre-configured accessible paths. - -## scope - -An empty permission you can use to modify the global scope. - -## write-all - -This enables all write related commands without any pre-configured accessible paths. - -## write-files - -This enables all file write related commands without any pre-configured accessible paths. - +Allowing access can lead to sensitive information disclosure and should be well considered.| +|`read-all`|This enables all read related commands without any pre-configured accessible paths.| +|`read-dirs`|This enables directory read and file metadata related commands without any pre-configured accessible paths.| +|`read-files`|This enables file read related commands without any pre-configured accessible paths.| +|`read-meta`|This enables all index or metadata related commands without any pre-configured accessible paths.| +|`scope`|An empty permission you can use to modify the global scope.| +|`write-all`|This enables all write related commands without any pre-configured accessible paths.| +|`write-files`|This enables all file write related commands without any pre-configured accessible paths.| diff --git a/plugins/fs/permissions/schemas/schema.json b/plugins/fs/permissions/schemas/schema.json index 3f7361abe..fadb22ae8 100644 --- a/plugins/fs/permissions/schemas/schema.json +++ b/plugins/fs/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/global-shortcut/permissions/autogenerated/reference.md b/plugins/global-shortcut/permissions/autogenerated/reference.md index daff8abad..071594c3f 100644 --- a/plugins/global-shortcut/permissions/autogenerated/reference.md +++ b/plugins/global-shortcut/permissions/autogenerated/reference.md @@ -1,42 +1,12 @@ -# Permissions - -## allow-is-registered - -Enables the is_registered command without any pre-configured scope. - -## deny-is-registered - -Denies the is_registered command without any pre-configured scope. - -## allow-register - -Enables the register command without any pre-configured scope. - -## deny-register - -Denies the register command without any pre-configured scope. - -## allow-register-all - -Enables the register_all command without any pre-configured scope. - -## deny-register-all - -Denies the register_all command without any pre-configured scope. - -## allow-unregister - -Enables the unregister command without any pre-configured scope. - -## deny-unregister - -Denies the unregister command without any pre-configured scope. - -## allow-unregister-all - -Enables the unregister_all command without any pre-configured scope. - -## deny-unregister-all - -Denies the unregister_all command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-is-registered`|Enables the is_registered command without any pre-configured scope.| +|`deny-is-registered`|Denies the is_registered command without any pre-configured scope.| +|`allow-register`|Enables the register command without any pre-configured scope.| +|`deny-register`|Denies the register command without any pre-configured scope.| +|`allow-register-all`|Enables the register_all command without any pre-configured scope.| +|`deny-register-all`|Denies the register_all command without any pre-configured scope.| +|`allow-unregister`|Enables the unregister command without any pre-configured scope.| +|`deny-unregister`|Denies the unregister command without any pre-configured scope.| +|`allow-unregister-all`|Enables the unregister_all command without any pre-configured scope.| +|`deny-unregister-all`|Denies the unregister_all command without any pre-configured scope.| diff --git a/plugins/global-shortcut/permissions/schemas/schema.json b/plugins/global-shortcut/permissions/schemas/schema.json index 7b601b8a7..1dadf863b 100644 --- a/plugins/global-shortcut/permissions/schemas/schema.json +++ b/plugins/global-shortcut/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/http/permissions/autogenerated/reference.md b/plugins/http/permissions/autogenerated/reference.md index 16508acbb..d0fa4a6ea 100644 --- a/plugins/http/permissions/autogenerated/reference.md +++ b/plugins/http/permissions/autogenerated/reference.md @@ -1,38 +1,11 @@ -# Permissions - -## allow-fetch - -Enables the fetch command without any pre-configured scope. - -## deny-fetch - -Denies the fetch command without any pre-configured scope. - -## allow-fetch-cancel - -Enables the fetch_cancel command without any pre-configured scope. - -## deny-fetch-cancel - -Denies the fetch_cancel command without any pre-configured scope. - -## allow-fetch-read-body - -Enables the fetch_read_body command without any pre-configured scope. - -## deny-fetch-read-body - -Denies the fetch_read_body command without any pre-configured scope. - -## allow-fetch-send - -Enables the fetch_send command without any pre-configured scope. - -## deny-fetch-send - -Denies the fetch_send command without any pre-configured scope. - -## default - -Allows all fetch operations - +| Permission | Description | +|------|-----| +|`allow-fetch`|Enables the fetch command without any pre-configured scope.| +|`deny-fetch`|Denies the fetch command without any pre-configured scope.| +|`allow-fetch-cancel`|Enables the fetch_cancel command without any pre-configured scope.| +|`deny-fetch-cancel`|Denies the fetch_cancel command without any pre-configured scope.| +|`allow-fetch-read-body`|Enables the fetch_read_body command without any pre-configured scope.| +|`deny-fetch-read-body`|Denies the fetch_read_body command without any pre-configured scope.| +|`allow-fetch-send`|Enables the fetch_send command without any pre-configured scope.| +|`deny-fetch-send`|Denies the fetch_send command without any pre-configured scope.| +|`default`|Allows all fetch operations| diff --git a/plugins/http/permissions/schemas/schema.json b/plugins/http/permissions/schemas/schema.json index 559f707bd..3462ddcd0 100644 --- a/plugins/http/permissions/schemas/schema.json +++ b/plugins/http/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/localhost/src/lib.rs b/plugins/localhost/src/lib.rs index c0b42a299..f5f99fe4d 100644 --- a/plugins/localhost/src/lib.rs +++ b/plugins/localhost/src/lib.rs @@ -102,16 +102,6 @@ impl Builder { on_request(&request, &mut response); } - #[cfg(target_os = "linux")] - if let Some(response_csp) = - response.headers.get("Content-Security-Policy") - { - let html = String::from_utf8_lossy(&asset.bytes); - let body = - html.replacen(tauri::utils::html::CSP_TOKEN, response_csp, 1); - asset.bytes = body.as_bytes().to_vec(); - } - let mut resp = HttpResponse::from_data(asset.bytes); for (header, value) in response.headers { if let Ok(h) = Header::from_bytes(header.as_bytes(), value) { diff --git a/plugins/log/permissions/autogenerated/reference.md b/plugins/log/permissions/autogenerated/reference.md index 7dd146d0d..075f183e2 100644 --- a/plugins/log/permissions/autogenerated/reference.md +++ b/plugins/log/permissions/autogenerated/reference.md @@ -1,14 +1,5 @@ -# Permissions - -## allow-log - -Enables the log command without any pre-configured scope. - -## deny-log - -Denies the log command without any pre-configured scope. - -## default - -Allows the log command - +| Permission | Description | +|------|-----| +|`allow-log`|Enables the log command without any pre-configured scope.| +|`deny-log`|Denies the log command without any pre-configured scope.| +|`default`|Allows the log command| diff --git a/plugins/log/permissions/schemas/schema.json b/plugins/log/permissions/schemas/schema.json index 3bb82dc46..9001f8def 100644 --- a/plugins/log/permissions/schemas/schema.json +++ b/plugins/log/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/nfc/permissions/autogenerated/reference.md b/plugins/nfc/permissions/autogenerated/reference.md index 9b972b2b2..3224859ff 100644 --- a/plugins/nfc/permissions/autogenerated/reference.md +++ b/plugins/nfc/permissions/autogenerated/reference.md @@ -1,26 +1,8 @@ -# Permissions - -## allow-is-available - -Enables the is_available command without any pre-configured scope. - -## deny-is-available - -Denies the is_available command without any pre-configured scope. - -## allow-scan - -Enables the scan command without any pre-configured scope. - -## deny-scan - -Denies the scan command without any pre-configured scope. - -## allow-write - -Enables the write command without any pre-configured scope. - -## deny-write - -Denies the write command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-is-available`|Enables the is_available command without any pre-configured scope.| +|`deny-is-available`|Denies the is_available command without any pre-configured scope.| +|`allow-scan`|Enables the scan command without any pre-configured scope.| +|`deny-scan`|Denies the scan command without any pre-configured scope.| +|`allow-write`|Enables the write command without any pre-configured scope.| +|`deny-write`|Denies the write command without any pre-configured scope.| diff --git a/plugins/nfc/permissions/schemas/schema.json b/plugins/nfc/permissions/schemas/schema.json index 2fbc43297..802bc48c4 100644 --- a/plugins/nfc/permissions/schemas/schema.json +++ b/plugins/nfc/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/notification/permissions/autogenerated/reference.md b/plugins/notification/permissions/autogenerated/reference.md index 44cbd31b8..3c461ca9f 100644 --- a/plugins/notification/permissions/autogenerated/reference.md +++ b/plugins/notification/permissions/autogenerated/reference.md @@ -1,30 +1,9 @@ -# Permissions - -## allow-is-permission-granted - -Enables the is_permission_granted command without any pre-configured scope. - -## deny-is-permission-granted - -Denies the is_permission_granted command without any pre-configured scope. - -## allow-notify - -Enables the notify command without any pre-configured scope. - -## deny-notify - -Denies the notify command without any pre-configured scope. - -## allow-request-permission - -Enables the request_permission command without any pre-configured scope. - -## deny-request-permission - -Denies the request_permission command without any pre-configured scope. - -## default - -Allows requesting permission, checking permission state and sending notifications - +| Permission | Description | +|------|-----| +|`allow-is-permission-granted`|Enables the is_permission_granted command without any pre-configured scope.| +|`deny-is-permission-granted`|Denies the is_permission_granted command without any pre-configured scope.| +|`allow-notify`|Enables the notify command without any pre-configured scope.| +|`deny-notify`|Denies the notify command without any pre-configured scope.| +|`allow-request-permission`|Enables the request_permission command without any pre-configured scope.| +|`deny-request-permission`|Denies the request_permission command without any pre-configured scope.| +|`default`|Allows requesting permission, checking permission state and sending notifications| diff --git a/plugins/notification/permissions/schemas/schema.json b/plugins/notification/permissions/schemas/schema.json index a027f1ffe..c3101b5c6 100644 --- a/plugins/notification/permissions/schemas/schema.json +++ b/plugins/notification/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/os/permissions/autogenerated/reference.md b/plugins/os/permissions/autogenerated/reference.md index f8d334fb6..563c8d284 100644 --- a/plugins/os/permissions/autogenerated/reference.md +++ b/plugins/os/permissions/autogenerated/reference.md @@ -1,66 +1,18 @@ -# Permissions - -## allow-arch - -Enables the arch command without any pre-configured scope. - -## deny-arch - -Denies the arch command without any pre-configured scope. - -## allow-exe-extension - -Enables the exe_extension command without any pre-configured scope. - -## deny-exe-extension - -Denies the exe_extension command without any pre-configured scope. - -## allow-family - -Enables the family command without any pre-configured scope. - -## deny-family - -Denies the family command without any pre-configured scope. - -## allow-hostname - -Enables the hostname command without any pre-configured scope. - -## deny-hostname - -Denies the hostname command without any pre-configured scope. - -## allow-locale - -Enables the locale command without any pre-configured scope. - -## deny-locale - -Denies the locale command without any pre-configured scope. - -## allow-os-type - -Enables the os_type command without any pre-configured scope. - -## deny-os-type - -Denies the os_type command without any pre-configured scope. - -## allow-platform - -Enables the platform command without any pre-configured scope. - -## deny-platform - -Denies the platform command without any pre-configured scope. - -## allow-version - -Enables the version command without any pre-configured scope. - -## deny-version - -Denies the version command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-arch`|Enables the arch command without any pre-configured scope.| +|`deny-arch`|Denies the arch command without any pre-configured scope.| +|`allow-exe-extension`|Enables the exe_extension command without any pre-configured scope.| +|`deny-exe-extension`|Denies the exe_extension command without any pre-configured scope.| +|`allow-family`|Enables the family command without any pre-configured scope.| +|`deny-family`|Denies the family command without any pre-configured scope.| +|`allow-hostname`|Enables the hostname command without any pre-configured scope.| +|`deny-hostname`|Denies the hostname command without any pre-configured scope.| +|`allow-locale`|Enables the locale command without any pre-configured scope.| +|`deny-locale`|Denies the locale command without any pre-configured scope.| +|`allow-os-type`|Enables the os_type command without any pre-configured scope.| +|`deny-os-type`|Denies the os_type command without any pre-configured scope.| +|`allow-platform`|Enables the platform command without any pre-configured scope.| +|`deny-platform`|Denies the platform command without any pre-configured scope.| +|`allow-version`|Enables the version command without any pre-configured scope.| +|`deny-version`|Denies the version command without any pre-configured scope.| diff --git a/plugins/os/permissions/schemas/schema.json b/plugins/os/permissions/schemas/schema.json index 95211cebd..053f783d1 100644 --- a/plugins/os/permissions/schemas/schema.json +++ b/plugins/os/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/positioner/permissions/autogenerated/reference.md b/plugins/positioner/permissions/autogenerated/reference.md index 60d18ba5f..b373d4fae 100644 --- a/plugins/positioner/permissions/autogenerated/reference.md +++ b/plugins/positioner/permissions/autogenerated/reference.md @@ -1,14 +1,5 @@ -# Permissions - -## allow-move-window - -Enables the move_window command without any pre-configured scope. - -## deny-move-window - -Denies the move_window command without any pre-configured scope. - -## default - -Allows the move_window command - +| Permission | Description | +|------|-----| +|`allow-move-window`|Enables the move_window command without any pre-configured scope.| +|`deny-move-window`|Denies the move_window command without any pre-configured scope.| +|`default`|Allows the move_window command| diff --git a/plugins/positioner/permissions/schemas/schema.json b/plugins/positioner/permissions/schemas/schema.json index b5c0d3ae4..d887b33f3 100644 --- a/plugins/positioner/permissions/schemas/schema.json +++ b/plugins/positioner/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/process/permissions/autogenerated/reference.md b/plugins/process/permissions/autogenerated/reference.md index a5822a923..1bef22c9a 100644 --- a/plugins/process/permissions/autogenerated/reference.md +++ b/plugins/process/permissions/autogenerated/reference.md @@ -1,18 +1,6 @@ -# Permissions - -## allow-exit - -Enables the exit command without any pre-configured scope. - -## deny-exit - -Denies the exit command without any pre-configured scope. - -## allow-restart - -Enables the restart command without any pre-configured scope. - -## deny-restart - -Denies the restart command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-exit`|Enables the exit command without any pre-configured scope.| +|`deny-exit`|Denies the exit command without any pre-configured scope.| +|`allow-restart`|Enables the restart command without any pre-configured scope.| +|`deny-restart`|Denies the restart command without any pre-configured scope.| diff --git a/plugins/process/permissions/schemas/schema.json b/plugins/process/permissions/schemas/schema.json index 37d49a045..a8fbdcc6e 100644 --- a/plugins/process/permissions/schemas/schema.json +++ b/plugins/process/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/shell/permissions/autogenerated/reference.md b/plugins/shell/permissions/autogenerated/reference.md index 93f94f3d9..27a2ace7b 100644 --- a/plugins/shell/permissions/autogenerated/reference.md +++ b/plugins/shell/permissions/autogenerated/reference.md @@ -1,34 +1,10 @@ -# Permissions - -## allow-execute - -Enables the execute command without any pre-configured scope. - -## deny-execute - -Denies the execute command without any pre-configured scope. - -## allow-kill - -Enables the kill command without any pre-configured scope. - -## deny-kill - -Denies the kill command without any pre-configured scope. - -## allow-open - -Enables the open command without any pre-configured scope. - -## deny-open - -Denies the open command without any pre-configured scope. - -## allow-stdin-write - -Enables the stdin_write command without any pre-configured scope. - -## deny-stdin-write - -Denies the stdin_write command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-execute`|Enables the execute command without any pre-configured scope.| +|`deny-execute`|Denies the execute command without any pre-configured scope.| +|`allow-kill`|Enables the kill command without any pre-configured scope.| +|`deny-kill`|Denies the kill command without any pre-configured scope.| +|`allow-open`|Enables the open command without any pre-configured scope.| +|`deny-open`|Denies the open command without any pre-configured scope.| +|`allow-stdin-write`|Enables the stdin_write command without any pre-configured scope.| +|`deny-stdin-write`|Denies the stdin_write command without any pre-configured scope.| diff --git a/plugins/shell/permissions/schemas/schema.json b/plugins/shell/permissions/schemas/schema.json index ff5a12e16..1e1cd012c 100644 --- a/plugins/shell/permissions/schemas/schema.json +++ b/plugins/shell/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/sql/permissions/autogenerated/reference.md b/plugins/sql/permissions/autogenerated/reference.md index a9734e010..a3e121344 100644 --- a/plugins/sql/permissions/autogenerated/reference.md +++ b/plugins/sql/permissions/autogenerated/reference.md @@ -1,34 +1,10 @@ -# Permissions - -## allow-close - -Enables the close command without any pre-configured scope. - -## deny-close - -Denies the close command without any pre-configured scope. - -## allow-execute - -Enables the execute command without any pre-configured scope. - -## deny-execute - -Denies the execute command without any pre-configured scope. - -## allow-load - -Enables the load command without any pre-configured scope. - -## deny-load - -Denies the load command without any pre-configured scope. - -## allow-select - -Enables the select command without any pre-configured scope. - -## deny-select - -Denies the select command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-close`|Enables the close command without any pre-configured scope.| +|`deny-close`|Denies the close command without any pre-configured scope.| +|`allow-execute`|Enables the execute command without any pre-configured scope.| +|`deny-execute`|Denies the execute command without any pre-configured scope.| +|`allow-load`|Enables the load command without any pre-configured scope.| +|`deny-load`|Denies the load command without any pre-configured scope.| +|`allow-select`|Enables the select command without any pre-configured scope.| +|`deny-select`|Denies the select command without any pre-configured scope.| diff --git a/plugins/sql/permissions/schemas/schema.json b/plugins/sql/permissions/schemas/schema.json index 723466180..62db780da 100644 --- a/plugins/sql/permissions/schemas/schema.json +++ b/plugins/sql/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/store/permissions/autogenerated/reference.md b/plugins/store/permissions/autogenerated/reference.md index fd626ff78..ea9c07f0d 100644 --- a/plugins/store/permissions/autogenerated/reference.md +++ b/plugins/store/permissions/autogenerated/reference.md @@ -1,98 +1,26 @@ -# Permissions - -## allow-clear - -Enables the clear command without any pre-configured scope. - -## deny-clear - -Denies the clear command without any pre-configured scope. - -## allow-delete - -Enables the delete command without any pre-configured scope. - -## deny-delete - -Denies the delete command without any pre-configured scope. - -## allow-entries - -Enables the entries command without any pre-configured scope. - -## deny-entries - -Denies the entries command without any pre-configured scope. - -## allow-get - -Enables the get command without any pre-configured scope. - -## deny-get - -Denies the get command without any pre-configured scope. - -## allow-has - -Enables the has command without any pre-configured scope. - -## deny-has - -Denies the has command without any pre-configured scope. - -## allow-keys - -Enables the keys command without any pre-configured scope. - -## deny-keys - -Denies the keys command without any pre-configured scope. - -## allow-length - -Enables the length command without any pre-configured scope. - -## deny-length - -Denies the length command without any pre-configured scope. - -## allow-load - -Enables the load command without any pre-configured scope. - -## deny-load - -Denies the load command without any pre-configured scope. - -## allow-reset - -Enables the reset command without any pre-configured scope. - -## deny-reset - -Denies the reset command without any pre-configured scope. - -## allow-save - -Enables the save command without any pre-configured scope. - -## deny-save - -Denies the save command without any pre-configured scope. - -## allow-set - -Enables the set command without any pre-configured scope. - -## deny-set - -Denies the set command without any pre-configured scope. - -## allow-values - -Enables the values command without any pre-configured scope. - -## deny-values - -Denies the values command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-clear`|Enables the clear command without any pre-configured scope.| +|`deny-clear`|Denies the clear command without any pre-configured scope.| +|`allow-delete`|Enables the delete command without any pre-configured scope.| +|`deny-delete`|Denies the delete command without any pre-configured scope.| +|`allow-entries`|Enables the entries command without any pre-configured scope.| +|`deny-entries`|Denies the entries command without any pre-configured scope.| +|`allow-get`|Enables the get command without any pre-configured scope.| +|`deny-get`|Denies the get command without any pre-configured scope.| +|`allow-has`|Enables the has command without any pre-configured scope.| +|`deny-has`|Denies the has command without any pre-configured scope.| +|`allow-keys`|Enables the keys command without any pre-configured scope.| +|`deny-keys`|Denies the keys command without any pre-configured scope.| +|`allow-length`|Enables the length command without any pre-configured scope.| +|`deny-length`|Denies the length command without any pre-configured scope.| +|`allow-load`|Enables the load command without any pre-configured scope.| +|`deny-load`|Denies the load command without any pre-configured scope.| +|`allow-reset`|Enables the reset command without any pre-configured scope.| +|`deny-reset`|Denies the reset command without any pre-configured scope.| +|`allow-save`|Enables the save command without any pre-configured scope.| +|`deny-save`|Denies the save command without any pre-configured scope.| +|`allow-set`|Enables the set command without any pre-configured scope.| +|`deny-set`|Denies the set command without any pre-configured scope.| +|`allow-values`|Enables the values command without any pre-configured scope.| +|`deny-values`|Denies the values command without any pre-configured scope.| diff --git a/plugins/store/permissions/schemas/schema.json b/plugins/store/permissions/schemas/schema.json index dd004c0b6..de5b1580f 100644 --- a/plugins/store/permissions/schemas/schema.json +++ b/plugins/store/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/stronghold/permissions/autogenerated/reference.md b/plugins/stronghold/permissions/autogenerated/reference.md index 799ae7dbf..da3494eb3 100644 --- a/plugins/stronghold/permissions/autogenerated/reference.md +++ b/plugins/stronghold/permissions/autogenerated/reference.md @@ -1,90 +1,24 @@ -# Permissions - -## allow-create-client - -Enables the create_client command without any pre-configured scope. - -## deny-create-client - -Denies the create_client command without any pre-configured scope. - -## allow-destroy - -Enables the destroy command without any pre-configured scope. - -## deny-destroy - -Denies the destroy command without any pre-configured scope. - -## allow-execute-procedure - -Enables the execute_procedure command without any pre-configured scope. - -## deny-execute-procedure - -Denies the execute_procedure command without any pre-configured scope. - -## allow-get-store-record - -Enables the get_store_record command without any pre-configured scope. - -## deny-get-store-record - -Denies the get_store_record command without any pre-configured scope. - -## allow-initialize - -Enables the initialize command without any pre-configured scope. - -## deny-initialize - -Denies the initialize command without any pre-configured scope. - -## allow-load-client - -Enables the load_client command without any pre-configured scope. - -## deny-load-client - -Denies the load_client command without any pre-configured scope. - -## allow-remove-secret - -Enables the remove_secret command without any pre-configured scope. - -## deny-remove-secret - -Denies the remove_secret command without any pre-configured scope. - -## allow-remove-store-record - -Enables the remove_store_record command without any pre-configured scope. - -## deny-remove-store-record - -Denies the remove_store_record command without any pre-configured scope. - -## allow-save - -Enables the save command without any pre-configured scope. - -## deny-save - -Denies the save command without any pre-configured scope. - -## allow-save-secret - -Enables the save_secret command without any pre-configured scope. - -## deny-save-secret - -Denies the save_secret command without any pre-configured scope. - -## allow-save-store-record - -Enables the save_store_record command without any pre-configured scope. - -## deny-save-store-record - -Denies the save_store_record command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-create-client`|Enables the create_client command without any pre-configured scope.| +|`deny-create-client`|Denies the create_client command without any pre-configured scope.| +|`allow-destroy`|Enables the destroy command without any pre-configured scope.| +|`deny-destroy`|Denies the destroy command without any pre-configured scope.| +|`allow-execute-procedure`|Enables the execute_procedure command without any pre-configured scope.| +|`deny-execute-procedure`|Denies the execute_procedure command without any pre-configured scope.| +|`allow-get-store-record`|Enables the get_store_record command without any pre-configured scope.| +|`deny-get-store-record`|Denies the get_store_record command without any pre-configured scope.| +|`allow-initialize`|Enables the initialize command without any pre-configured scope.| +|`deny-initialize`|Denies the initialize command without any pre-configured scope.| +|`allow-load-client`|Enables the load_client command without any pre-configured scope.| +|`deny-load-client`|Denies the load_client command without any pre-configured scope.| +|`allow-remove-secret`|Enables the remove_secret command without any pre-configured scope.| +|`deny-remove-secret`|Denies the remove_secret command without any pre-configured scope.| +|`allow-remove-store-record`|Enables the remove_store_record command without any pre-configured scope.| +|`deny-remove-store-record`|Denies the remove_store_record command without any pre-configured scope.| +|`allow-save`|Enables the save command without any pre-configured scope.| +|`deny-save`|Denies the save command without any pre-configured scope.| +|`allow-save-secret`|Enables the save_secret command without any pre-configured scope.| +|`deny-save-secret`|Denies the save_secret command without any pre-configured scope.| +|`allow-save-store-record`|Enables the save_store_record command without any pre-configured scope.| +|`deny-save-store-record`|Denies the save_store_record command without any pre-configured scope.| diff --git a/plugins/stronghold/permissions/schemas/schema.json b/plugins/stronghold/permissions/schemas/schema.json index 9535be4f1..54d7da982 100644 --- a/plugins/stronghold/permissions/schemas/schema.json +++ b/plugins/stronghold/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/updater/permissions/autogenerated/reference.md b/plugins/updater/permissions/autogenerated/reference.md index 033690d41..2dacf032c 100644 --- a/plugins/updater/permissions/autogenerated/reference.md +++ b/plugins/updater/permissions/autogenerated/reference.md @@ -1,22 +1,7 @@ -# Permissions - -## allow-check - -Enables the check command without any pre-configured scope. - -## deny-check - -Denies the check command without any pre-configured scope. - -## allow-download-and-install - -Enables the download_and_install command without any pre-configured scope. - -## deny-download-and-install - -Denies the download_and_install command without any pre-configured scope. - -## default - -Allows checking for new updates and installing them - +| Permission | Description | +|------|-----| +|`allow-check`|Enables the check command without any pre-configured scope.| +|`deny-check`|Denies the check command without any pre-configured scope.| +|`allow-download-and-install`|Enables the download_and_install command without any pre-configured scope.| +|`deny-download-and-install`|Denies the download_and_install command without any pre-configured scope.| +|`default`|Allows checking for new updates and installing them| diff --git a/plugins/updater/permissions/schemas/schema.json b/plugins/updater/permissions/schemas/schema.json index e170fd1b9..6d6a3c211 100644 --- a/plugins/updater/permissions/schemas/schema.json +++ b/plugins/updater/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/upload/permissions/autogenerated/reference.md b/plugins/upload/permissions/autogenerated/reference.md index 2e8a4853c..2b4cb1b64 100644 --- a/plugins/upload/permissions/autogenerated/reference.md +++ b/plugins/upload/permissions/autogenerated/reference.md @@ -1,18 +1,6 @@ -# Permissions - -## allow-download - -Enables the download command without any pre-configured scope. - -## deny-download - -Denies the download command without any pre-configured scope. - -## allow-upload - -Enables the upload command without any pre-configured scope. - -## deny-upload - -Denies the upload command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-download`|Enables the download command without any pre-configured scope.| +|`deny-download`|Denies the download command without any pre-configured scope.| +|`allow-upload`|Enables the upload command without any pre-configured scope.| +|`deny-upload`|Denies the upload command without any pre-configured scope.| diff --git a/plugins/upload/permissions/schemas/schema.json b/plugins/upload/permissions/schemas/schema.json index bb0afc882..d7eeb35ff 100644 --- a/plugins/upload/permissions/schemas/schema.json +++ b/plugins/upload/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/websocket/permissions/autogenerated/reference.md b/plugins/websocket/permissions/autogenerated/reference.md index 9f66b7986..fe0b0727c 100644 --- a/plugins/websocket/permissions/autogenerated/reference.md +++ b/plugins/websocket/permissions/autogenerated/reference.md @@ -1,22 +1,7 @@ -# Permissions - -## allow-connect - -Enables the connect command without any pre-configured scope. - -## deny-connect - -Denies the connect command without any pre-configured scope. - -## allow-send - -Enables the send command without any pre-configured scope. - -## deny-send - -Denies the send command without any pre-configured scope. - -## default - -Allows connecting and sending data to a WebSocket server - +| Permission | Description | +|------|-----| +|`allow-connect`|Enables the connect command without any pre-configured scope.| +|`deny-connect`|Denies the connect command without any pre-configured scope.| +|`allow-send`|Enables the send command without any pre-configured scope.| +|`deny-send`|Denies the send command without any pre-configured scope.| +|`default`|Allows connecting and sending data to a WebSocket server| diff --git a/plugins/websocket/permissions/schemas/schema.json b/plugins/websocket/permissions/schemas/schema.json index 9557d9187..4a773ccb1 100644 --- a/plugins/websocket/permissions/schemas/schema.json +++ b/plugins/websocket/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/plugins/window-state/permissions/autogenerated/reference.md b/plugins/window-state/permissions/autogenerated/reference.md index 767eea84b..fca68efd8 100644 --- a/plugins/window-state/permissions/autogenerated/reference.md +++ b/plugins/window-state/permissions/autogenerated/reference.md @@ -1,18 +1,6 @@ -# Permissions - -## allow-restore-window-state - -Enables the restore_window_state command without any pre-configured scope. - -## deny-restore-window-state - -Denies the restore_window_state command without any pre-configured scope. - -## allow-save-window-state - -Enables the save_window_state command without any pre-configured scope. - -## deny-save-window-state - -Denies the save_window_state command without any pre-configured scope. - +| Permission | Description | +|------|-----| +|`allow-restore-window-state`|Enables the restore_window_state command without any pre-configured scope.| +|`deny-restore-window-state`|Denies the restore_window_state command without any pre-configured scope.| +|`allow-save-window-state`|Enables the save_window_state command without any pre-configured scope.| +|`deny-save-window-state`|Denies the save_window_state command without any pre-configured scope.| diff --git a/plugins/window-state/permissions/schemas/schema.json b/plugins/window-state/permissions/schemas/schema.json index fa5eff81f..37dcf652d 100644 --- a/plugins/window-state/permissions/schemas/schema.json +++ b/plugins/window-state/permissions/schemas/schema.json @@ -17,7 +17,6 @@ }, "set": { "description": "A list of permissions sets defined", - "default": [], "type": "array", "items": { "$ref": "#/definitions/PermissionSet" @@ -132,12 +131,25 @@ }, "scope": { "description": "Allowed or denied scoped when using this permission.", - "default": {}, "allOf": [ { "$ref": "#/definitions/Scopes" } ] + }, + "platforms": { + "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" + ], + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } } } }, @@ -243,6 +255,46 @@ } ] }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, "PermissionKind": { "type": "string", "oneOf": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6aae73348..229ac6a6e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,8 +64,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.3 + version: 2.0.0-beta.3 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0-beta.1 version: link:../../plugins/barcode-scanner @@ -122,8 +122,8 @@ importers: specifier: ^3.0.1 version: 3.0.1(svelte@4.2.8)(vite@5.0.12) '@tauri-apps/cli': - specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3 + specifier: 2.0.0-beta.6 + version: 2.0.0-beta.6 '@unocss/extractor-svelte': specifier: ^0.58.0 version: 0.58.0 @@ -135,7 +135,7 @@ importers: version: 4.2.8 unocss: specifier: ^0.58.0 - version: 0.58.0(postcss@8.4.32)(vite@5.0.12) + version: 0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12) vite: specifier: ^5.0.12 version: 5.0.12 @@ -395,7 +395,7 @@ packages: '@babel/traverse': 7.23.5 '@babel/types': 7.23.5 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 7.5.4 @@ -665,7 +665,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.5 '@babel/types': 7.23.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -799,7 +799,7 @@ packages: peerDependencies: mocha: ^10.0.0 dependencies: - effection: 2.0.8 + effection: 2.0.8(mocha@10.2.0) mocha: 10.2.0 dev: true @@ -1046,7 +1046,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 ignore: 5.3.0 @@ -1068,7 +1068,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1109,7 +1109,7 @@ packages: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.6 '@iconify/types': 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -1225,20 +1225,6 @@ packages: typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0: - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.6): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -1463,7 +1449,7 @@ packages: vite: ^5.0.0 dependencies: '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) svelte: 4.2.8 vite: 5.0.12 transitivePeerDependencies: @@ -1478,7 +1464,7 @@ packages: vite: ^5.0.0 dependencies: '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 @@ -1495,6 +1481,11 @@ packages: engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false + /@tauri-apps/api@2.0.0-beta.3: + resolution: {integrity: sha512-gDSJzKpBs6efXw2ZWqjl9QVNImY5GR5qygXqB7JK4y7prcQInxnTj2ARFR0vD4wuzkrUHGrlIKraiJJPHWJ9vg==} + engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.3: resolution: {integrity: sha512-gHcn3jI/4MDXDIlK/4Zz0ftTosgN3OimWlKxEz777QrA1hldrQweYIhdZXkqE9KgoE+u6w80vWIcr0InHAf7Iw==} engines: {node: '>= 10'} @@ -1504,6 +1495,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.6: + resolution: {integrity: sha512-G1KJhWB8SgITE2iwWmOoyMhykljz7sGxQL5BnNLHLeyNvc6DwkgQ0AObkmFTz2JLnstWQ/kKyg/uoQNMNA/wyQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-darwin-x64@2.0.0-beta.3: resolution: {integrity: sha512-kRCaukT2IAGMmNuAOUBhdZRlKujTy2lSsdNKmgGEMnzQLKJwWO9Gpq1NmPY7ZVqyXK/X8QnGHuasDEQsSO6B4w==} engines: {node: '>= 10'} @@ -1513,6 +1513,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-darwin-x64@2.0.0-beta.6: + resolution: {integrity: sha512-Dju4V53dO7KVvmMqXZeNp2tfMOEVDCORf40ZnP9zrE58mvqoEHbri4F+m+UN+fSdEOzic12nSGXDO/nilqs+aA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.3: resolution: {integrity: sha512-cpNZOQDotNSdjoZT16s1JtZvnkM0wgLwU39AhKhRCco4KEH3/8G1ngKF9JKalWUN8zDTcuCigEAr37gEv4mLAA==} engines: {node: '>= 10'} @@ -1522,6 +1531,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.6: + resolution: {integrity: sha512-w4dmL9VZD2UaDYRE6XRmIPxg2XJDT5Zn+76NGVFiZjsZniEh2c0KP0Ytd0nA1jn1cphgn0RDJkRqtPvT5nGQoA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.3: resolution: {integrity: sha512-8q86V6P9bkeoFcnvSsnvOwmKY6ijIN4ueRVXCj5cVpsw392VF9vud1Nq7/l+QDgn9OWbZNNVDl30iyoSuaykBA==} engines: {node: '>= 10'} @@ -1531,6 +1549,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.6: + resolution: {integrity: sha512-0oVOSUg1wtoy+qOLjF3uQRxgtUFoqrRpb6cSebTfe4NaHHfF6qKGtZdK/Po0+jQ6RItz3iUV2bgy7Evx3lVFMw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.3: resolution: {integrity: sha512-L7fokh4aqyV6yDPoeKwFN3Yt0pCAuZMWeP5tOeSBiom1pU7ppKH+4KHeTekNEIecZG+Ah250DkVCdmWS+aRFTA==} engines: {node: '>= 10'} @@ -1540,6 +1567,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.6: + resolution: {integrity: sha512-l0sH61OysOK17lL9Je/AS+Bs1a2zafg2te/G7WVi4Z1uFuSirMjPzCFJBT4/vY53AeyuRNja+XhszLdf0ud0BQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.3: resolution: {integrity: sha512-/crp3K6PathqicVWPj8Kh1120NNVV7nagJ7oZW9OFch7nBS1tmDnSB5k5LgA4yYu+lDKNUREnATMWHL6i0gNeg==} engines: {node: '>= 10'} @@ -1549,6 +1585,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.6: + resolution: {integrity: sha512-RkDhQQv34Qr5xrjoaRclTpHFf/YQdH6ftSTaUKhEdaVDEJPUbVZUxj70f58b1bV6kuokvT3r5whb9I4lfCBZZw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.3: resolution: {integrity: sha512-jX1ZT0UQwdBGbpCwlpv2bsLDO7KFMeDJQ/ZZVMfWyjuYrGBG5zhJ2NXwTMkHVnxfvE6BVmnybWcykeSqTATeOw==} engines: {node: '>= 10'} @@ -1558,6 +1603,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.6: + resolution: {integrity: sha512-d2s7uTjejf44VmGEmbSeERB1cbIkx3o7lyzPBnwLcluxi21xEVIa8SLKDR8iLZdovdWkJEre+nz/ViaBQw8nHA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.3: resolution: {integrity: sha512-UCEZNKocENLX3HYKid4FEbrCMjCX9e58klBIvJKxT8HTjvpgFYDoKccswDNfszLhmineKMlkUvm7j7U0sMh8MQ==} engines: {node: '>= 10'} @@ -1567,6 +1621,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.6: + resolution: {integrity: sha512-KZ+ByWOr46YR7j2C/EsJObjmUnMw3y9rzm3UU0DLE84ty8x7/TSVrIoV6W7DsgduLf7kKyy9dQTyFUNK+A5d7Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.3: resolution: {integrity: sha512-O8syGXDHyKN/cv1ktD76dTcbkQ1nNEPhnT1Z+r0GKxNsw4/MyIVglzEcou3aPq0/1MQ0PEGVyG1x0JMaPw7oHQ==} engines: {node: '>= 10'} @@ -1576,6 +1639,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.6: + resolution: {integrity: sha512-CPCAxMZ8XtWsZ875/YQAnFCrkeFnGqw5on2D4PHmkZRhrOyoFCa0R65Q0cWCHzX6M/fmo40QkSJiASR87RCRJg==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.3: resolution: {integrity: sha512-YDdF3XWaptjKtKz33sZhC+uNAZwp6QtAmZSRCQQlC1W7uJwLD00/3QF4vO/c6Qm+BGFsazVh1+YmBF1p0kV0rg==} engines: {node: '>= 10'} @@ -1585,6 +1657,15 @@ packages: dev: true optional: true + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.6: + resolution: {integrity: sha512-YcfbicO3DQcJEd5eOJ4ydwzHwaF3KlWhH+yZZbhnpzdfl+BK/PlEs6sGUoBW2h1RJ9lLlDK51RNMZGq9O0QaYg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@tauri-apps/cli@2.0.0-beta.3: resolution: {integrity: sha512-xLAL2DNNUJWqHBKvanc3V9bG9kkwtFwc40X/DrfgEKnkajEm79wqnkaT8LUnmbe0WZ8bzBRO1fLIgKlOH6GiCA==} engines: {node: '>= 10'} @@ -1602,6 +1683,23 @@ packages: '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.3 dev: true + /@tauri-apps/cli@2.0.0-beta.6: + resolution: {integrity: sha512-4DwhpXI51NnAYkDlROMvCJ7S+M7efuaA5zqcBStodr0NaKyB4buuf8zkCSpqdMW4gXBXDHDwi1Mbm9G1L7LyDA==} + engines: {node: '>= 10'} + hasBin: true + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.6 + '@tauri-apps/cli-darwin-x64': 2.0.0-beta.6 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.6 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.6 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.6 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.6 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.6 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.6 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.6 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.6 + dev: true + /@tauri-apps/toml@2.2.4: resolution: {integrity: sha512-NJV/pdgJObDlDWi5+MTHZ2qyNvdL0dlHqQ72nzQYXWbW1LHMPXgCJYl0pLqL1XxxLtxtInYbtVCGVAcwhGxdkw==} dev: true @@ -1652,7 +1750,7 @@ packages: '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 @@ -1678,7 +1776,7 @@ packages: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: @@ -1705,7 +1803,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -1729,7 +1827,7 @@ packages: dependencies: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -1771,7 +1869,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@unocss/astro@0.58.0(vite@5.0.12): + /@unocss/astro@0.58.0(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-df+tEFO5eKXjQOwSWQhS9IdjD0sfLHLtn8U09sEKR2Nmh5CvpwyBxmvLQgOCilPou7ehmyKfsyGRLZg7IMp+Ew==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1781,19 +1879,19 @@ packages: dependencies: '@unocss/core': 0.58.0 '@unocss/reset': 0.58.0 - '@unocss/vite': 0.58.0(vite@5.0.12) + '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - rollup dev: true - /@unocss/cli@0.58.0: + /@unocss/cli@0.58.0(rollup@4.9.6): resolution: {integrity: sha512-rhsrDBxAVueygMcAbMkbuvsHbBL2rG6N96LllYwHn16FLgOE3Sf4JW1/LlNjQje3BtwMMtbSCCAeu2SryFhzbw==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/preset-uno': 0.58.0 @@ -1969,13 +2067,13 @@ packages: '@unocss/core': 0.58.0 dev: true - /@unocss/vite@0.58.0(vite@5.0.12): + /@unocss/vite@0.58.0(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-OCUOLMSOBEtXOEyBbAvMI3/xdR175BWRzmvV9Wc34ANZclEvCdVH8+WU725ibjY4VT0gVIuX68b13fhXdHV41A==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@4.9.6) '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/inspector': 0.58.0 @@ -2478,18 +2576,6 @@ packages: ms: 2.1.3 dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2590,18 +2676,6 @@ packages: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true - /effection@2.0.8: - resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} - dependencies: - '@effection/channel': 2.0.6 - '@effection/core': 2.2.3 - '@effection/events': 2.0.6 - '@effection/fetch': 2.0.7(mocha@10.2.0) - '@effection/main': 2.1.2 - '@effection/stream': 2.0.6 - '@effection/subscription': 2.0.6 - dev: true - /effection@2.0.8(mocha@10.2.0): resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} dependencies: @@ -2944,7 +3018,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -3866,7 +3940,7 @@ packages: /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -4893,7 +4967,7 @@ packages: '@types/unist': 2.0.10 dev: true - /unocss@0.58.0(postcss@8.4.32)(vite@5.0.12): + /unocss@0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12): resolution: {integrity: sha512-MSPRHxBqWN+1AHGV+J5uUy4//e6ZBK6O+ISzD0qrXcCD/GNtxk1+lYjOK2ltkUiKX539+/KF91vNxzhhwEf+xA==} engines: {node: '>=14'} peerDependencies: @@ -4905,8 +4979,8 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.0(vite@5.0.12) - '@unocss/cli': 0.58.0 + '@unocss/astro': 0.58.0(rollup@4.9.6)(vite@5.0.12) + '@unocss/cli': 0.58.0(rollup@4.9.6) '@unocss/core': 0.58.0 '@unocss/extractor-arbitrary-variants': 0.58.0 '@unocss/postcss': 0.58.0(postcss@8.4.32) @@ -4924,7 +4998,7 @@ packages: '@unocss/transformer-compile-class': 0.58.0 '@unocss/transformer-directives': 0.58.0 '@unocss/transformer-variant-group': 0.58.0 - '@unocss/vite': 0.58.0(vite@5.0.12) + '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - postcss From 19aa2204115e7304681cb40faf7512aba525bc5e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 19:03:16 +0100 Subject: [PATCH 097/643] chore(deps): update typescript-eslint monorepo to v7.1.1 (#1022) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 100 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 7bf0c264b..4dc83682f 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.1.0", - "@typescript-eslint/parser": "7.1.0", + "@typescript-eslint/eslint-plugin": "7.1.1", + "@typescript-eslint/parser": "7.1.1", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40b0c9f09..4ba36817d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': - specifier: 7.1.0 - version: 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) + specifier: 7.1.1 + version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 7.1.0 - version: 7.1.0(eslint@8.57.0)(typescript@5.3.3) + specifier: 7.1.1 + version: 7.1.1(eslint@8.57.0)(typescript@5.3.3) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -848,8 +848,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} + /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -860,11 +860,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -898,8 +898,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -908,10 +908,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 typescript: 5.3.3 @@ -927,16 +927,16 @@ packages: '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/scope-manager@7.1.0: - resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} + /@typescript-eslint/scope-manager@7.1.1: + resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 dev: true - /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -945,8 +945,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.0.1(typescript@5.3.3) @@ -960,8 +960,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} + /@typescript-eslint/types@7.1.1: + resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -986,8 +986,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): - resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.3.3): + resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -995,8 +995,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1008,8 +1008,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1017,9 +1017,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1035,11 +1035,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.1.0: - resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} + /@typescript-eslint/visitor-keys@7.1.1: + resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/types': 7.1.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1476,7 +1476,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1486,11 +1486,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.3.3 @@ -1508,7 +1508,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -1523,7 +1523,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1544,7 +1544,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1564,7 +1564,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1574,7 +1574,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -1583,7 +1583,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 From 22f5acf2407e0689f5a7d87f56cc8c8bfb939ebe Mon Sep 17 00:00:00 2001 From: Ahmed Elkhoudiry Date: Mon, 4 Mar 2024 21:02:17 +0200 Subject: [PATCH 098/643] feat(store): Add android & iOS support (#1011) * update cli * init android module * upgdate gitignore * add desktop and mobile * android * ios * lib * remove comment * cargo fmt * skip empty file creation * android comments * apple path * Discard changes to plugins/store/ios/README.md * stop auto directories creation * Update README.md --- .gitignore | 5 +- README.md | 2 +- plugins/deep-link/src/api-iife.js | 2 +- plugins/store/android/build.gradle.kts | 40 ++++ plugins/store/android/proguard-rules.pro | 21 ++ plugins/store/android/settings.gradle | 2 + .../android/src/main/AndroidManifest.xml | 3 + .../android/src/main/java/StorePlugin.kt | 50 ++++ plugins/store/build.rs | 5 +- plugins/store/ios/Package.resolved | 16 ++ plugins/store/ios/Package.swift | 33 +++ plugins/store/ios/Sources/StorePlugin.swift | 217 ++++++++++++++++++ plugins/store/src/desktop.rs | 49 ++++ plugins/store/src/error.rs | 9 + plugins/store/src/lib.rs | 68 ++++-- plugins/store/src/mobile.rs | 53 +++++ plugins/store/src/store.rs | 74 +++--- 17 files changed, 583 insertions(+), 66 deletions(-) create mode 100644 plugins/store/android/build.gradle.kts create mode 100644 plugins/store/android/proguard-rules.pro create mode 100644 plugins/store/android/settings.gradle create mode 100644 plugins/store/android/src/main/AndroidManifest.xml create mode 100644 plugins/store/android/src/main/java/StorePlugin.kt create mode 100644 plugins/store/ios/Package.resolved create mode 100644 plugins/store/ios/Package.swift create mode 100644 plugins/store/ios/Sources/StorePlugin.swift create mode 100644 plugins/store/src/desktop.rs create mode 100644 plugins/store/src/mobile.rs diff --git a/.gitignore b/.gitignore index 5ea09efa0..0a7e85039 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,7 @@ target node_modules dist-js dist -**/capabilities/schemas \ No newline at end of file +.idea +.vscode +.gradle +**/capabilities/schemas diff --git a/README.md b/README.md index 444c4e99c..52ffce073 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ | [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? | | [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? | | [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? | -| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ? | ? | +| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | ✅ | | [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? | | [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? | | [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? | diff --git a/plugins/deep-link/src/api-iife.js b/plugins/deep-link/src/api-iife.js index 6a37d7481..d46ebd7d1 100644 --- a/plugins/deep-link/src/api-iife.js +++ b/plugins/deep-link/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_DEEPLINK__=function(e){"use strict";function n(e,n=!1){return window.__TAURI_INTERNALS__.transformCallback(e,n)}async function t(e,n={},t){return window.__TAURI_INTERNALS__.invoke(e,n,t)}var r;async function _(e,r,_){const i="string"==typeof _?.target?{kind:"AnyLabel",label:_.target}:_?.target??{kind:"Any"};return t("plugin:event|listen",{event:e,target:i,handler:n(r)}).then((n=>async()=>async function(e,n){await t("plugin:event|unlisten",{event:e,eventId:n})}(e,n)))}async function i(){return await t("plugin:deep-link|get_current")}return"function"==typeof SuppressedError&&SuppressedError,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WEBVIEW_CREATED="tauri://webview-created",e.WEBVIEW_FILE_DROP="tauri://file-drop",e.WEBVIEW_FILE_DROP_HOVER="tauri://file-drop-hover",e.WEBVIEW_FILE_DROP_CANCELLED="tauri://file-drop-cancelled"}(r||(r={})),e.getCurrent=i,e.onOpenUrl=async function(e){const n=await i();return null!=n&&e(n),await _("deep-link://new-url",(n=>e(n.payload)))},e}({});Object.defineProperty(window.__TAURI__,"deepLink",{value:__TAURI_PLUGIN_DEEPLINK__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_DEEPLINK__=function(e){"use strict";function n(e,n=!1){return window.__TAURI_INTERNALS__.transformCallback(e,n)}async function t(e,n={},t){return window.__TAURI_INTERNALS__.invoke(e,n,t)}var r;async function i(e,r,i){const _="string"==typeof i?.target?{kind:"AnyLabel",label:i.target}:i?.target??{kind:"Any"};return t("plugin:event|listen",{event:e,target:_,handler:n(r)}).then((n=>async()=>async function(e,n){await t("plugin:event|unlisten",{event:e,eventId:n})}(e,n)))}async function _(){return await t("plugin:deep-link|get_current")}return"function"==typeof SuppressedError&&SuppressedError,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WEBVIEW_CREATED="tauri://webview-created",e.FILE_DROP="tauri://file-drop",e.FILE_DROP_HOVER="tauri://file-drop-hover",e.FILE_DROP_CANCELLED="tauri://file-drop-cancelled"}(r||(r={})),e.getCurrent=_,e.onOpenUrl=async function(e){const n=await _();return null!=n&&e(n),await i("deep-link://new-url",(n=>e(n.payload)))},e}({});Object.defineProperty(window.__TAURI__,"deepLink",{value:__TAURI_PLUGIN_DEEPLINK__})} diff --git a/plugins/store/android/build.gradle.kts b/plugins/store/android/build.gradle.kts new file mode 100644 index 000000000..f7d161916 --- /dev/null +++ b/plugins/store/android/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("com.android.library") + id("org.jetbrains.kotlin.android") +} + +android { + namespace = "app.tauri.store" + compileSdk = 33 + + defaultConfig { + minSdk = 19 + targetSdk = 33 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + implementation("androidx.core:core-ktx:1.9.0") + implementation("com.fasterxml.jackson.core:jackson-databind:2.15.3") + implementation(project(":tauri-android")) +} diff --git a/plugins/store/android/proguard-rules.pro b/plugins/store/android/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/plugins/store/android/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/plugins/store/android/settings.gradle b/plugins/store/android/settings.gradle new file mode 100644 index 000000000..14a752e43 --- /dev/null +++ b/plugins/store/android/settings.gradle @@ -0,0 +1,2 @@ +include ':tauri-android' +project(':tauri-android').projectDir = new File('./.tauri/tauri-api') diff --git a/plugins/store/android/src/main/AndroidManifest.xml b/plugins/store/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000..9a40236b9 --- /dev/null +++ b/plugins/store/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + + diff --git a/plugins/store/android/src/main/java/StorePlugin.kt b/plugins/store/android/src/main/java/StorePlugin.kt new file mode 100644 index 000000000..8389661ff --- /dev/null +++ b/plugins/store/android/src/main/java/StorePlugin.kt @@ -0,0 +1,50 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +package app.tauri.store + +import android.app.Activity +import app.tauri.annotation.Command +import app.tauri.annotation.TauriPlugin +import app.tauri.plugin.Invoke +import app.tauri.plugin.Plugin +import com.fasterxml.jackson.databind.JsonNode +import com.fasterxml.jackson.databind.ObjectMapper +import java.io.File + +@TauriPlugin +class StorePlugin(private val activity: Activity) : Plugin(activity) { + @Command + fun load(invoke: Invoke) { + try { + val path = invoke.parseArgs(String::class.java) + val file = File(activity.applicationContext.getExternalFilesDir(null), path) + + invoke.resolveObject(ObjectMapper().readTree(file)) + } catch (ex: Exception) { + invoke.reject(ex.message) + } + } + + @Command + fun save(invoke: Invoke) { + try { + val args = invoke.parseArgs(JsonNode::class.java) + val path = args.get("store").asText() + val cache = args.get("cache") + val file = File(activity.applicationContext.getExternalFilesDir(null), path) + + if (!file.exists()) { + file.parentFile?.mkdirs() + file.createNewFile() + } + + file.writeText(cache.toString()) + + invoke.resolve() + } catch (ex: Exception) { + invoke.reject(ex.message) + } + } +} \ No newline at end of file diff --git a/plugins/store/build.rs b/plugins/store/build.rs index 30ed3968c..140b4a85b 100644 --- a/plugins/store/build.rs +++ b/plugins/store/build.rs @@ -8,5 +8,8 @@ const COMMANDS: &[&str] = &[ ]; fn main() { - tauri_plugin::Builder::new(COMMANDS).build(); + tauri_plugin::Builder::new(COMMANDS) + .android_path("android") + .ios_path("ios") + .build(); } diff --git a/plugins/store/ios/Package.resolved b/plugins/store/ios/Package.resolved new file mode 100644 index 000000000..5f998e0e6 --- /dev/null +++ b/plugins/store/ios/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "SwiftRs", + "repositoryURL": "https://github.com/Brendonovich/swift-rs", + "state": { + "branch": null, + "revision": "b5ed223fcdab165bc21219c1925dc1e77e2bef5e", + "version": "1.0.6" + } + } + ] + }, + "version": 1 +} diff --git a/plugins/store/ios/Package.swift b/plugins/store/ios/Package.swift new file mode 100644 index 000000000..fdf5f69a8 --- /dev/null +++ b/plugins/store/ios/Package.swift @@ -0,0 +1,33 @@ +// swift-tools-version:5.3 +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +import PackageDescription + +let package = Package( + name: "tauri-plugin-store", + platforms: [ + .iOS(.v13), + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "tauri-plugin-store", + type: .static, + targets: ["tauri-plugin-store"]), + ], + dependencies: [ + .package(name: "Tauri", path: "../.tauri/tauri-api") + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "tauri-plugin-store", + dependencies: [ + .byName(name: "Tauri") + ], + path: "Sources") + ] +) diff --git a/plugins/store/ios/Sources/StorePlugin.swift b/plugins/store/ios/Sources/StorePlugin.swift new file mode 100644 index 000000000..4f651a5e2 --- /dev/null +++ b/plugins/store/ios/Sources/StorePlugin.swift @@ -0,0 +1,217 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +import Foundation + +import SwiftRs +import Tauri +import UIKit +import WebKit + + +struct SaveStore: Codable { + let store: String + let cache: [String: JSON] +} + +class StorePlugin: Plugin { + @objc public func save(_ invoke: Invoke) throws { + do { + let args = try invoke.parseArgs(SaveStore.self) + let store = args.store + let cache = args.cache + let fileURL = getUrlFromPath(path: store, createDirs: true) + + try JSONEncoder().encode(cache).write(to: fileURL) + invoke.resolve() + } catch { + invoke.reject(error.localizedDescription) + } + } + + @objc public func load(_ invoke: Invoke) throws { + do { + let path = try invoke.parseArgs(String.self) + let fileURL = getUrlFromPath(path: path, createDirs: false) + let data = try String(contentsOf: fileURL) + let passData = dictionary(text: data) + + invoke.resolve(passData) + } catch { + invoke.reject(error.localizedDescription) + } + } + + func dictionary(text: String) -> [String: Any?] { + if let data = text.data(using: .utf8) { + do { + return try JSONSerialization.jsonObject(with: data, options: []) as! [String: Any] + } catch { + fatalError(error.localizedDescription) + } + } + + return [:] + } + + func getUrlFromPath(path: String, createDirs: Bool) -> URL { + do { + var url = try FileManager.default + .url( + for: .applicationSupportDirectory, + in: .userDomainMask, + appropriateFor: nil, + create: true + ) + let components = path.split(separator: "/").map { element in String(element) } + + if components.count == 1 { + return url.appendPath(path: path, isDirectory: false) + } + + for i in 0.. 1 && createDirs { + try FileManager.default.createDirectory(at: url, withIntermediateDirectories: true) + } + + url = url.appendPath(path: components.last!, isDirectory: false) + + return url + } catch { + fatalError(error.localizedDescription) + } + } +} + + +@_cdecl("init_plugin_store") +func initPlugin() -> Plugin { + return StorePlugin() +} + +private extension URL { + func appendPath(path: String, isDirectory: Bool) -> URL { + if #available(iOS 16.0, *) { + return self.appending(path: path, directoryHint: isDirectory ? .isDirectory : .notDirectory) + } else { + return self.appendingPathComponent(path, isDirectory: isDirectory) + } + } +} + +public enum JSON : Codable { + case null + case number(NSNumber) + case string(String) + case array([JSON]) + case bool(Bool) + case dictionary([String : JSON]) + + public var value: Any? { + switch self { + case .null: return nil + case .number(let number): return number + case .string(let string): return string + case .bool(let bool): return bool + case .array(let array): return array.map { $0.value } + case .dictionary(let dictionary): return dictionary.mapValues { $0.value } + } + } + + public init?(_ value: Any?) { + guard let value = value else { + self = .null + return + } + + if let bool = value as? Bool { + self = .bool(bool) + } else if let int = value as? Int { + self = .number(NSNumber(value: int)) + } else if let double = value as? Double { + self = .number(NSNumber(value: double)) + } else if let string = value as? String { + self = .string(string) + } else if let array = value as? [Any] { + var mapped = [JSON]() + for inner in array { + guard let inner = JSON(inner) else { + return nil + } + + mapped.append(inner) + } + + self = .array(mapped) + } else if let dictionary = value as? [String : Any] { + var mapped = [String : JSON]() + for (key, inner) in dictionary { + guard let inner = JSON(inner) else { + return nil + } + + mapped[key] = inner + } + + self = .dictionary(mapped) + } else { + return nil + } + } + + public init(from decoder: Decoder) throws { + let container = try decoder.singleValueContainer() + guard !container.decodeNil() else { + self = .null + return + } + + if let bool = try container.decodeIfMatched(Bool.self) { + self = .bool(bool) + } else if let int = try container.decodeIfMatched(Int.self) { + self = .number(NSNumber(value: int)) + } else if let double = try container.decodeIfMatched(Double.self) { + self = .number(NSNumber(value: double)) + } else if let string = try container.decodeIfMatched(String.self) { + self = .string(string) + } else if let array = try container.decodeIfMatched([JSON].self) { + self = .array(array) + } else if let dictionary = try container.decodeIfMatched([String : JSON].self) { + self = .dictionary(dictionary) + } else { + throw DecodingError.typeMismatch(JSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Unable to decode JSON as any of the possible types.")) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.singleValueContainer() + + switch self { + case .null: try container.encodeNil() + case .bool(let bool): try container.encode(bool) + case .number(let number): + if number.objCType.pointee == 0x64 /* 'd' */ { + try container.encode(number.doubleValue) + } else { + try container.encode(number.intValue) + } + case .string(let string): try container.encode(string) + case .array(let array): try container.encode(array) + case .dictionary(let dictionary): try container.encode(dictionary) + } + } +} + +fileprivate extension SingleValueDecodingContainer { + func decodeIfMatched(_ type: T.Type) throws -> T? { + do { + return try self.decode(T.self) + } catch DecodingError.typeMismatch { + return nil + } + } +} diff --git a/plugins/store/src/desktop.rs b/plugins/store/src/desktop.rs new file mode 100644 index 000000000..3e98080e5 --- /dev/null +++ b/plugins/store/src/desktop.rs @@ -0,0 +1,49 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use crate::Error; +use crate::Runtime; +use crate::Store; +use std::fs::create_dir_all; +use std::fs::read; +use std::fs::File; +use std::io::Write; +use tauri::Manager; + +#[cfg(desktop)] +impl Store { + pub fn save(&self) -> Result<(), Error> { + let app_dir = self + .app + .path() + .app_data_dir() + .expect("failed to resolve app dir"); + let store_path = app_dir.join(&self.path); + + create_dir_all(store_path.parent().expect("invalid store path"))?; + + let bytes = (self.serialize)(&self.cache).map_err(Error::Serialize)?; + let mut f = File::create(&store_path)?; + f.write_all(&bytes)?; + + Ok(()) + } + + /// Update the store from the on-disk state + pub fn load(&mut self) -> Result<(), Error> { + let app_dir = self + .app + .path() + .app_data_dir() + .expect("failed to resolve app dir"); + let store_path = app_dir.join(&self.path); + + let bytes = read(store_path)?; + + self.cache + .extend((self.deserialize)(&bytes).map_err(Error::Deserialize)?); + + Ok(()) + } +} diff --git a/plugins/store/src/error.rs b/plugins/store/src/error.rs index 0a04bb092..d8ce9bb51 100644 --- a/plugins/store/src/error.rs +++ b/plugins/store/src/error.rs @@ -5,10 +5,19 @@ use serde::{Serialize, Serializer}; use std::path::PathBuf; +pub type Result = std::result::Result; + /// The error types. #[derive(thiserror::Error, Debug)] #[non_exhaustive] pub enum Error { + #[cfg(mobile)] + #[error(transparent)] + PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError), + /// Mobile plugin handled is not initialized, Probably [`StoreBuilder::mobile_plugin_handle`] was not called. + #[cfg(mobile)] + #[error("Mobile plugin handled is not initialized, Perhaps you forgot to call StoreBuilder::mobile_plugin_handle")] + MobilePluginHandleUnInitialized, #[error("Failed to serialize store. {0}")] Serialize(Box), #[error("Failed to deserialize store. {0}")] diff --git a/plugins/store/src/lib.rs b/plugins/store/src/lib.rs index f76752f8f..700b058e4 100644 --- a/plugins/store/src/lib.rs +++ b/plugins/store/src/lib.rs @@ -11,7 +11,7 @@ html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" )] -pub use error::Error; +pub use error::{Error, Result}; use log::warn; use serde::Serialize; pub use serde_json::Value as JsonValue; @@ -29,6 +29,18 @@ use tauri::{ mod error; mod store; +#[cfg(mobile)] +mod mobile; +#[cfg(mobile)] +use crate::plugin::PluginHandle; +#[cfg(target_os = "android")] +const PLUGIN_IDENTIFIER: &str = "app.tauri.store"; +#[cfg(target_os = "ios")] +tauri::ios_plugin_binding!(init_plugin_store); + +#[cfg(desktop)] +mod desktop; + #[derive(Serialize, Clone)] struct ChangePayload<'a> { path: &'a Path, @@ -36,18 +48,20 @@ struct ChangePayload<'a> { value: &'a JsonValue, } -#[derive(Default)] -pub struct StoreCollection { +struct StoreCollection { stores: Mutex>>, frozen: bool, + + #[cfg(mobile)] + mobile_plugin_handle: PluginHandle, } -pub fn with_store) -> Result>( +fn with_store) -> Result>( app: AppHandle, collection: State<'_, StoreCollection>, path: impl AsRef, f: F, -) -> Result { +) -> Result { let mut stores = collection.stores.lock().expect("mutex poisoned"); let path = path.as_ref(); @@ -55,7 +69,17 @@ pub fn with_store) -> Result>( if collection.frozen { return Err(Error::NotFound(path.to_path_buf())); } - let mut store = StoreBuilder::new(path).build(app); + + #[allow(unused_mut)] + let mut builder = StoreBuilder::new(path); + + #[cfg(mobile)] + { + builder = builder.mobile_plugin_handle(collection.mobile_plugin_handle.clone()); + } + + let mut store = builder.build(app); + // ignore loading errors, just use the default if let Err(err) = store.load() { warn!( @@ -78,7 +102,7 @@ async fn set( path: PathBuf, key: String, value: JsonValue, -) -> Result<(), Error> { +) -> Result<()> { with_store(app, stores, path, |store| store.insert(key, value)) } @@ -88,7 +112,7 @@ async fn get( stores: State<'_, StoreCollection>, path: PathBuf, key: String, -) -> Result, Error> { +) -> Result> { with_store(app, stores, path, |store| Ok(store.get(key).cloned())) } @@ -98,7 +122,7 @@ async fn has( stores: State<'_, StoreCollection>, path: PathBuf, key: String, -) -> Result { +) -> Result { with_store(app, stores, path, |store| Ok(store.has(key))) } @@ -108,7 +132,7 @@ async fn delete( stores: State<'_, StoreCollection>, path: PathBuf, key: String, -) -> Result { +) -> Result { with_store(app, stores, path, |store| store.delete(key)) } @@ -117,7 +141,7 @@ async fn clear( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result<(), Error> { +) -> Result<()> { with_store(app, stores, path, |store| store.clear()) } @@ -126,7 +150,7 @@ async fn reset( app: AppHandle, collection: State<'_, StoreCollection>, path: PathBuf, -) -> Result<(), Error> { +) -> Result<()> { with_store(app, collection, path, |store| store.reset()) } @@ -135,7 +159,7 @@ async fn keys( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result, Error> { +) -> Result> { with_store(app, stores, path, |store| { Ok(store.keys().cloned().collect()) }) @@ -146,7 +170,7 @@ async fn values( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result, Error> { +) -> Result> { with_store(app, stores, path, |store| { Ok(store.values().cloned().collect()) }) @@ -157,7 +181,7 @@ async fn entries( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result, Error> { +) -> Result> { with_store(app, stores, path, |store| { Ok(store .entries() @@ -171,7 +195,7 @@ async fn length( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result { +) -> Result { with_store(app, stores, path, |store| Ok(store.len())) } @@ -180,7 +204,7 @@ async fn load( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result<(), Error> { +) -> Result<()> { with_store(app, stores, path, |store| store.load()) } @@ -189,7 +213,7 @@ async fn save( app: AppHandle, stores: State<'_, StoreCollection>, path: PathBuf, -) -> Result<(), Error> { +) -> Result<()> { with_store(app, stores, path, |store| store.save()) } @@ -306,9 +330,17 @@ impl Builder { } } + #[cfg(target_os = "android")] + let handle = _api.register_android_plugin(PLUGIN_IDENTIFIER, "StorePlugin")?; + #[cfg(target_os = "ios")] + let handle = _api.register_ios_plugin(init_plugin_store)?; + app_handle.manage(StoreCollection { stores: Mutex::new(self.stores), frozen: self.frozen, + + #[cfg(mobile)] + mobile_plugin_handle: handle, }); Ok(()) diff --git a/plugins/store/src/mobile.rs b/plugins/store/src/mobile.rs new file mode 100644 index 000000000..7d999fb4a --- /dev/null +++ b/plugins/store/src/mobile.rs @@ -0,0 +1,53 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use tauri::Runtime; + +use crate::error::Result; +use crate::Store; +use serde_json::Value; +use std::collections::HashMap; + +#[derive(Debug, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct LoadStore { + pub cache: HashMap, +} + +#[derive(Debug, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SaveStore { + pub store: String, + pub cache: HashMap, +} + +#[cfg(mobile)] +impl Store { + pub fn save(&self) -> Result<()> { + self.mobile_plugin_handle + .as_ref() + .ok_or_else(|| crate::error::Error::MobilePluginHandleUnInitialized)? + .run_mobile_plugin( + "save", + SaveStore { + store: self.path.to_string_lossy().to_string(), + cache: self.cache.clone(), + }, + ) + .map_err(Into::into) + } + + pub fn load(&mut self) -> Result<()> { + let result: Value = self + .mobile_plugin_handle + .as_ref() + .ok_or_else(|| crate::error::Error::MobilePluginHandleUnInitialized)? + .run_mobile_plugin("load", self.path.to_string_lossy().to_string())?; + + let map = serde_json::from_value::>(result)?; + self.cache.extend(map); + + Ok(()) + } +} diff --git a/plugins/store/src/store.rs b/plugins/store/src/store.rs index 1a7b6e1b3..9437ada15 100644 --- a/plugins/store/src/store.rs +++ b/plugins/store/src/store.rs @@ -2,12 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +#[cfg(mobile)] +use crate::plugin::PluginHandle; use crate::{ChangePayload, Error}; use serde_json::Value as JsonValue; use std::{ collections::HashMap, - fs::{create_dir_all, read, File}, - io::Write, path::{Path, PathBuf}, }; use tauri::{AppHandle, Manager, Runtime}; @@ -30,15 +30,20 @@ fn default_deserialize( } /// Builds a [`Store`] -pub struct StoreBuilder { +pub struct StoreBuilder { path: PathBuf, defaults: Option>, cache: HashMap, serialize: SerializeFn, deserialize: DeserializeFn, + + #[cfg(mobile)] + mobile_plugin_handle: Option>, + #[cfg(not(mobile))] + _marker: std::marker::PhantomData, } -impl StoreBuilder { +impl StoreBuilder { /// Creates a new [`StoreBuilder`]. /// /// # Examples @@ -58,9 +63,19 @@ impl StoreBuilder { cache: Default::default(), serialize: default_serialize, deserialize: default_deserialize, + #[cfg(mobile)] + mobile_plugin_handle: None, + #[cfg(not(mobile))] + _marker: std::marker::PhantomData, } } + #[cfg(mobile)] + pub fn mobile_plugin_handle(mut self, handle: PluginHandle) -> Self { + self.mobile_plugin_handle = Some(handle); + self + } + /// Inserts a default key-value pair. /// /// # Examples @@ -148,7 +163,7 @@ impl StoreBuilder { /// Ok(()) /// }); /// ``` - pub fn build(self, app: AppHandle) -> Store { + pub fn build(self, app: AppHandle) -> Store { Store { app, path: self.path, @@ -156,56 +171,27 @@ impl StoreBuilder { cache: self.cache, serialize: self.serialize, deserialize: self.deserialize, + + #[cfg(mobile)] + mobile_plugin_handle: self.mobile_plugin_handle, } } } #[derive(Clone)] pub struct Store { - app: AppHandle, + pub(crate) app: AppHandle, pub(crate) path: PathBuf, defaults: Option>, - cache: HashMap, - serialize: SerializeFn, - deserialize: DeserializeFn, + pub(crate) cache: HashMap, + pub(crate) serialize: SerializeFn, + pub(crate) deserialize: DeserializeFn, + + #[cfg(mobile)] + pub(crate) mobile_plugin_handle: Option>, } impl Store { - /// Update the store from the on-disk state - pub fn load(&mut self) -> Result<(), Error> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); - - let bytes = read(store_path)?; - - self.cache - .extend((self.deserialize)(&bytes).map_err(Error::Deserialize)?); - - Ok(()) - } - - /// Saves the store to disk - pub fn save(&self) -> Result<(), Error> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); - - create_dir_all(store_path.parent().expect("invalid store path"))?; - - let bytes = (self.serialize)(&self.cache).map_err(Error::Serialize)?; - let mut f = File::create(&store_path)?; - f.write_all(&bytes)?; - - Ok(()) - } - pub fn insert(&mut self, key: String, value: JsonValue) -> Result<(), Error> { self.cache.insert(key.clone(), value.clone()); self.app.emit( From 570fb8f33556ceb601e3e67be33d1d60c7e326ff Mon Sep 17 00:00:00 2001 From: Victor Aremu Date: Tue, 5 Mar 2024 01:03:44 +0100 Subject: [PATCH 099/643] feat: Improve Stronghold (v2) README with usage examples (#1023) feat: add client side usage --- plugins/stronghold/README.md | 73 ++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index 0b293a2dd..caabff64b 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -52,8 +52,25 @@ First you need to register the core plugin with Tauri: fn main() { tauri::Builder::default() .plugin(tauri_plugin_stronghold::Builder::new(|password| { - // TODO: hash the password here with e.g. argon2, blake2b or any other secure algorithm - todo!() + // Hash the password here with e.g. argon2, blake2b or any other secure algorithm + // Here is an example implementation using the `rust-argon2` crate for hashing the password + + use argon2::{hash_raw, Config, Variant, Version}; + + let config = Config { + lanes: 4, + mem_cost: 10_000, + time_cost: 10, + variant: Variant::Argon2id, + version: Version::Version13, + ..Default::default() + }; + + let salt = "your-salt".as_bytes(); + + let key = hash_raw(password.as_ref(), salt, &config).expect("failed to hash password"); + + key.to_vec() }) .build()) .run(tauri::generate_context!()) @@ -64,9 +81,57 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { Stronghold, Location } from "@tauri-apps/plugin-stronghold"; +import { Stronghold, Location, Client } from "tauri-plugin-stronghold-api"; +import { appDataDir } from "@tauri-apps/api/path"; -// TODO +const initStrongHold = async () => { + const vaultPath = `${await appDataDir()}/vault.hold`; + + const vaultKey = "The key to the vault"; + + const stronghold = await Stronghold.load(vaultPath, vaultKey); + + let client: Client; + + const clientName = "name your client"; + + try { + client = await hold.loadClient(clientName); + } catch { + client = await hold.createClient(clientName); + } + + return { + stronghold, + client, + }; +}; + +const { stronghold, client } = await initStrongHold(); + +const store = client.getStore(); + +const key = "my_key"; + +// Insert a record to the store + +const data = Array.from(new TextEncoder().encode("Hello, World!")); + +await store.insert(key, data); + +// Read a record from store + +const data = await store.get(key); + +const value = new TextDecoder().decode(new Uint8Array(data)); + +// Save your updates + +await stronghold.save(); + +// Remove a record from store + +await store.remove(key); ``` ## Contributing From ea294c776a6a3a532bb7161905edb5fa95b8840c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 08:26:48 +0100 Subject: [PATCH 100/643] chore(deps): update dependency vite to v5.1.5 (#1024) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ba36817d..115108d32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -154,7 +154,7 @@ importers: version: 5.3.3 vite: specifier: ^5.0.12 - version: 5.1.4 + version: 5.1.5 plugins/stronghold: dependencies: @@ -200,7 +200,7 @@ importers: version: 5.3.3 vite: specifier: ^5.0.12 - version: 5.1.4 + version: 5.1.5 plugins/window-state: dependencies: @@ -2739,8 +2739,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.1.4: - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + /vite@5.1.5: + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: From 54cd4a58b84132388232b6ad29de7c4613292bf1 Mon Sep 17 00:00:00 2001 From: Victor Aremu Date: Tue, 5 Mar 2024 11:21:24 +0100 Subject: [PATCH 101/643] chore(stronghold): readme typo (#1028) --- plugins/stronghold/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index caabff64b..b89401d2e 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -84,7 +84,7 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind import { Stronghold, Location, Client } from "tauri-plugin-stronghold-api"; import { appDataDir } from "@tauri-apps/api/path"; -const initStrongHold = async () => { +const initStronghold = async () => { const vaultPath = `${await appDataDir()}/vault.hold`; const vaultKey = "The key to the vault"; @@ -107,7 +107,7 @@ const initStrongHold = async () => { }; }; -const { stronghold, client } = await initStrongHold(); +const { stronghold, client } = await initStronghold(); const store = client.getStore(); From 30295ecc8e65ba63adf113aa5e1679735ce78f1c Mon Sep 17 00:00:00 2001 From: Victor Aremu Date: Wed, 6 Mar 2024 03:13:59 +0100 Subject: [PATCH 102/643] feat: improve stronghold readme (#1027) * fix: typo * feat: update client package install commands * refactor: instruct user to copy code if unable to install via monorepo --- plugins/stronghold/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index 6254aa35e..24a29fdab 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -23,7 +23,7 @@ tauri-plugin-stronghold = { git = "https://github.com/tauri-apps/plugins-workspa You can install the JavaScript Guest bindings using your preferred JavaScript package manager: -> Note: Since most JavaScript package managers are unable to install packages from git monorepos we provide read-only mirrors of each plugin. This makes installation option 2 more ergonomic to use. +> Note: If your JavaScript package manager cannot install packages from git monorepos, you can still use the code by manually copying the [Guest bindings](./guest-js/index.ts) into your source files. ```sh pnpm add https://github.com/tauri-apps/tauri-plugin-stronghold#v1 @@ -75,7 +75,7 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind import { Stronghold, Location, Client } from "tauri-plugin-stronghold-api"; import { appDataDir } from "@tauri-apps/api/path"; -const initStrongHold = async () => { +const initStronghold = async () => { const vaultPath = `${await appDataDir()}/vault.hold`; const vaultKey = "The key to the vault"; @@ -98,7 +98,7 @@ const initStrongHold = async () => { }; }; -const { stronghold, client } = await initStrongHold(); +const { stronghold, client } = await initStronghold(); const store = client.getStore(); From d9870f194828403f57dd104ddf15544764acced0 Mon Sep 17 00:00:00 2001 From: Rigidity <35380458+Rigidity@users.noreply.github.com> Date: Tue, 5 Mar 2024 23:08:35 -0500 Subject: [PATCH 103/643] docs: improve `tauri-plugin-store` readme and code example (#996) * Improve tauri-plugin-store readme and code example * Remove advanced error handling section and fix inaccuracy * Switch to expect --- plugins/store/README.md | 60 ++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/plugins/store/README.md b/plugins/store/README.md index ad7468543..5b766c389 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -69,19 +69,30 @@ await store.set("some-key", { value: 5 }); const val = await store.get("some-key"); assert(val, { value: 5 }); -await store.save(); // this manually saves the store, otherwise the store is only saved when your app is closed +// This manually saves the store. +await store.save(); ``` -### Persisting values +### Persisting Values -Values added to the store are not persisted between application loads unless: +As seen above, values added to the store are not persisted between application loads unless the application is closed gracefully. -1. The application is closed gracefully (plugin automatically saves) -2. The store is manually saved (using `store.save()`) +You can manually save a store with: + +```javascript +await store.save(); +``` + +Stores are loaded automatically when used from the JavaScript bindings. +However, you can also load them manually later like so: + +```javascript +await store.load(); +``` ## Usage from Rust -You can also access Stores from Rust, you can create new stores: +You can also create `Store` instances directly in Rust: ```rust use tauri_plugin_store::StoreBuilder; @@ -91,23 +102,52 @@ fn main() { tauri::Builder::default() .plugin(tauri_plugin_store::Builder::default().build()) .setup(|app| { - let mut store = StoreBuilder::new(app.handle(), "path/to/store.bin".parse()?).build(); + let mut store = StoreBuilder::new("app_data.bin").build(app.handle().clone()); - store.insert("a".to_string(), json!("b")) // note that values must be serd_json::Value to be compatible with JS + // Attempt to load the store, if it's saved already. + store.load().expect("Failed to load store from disk"); + + // Note that values must be serde_json::Value instances, + // otherwise, they will not be compatible with the JavaScript bindings. + store.insert("a".to_string(), json!("b")); + + // You can manually save the store after making changes. + // Otherwise, it will save upon graceful exit as described above. + store.save() }) .run(tauri::generate_context!()) .expect("error while running tauri application"); } ``` -As you may have noticed, the Store crated above isn't accessible to the frontend. To interoperate with stores created by JS use the exported `with_store` method: +### Loading Gracefully + +If you call `load` on a `Store` that hasn't yet been written to the desk, it will return an error. You must handle this error if you want to gracefully continue and use the default store until you save it to the disk. The example above shows how to do this. + +For example, this would cause a panic if the store has not yet been created: + +```rust +store.load().unwrap(); +``` + +Rather than silently continuing like you may expect. + +You should always handle the error appropriately rather than unwrapping, or you may experience unexpected app crashes: + +```rust +store.load().expect("Failed to load store from disk"); +``` + +### Frontend Interoperability + +As you may have noticed, the `Store` crated above isn't accessible to the frontend. To interoperate with stores created by JavaScript use the exported `with_store` method: ```rust use tauri::Wry; use tauri_plugin_store::with_store; let stores = app.state::>(); -let path = PathBuf::from("path/to/the/storefile"); +let path = PathBuf::from("app_data.bin"); with_store(app_handle, stores, path, |store| store.insert("a".to_string(), json!("b"))) ``` From ac520a28415ac0f81c43e7cd6e0774b66360006f Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 6 Mar 2024 13:44:51 -0300 Subject: [PATCH 104/643] feat(http): enhance scope URL matching via urlpattern (#1030) * feat(http): enhance scope URL matching via urlpattern * update schema --- .changes/enhance-http-scope.md | 5 ++ Cargo.lock | 59 ++++++++++++- .../src-tauri/gen/schemas/desktop-schema.json | 4 +- .../src-tauri/gen/schemas/mobile-schema.json | 86 +++++++++---------- examples/api/src/views/Http.svelte | 2 +- plugins/http/Cargo.toml | 6 +- plugins/http/build.rs | 16 +++- plugins/http/src/scope.rs | 82 +++++++++++++----- 8 files changed, 184 insertions(+), 76 deletions(-) create mode 100644 .changes/enhance-http-scope.md diff --git a/.changes/enhance-http-scope.md b/.changes/enhance-http-scope.md new file mode 100644 index 000000000..791bf1765 --- /dev/null +++ b/.changes/enhance-http-scope.md @@ -0,0 +1,5 @@ +--- +"http": patch +--- + +The scope URL now follows the URL pattern standard instead of a simple glob pattern. diff --git a/Cargo.lock b/Cargo.lock index ca97ee3ba..d7f177f26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1659,7 +1659,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.7.4", + "libloading 0.8.1", ] [[package]] @@ -6546,8 +6546,8 @@ name = "tauri-plugin-http" version = "2.0.0-beta.1" dependencies = [ "data-url", - "glob", "http 0.2.11", + "regex", "reqwest", "schemars", "serde", @@ -6557,6 +6557,7 @@ dependencies = [ "tauri-plugin-fs", "thiserror", "url", + "urlpattern", ] [[package]] @@ -7450,6 +7451,47 @@ dependencies = [ "winapi", ] +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicase" version = "2.7.0" @@ -7542,6 +7584,19 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "urlpattern" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +dependencies = [ + "derive_more", + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "utf-8" version = "0.7.6" diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index 2d283f77f..20b2fa3f2 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -2242,7 +2242,7 @@ ], "properties": { "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples:\n\n- \"https://*\" or \"https://**\" : allows all HTTPS urls\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" } } @@ -2258,7 +2258,7 @@ ], "properties": { "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples:\n\n- \"https://*\" or \"https://**\" : allows all HTTPS urls\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" } } diff --git a/examples/api/src-tauri/gen/schemas/mobile-schema.json b/examples/api/src-tauri/gen/schemas/mobile-schema.json index 884d268f7..900ededd7 100644 --- a/examples/api/src-tauri/gen/schemas/mobile-schema.json +++ b/examples/api/src-tauri/gen/schemas/mobile-schema.json @@ -47,15 +47,22 @@ "default": "", "type": "string" }, - "context": { - "description": "Execution context of the capability.\n\nAt runtime, Tauri filters the IPC command together with the context to determine whether it is allowed or not and its scope.", - "default": "local", - "allOf": [ + "remote": { + "description": "Configure remote URLs that can use the capability permissions.", + "anyOf": [ { - "$ref": "#/definitions/CapabilityContext" + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" } ] }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, "windows": { "description": "List of windows that uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.", "type": "array", @@ -78,7 +85,7 @@ } }, "platforms": { - "description": "Target platforms this capability applies. By default all platforms applies.", + "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", "default": [ "linux", "macOS", @@ -93,42 +100,21 @@ } } }, - "CapabilityContext": { - "description": "Context of the capability.", - "oneOf": [ - { - "description": "Capability refers to local URL usage.", - "type": "string", - "enum": [ - "local" - ] - }, - { - "description": "Capability refers to remote usage.", - "type": "object", - "required": [ - "remote" - ], - "properties": { - "remote": { - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to. Can use glob patterns.", - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "additionalProperties": false + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to. Can use glob patterns.", + "type": "array", + "items": { + "type": "string" + } } - ] + } }, "PermissionEntry": { "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", @@ -2256,7 +2242,7 @@ ], "properties": { "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples:\n\n- \"https://*\" or \"https://**\" : allows all HTTPS urls\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" } } @@ -2272,7 +2258,7 @@ ], "properties": { "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples:\n\n- \"https://*\" or \"https://**\" : allows all HTTPS urls\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" } } @@ -5756,6 +5742,13 @@ "webview:allow-print" ] }, + { + "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", + "type": "string", + "enum": [ + "webview:allow-reparent" + ] + }, { "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -5826,6 +5819,13 @@ "webview:deny-print" ] }, + { + "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", + "type": "string", + "enum": [ + "webview:deny-reparent" + ] + }, { "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", "type": "string", diff --git a/examples/api/src/views/Http.svelte b/examples/api/src/views/Http.svelte index 842816b8d..e18488031 100644 --- a/examples/api/src/views/Http.svelte +++ b/examples/api/src/views/Http.svelte @@ -53,7 +53,7 @@ const form = new FormData(); form.append("foo", foo); form.append("bar", bar); - const response = await tauriFetch("http://localhost:3003", { + const response = await tauriFetch("http://localhost:3003/tauri", { method: "POST", body: form, }); diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 3b06c2a2f..6bd71f19d 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -17,7 +17,8 @@ tauri-plugin = { workspace = true, features = [ "build" ] } schemars = { workspace = true } serde = { workspace = true } url = { workspace = true } -glob = "0.3" +urlpattern = "0.2" +regex = "1" [dependencies] serde = { workspace = true } @@ -25,7 +26,8 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.1" } -glob = "0.3" +urlpattern = "0.2" +regex = "1" http = "0.2" reqwest = { version = "0.11", default-features = false } url = { workspace = true } diff --git a/plugins/http/build.rs b/plugins/http/build.rs index 2eaf72ba6..3ad55b46b 100644 --- a/plugins/http/build.rs +++ b/plugins/http/build.rs @@ -12,11 +12,15 @@ const COMMANDS: &[&str] = &["fetch", "fetch_cancel", "fetch_send", "fetch_read_b #[derive(schemars::JsonSchema)] struct ScopeEntry { /// A URL that can be accessed by the webview when using the HTTP APIs. - /// The scoped URL is matched against the request URL using a glob pattern. + /// Wildcards can be used following the URL pattern standard. + /// + /// See [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information. /// /// Examples: /// - /// - "https://*" or "https://**" : allows all HTTPS urls + /// - "https://*" : allows all HTTPS origin on port 443 + /// + /// - "https://*:*" : allows all HTTPS origin on any port /// /// - "https://*.github.com/tauri-apps/tauri": allows any subdomain of "github.com" with the "tauri-apps/api" path /// @@ -28,7 +32,13 @@ struct ScopeEntry { impl From for scope::Entry { fn from(value: ScopeEntry) -> Self { scope::Entry { - url: value.url.parse().unwrap(), + url: urlpattern::UrlPattern::parse( + urlpattern::UrlPatternInit::parse_constructor_string::( + &value.url, None, + ) + .unwrap(), + ) + .unwrap(), } } } diff --git a/plugins/http/src/scope.rs b/plugins/http/src/scope.rs index d80a55fbe..5652e9a0c 100644 --- a/plugins/http/src/scope.rs +++ b/plugins/http/src/scope.rs @@ -4,11 +4,17 @@ use serde::{Deserialize, Deserializer}; use url::Url; +use urlpattern::{UrlPattern, UrlPatternInit, UrlPatternMatchInput}; #[allow(rustdoc::bare_urls)] #[derive(Debug)] pub struct Entry { - pub url: glob::Pattern, + pub url: UrlPattern, +} + +fn parse_url_pattern(s: &str) -> Result { + let init = UrlPatternInit::parse_constructor_string::(s, None)?; + UrlPattern::parse(init) } impl<'de> Deserialize<'de> for Entry { @@ -23,9 +29,9 @@ impl<'de> Deserialize<'de> for Entry { EntryRaw::deserialize(deserializer).and_then(|raw| { Ok(Entry { - url: glob::Pattern::new(&raw.url).map_err(|e| { + url: parse_url_pattern(&raw.url).map_err(|e| { serde::de::Error::custom(format!( - "URL `{}` is not a valid glob pattern: {e}", + "`{}` is not a valid URL pattern: {e}", raw.url )) })?, @@ -50,19 +56,19 @@ impl<'a> Scope<'a> { /// Determines if the given URL is allowed on this scope. pub fn is_allowed(&self, url: &Url) -> bool { let denied = self.denied.iter().any(|entry| { - entry.url.matches(url.as_str()) - || entry - .url - .matches(url.as_str().strip_suffix('/').unwrap_or_default()) + entry + .url + .test(UrlPatternMatchInput::Url(url.clone())) + .unwrap_or_default() }); if denied { false } else { self.allowed.iter().any(|entry| { - entry.url.matches(url.as_str()) - || entry - .url - .matches(url.as_str().strip_suffix('/').unwrap_or_default()) + entry + .url + .test(UrlPatternMatchInput::Url(url.clone())) + .unwrap_or_default() }) } } @@ -75,16 +81,24 @@ mod tests { use super::Entry; impl FromStr for Entry { - type Err = glob::PatternError; + type Err = urlpattern::quirks::Error; fn from_str(s: &str) -> Result { - let pattern = s.parse()?; + let pattern = super::parse_url_pattern(s)?; Ok(Self { url: pattern }) } } #[test] - fn is_allowed() { + fn denied_takes_precedence() { + let allow = "http://localhost:8080/file.png".parse().unwrap(); + let deny = "http://localhost:8080/*".parse().unwrap(); + let scope = super::Scope::new(vec![&allow], vec![&deny]); + assert!(!scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); + } + + #[test] + fn fixed_url() { // plain URL let entry = "http://localhost:8080".parse().unwrap(); let scope = super::Scope::new(vec![&entry], Vec::new()); @@ -96,13 +110,10 @@ mod tests { assert!(!scope.is_allowed(&"https://localhost:8080".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8081".parse().unwrap())); assert!(!scope.is_allowed(&"http://local:8080".parse().unwrap())); + } - // deny takes precedence - let allow = "http://localhost:8080/file.png".parse().unwrap(); - let deny = "http://localhost:8080/*".parse().unwrap(); - let scope = super::Scope::new(vec![&allow], vec![&deny]); - assert!(!scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); - + #[test] + fn fixed_path() { // URL with fixed path let entry = "http://localhost:8080/file.png".parse().unwrap(); let scope = super::Scope::new(vec![&entry], Vec::new()); @@ -112,8 +123,10 @@ mod tests { assert!(!scope.is_allowed(&"http://localhost:8080".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8080/file".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8080/file.png/other.jpg".parse().unwrap())); + } - // URL with glob pattern + #[test] + fn pattern_wildcard() { let entry = "http://localhost:8080/*.png".parse().unwrap(); let scope = super::Scope::new(vec![&entry], Vec::new()); @@ -121,18 +134,41 @@ mod tests { assert!(scope.is_allowed(&"http://localhost:8080/assets/file.png".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8080/file.jpeg".parse().unwrap())); + } + #[test] + fn domain_wildcard() { let entry = "http://*".parse().unwrap(); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); - assert!(scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(!scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); assert!(!scope.is_allowed(&"https://something.else".parse().unwrap())); - let entry = "http://**".parse().unwrap(); + let entry = "http://*/*".parse().unwrap(); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); assert!(scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); } + + #[test] + fn scheme_wildcard() { + let entry = "*://*".parse().unwrap(); + let scope = super::Scope::new(vec![&entry], Vec::new()); + + assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); + assert!(!scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"file://path".parse().unwrap())); + assert!(!scope.is_allowed(&"file://path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"https://something.else".parse().unwrap())); + + let entry = "*://*/*".parse().unwrap(); + let scope = super::Scope::new(vec![&entry], Vec::new()); + + assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); + assert!(scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"file://path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"https://something.else".parse().unwrap())); + } } From 735810237e21504a027a65a7b3c25fd7e594288a Mon Sep 17 00:00:00 2001 From: Tahmin Ahmed <68072081+otamam818@users.noreply.github.com> Date: Thu, 7 Mar 2024 04:30:13 +1100 Subject: [PATCH 105/643] fix: fix `plugins/fs` infinite loop on autoregen (#1029) * Created safety check for redundant autogenerations * Accounted for empty file case, added .changes file * Update plugins/fs/build.rs --- .changes/file-autogen-fix.md | 6 ++++++ plugins/fs/build.rs | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 .changes/file-autogen-fix.md diff --git a/.changes/file-autogen-fix.md b/.changes/file-autogen-fix.md new file mode 100644 index 000000000..0a8705094 --- /dev/null +++ b/.changes/file-autogen-fix.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"fs-js": patch +--- + +Fix infinite loop on cargo build operations \ No newline at end of file diff --git a/plugins/fs/build.rs b/plugins/fs/build.rs index 1901f3a48..dcfefd294 100644 --- a/plugins/fs/build.rs +++ b/plugins/fs/build.rs @@ -154,8 +154,11 @@ permissions = [ ]"### ); - std::fs::write(base_dirs.join(format!("{lower}.toml")), toml) - .unwrap_or_else(|e| panic!("unable to autogenerate ${upper}: {e}")); + let permission_path = base_dirs.join(format!("{lower}.toml")); + if toml != std::fs::read_to_string(&permission_path).unwrap_or_default() { + std::fs::write(permission_path, toml) + .unwrap_or_else(|e| panic!("unable to autogenerate ${lower}: {e}")); + } } tauri_plugin::Builder::new(COMMANDS) From 16fc0f2ee34fdaef54d9ec88bbd2d6f802c90a4d Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 6 Mar 2024 18:38:51 +0100 Subject: [PATCH 106/643] fix(dialog): Remove Linux specific code for rfd 0.14 compatibility (#1033) fixes #956 --- .changes/dialog-linux-freeze.md | 5 +++ plugins/dialog/src/desktop.rs | 58 +++++++-------------------------- 2 files changed, 16 insertions(+), 47 deletions(-) create mode 100644 .changes/dialog-linux-freeze.md diff --git a/.changes/dialog-linux-freeze.md b/.changes/dialog-linux-freeze.md new file mode 100644 index 000000000..5b9be9f99 --- /dev/null +++ b/.changes/dialog-linux-freeze.md @@ -0,0 +1,5 @@ +--- +"dialog": "patch" +--- + +Fixed an issue where dialogs would not spawn but instead freeze the whole app. diff --git a/plugins/dialog/src/desktop.rs b/plugins/dialog/src/desktop.rs index 7843f3b5a..5d98952df 100644 --- a/plugins/dialog/src/desktop.rs +++ b/plugins/dialog/src/desktop.rs @@ -11,6 +11,7 @@ use std::path::PathBuf; use raw_window_handle::{HasWindowHandle, RawWindowHandle}; +use rfd::{AsyncFileDialog, AsyncMessageDialog}; use serde::de::DeserializeOwned; use tauri::{plugin::PluginApi, AppHandle, Runtime}; @@ -18,16 +19,6 @@ use crate::{models::*, FileDialogBuilder, MessageDialogBuilder}; const OK: &str = "Ok"; -#[cfg(target_os = "linux")] -type FileDialog = rfd::FileDialog; -#[cfg(not(target_os = "linux"))] -type FileDialog = rfd::AsyncFileDialog; - -#[cfg(target_os = "linux")] -type MessageDialog = rfd::MessageDialog; -#[cfg(not(target_os = "linux"))] -type MessageDialog = rfd::AsyncMessageDialog; - pub fn init( app: &AppHandle, _api: PluginApi, @@ -51,40 +42,18 @@ impl Dialog { } } -#[cfg(not(target_os = "linux"))] macro_rules! run_dialog { ($e:expr, $h: expr) => {{ std::thread::spawn(move || $h(tauri::async_runtime::block_on($e))); }}; } -#[cfg(target_os = "linux")] -macro_rules! run_dialog { - ($e:expr, $h: ident) => {{ - std::thread::spawn(move || { - let context = glib::MainContext::default(); - context.invoke_with_priority(glib::PRIORITY_HIGH, move || $h($e)); - }); - }}; -} - -#[cfg(not(target_os = "linux"))] macro_rules! run_file_dialog { ($e:expr, $h: ident) => {{ std::thread::spawn(move || $h(tauri::async_runtime::block_on($e))); }}; } -#[cfg(target_os = "linux")] -macro_rules! run_file_dialog { - ($e:expr, $h: ident) => {{ - std::thread::spawn(move || { - let context = glib::MainContext::default(); - context.invoke_with_priority(glib::PRIORITY_HIGH, move || $h($e)); - }); - }}; -} - impl From for rfd::MessageLevel { fn from(kind: MessageDialogKind) -> Self { match kind { @@ -105,9 +74,9 @@ impl HasWindowHandle for WindowHandle { } } -impl From> for FileDialog { +impl From> for AsyncFileDialog { fn from(d: FileDialogBuilder) -> Self { - let mut builder = FileDialog::new(); + let mut builder = AsyncFileDialog::new(); if let Some(title) = d.title { builder = builder.set_title(title); @@ -133,9 +102,9 @@ impl From> for FileDialog { } } -impl From> for MessageDialog { +impl From> for AsyncMessageDialog { fn from(d: MessageDialogBuilder) -> Self { - let mut dialog = MessageDialog::new() + let mut dialog = AsyncMessageDialog::new() .set_title(&d.title) .set_description(&d.message) .set_level(d.kind.into()); @@ -162,49 +131,44 @@ pub fn pick_file) + Send + 'static>( dialog: FileDialogBuilder, f: F, ) { - #[cfg(not(target_os = "linux"))] let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(FileDialog::from(dialog).pick_file(), f) + run_file_dialog!(AsyncFileDialog::from(dialog).pick_file(), f) } pub fn pick_files>) + Send + 'static>( dialog: FileDialogBuilder, f: F, ) { - #[cfg(not(target_os = "linux"))] let f = |paths: Option>| { f(paths.map(|list| list.into_iter().map(|p| p.path().to_path_buf()).collect())) }; - run_file_dialog!(FileDialog::from(dialog).pick_files(), f) + run_file_dialog!(AsyncFileDialog::from(dialog).pick_files(), f) } pub fn pick_folder) + Send + 'static>( dialog: FileDialogBuilder, f: F, ) { - #[cfg(not(target_os = "linux"))] let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(FileDialog::from(dialog).pick_folder(), f) + run_file_dialog!(AsyncFileDialog::from(dialog).pick_folder(), f) } pub fn pick_folders>) + Send + 'static>( dialog: FileDialogBuilder, f: F, ) { - #[cfg(not(target_os = "linux"))] let f = |paths: Option>| { f(paths.map(|list| list.into_iter().map(|p| p.path().to_path_buf()).collect())) }; - run_file_dialog!(FileDialog::from(dialog).pick_folders(), f) + run_file_dialog!(AsyncFileDialog::from(dialog).pick_folders(), f) } pub fn save_file) + Send + 'static>( dialog: FileDialogBuilder, f: F, ) { - #[cfg(not(target_os = "linux"))] let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(FileDialog::from(dialog).save_file(), f) + run_file_dialog!(AsyncFileDialog::from(dialog).save_file(), f) } /// Shows a message dialog @@ -223,5 +187,5 @@ pub fn show_message_dialog( }); }; - run_dialog!(MessageDialog::from(dialog).show(), f); + run_dialog!(AsyncMessageDialog::from(dialog).show(), f); } From cacf544d513e7184b07ab31f40f50981603ce8ba Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 7 Mar 2024 00:08:52 -0300 Subject: [PATCH 107/643] chore(deps): update to tauri beta.9 (#1037) --- .changes/tauri-beta-9.md | 7 + Cargo.lock | 46 +-- Cargo.toml | 6 +- examples/api/package.json | 4 +- examples/api/src-tauri/Cargo.toml | 30 +- .../src-tauri/gen/schemas/desktop-schema.json | 126 ++++++++ examples/api/src-tauri/src/lib.rs | 29 +- examples/api/src-tauri/src/tray.rs | 11 +- examples/api/src/views/Communication.svelte | 8 +- plugins/authenticator/package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/package.json | 2 +- plugins/cli/package.json | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/examples/app/package.json | 4 +- .../examples/app/src-tauri/Cargo.toml | 2 +- plugins/deep-link/package.json | 2 +- plugins/dialog/package.json | 2 +- plugins/fs/package.json | 2 +- plugins/fs/src/api-iife.js | 2 +- plugins/fs/src/commands.rs | 4 +- plugins/fs/src/error.rs | 2 - plugins/global-shortcut/package.json | 2 +- plugins/global-shortcut/src/api-iife.js | 2 +- plugins/http/package.json | 2 +- plugins/http/src/scope.rs | 28 +- plugins/log/package.json | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/package.json | 2 +- plugins/notification/src/api-iife.js | 2 +- plugins/notification/src/desktop.rs | 14 +- plugins/os/package.json | 2 +- plugins/positioner/package.json | 2 +- plugins/process/package.json | 2 +- plugins/shell/package.json | 2 +- plugins/shell/src/api-iife.js | 2 +- plugins/shell/src/scope.rs | 4 +- .../examples/vanilla/package.json | 2 +- .../examples/vanilla/src-tauri/Cargo.toml | 4 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/package.json | 2 +- plugins/updater/src/api-iife.js | 2 +- plugins/updater/tests/app-updater/Cargo.toml | 2 +- .../updater/tests/app-updater/tauri.conf.json | 2 +- .../updater/tests/app-updater/tests/update.rs | 2 +- plugins/upload/package.json | 2 +- plugins/upload/src/api-iife.js | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- .../examples/tauri-app/src-tauri/Cargo.toml | 2 +- plugins/websocket/package.json | 2 +- plugins/websocket/src/api-iife.js | 2 +- plugins/window-state/package.json | 2 +- plugins/window-state/src/api-iife.js | 2 +- pnpm-lock.yaml | 304 ++++++------------ shared/template/package.json | 2 +- 58 files changed, 374 insertions(+), 339 deletions(-) create mode 100644 .changes/tauri-beta-9.md diff --git a/.changes/tauri-beta-9.md b/.changes/tauri-beta-9.md new file mode 100644 index 000000000..cad2b1153 --- /dev/null +++ b/.changes/tauri-beta-9.md @@ -0,0 +1,7 @@ +--- +"fs": patch +"http": patch +"shell": patch +--- + +Update to tauri beta.9. diff --git a/Cargo.lock b/Cargo.lock index d7f177f26..59c410937 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -626,6 +626,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + [[package]] name = "base64ct" version = "1.6.0" @@ -3534,9 +3540,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" dependencies = [ "value-bag", ] @@ -6261,9 +6267,9 @@ checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" [[package]] name = "tauri" -version = "2.0.0-beta.8" +version = "2.0.0-beta.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bd3d5ccf5316833c0f71c645c25585bddf997a16bea652bf3eab8114273cff" +checksum = "353a521566bd41164a05887f40fe93b375c82b82000726f63c66237955dfb4f5" dependencies = [ "anyhow", "bytes", @@ -6294,7 +6300,6 @@ dependencies = [ "serde_repr", "serialize-to-javascript", "state", - "static_assertions", "swift-rs", "tauri-build", "tauri-macros", @@ -6314,9 +6319,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca30dbed856449b41abed13a5a46655ea2196075e09e99e22fe8ed0958b6aee" +checksum = "50887f06d343b6ede0260d29abb4edd57f40d8aac538f6e34d801c9a4fa1c6b8" dependencies = [ "anyhow", "cargo_toml", @@ -6338,11 +6343,11 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ed45a0d2a1723ef4ea71d1aa5809c4a8bcaa92de77f6c9a8f4d4f28c5d86a" +checksum = "10c676621ba42f97d349ee1a835cfac8a268d8843c8b81fa7663ebac2854786a" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "brotli", "ico", "json-patch", @@ -6365,9 +6370,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a75661fb86b350141e78ad54ce9c60346149afc5cbf41de2ca60a1ebc252b3" +checksum = "dd5e87dc692a359ee99662616639fe35681e3ce9929e1ec2447b2e3853b6bda6" dependencies = [ "heck", "proc-macro2", @@ -6379,9 +6384,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9530f0f0d809e77ff9a93da5ff2483faf8fef2cb8ed125ca7b0172cb92685d4" +checksum = "b84ccc2181a81c66f2b203775b6b67590cc357bc477c57f0fac844c31dd5c474" dependencies = [ "anyhow", "glob", @@ -6841,9 +6846,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0381b4b96e1f4f39a24ca6472c9b016151b103a54b1425233007fdbc26cf20a8" +checksum = "3fc1ebe2a720c1b62a9980ebf44f27db4f8a475e1465917959ce3940d6903307" dependencies = [ "gtk", "http 0.2.11", @@ -6859,14 +6864,15 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eef6a8373c9936b33a58c1bdbdd76fe4603d00ebe72304c0777bf0674e455aa" +checksum = "d0e853c02137e908589e9f0c684f10bb49d0dedf9e86ad734a18e42ce9bbd2ab" dependencies = [ "cocoa 0.25.0", "gtk", "http 0.2.11", "jni", + "log", "percent-encoding", "raw-window-handle 0.6.0", "softbuffer", @@ -6882,9 +6888,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-beta.6" +version = "2.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e35e2f9a5ee8539d00dde621f176647747736a388a07c3083a0cc1b96ba6d7" +checksum = "e1973b15065cb63868f5fba789d54ef04232d7e0229fb2230d1f557480a5ceea" dependencies = [ "aes-gcm 0.10.3", "brotli", diff --git a/Cargo.toml b/Cargo.toml index 63a7acb84..5f2dae3bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,9 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = "2.0.0-beta.8" -tauri-build = "2.0.0-beta.6" -tauri-plugin = "2.0.0-beta.6" +tauri = "2.0.0-beta.9" +tauri-build = "2.0.0-beta.7" +tauri-plugin = "2.0.0-beta.7" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index c14ca3f19..6faee7bec 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.3", + "@tauri-apps/api": "2.0.0-beta.4", "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.1", "@tauri-apps/plugin-biometric": "2.0.0-beta.1", "@tauri-apps/plugin-cli": "2.0.0-beta.1", @@ -30,7 +30,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-beta.6", + "@tauri-apps/cli": "2.0.0-beta.7", "@unocss/extractor-svelte": "^0.58.0", "internal-ip": "^8.0.0", "svelte": "^4.2.8", diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 9b0891c2e..21c1ad634 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -9,10 +9,10 @@ license = "Apache-2.0 OR MIT" [lib] name = "api_lib" -crate-type = [ "staticlib", "cdylib", "rlib" ] +crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] -tauri-build = { workspace = true, features = [ "codegen", "isolation" ] } +tauri-build = { workspace = true, features = ["codegen", "isolation"] } [dependencies] serde_json = { workspace = true } @@ -20,24 +20,30 @@ serde = { workspace = true } tiny_http = "0.11" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.1" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.1", features = [ "watch" ] } +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.1", features = [ + "watch", +] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-beta.1" } tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.1" } -tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.1" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.1", features = [ "windows7-compat" ] } +tauri-plugin-http = { path = "../../../plugins/http", features = [ + "multipart", +], version = "2.0.0-beta.1" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.1", features = [ + "windows7-compat", +] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.1" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.1" } tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.1" } - [dependencies.tauri] - workspace = true - features = [ - "icon-ico", - "icon-png", +[dependencies.tauri] +workspace = true +features = [ + "image-ico", + "image-png", "isolation", "macos-private-api", "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] @@ -54,4 +60,4 @@ tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0. window-shadows = "0.2" [features] -custom-protocol = [ "tauri/custom-protocol" ] +prod = ["tauri/custom-protocol"] diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index 20b2fa3f2..a52e8fcc1 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -11,6 +11,13 @@ } ] }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, { "description": "A list of capabilities.", "type": "object", @@ -4790,6 +4797,125 @@ "http:deny-fetch-send" ] }, + { + "description": "image:default -> Default permissions for the plugin.", + "type": "string", + "enum": [ + "image:default" + ] + }, + { + "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-bytes" + ] + }, + { + "description": "image:allow-from-ico-bytes -> Enables the from_ico_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-ico-bytes" + ] + }, + { + "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-path" + ] + }, + { + "description": "image:allow-from-png-bytes -> Enables the from_png_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-png-bytes" + ] + }, + { + "description": "image:allow-height -> Enables the height command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-height" + ] + }, + { + "description": "image:allow-new -> Enables the new command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-new" + ] + }, + { + "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-rgba" + ] + }, + { + "description": "image:allow-width -> Enables the width command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-width" + ] + }, + { + "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-bytes" + ] + }, + { + "description": "image:deny-from-ico-bytes -> Denies the from_ico_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-ico-bytes" + ] + }, + { + "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-path" + ] + }, + { + "description": "image:deny-from-png-bytes -> Denies the from_png_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-png-bytes" + ] + }, + { + "description": "image:deny-height -> Denies the height command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-height" + ] + }, + { + "description": "image:deny-new -> Denies the new command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-new" + ] + }, + { + "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-rgba" + ] + }, + { + "description": "image:deny-width -> Denies the width command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-width" + ] + }, { "description": "log:default -> Allows the log command", "type": "string", diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index bacdcf1bc..91c341132 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -7,7 +7,10 @@ mod cmd; mod tray; use serde::Serialize; -use tauri::{webview::WebviewWindowBuilder, App, AppHandle, Manager, RunEvent, WebviewUrl}; +use tauri::{ + webview::{PageLoadEvent, WebviewWindowBuilder}, + App, AppHandle, Manager, RunEvent, WebviewUrl, +}; #[derive(Clone, Serialize)] struct Reply { @@ -107,18 +110,20 @@ pub fn run() { Ok(()) }) - .on_page_load(|webview, _| { - let webview_ = webview.clone(); - webview.listen("js-event", move |event| { - println!("got js-event with message '{:?}'", event.payload()); - let reply = Reply { - data: "something else".to_string(), - }; + .on_page_load(|webview, payload| { + if payload.event() == PageLoadEvent::Finished { + let webview_ = webview.clone(); + webview.listen("js-event", move |event| { + println!("got js-event with message '{:?}'", event.payload()); + let reply = Reply { + data: "something else".to_string(), + }; - webview_ - .emit("rust-event", Some(reply)) - .expect("failed to emit"); - }); + webview_ + .emit("rust-event", Some(reply)) + .expect("failed to emit"); + }); + } }); #[cfg(target_os = "macos")] diff --git a/examples/api/src-tauri/src/tray.rs b/examples/api/src-tauri/src/tray.rs index 470764f87..74863c0ae 100644 --- a/examples/api/src-tauri/src/tray.rs +++ b/examples/api/src-tauri/src/tray.rs @@ -79,11 +79,14 @@ pub fn create_tray(app: &tauri::AppHandle) -> tauri::Result<()> { } i @ "icon-1" | i @ "icon-2" => { if let Some(tray) = app.tray_by_id("tray-1") { - let _ = tray.set_icon(Some(tauri::Icon::Raw(if i == "icon-1" { - include_bytes!("../icons/icon.ico").to_vec() + let _ = tray.set_icon(Some(if i == "icon-1" { + tauri::Image::from_ico_bytes(include_bytes!("../icons/icon.ico")).unwrap() } else { - include_bytes!("../icons/tray_icon_with_transparency.png").to_vec() - }))); + tauri::Image::from_png_bytes(include_bytes!( + "../icons/tray_icon_with_transparency.png" + )) + .unwrap() + })); } } "switch-menu" => { diff --git a/examples/api/src/views/Communication.svelte b/examples/api/src/views/Communication.svelte index a9f4826fc..859d7c54e 100644 --- a/examples/api/src/views/Communication.svelte +++ b/examples/api/src/views/Communication.svelte @@ -1,15 +1,15 @@ diff --git a/plugins/authenticator/package.json b/plugins/authenticator/package.json index 7e57c456c..7da13dd02 100644 --- a/plugins/authenticator/package.json +++ b/plugins/authenticator/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index ad33dd843..be4b4032f 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index e1fe29bd7..c213ddbf3 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 82578b0ae..68f272960 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.0" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/cli/package.json b/plugins/cli/package.json index be8cebba8..8966cb47d 100644 --- a/plugins/cli/package.json +++ b/plugins/cli/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index 038613cc6..211d4fc60 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index d9d4ea34e..cc1e4d546 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -10,11 +10,11 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2", + "@tauri-apps/api": "2.0.0-beta.4", "@tauri-apps/plugin-deep-link": "2.0.0-beta.1" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-beta.3", + "@tauri-apps/cli": "2.0.0-beta.7", "internal-ip": "^8.0.0", "typescript": "^5.2.2", "vite": "^5.0.12" diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index 9d1eb501b..24e4d6ca2 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -26,4 +26,4 @@ tauri-plugin-deep-link = { path = "../../../" } # this feature is used for production builds or when `devUrl` points to the filesystem and the built-in dev server is disabled. # If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes. # DO NOT REMOVE!! -custom-protocol = [ "tauri/custom-protocol" ] +prod = ["tauri/custom-protocol"] diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index f1e574225..3417c9181 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index 76ec3b1e6..cbbcfbb13 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 1dc2a0daf..8b6ebfd7f 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/fs/src/api-iife.js b/plugins/fs/src/api-iife.js index f380ba770..079ccde11 100644 --- a/plugins/fs/src/api-iife.js +++ b/plugins/fs/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?o.call(t,n):o?o.value=n:e.set(t,n),n}var i,o,r,a;"function"==typeof SuppressedError&&SuppressedError;class s{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((t=>{e(this,i,"f").call(this,t)}))}set onmessage(t){n(this,i,t,"f")}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function c(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap;class f{get rid(){return e(this,o,"f")}constructor(t){o.set(this,void 0),n(this,o,t,"f")}async close(){return c("plugin:resources|close",{rid:this.rid})}}function l(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!=t.mtime?new Date(t.mtime):null,atime:null!=t.atime?new Date(t.atime):null,birthtime:null!=t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}o=new WeakMap,t.BaseDirectory=void 0,(r=t.BaseDirectory||(t.BaseDirectory={}))[r.Audio=1]="Audio",r[r.Cache=2]="Cache",r[r.Config=3]="Config",r[r.Data=4]="Data",r[r.LocalData=5]="LocalData",r[r.Document=6]="Document",r[r.Download=7]="Download",r[r.Picture=8]="Picture",r[r.Public=9]="Public",r[r.Video=10]="Video",r[r.Resource=11]="Resource",r[r.Temp=12]="Temp",r[r.AppConfig=13]="AppConfig",r[r.AppData=14]="AppData",r[r.AppLocalData=15]="AppLocalData",r[r.AppCache=16]="AppCache",r[r.AppLog=17]="AppLog",r[r.Desktop=18]="Desktop",r[r.Executable=19]="Executable",r[r.Font=20]="Font",r[r.Home=21]="Home",r[r.Runtime=22]="Runtime",r[r.Template=23]="Template",t.SeekMode=void 0,(a=t.SeekMode||(t.SeekMode={}))[a.Start=0]="Start",a[a.Current=1]="Current",a[a.End=2]="End";class u extends f{constructor(t){super(t)}async read(t){if(0===t.byteLength)return 0;const[e,n]=await c("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return c("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return l(await c("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){return c("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return c("plugin:fs|write",{rid:this.rid,data:Array.from(t)})}}async function p(t){await c("plugin:fs|unwatch",{rid:t})}return t.FileHandle=u,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await c("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new u(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return l(await c("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await c("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new u(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await c("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return Promise.resolve({path:n,rid:null,async next(){this.rid||(this.rid=await c("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await c("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return l(await c("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new s;r.onmessage=e;const a=await c("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{p(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new s;r.onmessage=e;const a=await c("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{p(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|write_file",{path:t instanceof URL?t.toString():t,data:Array.from(e),options:n})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return c("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?o.call(t,n):o?o.value=n:e.set(t,n),n}var i,o,r,s,a,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:s})=>{if(s===e(this,o,"f")){n(this,o,s+1,"f"),e(this,i,"f").call(this,t);const a=Object.keys(e(this,r,"f"));if(a.length>0){let t=s+1;for(const n of a.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}}}else e(this,r,"f")[s.toString()]=t}))}set onmessage(t){n(this,i,t,"f")}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,s,"f")}constructor(t){s.set(this,void 0),n(this,s,t,"f")}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!=t.mtime?new Date(t.mtime):null,atime:null!=t.atime?new Date(t.atime):null,birthtime:null!=t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}s=new WeakMap,t.BaseDirectory=void 0,(a=t.BaseDirectory||(t.BaseDirectory={}))[a.Audio=1]="Audio",a[a.Cache=2]="Cache",a[a.Config=3]="Config",a[a.Data=4]="Data",a[a.LocalData=5]="LocalData",a[a.Document=6]="Document",a[a.Download=7]="Download",a[a.Picture=8]="Picture",a[a.Public=9]="Public",a[a.Video=10]="Video",a[a.Resource=11]="Resource",a[a.Temp=12]="Temp",a[a.AppConfig=13]="AppConfig",a[a.AppData=14]="AppData",a[a.AppLocalData=15]="AppLocalData",a[a.AppCache=16]="AppCache",a[a.AppLog=17]="AppLog",a[a.Desktop=18]="Desktop",a[a.Executable=19]="Executable",a[a.Font=20]="Font",a[a.Home=21]="Home",a[a.Runtime=22]="Runtime",a[a.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class h extends u{constructor(t){super(t)}async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){return l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return l("plugin:fs|write",{rid:this.rid,data:Array.from(t)})}}async function w(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=h,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new h(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new h(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return Promise.resolve({path:n,rid:null,async next(){this.rid||(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const s=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{w(s)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const s=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{w(s)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|write_file",{path:t instanceof URL?t.toString():t,data:Array.from(e),options:n})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index fe49d15c3..e9e747fcf 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -809,9 +809,7 @@ pub fn resolve_path( ) -> CommandResult { let path = file_url_to_safe_pathbuf(path)?; let path = if let Some(base_dir) = base_dir { - app.path() - .resolve(&path, base_dir) - .map_err(Error::CannotResolvePath)? + app.path().resolve(&path, base_dir)? } else { path.as_ref().to_path_buf() }; diff --git a/plugins/fs/src/error.rs b/plugins/fs/src/error.rs index 212714eff..2d12b5eeb 100644 --- a/plugins/fs/src/error.rs +++ b/plugins/fs/src/error.rs @@ -16,8 +16,6 @@ pub enum Error { Io(#[from] std::io::Error), #[error("forbidden path: {0}")] PathForbidden(PathBuf), - #[error("failed to resolve path: {0}")] - CannotResolvePath(tauri::path::Error), /// Invalid glob pattern. #[error("invalid glob pattern: {0}")] GlobPattern(#[from] glob::PatternError), diff --git a/plugins/global-shortcut/package.json b/plugins/global-shortcut/package.json index 3bfdf0b25..5ce28ccc1 100644 --- a/plugins/global-shortcut/package.json +++ b/plugins/global-shortcut/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/global-shortcut/src/api-iife.js b/plugins/global-shortcut/src/api-iife.js index 54da2b597..e0e8833a3 100644 --- a/plugins/global-shortcut/src/api-iife.js +++ b/plugins/global-shortcut/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_GLOBALSHORTCUT__=function(t){"use strict";function e(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}var r;"function"==typeof SuppressedError&&SuppressedError;class n{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,r.set(this,(()=>{})),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((t=>{e(this,r,"f").call(this,t)}))}set onmessage(t){!function(t,e,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?o.call(t,r):o?o.value=r:e.set(t,r)}(this,r,t,"f")}get onmessage(){return e(this,r,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function o(t,e={},r){return window.__TAURI_INTERNALS__.invoke(t,e,r)}return r=new WeakMap,t.isRegistered=async function(t){return await o("plugin:global-shortcut|is_registered",{shortcut:t})},t.register=async function(t,e){const r=new n;return r.onmessage=e,await o("plugin:global-shortcut|register",{shortcut:t,handler:r})},t.registerAll=async function(t,e){const r=new n;return r.onmessage=e,await o("plugin:global-shortcut|register_all",{shortcuts:t,handler:r})},t.unregister=async function(t){return await o("plugin:global-shortcut|unregister",{shortcut:t})},t.unregisterAll=async function(){return await o("plugin:global-shortcut|unregister_all")},t}({});Object.defineProperty(window.__TAURI__,"globalShortcut",{value:__TAURI_PLUGIN_GLOBALSHORTCUT__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_GLOBALSHORTCUT__=function(t){"use strict";function e(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function r(t,e,r,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(t,r):s?s.value=r:e.set(t,r),r}var n,s,i;"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),s.set(this,0),i.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:o})=>{if(o===e(this,s,"f")){r(this,s,o+1,"f"),e(this,n,"f").call(this,t);const a=Object.keys(e(this,i,"f"));if(a.length>0){let t=o+1;for(const r of a.sort()){if(parseInt(r)!==t)break;{const s=e(this,i,"f")[r];delete e(this,i,"f")[r],e(this,n,"f").call(this,s),t+=1}}}}else e(this,i,"f")[o.toString()]=t}))}set onmessage(t){r(this,n,t,"f")}get onmessage(){return e(this,n,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(t,e={},r){return window.__TAURI_INTERNALS__.invoke(t,e,r)}return n=new WeakMap,s=new WeakMap,i=new WeakMap,t.isRegistered=async function(t){return await a("plugin:global-shortcut|is_registered",{shortcut:t})},t.register=async function(t,e){const r=new o;return r.onmessage=e,await a("plugin:global-shortcut|register",{shortcut:t,handler:r})},t.registerAll=async function(t,e){const r=new o;return r.onmessage=e,await a("plugin:global-shortcut|register_all",{shortcuts:t,handler:r})},t.unregister=async function(t){return await a("plugin:global-shortcut|unregister",{shortcut:t})},t.unregisterAll=async function(){return await a("plugin:global-shortcut|unregister_all")},t}({});Object.defineProperty(window.__TAURI__,"globalShortcut",{value:__TAURI_PLUGIN_GLOBALSHORTCUT__})} diff --git a/plugins/http/package.json b/plugins/http/package.json index ef615036e..52788f08c 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/http/src/scope.rs b/plugins/http/src/scope.rs index 5652e9a0c..e04e4210c 100644 --- a/plugins/http/src/scope.rs +++ b/plugins/http/src/scope.rs @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use std::sync::Arc; + use serde::{Deserialize, Deserializer}; use url::Url; use urlpattern::{UrlPattern, UrlPatternInit, UrlPatternMatchInput}; @@ -43,13 +45,13 @@ impl<'de> Deserialize<'de> for Entry { /// Scope for filesystem access. #[derive(Debug)] pub struct Scope<'a> { - allowed: Vec<&'a Entry>, - denied: Vec<&'a Entry>, + allowed: Vec<&'a Arc>, + denied: Vec<&'a Arc>, } impl<'a> Scope<'a> { /// Creates a new scope from the scope configuration. - pub(crate) fn new(allowed: Vec<&'a Entry>, denied: Vec<&'a Entry>) -> Self { + pub(crate) fn new(allowed: Vec<&'a Arc>, denied: Vec<&'a Arc>) -> Self { Self { allowed, denied } } @@ -76,7 +78,7 @@ impl<'a> Scope<'a> { #[cfg(test)] mod tests { - use std::str::FromStr; + use std::{str::FromStr, sync::Arc}; use super::Entry; @@ -91,8 +93,8 @@ mod tests { #[test] fn denied_takes_precedence() { - let allow = "http://localhost:8080/file.png".parse().unwrap(); - let deny = "http://localhost:8080/*".parse().unwrap(); + let allow = Arc::new("http://localhost:8080/file.png".parse().unwrap()); + let deny = Arc::new("http://localhost:8080/*".parse().unwrap()); let scope = super::Scope::new(vec![&allow], vec![&deny]); assert!(!scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); } @@ -100,7 +102,7 @@ mod tests { #[test] fn fixed_url() { // plain URL - let entry = "http://localhost:8080".parse().unwrap(); + let entry = Arc::new("http://localhost:8080".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080".parse().unwrap())); assert!(scope.is_allowed(&"http://localhost:8080/".parse().unwrap())); @@ -115,7 +117,7 @@ mod tests { #[test] fn fixed_path() { // URL with fixed path - let entry = "http://localhost:8080/file.png".parse().unwrap(); + let entry = Arc::new("http://localhost:8080/file.png".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); @@ -127,7 +129,7 @@ mod tests { #[test] fn pattern_wildcard() { - let entry = "http://localhost:8080/*.png".parse().unwrap(); + let entry = Arc::new("http://localhost:8080/*.png".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); @@ -138,14 +140,14 @@ mod tests { #[test] fn domain_wildcard() { - let entry = "http://*".parse().unwrap(); + let entry = Arc::new("http://*".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); assert!(!scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); assert!(!scope.is_allowed(&"https://something.else".parse().unwrap())); - let entry = "http://*/*".parse().unwrap(); + let entry = Arc::new("http://*/*".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); @@ -154,7 +156,7 @@ mod tests { #[test] fn scheme_wildcard() { - let entry = "*://*".parse().unwrap(); + let entry = Arc::new("*://*".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); @@ -163,7 +165,7 @@ mod tests { assert!(!scope.is_allowed(&"file://path/to/file".parse().unwrap())); assert!(scope.is_allowed(&"https://something.else".parse().unwrap())); - let entry = "*://*/*".parse().unwrap(); + let entry = Arc::new("*://*/*".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); diff --git a/plugins/log/package.json b/plugins/log/package.json index 7f071e031..525be84a6 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index aeb4ac2d2..d1e9ee7af 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -27,6 +27,6 @@ "tslib": "2.6.0" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/notification/package.json b/plugins/notification/package.json index cc16ce628..cff9a71d9 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/notification/src/api-iife.js b/plugins/notification/src/api-iife.js index 3d8c020a6..5a3bcb32e 100644 --- a/plugins/notification/src/api-iife.js +++ b/plugins/notification/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_NOTIFICATION__=function(n){"use strict";function e(n,e,i,t){if("a"===i&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?n!==e||!t:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?t:"a"===i?t.call(n):t?t.value:e.get(n)}var i,t,o,r;"function"==typeof SuppressedError&&SuppressedError;class a{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),this.id=function(n,e=!1){return window.__TAURI_INTERNALS__.transformCallback(n,e)}((n=>{e(this,i,"f").call(this,n)}))}set onmessage(n){!function(n,e,i,t,o){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?n!==e||!o:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===t?o.call(n,i):o?o.value=i:e.set(n,i)}(this,i,n,"f")}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}i=new WeakMap;class c{constructor(n,e,i){this.plugin=n,this.event=e,this.channelId=i}async unregister(){return u(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}}async function s(n,e,i){const t=new a;return t.onmessage=i,u(`plugin:${n}|register_listener`,{event:e,handler:t}).then((()=>new c(n,e,t.id)))}async function u(n,e={},i){return window.__TAURI_INTERNALS__.invoke(n,e,i)}n.ScheduleEvery=void 0,(t=n.ScheduleEvery||(n.ScheduleEvery={})).Year="year",t.Month="month",t.TwoWeeks="twoWeeks",t.Week="week",t.Day="day",t.Hour="hour",t.Minute="minute",t.Second="second";return n.Importance=void 0,(o=n.Importance||(n.Importance={}))[o.None=0]="None",o[o.Min=1]="Min",o[o.Low=2]="Low",o[o.Default=3]="Default",o[o.High=4]="High",n.Visibility=void 0,(r=n.Visibility||(n.Visibility={}))[r.Secret=-1]="Secret",r[r.Private=0]="Private",r[r.Public=1]="Public",n.Schedule=class{static at(n,e=!1,i=!1){return{at:{date:n,repeating:e,allowWhileIdle:i},interval:void 0,every:void 0}}static interval(n,e=!1){return{at:void 0,interval:{interval:n,allowWhileIdle:e},every:void 0}}static every(n,e,i=!1){return{at:void 0,interval:void 0,every:{interval:n,count:e,allowWhileIdle:i}}}},n.active=async function(){return u("plugin:notification|get_active")},n.cancel=async function(n){return u("plugin:notification|cancel",{notifications:n})},n.cancelAll=async function(){return u("plugin:notification|cancel")},n.channels=async function(){return u("plugin:notification|listChannels")},n.createChannel=async function(n){return u("plugin:notification|create_channel",{...n})},n.isPermissionGranted=async function(){return"default"!==window.Notification.permission?Promise.resolve("granted"===window.Notification.permission):u("plugin:notification|is_permission_granted")},n.onAction=async function(n){return s("notification","actionPerformed",n)},n.onNotificationReceived=async function(n){return s("notification","notification",n)},n.pending=async function(){return u("plugin:notification|get_pending")},n.registerActionTypes=async function(n){return u("plugin:notification|register_action_types",{types:n})},n.removeActive=async function(n){return u("plugin:notification|remove_active",{notifications:n})},n.removeAllActive=async function(){return u("plugin:notification|remove_active")},n.removeChannel=async function(n){return u("plugin:notification|delete_channel",{id:n})},n.requestPermission=async function(){return window.Notification.requestPermission()},n.sendNotification=function(n){"string"==typeof n?new window.Notification(n):new window.Notification(n.title,n)},n}({});Object.defineProperty(window.__TAURI__,"notification",{value:__TAURI_PLUGIN_NOTIFICATION__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_NOTIFICATION__=function(e){"use strict";function n(e,n,i,t){if("a"===i&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?e!==n||!t:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?t:"a"===i?t.call(e):t?t.value:n.get(e)}function i(e,n,i,t,o){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof n?e!==n||!o:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?o.call(e,i):o?o.value=i:n.set(e,i),i}var t,o,r,a,c,s;"function"==typeof SuppressedError&&SuppressedError;class l{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,t.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(e,n=!1){return window.__TAURI_INTERNALS__.transformCallback(e,n)}((({message:e,id:a})=>{if(a===n(this,o,"f")){i(this,o,a+1,"f"),n(this,t,"f").call(this,e);const c=Object.keys(n(this,r,"f"));if(c.length>0){let e=a+1;for(const i of c.sort()){if(parseInt(i)!==e)break;{const o=n(this,r,"f")[i];delete n(this,r,"f")[i],n(this,t,"f").call(this,o),e+=1}}}}else n(this,r,"f")[a.toString()]=e}))}set onmessage(e){i(this,t,e,"f")}get onmessage(){return n(this,t,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}t=new WeakMap,o=new WeakMap,r=new WeakMap;class u{constructor(e,n,i){this.plugin=e,this.event=n,this.channelId=i}async unregister(){return d(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}}async function f(e,n,i){const t=new l;return t.onmessage=i,d(`plugin:${e}|register_listener`,{event:n,handler:t}).then((()=>new u(e,n,t.id)))}async function d(e,n={},i){return window.__TAURI_INTERNALS__.invoke(e,n,i)}e.ScheduleEvery=void 0,(a=e.ScheduleEvery||(e.ScheduleEvery={})).Year="year",a.Month="month",a.TwoWeeks="twoWeeks",a.Week="week",a.Day="day",a.Hour="hour",a.Minute="minute",a.Second="second";return e.Importance=void 0,(c=e.Importance||(e.Importance={}))[c.None=0]="None",c[c.Min=1]="Min",c[c.Low=2]="Low",c[c.Default=3]="Default",c[c.High=4]="High",e.Visibility=void 0,(s=e.Visibility||(e.Visibility={}))[s.Secret=-1]="Secret",s[s.Private=0]="Private",s[s.Public=1]="Public",e.Schedule=class{static at(e,n=!1,i=!1){return{at:{date:e,repeating:n,allowWhileIdle:i},interval:void 0,every:void 0}}static interval(e,n=!1){return{at:void 0,interval:{interval:e,allowWhileIdle:n},every:void 0}}static every(e,n,i=!1){return{at:void 0,interval:void 0,every:{interval:e,count:n,allowWhileIdle:i}}}},e.active=async function(){return d("plugin:notification|get_active")},e.cancel=async function(e){return d("plugin:notification|cancel",{notifications:e})},e.cancelAll=async function(){return d("plugin:notification|cancel")},e.channels=async function(){return d("plugin:notification|listChannels")},e.createChannel=async function(e){return d("plugin:notification|create_channel",{...e})},e.isPermissionGranted=async function(){return"default"!==window.Notification.permission?Promise.resolve("granted"===window.Notification.permission):d("plugin:notification|is_permission_granted")},e.onAction=async function(e){return f("notification","actionPerformed",e)},e.onNotificationReceived=async function(e){return f("notification","notification",e)},e.pending=async function(){return d("plugin:notification|get_pending")},e.registerActionTypes=async function(e){return d("plugin:notification|register_action_types",{types:e})},e.removeActive=async function(e){return d("plugin:notification|remove_active",{notifications:e})},e.removeAllActive=async function(){return d("plugin:notification|remove_active")},e.removeChannel=async function(e){return d("plugin:notification|delete_channel",{id:e})},e.requestPermission=async function(){return window.Notification.requestPermission()},e.sendNotification=function(e){"string"==typeof e?new window.Notification(e):new window.Notification(e.title,e)},e}({});Object.defineProperty(window.__TAURI__,"notification",{value:__TAURI_PLUGIN_NOTIFICATION__})} diff --git a/plugins/notification/src/desktop.rs b/plugins/notification/src/desktop.rs index be3c348ee..5abd0d237 100644 --- a/plugins/notification/src/desktop.rs +++ b/plugins/notification/src/desktop.rs @@ -247,9 +247,8 @@ mod imp { #[cfg(all(windows, feature = "windows7-compat"))] fn notify_win7(self, app: &tauri::AppHandle) -> crate::Result<()> { - let app = app.clone(); - let default_window_icon = app.default_window_icon().cloned(); - let _ = app.run_on_main_thread(move || { + let app_ = app.clone(); + let _ = app.clone().run_on_main_thread(move || { let mut notification = win7_notifications::Notification::new(); if let Some(body) = self.body { notification.body(&body); @@ -257,13 +256,8 @@ mod imp { if let Some(title) = self.title { notification.summary(&title); } - if let Some(tauri::Icon::Rgba { - rgba, - width, - height, - }) = default_window_icon - { - notification.icon(rgba, width, height); + if let Some(icon) = app_.default_window_icon() { + notification.icon(icon.rgba().to_vec(), icon.width(), icon.height()); } let _ = notification.show(); }); diff --git a/plugins/os/package.json b/plugins/os/package.json index 53fbd6800..8ebbf4c50 100644 --- a/plugins/os/package.json +++ b/plugins/os/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index d1ed07295..4e677b80d 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/process/package.json b/plugins/process/package.json index eb7a8af57..ec482b9e7 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/shell/package.json b/plugins/shell/package.json index fbaecb140..d8fa339fc 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/shell/src/api-iife.js b/plugins/shell/src/api-iife.js index a64b87106..efd4706b8 100644 --- a/plugins/shell/src/api-iife.js +++ b/plugins/shell/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_SHELL__=function(e){"use strict";function t(e,t,s,r){if("a"===s&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?r:"a"===s?r.call(e):r?r.value:t.get(e)}var s;"function"==typeof SuppressedError&&SuppressedError;class r{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,s.set(this,(()=>{})),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((e=>{t(this,s,"f").call(this,e)}))}set onmessage(e){!function(e,t,s,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===r?n.call(e,s):n?n.value=s:t.set(e,s)}(this,s,e,"f")}get onmessage(){return t(this,s,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function n(e,t={},s){return window.__TAURI_INTERNALS__.invoke(e,t,s)}s=new WeakMap;class i{constructor(){this.eventListeners=Object.create(null)}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}on(e,t){return e in this.eventListeners?this.eventListeners[e].push(t):this.eventListeners[e]=[t],this}once(e,t){const s=r=>{this.removeListener(e,s),t(r)};return this.addListener(e,s)}off(e,t){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter((e=>e!==t))),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,t){if(e in this.eventListeners){const s=this.eventListeners[e];for(const e of s)e(t);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,t){return e in this.eventListeners?this.eventListeners[e].unshift(t):this.eventListeners[e]=[t],this}prependOnceListener(e,t){const s=r=>{this.removeListener(e,s),t(r)};return this.prependListener(e,s)}}class o{constructor(e){this.pid=e}async write(e){return n("plugin:shell|stdin_write",{pid:this.pid,buffer:"string"==typeof e?e:Array.from(e)})}async kill(){return n("plugin:shell|kill",{cmd:"killChild",pid:this.pid})}}class a extends i{constructor(e,t=[],s){super(),this.stdout=new i,this.stderr=new i,this.program=e,this.args="string"==typeof t?[t]:t,this.options=s??{}}static create(e,t=[],s){return new a(e,t,s)}static sidecar(e,t=[],s){const r=new a(e,t,s);return r.options.sidecar=!0,r}async spawn(){return async function(e,t,s=[],i){"object"==typeof s&&Object.freeze(s);const o=new r;return o.onmessage=e,n("plugin:shell|execute",{program:t,args:s,options:i,onEvent:o})}((e=>{switch(e.event){case"Error":this.emit("error",e.payload);break;case"Terminated":this.emit("close",e.payload);break;case"Stdout":this.stdout.emit("data",e.payload);break;case"Stderr":this.stderr.emit("data",e.payload)}}),this.program,this.args,this.options).then((e=>new o(e)))}async execute(){return new Promise(((e,t)=>{this.on("error",t);const s=[],r=[];this.stdout.on("data",(e=>{s.push(e)})),this.stderr.on("data",(e=>{r.push(e)})),this.on("close",(t=>{e({code:t.code,signal:t.signal,stdout:this.collectOutput(s),stderr:this.collectOutput(r)})})),this.spawn().catch(t)}))}collectOutput(e){return"raw"===this.options.encoding?e.reduce(((e,t)=>new Uint8Array([...e,...t,10])),new Uint8Array):e.join("\n")}}return e.Child=o,e.Command=a,e.EventEmitter=i,e.open=async function(e,t){return n("plugin:shell|open",{path:e,with:t})},e}({});Object.defineProperty(window.__TAURI__,"shell",{value:__TAURI_PLUGIN_SHELL__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_SHELL__=function(e){"use strict";function t(e,t,s,r){if("a"===s&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?r:"a"===s?r.call(e):r?r.value:t.get(e)}function s(e,t,s,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,s):n?n.value=s:t.set(e,s),s}var r,n,i;"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,r.set(this,(()=>{})),n.set(this,0),i.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:o})=>{if(o===t(this,n,"f")){s(this,n,o+1,"f"),t(this,r,"f").call(this,e);const a=Object.keys(t(this,i,"f"));if(a.length>0){let e=o+1;for(const s of a.sort()){if(parseInt(s)!==e)break;{const n=t(this,i,"f")[s];delete t(this,i,"f")[s],t(this,r,"f").call(this,n),e+=1}}}}else t(this,i,"f")[o.toString()]=e}))}set onmessage(e){s(this,r,e,"f")}get onmessage(){return t(this,r,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(e,t={},s){return window.__TAURI_INTERNALS__.invoke(e,t,s)}r=new WeakMap,n=new WeakMap,i=new WeakMap;class h{constructor(){this.eventListeners=Object.create(null)}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}on(e,t){return e in this.eventListeners?this.eventListeners[e].push(t):this.eventListeners[e]=[t],this}once(e,t){const s=r=>{this.removeListener(e,s),t(r)};return this.addListener(e,s)}off(e,t){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter((e=>e!==t))),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,t){if(e in this.eventListeners){const s=this.eventListeners[e];for(const e of s)e(t);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,t){return e in this.eventListeners?this.eventListeners[e].unshift(t):this.eventListeners[e]=[t],this}prependOnceListener(e,t){const s=r=>{this.removeListener(e,s),t(r)};return this.prependListener(e,s)}}class c{constructor(e){this.pid=e}async write(e){return a("plugin:shell|stdin_write",{pid:this.pid,buffer:"string"==typeof e?e:Array.from(e)})}async kill(){return a("plugin:shell|kill",{cmd:"killChild",pid:this.pid})}}class u extends h{constructor(e,t=[],s){super(),this.stdout=new h,this.stderr=new h,this.program=e,this.args="string"==typeof t?[t]:t,this.options=s??{}}static create(e,t=[],s){return new u(e,t,s)}static sidecar(e,t=[],s){const r=new u(e,t,s);return r.options.sidecar=!0,r}async spawn(){return async function(e,t,s=[],r){"object"==typeof s&&Object.freeze(s);const n=new o;return n.onmessage=e,a("plugin:shell|execute",{program:t,args:s,options:r,onEvent:n})}((e=>{switch(e.event){case"Error":this.emit("error",e.payload);break;case"Terminated":this.emit("close",e.payload);break;case"Stdout":this.stdout.emit("data",e.payload);break;case"Stderr":this.stderr.emit("data",e.payload)}}),this.program,this.args,this.options).then((e=>new c(e)))}async execute(){return new Promise(((e,t)=>{this.on("error",t);const s=[],r=[];this.stdout.on("data",(e=>{s.push(e)})),this.stderr.on("data",(e=>{r.push(e)})),this.on("close",(t=>{e({code:t.code,signal:t.signal,stdout:this.collectOutput(s),stderr:this.collectOutput(r)})})),this.spawn().catch(t)}))}collectOutput(e){return"raw"===this.options.encoding?e.reduce(((e,t)=>new Uint8Array([...e,...t,10])),new Uint8Array):e.join("\n")}}return e.Child=c,e.Command=u,e.EventEmitter=h,e.open=async function(e,t){return a("plugin:shell|open",{path:e,with:t})},e}({});Object.defineProperty(window.__TAURI__,"shell",{value:__TAURI_PLUGIN_SHELL__})} diff --git a/plugins/shell/src/scope.rs b/plugins/shell/src/scope.rs index 6351196b5..5f59fd7af 100644 --- a/plugins/shell/src/scope.rs +++ b/plugins/shell/src/scope.rs @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use std::sync::Arc; + use crate::open::Program; use crate::process::Command; @@ -141,7 +143,7 @@ pub struct OpenScope { #[derive(Clone)] pub struct ShellScope<'a> { /// All allowed commands, using their unique command name as the keys. - pub scopes: Vec<&'a ScopeAllowedCommand>, + pub scopes: Vec<&'a Arc>, } /// All errors that can happen while validating a scoped command. diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 0a0e8683b..0c42201ca 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-beta.3" + "@tauri-apps/cli": "2.0.0-beta.7" } } diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index 13da31003..badede360 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -2,7 +2,7 @@ name = "single-instance-example" version = "0.1.0" description = "A Tauri App" -authors = [ "You" ] +authors = ["You"] repository = "" edition = "2021" rust-version = "1.75" @@ -17,4 +17,4 @@ tauri-plugin-single-instance = { path = "../../../" } tauri-build = { workspace = true } [features] -custom-protocol = [ "tauri/custom-protocol" ] +prod = ["tauri/custom-protocol"] diff --git a/plugins/sql/package.json b/plugins/sql/package.json index 211988bc3..0159c5865 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/store/package.json b/plugins/store/package.json index 3f92f163a..1f4dfd4fd 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 9f519ace1..e59613510 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/updater/package.json b/plugins/updater/package.json index 15a8cf632..99c58ec31 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/updater/src/api-iife.js b/plugins/updater/src/api-iife.js index 2e443929c..9688891ab 100644 --- a/plugins/updater/src/api-iife.js +++ b/plugins/updater/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_UPDATER__=function(e){"use strict";function r(e,r,t,n){if("a"===t&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof r?e!==r||!n:!r.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?n:"a"===t?n.call(e):n?n.value:r.get(e)}function t(e,r,t,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof r?e!==r||!s:!r.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(e,t):s?s.value=t:r.set(e,t),t}var n,s;"function"==typeof SuppressedError&&SuppressedError;class i{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),this.id=function(e,r=!1){return window.__TAURI_INTERNALS__.transformCallback(e,r)}((e=>{r(this,n,"f").call(this,e)}))}set onmessage(e){t(this,n,e,"f")}get onmessage(){return r(this,n,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(e,r={},t){return window.__TAURI_INTERNALS__.invoke(e,r,t)}n=new WeakMap;class o{get rid(){return r(this,s,"f")}constructor(e){s.set(this,void 0),t(this,s,e,"f")}async close(){return a("plugin:resources|close",{rid:this.rid})}}s=new WeakMap;class c extends o{constructor(e){super(e.rid),this.available=e.available,this.currentVersion=e.currentVersion,this.version=e.version,this.date=e.date,this.body=e.body}async downloadAndInstall(e){const r=new i;return e&&(r.onmessage=e),a("plugin:updater|download_and_install",{onEvent:r,rid:this.rid})}}return e.Update=c,e.check=async function(e){return e?.headers&&(e.headers=Array.from(new Headers(e.headers).entries())),a("plugin:updater|check",{...e}).then((e=>e.available?new c(e):null))},e}({});Object.defineProperty(window.__TAURI__,"updater",{value:__TAURI_PLUGIN_UPDATER__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_UPDATER__=function(e){"use strict";function t(e,t,r,s){if("a"===r&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?s:"a"===r?s.call(e):s?s.value:t.get(e)}function r(e,t,r,s,n){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?n.call(e,r):n?n.value=r:t.set(e,r),r}var s,n,i,a;"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,s.set(this,(()=>{})),n.set(this,0),i.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:a})=>{if(a===t(this,n,"f")){r(this,n,a+1,"f"),t(this,s,"f").call(this,e);const o=Object.keys(t(this,i,"f"));if(o.length>0){let e=a+1;for(const r of o.sort()){if(parseInt(r)!==e)break;{const n=t(this,i,"f")[r];delete t(this,i,"f")[r],t(this,s,"f").call(this,n),e+=1}}}}else t(this,i,"f")[a.toString()]=e}))}set onmessage(e){r(this,s,e,"f")}get onmessage(){return t(this,s,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function c(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}s=new WeakMap,n=new WeakMap,i=new WeakMap;class d{get rid(){return t(this,a,"f")}constructor(e){a.set(this,void 0),r(this,a,e,"f")}async close(){return c("plugin:resources|close",{rid:this.rid})}}a=new WeakMap;class h extends d{constructor(e){super(e.rid),this.available=e.available,this.currentVersion=e.currentVersion,this.version=e.version,this.date=e.date,this.body=e.body}async downloadAndInstall(e){const t=new o;return e&&(t.onmessage=e),c("plugin:updater|download_and_install",{onEvent:t,rid:this.rid})}}return e.Update=h,e.check=async function(e){return e?.headers&&(e.headers=Array.from(new Headers(e.headers).entries())),c("plugin:updater|check",{...e}).then((e=>e.available?new h(e):null))},e}({});Object.defineProperty(window.__TAURI__,"updater",{value:__TAURI_PLUGIN_UPDATER__})} diff --git a/plugins/updater/tests/app-updater/Cargo.toml b/plugins/updater/tests/app-updater/Cargo.toml index c80ac9206..195f3ab07 100644 --- a/plugins/updater/tests/app-updater/Cargo.toml +++ b/plugins/updater/tests/app-updater/Cargo.toml @@ -15,4 +15,4 @@ tiny_http = "0.11" time = { version = "0.3", features = ["formatting"] } [features] -custom-protocol = ["tauri/custom-protocol"] +prod = ["tauri/custom-protocol"] diff --git a/plugins/updater/tests/app-updater/tauri.conf.json b/plugins/updater/tests/app-updater/tauri.conf.json index 5eb969544..6eb919efa 100644 --- a/plugins/updater/tests/app-updater/tauri.conf.json +++ b/plugins/updater/tests/app-updater/tauri.conf.json @@ -3,7 +3,7 @@ "plugins": { "updater": { "endpoints": ["http://localhost:3007"], - "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEMwNjY1MEExMTFBMDU5RTUKUldUbFdhQVJvVkJtd09sZ1ROT25yVGFhU2o0ZnUyd1FlT0ZTQ2ZXamN3SXk4SjZLZmNwRnV5dTMK", + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEUwNDRGMjkwRjg2MDhCRDAKUldUUWkyRDRrUEpFNEQ4SmdwcU5PaXl6R2ZRUUNvUnhIaVkwVUltV0NMaEx6VTkrWVhpT0ZqeEEK", "windows": { "installMode": "quiet" } diff --git a/plugins/updater/tests/app-updater/tests/update.rs b/plugins/updater/tests/app-updater/tests/update.rs index 797be1f8a..9b6b520e2 100644 --- a/plugins/updater/tests/app-updater/tests/update.rs +++ b/plugins/updater/tests/app-updater/tests/update.rs @@ -13,7 +13,7 @@ use std::{ use serde::Serialize; -const UPDATER_PRIVATE_KEY: &str = "dW50cnVzdGVkIGNvbW1lbnQ6IHJzaWduIGVuY3J5cHRlZCBzZWNyZXQga2V5ClJXUlRZMEl5Qm9uUXIyeEM2YkczeGMwZDFENmw1WHEzaFk5aDlOOXNyTWRxRnY4UUpzZ0FBQkFBQUFBQUFBQUFBQUlBQUFBQTVWbWdFYUZRWnNDZmdyUW9ibWExVEFTY0pVTWpVS2xlOHdhR1I3Q3hpd2FTNjg1MXZENEQyZWxnVE5PbnJUYWFTajRmdTJ3UWVPRlNDZldqY3dJeThKNktmY3BGdXl1M1BPdHgwOFhIQzJLSnpqS0Z2cVdmaEs2WWRmK3d4SHVCMlpHVGduaVAzclU9Cg=="; +const UPDATER_PRIVATE_KEY: &str = "dW50cnVzdGVkIGNvbW1lbnQ6IHJzaWduIGVuY3J5cHRlZCBzZWNyZXQga2V5ClJXUlRZMEl5TlFOMFpXYzJFOUdjeHJEVXY4WE1TMUxGNDJVUjNrMmk1WlR3UVJVUWwva0FBQkFBQUFBQUFBQUFBQUlBQUFBQUpVK3ZkM3R3eWhyN3hiUXhQb2hvWFVzUW9FbEs3NlNWYjVkK1F2VGFRU1FEaGxuRUtlell5U0gxYS9DbVRrS0YyZVJGblhjeXJibmpZeGJjS0ZKSUYwYndYc2FCNXpHalM3MHcrODMwN3kwUG9SOWpFNVhCSUd6L0E4TGRUT096TEtLR1JwT1JEVFU9Cg=="; #[derive(Serialize)] struct Config { diff --git a/plugins/upload/package.json b/plugins/upload/package.json index 21756994c..ed8c6c713 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/upload/src/api-iife.js b/plugins/upload/src/api-iife.js index d81c4d17b..2cfe2d5ae 100644 --- a/plugins/upload/src/api-iife.js +++ b/plugins/upload/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_UPLOAD__=function(e){"use strict";function t(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}var n;"function"==typeof SuppressedError&&SuppressedError;class r{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((e=>{t(this,n,"f").call(this,e)}))}set onmessage(e){!function(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===r?o.call(e,n):o?o.value=n:t.set(e,n)}(this,n,e,"f")}get onmessage(){return t(this,n,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function o(e,t={},n){return window.__TAURI_INTERNALS__.invoke(e,t,n)}return n=new WeakMap,e.download=async function(e,t,n,a){const i=new Uint32Array(1);window.crypto.getRandomValues(i);const s=i[0],_=new r;null!=n&&(_.onmessage=n),await o("plugin:upload|download",{id:s,url:e,filePath:t,headers:a??{},onProgress:_})},e.upload=async function(e,t,n,a){const i=new Uint32Array(1);window.crypto.getRandomValues(i);const s=i[0],_=new r;null!=n&&(_.onmessage=n),await o("plugin:upload|upload",{id:s,url:e,filePath:t,headers:a??{},onProgress:_})},e}({});Object.defineProperty(window.__TAURI__,"upload",{value:__TAURI_PLUGIN_UPLOAD__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_UPLOAD__=function(e){"use strict";function t(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function n(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}var r,o,s;"function"==typeof SuppressedError&&SuppressedError;class a{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,r.set(this,(()=>{})),o.set(this,0),s.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:a})=>{if(a===t(this,o,"f")){n(this,o,a+1,"f"),t(this,r,"f").call(this,e);const i=Object.keys(t(this,s,"f"));if(i.length>0){let e=a+1;for(const n of i.sort()){if(parseInt(n)!==e)break;{const o=t(this,s,"f")[n];delete t(this,s,"f")[n],t(this,r,"f").call(this,o),e+=1}}}}else t(this,s,"f")[a.toString()]=e}))}set onmessage(e){n(this,r,e,"f")}get onmessage(){return t(this,r,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function i(e,t={},n){return window.__TAURI_INTERNALS__.invoke(e,t,n)}return r=new WeakMap,o=new WeakMap,s=new WeakMap,e.download=async function(e,t,n,r){const o=new Uint32Array(1);window.crypto.getRandomValues(o);const s=o[0],c=new a;null!=n&&(c.onmessage=n),await i("plugin:upload|download",{id:s,url:e,filePath:t,headers:r??{},onProgress:c})},e.upload=async function(e,t,n,r){const o=new Uint32Array(1);window.crypto.getRandomValues(o);const s=o[0],c=new a;null!=n&&(c.onmessage=n),await i("plugin:upload|upload",{id:s,url:e,filePath:t,headers:r??{},onProgress:c})},e}({});Object.defineProperty(window.__TAURI__,"upload",{value:__TAURI_PLUGIN_UPLOAD__})} diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index dc916a385..83fc03d78 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-beta.3", + "@tauri-apps/cli": "2.0.0-beta.7", "typescript": "^5.3.3", "vite": "^5.0.12" }, diff --git a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index fb3b862c7..88e4efd62 100644 --- a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -17,4 +17,4 @@ tokio-tungstenite = "0.21" tauri-build = { workspace = true } [features] -custom-protocol = [ "tauri/custom-protocol" ] +prod = ["tauri/custom-protocol"] diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index a2fddbdde..26e29af41 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/websocket/src/api-iife.js b/plugins/websocket/src/api-iife.js index 12fc8534d..d24a7de97 100644 --- a/plugins/websocket/src/api-iife.js +++ b/plugins/websocket/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_WEBSOCKET__=function(){"use strict";function e(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}var t;"function"==typeof SuppressedError&&SuppressedError;class r{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,t.set(this,(()=>{})),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((r=>{e(this,t,"f").call(this,r)}))}set onmessage(e){!function(e,t,r,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?s.call(e,r):s?s.value=r:t.set(e,r)}(this,t,e,"f")}get onmessage(){return e(this,t,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function n(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}t=new WeakMap;class s{constructor(e,t){this.id=e,this.listeners=t}static async connect(e,t){const a=[],i=new r;return i.onmessage=e=>{a.forEach((t=>t(e)))},t?.headers&&(t.headers=Array.from(new Headers(t.headers).entries())),await n("plugin:websocket|connect",{url:e,onMessage:i,config:t}).then((e=>new s(e,a)))}addListener(e){this.listeners.push(e)}async send(e){let t;if("string"==typeof e)t={type:"Text",data:e};else if("object"==typeof e&&"type"in e)t=e;else{if(!Array.isArray(e))throw new Error("invalid `message` type, expected a `{ type: string, data: any }` object, a string or a numeric array");t={type:"Binary",data:e}}return await n("plugin:websocket|send",{id:this.id,message:t})}async disconnect(){return await this.send({type:"Close",data:{code:1e3,reason:"Disconnected by client"}})}}return s}();Object.defineProperty(window.__TAURI__,"websocket",{value:__TAURI_PLUGIN_WEBSOCKET__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_WEBSOCKET__=function(){"use strict";function e(e,t,r,s){if("a"===r&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?s:"a"===r?s.call(e):s?s.value:t.get(e)}function t(e,t,r,s,n){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?n.call(e,r):n?n.value=r:t.set(e,r),r}var r,s,n;"function"==typeof SuppressedError&&SuppressedError;class i{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,r.set(this,(()=>{})),s.set(this,0),n.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:i,id:a})=>{if(a===e(this,s,"f")){t(this,s,a+1,"f"),e(this,r,"f").call(this,i);const o=Object.keys(e(this,n,"f"));if(o.length>0){let t=a+1;for(const s of o.sort()){if(parseInt(s)!==t)break;{const i=e(this,n,"f")[s];delete e(this,n,"f")[s],e(this,r,"f").call(this,i),t+=1}}}}else e(this,n,"f")[a.toString()]=i}))}set onmessage(e){t(this,r,e,"f")}get onmessage(){return e(this,r,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}r=new WeakMap,s=new WeakMap,n=new WeakMap;class o{constructor(e,t){this.id=e,this.listeners=t}static async connect(e,t){const r=[],s=new i;return s.onmessage=e=>{r.forEach((t=>t(e)))},t?.headers&&(t.headers=Array.from(new Headers(t.headers).entries())),await a("plugin:websocket|connect",{url:e,onMessage:s,config:t}).then((e=>new o(e,r)))}addListener(e){this.listeners.push(e)}async send(e){let t;if("string"==typeof e)t={type:"Text",data:e};else if("object"==typeof e&&"type"in e)t=e;else{if(!Array.isArray(e))throw new Error("invalid `message` type, expected a `{ type: string, data: any }` object, a string or a numeric array");t={type:"Binary",data:e}}return await a("plugin:websocket|send",{id:this.id,message:t})}async disconnect(){return await this.send({type:"Close",data:{code:1e3,reason:"Disconnected by client"}})}}return o}();Object.defineProperty(window.__TAURI__,"websocket",{value:__TAURI_PLUGIN_WEBSOCKET__})} diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index 2fe3d414b..e82459217 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } diff --git a/plugins/window-state/src/api-iife.js b/plugins/window-state/src/api-iife.js index 472123564..fc339c625 100644 --- a/plugins/window-state/src/api-iife.js +++ b/plugins/window-state/src/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOWSTATE__=function(e){"use strict";function t(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function i(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}"function"==typeof SuppressedError&&SuppressedError;class n{constructor(e,t){this.type="Logical",this.width=e,this.height=t}}class a{constructor(e,t){this.type="Physical",this.width=e,this.height=t}toLogical(e){return new n(this.width/e,this.height/e)}}class l{constructor(e,t){this.type="Logical",this.x=e,this.y=t}}class s{constructor(e,t){this.type="Physical",this.x=e,this.y=t}toLogical(e){return new l(this.x/e,this.y/e)}}var r,o,u;async function c(e,t){await i("plugin:event|unlisten",{event:e,eventId:t})}async function d(e,n,a){const l="string"==typeof a?.target?{kind:"AnyLabel",label:a.target}:a?.target??{kind:"Any"};return i("plugin:event|listen",{event:e,target:l,handler:t(n)}).then((t=>async()=>c(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WEBVIEW_CREATED="tauri://webview-created",e.FILE_DROP="tauri://file-drop",e.FILE_DROP_HOVER="tauri://file-drop-hover",e.FILE_DROP_CANCELLED="tauri://file-drop-cancelled"}(r||(r={})),function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(o||(o={}));class h{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function w(){return new y(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}function b(){return window.__TAURI_INTERNALS__.metadata.windows.map((e=>new y(e.label,{skip:!0})))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(u||(u={}));const p=["tauri://created","tauri://error"];class y{constructor(e,t={}){this.label=e,this.listeners=Object.create(null),t?.skip||i("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:t.parent?.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static getByLabel(e){return b().find((t=>t.label===e))??null}static getCurrent(){return w()}static getAll(){return b()}static async getFocusedWindow(){for(const e of b())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?Promise.resolve((()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)})):d(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?Promise.resolve((()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)})):async function(e,t,i){return d(e,(i=>{t(i),c(e,i.id).catch((()=>{}))}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(p.includes(e)){for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t});return Promise.resolve()}return async function(e,t){await i("plugin:event|emit",{event:e,payload:t})}(e,t)}async emitTo(e,t,n){if(p.includes(t)){for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:n});return Promise.resolve()}return async function(e,t,n){const a="string"==typeof e?{kind:"AnyLabel",label:e}:e;await i("plugin:event|emit_to",{target:a,event:t,payload:n})}(e,t,n)}_handleTauriEvent(e,t){return!!p.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return i("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return i("plugin:window|inner_position",{label:this.label}).then((({x:e,y:t})=>new s(e,t)))}async outerPosition(){return i("plugin:window|outer_position",{label:this.label}).then((({x:e,y:t})=>new s(e,t)))}async innerSize(){return i("plugin:window|inner_size",{label:this.label}).then((({width:e,height:t})=>new a(e,t)))}async outerSize(){return i("plugin:window|outer_size",{label:this.label}).then((({width:e,height:t})=>new a(e,t)))}async isFullscreen(){return i("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return i("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return i("plugin:window|is_maximized",{label:this.label})}async isFocused(){return i("plugin:window|is_focused",{label:this.label})}async isDecorated(){return i("plugin:window|is_decorated",{label:this.label})}async isResizable(){return i("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return i("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return i("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return i("plugin:window|is_closable",{label:this.label})}async isVisible(){return i("plugin:window|is_visible",{label:this.label})}async title(){return i("plugin:window|title",{label:this.label})}async theme(){return i("plugin:window|theme",{label:this.label})}async center(){return i("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===o.Critical?{type:"Critical"}:{type:"Informational"}),i("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return i("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return i("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return i("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return i("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return i("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return i("plugin:window|maximize",{label:this.label})}async unmaximize(){return i("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return i("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return i("plugin:window|minimize",{label:this.label})}async unminimize(){return i("plugin:window|unminimize",{label:this.label})}async show(){return i("plugin:window|show",{label:this.label})}async hide(){return i("plugin:window|hide",{label:this.label})}async close(){return i("plugin:window|close",{label:this.label})}async destroy(){return i("plugin:window|destroy",{label:this.label})}async setDecorations(e){return i("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return i("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return i("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return i("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return i("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return i("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return i("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_size",{label:this.label,value:{type:e.type,data:{width:e.width,height:e.height}}})}async setMinSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_min_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setMaxSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_max_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setFullscreen(e){return i("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return i("plugin:window|set_focus",{label:this.label})}async setIcon(e){return i("plugin:window|set_icon",{label:this.label,value:"string"==typeof e?e:Array.from(e)})}async setSkipTaskbar(e){return i("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return i("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return i("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return i("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_cursor_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setIgnoreCursorEvents(e){return i("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return i("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return i("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setProgressBar(e){return i("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return i("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async onResized(e){return this.listen(r.WINDOW_RESIZED,(t=>{var i;t.payload=(i=t.payload,new a(i.width,i.height)),e(t)}))}async onMoved(e){return this.listen(r.WINDOW_MOVED,(t=>{t.payload=v(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(r.WINDOW_CLOSE_REQUESTED,(t=>{const i=new h(t);Promise.resolve(e(i)).then((()=>{if(!i.isPreventDefault())return this.destroy()}))}))}async onFileDropEvent(e){const t=await this.listen(r.FILE_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:v(t.payload.position)}})})),i=await this.listen(r.FILE_DROP_HOVER,(t=>{e({...t,payload:{type:"hover",paths:t.payload.paths,position:v(t.payload.position)}})})),n=await this.listen(r.FILE_DROP_CANCELLED,(t=>{e({...t,payload:{type:"cancel"}})}));return()=>{t(),i(),n()}}async onFocusChanged(e){const t=await this.listen(r.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),i=await this.listen(r.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),i()}}async onScaleChanged(e){return this.listen(r.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(r.WINDOW_THEME_CHANGED,e)}}var g,_,m;function v(e){return new s(e.x,e.y)}async function f(e,t){return i("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(g||(g={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(_||(_={})),e.StateFlags=void 0,(m=e.StateFlags||(e.StateFlags={}))[m.SIZE=1]="SIZE",m[m.POSITION=2]="POSITION",m[m.MAXIMIZED=4]="MAXIMIZED",m[m.VISIBLE=8]="VISIBLE",m[m.DECORATIONS=16]="DECORATIONS",m[m.FULLSCREEN=32]="FULLSCREEN",m[m.ALL=63]="ALL",e.restoreState=f,e.restoreStateCurrent=async function(e){return f(w().label,e)},e.saveWindowState=async function(e){return i("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOWSTATE__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOWSTATE__=function(e){"use strict";var t,i,n,a;function l(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function s(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}"function"==typeof SuppressedError&&SuppressedError;class r{get rid(){return function(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,i,n,a){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?a.call(e,i):a?a.value=i:t.set(e,i)}(this,t,e,"f")}async close(){return s("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class o{constructor(e,t){this.type="Logical",this.width=e,this.height=t}}class u{constructor(e,t){this.type="Physical",this.width=e,this.height=t}toLogical(e){return new o(this.width/e,this.height/e)}}class c{constructor(e,t){this.type="Logical",this.x=e,this.y=t}}class h{constructor(e,t){this.type="Physical",this.x=e,this.y=t}toLogical(e){return new c(this.x/e,this.y/e)}}async function d(e,t){await s("plugin:event|unlisten",{event:e,eventId:t})}async function w(e,t,i){const n="string"==typeof i?.target?{kind:"AnyLabel",label:i.target}:i?.target??{kind:"Any"};return s("plugin:event|listen",{event:e,target:n,handler:l(t)}).then((t=>async()=>d(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WEBVIEW_CREATED="tauri://webview-created",e.FILE_DROP="tauri://file-drop",e.FILE_DROP_HOVER="tauri://file-drop-hover",e.FILE_DROP_CANCELLED="tauri://file-drop-cancelled"}(i||(i={}));class b extends r{constructor(e){super(e)}static async new(e,t,i){return s("plugin:image|new",{rgba:y(e),width:t,height:i}).then((e=>new b(e)))}static async fromBytes(e){return s("plugin:image|from_bytes",{bytes:y(e)}).then((e=>new b(e)))}static async fromPngBytes(e){return s("plugin:image|from_png_bytes",{bytes:y(e)}).then((e=>new b(e)))}static async fromIcoBytes(e){return s("plugin:image|from_ico_bytes",{bytes:y(e)}).then((e=>new b(e)))}static async fromPath(e){return s("plugin:image|from_path",{path:e}).then((e=>new b(e)))}async rgba(){return s("plugin:image|rgba",{rid:this.rid})}async width(){return s("plugin:image|width",{rid:this.rid})}async height(){return s("plugin:image|height",{rid:this.rid})}}function y(e){return null==e?null:"string"==typeof e?e:e instanceof Uint8Array?Array.from(e):e instanceof ArrayBuffer?Array.from(new Uint8Array(e)):e instanceof b?e.rid:e}!function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(n||(n={}));class p{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function g(){return new f(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}function _(){return window.__TAURI_INTERNALS__.metadata.windows.map((e=>new f(e.label,{skip:!0})))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(a||(a={}));const m=["tauri://created","tauri://error"];class f{constructor(e,t={}){this.label=e,this.listeners=Object.create(null),t?.skip||s("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:t.parent?.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static getByLabel(e){return _().find((t=>t.label===e))??null}static getCurrent(){return g()}static getAll(){return _()}static async getFocusedWindow(){for(const e of _())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?Promise.resolve((()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)})):w(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?Promise.resolve((()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)})):async function(e,t,i){return w(e,(i=>{t(i),d(e,i.id).catch((()=>{}))}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(m.includes(e)){for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t});return Promise.resolve()}return async function(e,t){await s("plugin:event|emit",{event:e,payload:t})}(e,t)}async emitTo(e,t,i){if(m.includes(t)){for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:i});return Promise.resolve()}return async function(e,t,i){const n="string"==typeof e?{kind:"AnyLabel",label:e}:e;await s("plugin:event|emit_to",{target:n,event:t,payload:i})}(e,t,i)}_handleTauriEvent(e,t){return!!m.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return s("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return s("plugin:window|inner_position",{label:this.label}).then((({x:e,y:t})=>new h(e,t)))}async outerPosition(){return s("plugin:window|outer_position",{label:this.label}).then((({x:e,y:t})=>new h(e,t)))}async innerSize(){return s("plugin:window|inner_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async outerSize(){return s("plugin:window|outer_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async isFullscreen(){return s("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return s("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return s("plugin:window|is_maximized",{label:this.label})}async isFocused(){return s("plugin:window|is_focused",{label:this.label})}async isDecorated(){return s("plugin:window|is_decorated",{label:this.label})}async isResizable(){return s("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return s("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return s("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return s("plugin:window|is_closable",{label:this.label})}async isVisible(){return s("plugin:window|is_visible",{label:this.label})}async title(){return s("plugin:window|title",{label:this.label})}async theme(){return s("plugin:window|theme",{label:this.label})}async center(){return s("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===n.Critical?{type:"Critical"}:{type:"Informational"}),s("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return s("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return s("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return s("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return s("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return s("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return s("plugin:window|maximize",{label:this.label})}async unmaximize(){return s("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return s("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return s("plugin:window|minimize",{label:this.label})}async unminimize(){return s("plugin:window|unminimize",{label:this.label})}async show(){return s("plugin:window|show",{label:this.label})}async hide(){return s("plugin:window|hide",{label:this.label})}async close(){return s("plugin:window|close",{label:this.label})}async destroy(){return s("plugin:window|destroy",{label:this.label})}async setDecorations(e){return s("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return s("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return s("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return s("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return s("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return s("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return s("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return s("plugin:window|set_size",{label:this.label,value:{type:e.type,data:{width:e.width,height:e.height}}})}async setMinSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return s("plugin:window|set_min_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setMaxSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return s("plugin:window|set_max_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return s("plugin:window|set_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setFullscreen(e){return s("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return s("plugin:window|set_focus",{label:this.label})}async setIcon(e){return s("plugin:window|set_icon",{label:this.label,value:y(e)})}async setSkipTaskbar(e){return s("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return s("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return s("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return s("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return s("plugin:window|set_cursor_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setIgnoreCursorEvents(e){return s("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return s("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return s("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setProgressBar(e){return s("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return s("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async onResized(e){return this.listen(i.WINDOW_RESIZED,(t=>{var i;t.payload=(i=t.payload,new u(i.width,i.height)),e(t)}))}async onMoved(e){return this.listen(i.WINDOW_MOVED,(t=>{t.payload=D(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(i.WINDOW_CLOSE_REQUESTED,(t=>{const i=new p(t);Promise.resolve(e(i)).then((()=>{if(!i.isPreventDefault())return this.destroy()}))}))}async onFileDropEvent(e){const t=await this.listen(i.FILE_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:D(t.payload.position)}})})),n=await this.listen(i.FILE_DROP_HOVER,(t=>{e({...t,payload:{type:"hover",paths:t.payload.paths,position:D(t.payload.position)}})})),a=await this.listen(i.FILE_DROP_CANCELLED,(t=>{e({...t,payload:{type:"cancel"}})}));return()=>{t(),n(),a()}}async onFocusChanged(e){const t=await this.listen(i.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),n=await this.listen(i.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),n()}}async onScaleChanged(e){return this.listen(i.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(i.WINDOW_THEME_CHANGED,e)}}var v,E,I;function D(e){return new h(e.x,e.y)}async function S(e,t){return s("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(v||(v={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(E||(E={})),e.StateFlags=void 0,(I=e.StateFlags||(e.StateFlags={}))[I.SIZE=1]="SIZE",I[I.POSITION=2]="POSITION",I[I.MAXIMIZED=4]="MAXIMIZED",I[I.VISIBLE=8]="VISIBLE",I[I.DECORATIONS=16]="DECORATIONS",I[I.FULLSCREEN=32]="FULLSCREEN",I[I.ALL=63]="ALL",e.restoreState=S,e.restoreStateCurrent=async function(e){return S(g().label,e)},e.saveWindowState=async function(e){return s("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOWSTATE__})} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 229ac6a6e..2e6b1923d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,8 +64,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0-beta.1 version: link:../../plugins/barcode-scanner @@ -122,8 +122,8 @@ importers: specifier: ^3.0.1 version: 3.0.1(svelte@4.2.8)(vite@5.0.12) '@tauri-apps/cli': - specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 '@unocss/extractor-svelte': specifier: ^0.58.0 version: 0.58.0 @@ -143,26 +143,26 @@ importers: plugins/authenticator: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/autostart: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/barcode-scanner: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/biometric: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 devDependencies: tslib: specifier: 2.6.0 @@ -171,33 +171,33 @@ importers: plugins/cli: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/clipboard-manager: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/deep-link: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 '@tauri-apps/plugin-deep-link': specifier: 2.0.0-beta.1 version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 internal-ip: specifier: ^8.0.0 version: 8.0.0 @@ -211,38 +211,38 @@ importers: plugins/dialog: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/fs: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/global-shortcut: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/http: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/log: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/nfc: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 devDependencies: tslib: specifier: 2.6.0 @@ -251,74 +251,74 @@ importers: plugins/notification: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/os: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/positioner: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/process: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/shell: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 plugins/sql: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/store: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/updater: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/upload: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/websocket: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 plugins/websocket/examples/tauri-app: dependencies: @@ -327,8 +327,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -339,8 +339,8 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 packages: @@ -1476,18 +1476,13 @@ packages: - supports-color dev: true - /@tauri-apps/api@2.0.0-beta.2: - resolution: {integrity: sha512-4r1r6kgttzIWxJ3HxkZQH+b7EiUtKhdUCPbi0KSalD+2T3j6klw+v8VyxhKwEdjM/eo60NE+J33v1E/Urq8puw==} + /@tauri-apps/api@2.0.0-beta.4: + resolution: {integrity: sha512-Nxtj28NYUo5iwYkpYslxmOPkdI2WkELU2e3UH9nbJm9Ydki2CQwJVGQxx4EANtdZcMNsEsUzRqaDTvEUYH1l6w==} engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/api@2.0.0-beta.3: - resolution: {integrity: sha512-gDSJzKpBs6efXw2ZWqjl9QVNImY5GR5qygXqB7JK4y7prcQInxnTj2ARFR0vD4wuzkrUHGrlIKraiJJPHWJ9vg==} - engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - dev: false - - /@tauri-apps/cli-darwin-arm64@2.0.0-beta.3: - resolution: {integrity: sha512-gHcn3jI/4MDXDIlK/4Zz0ftTosgN3OimWlKxEz777QrA1hldrQweYIhdZXkqE9KgoE+u6w80vWIcr0InHAf7Iw==} + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.7: + resolution: {integrity: sha512-pwPkYEmIKRWbjxTCzPob67ecH8BrdYuE40chTRKudKCOgSahxW3oRHXnF8f7MU1pd34XpMG0vjwbETc0NA4DJw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -1495,17 +1490,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-arm64@2.0.0-beta.6: - resolution: {integrity: sha512-G1KJhWB8SgITE2iwWmOoyMhykljz7sGxQL5BnNLHLeyNvc6DwkgQ0AObkmFTz2JLnstWQ/kKyg/uoQNMNA/wyQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-darwin-x64@2.0.0-beta.3: - resolution: {integrity: sha512-kRCaukT2IAGMmNuAOUBhdZRlKujTy2lSsdNKmgGEMnzQLKJwWO9Gpq1NmPY7ZVqyXK/X8QnGHuasDEQsSO6B4w==} + /@tauri-apps/cli-darwin-x64@2.0.0-beta.7: + resolution: {integrity: sha512-GP0u+CQxS9bRzxECtiFpAaEmhxibyCKRNhXVzbUwKkqbYtPKHnL5ZkppaQGZ+72aU+ezN2wyUGJM2JywGO6WrA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -1513,17 +1499,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@2.0.0-beta.6: - resolution: {integrity: sha512-Dju4V53dO7KVvmMqXZeNp2tfMOEVDCORf40ZnP9zrE58mvqoEHbri4F+m+UN+fSdEOzic12nSGXDO/nilqs+aA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.3: - resolution: {integrity: sha512-cpNZOQDotNSdjoZT16s1JtZvnkM0wgLwU39AhKhRCco4KEH3/8G1ngKF9JKalWUN8zDTcuCigEAr37gEv4mLAA==} + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.7: + resolution: {integrity: sha512-oFMPnELZaXav3BzJimezP7gNxH44MHdBn2uOO1GkS8aV5P3GRBdu2xqwz2jr1awxfu0MAqTFj2ed9MsjiDDLhw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -1531,17 +1508,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.6: - resolution: {integrity: sha512-w4dmL9VZD2UaDYRE6XRmIPxg2XJDT5Zn+76NGVFiZjsZniEh2c0KP0Ytd0nA1jn1cphgn0RDJkRqtPvT5nGQoA==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.3: - resolution: {integrity: sha512-8q86V6P9bkeoFcnvSsnvOwmKY6ijIN4ueRVXCj5cVpsw392VF9vud1Nq7/l+QDgn9OWbZNNVDl30iyoSuaykBA==} + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.7: + resolution: {integrity: sha512-89MoAIRlIA8+qMpOEZZQ2+Q4LBUY1kwMGNS3mg5OJDU0+vSfNUkLr17Zvjwqizd/tVUp/vTWNWtSPthm8wliHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1549,8 +1517,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.6: - resolution: {integrity: sha512-0oVOSUg1wtoy+qOLjF3uQRxgtUFoqrRpb6cSebTfe4NaHHfF6qKGtZdK/Po0+jQ6RItz3iUV2bgy7Evx3lVFMw==} + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.7: + resolution: {integrity: sha512-3TM4YapftA+VU555CQ8xxZhkcGDCGuJ+2X3qaHY4XEgC2viyke7MybbA6duHhb1HY64rZhSx6y5cqi9SE/AsSg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -1558,26 +1526,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.3: - resolution: {integrity: sha512-L7fokh4aqyV6yDPoeKwFN3Yt0pCAuZMWeP5tOeSBiom1pU7ppKH+4KHeTekNEIecZG+Ah250DkVCdmWS+aRFTA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.6: - resolution: {integrity: sha512-l0sH61OysOK17lL9Je/AS+Bs1a2zafg2te/G7WVi4Z1uFuSirMjPzCFJBT4/vY53AeyuRNja+XhszLdf0ud0BQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.3: - resolution: {integrity: sha512-/crp3K6PathqicVWPj8Kh1120NNVV7nagJ7oZW9OFch7nBS1tmDnSB5k5LgA4yYu+lDKNUREnATMWHL6i0gNeg==} + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.7: + resolution: {integrity: sha512-+NbQOJheRZGTm5EF8h0y7JB1sW5qi1kTwqSCVeePJJStQX8QG2RmWdDbo44/PGLOwy8iJlGH/Tlo+ZaHuWtV9A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1585,8 +1535,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.6: - resolution: {integrity: sha512-RkDhQQv34Qr5xrjoaRclTpHFf/YQdH6ftSTaUKhEdaVDEJPUbVZUxj70f58b1bV6kuokvT3r5whb9I4lfCBZZw==} + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.7: + resolution: {integrity: sha512-1uDMC3Uh8yFWsKRkwrwLWY9pQ1uQ008lAimNedlGnuSJ3dW3SViNGbhdmvKw/lrXL24183ppGv2z/B6c/DydBg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -1594,26 +1544,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.3: - resolution: {integrity: sha512-jX1ZT0UQwdBGbpCwlpv2bsLDO7KFMeDJQ/ZZVMfWyjuYrGBG5zhJ2NXwTMkHVnxfvE6BVmnybWcykeSqTATeOw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.6: - resolution: {integrity: sha512-d2s7uTjejf44VmGEmbSeERB1cbIkx3o7lyzPBnwLcluxi21xEVIa8SLKDR8iLZdovdWkJEre+nz/ViaBQw8nHA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.3: - resolution: {integrity: sha512-UCEZNKocENLX3HYKid4FEbrCMjCX9e58klBIvJKxT8HTjvpgFYDoKccswDNfszLhmineKMlkUvm7j7U0sMh8MQ==} + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.7: + resolution: {integrity: sha512-166jg+BfgFw22Hj0oZgU1ujWb5Gzf0+4p8L9Vuzu0Ne7U8flHfvlFpFKdf6uCa61cxS0sfmEnAi5r2Fh8VOA4w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -1621,17 +1553,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.6: - resolution: {integrity: sha512-KZ+ByWOr46YR7j2C/EsJObjmUnMw3y9rzm3UU0DLE84ty8x7/TSVrIoV6W7DsgduLf7kKyy9dQTyFUNK+A5d7Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.3: - resolution: {integrity: sha512-O8syGXDHyKN/cv1ktD76dTcbkQ1nNEPhnT1Z+r0GKxNsw4/MyIVglzEcou3aPq0/1MQ0PEGVyG1x0JMaPw7oHQ==} + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.7: + resolution: {integrity: sha512-NuR1AkZlNwcu/Jv9qRKA0yguvJIW4aLEhZG6sWssMGhJGRzxZssZfHiBVfDCDQgfprbtOXXnshy7rFjNe0IEgA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -1639,17 +1562,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.6: - resolution: {integrity: sha512-CPCAxMZ8XtWsZ875/YQAnFCrkeFnGqw5on2D4PHmkZRhrOyoFCa0R65Q0cWCHzX6M/fmo40QkSJiASR87RCRJg==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.3: - resolution: {integrity: sha512-YDdF3XWaptjKtKz33sZhC+uNAZwp6QtAmZSRCQQlC1W7uJwLD00/3QF4vO/c6Qm+BGFsazVh1+YmBF1p0kV0rg==} + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.7: + resolution: {integrity: sha512-BVlwb6fRRCOaQPZWYIee8Z37NEHkceVmFDSQhrmLhF9E60/M09UCTrj0J5IOrDSj7t5/h5aWlYmDTASaJJRzKg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1657,47 +1571,21 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.6: - resolution: {integrity: sha512-YcfbicO3DQcJEd5eOJ4ydwzHwaF3KlWhH+yZZbhnpzdfl+BK/PlEs6sGUoBW2h1RJ9lLlDK51RNMZGq9O0QaYg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@tauri-apps/cli@2.0.0-beta.3: - resolution: {integrity: sha512-xLAL2DNNUJWqHBKvanc3V9bG9kkwtFwc40X/DrfgEKnkajEm79wqnkaT8LUnmbe0WZ8bzBRO1fLIgKlOH6GiCA==} + /@tauri-apps/cli@2.0.0-beta.7: + resolution: {integrity: sha512-ZaXvF46H+bSkP31C3ygFMhH3RAkdUnmxsGe5YKPublOnsWkyEvj9OLafBt2rTedF5Ko6HsIFqtgp4MqT9K9mHg==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.3 - '@tauri-apps/cli-darwin-x64': 2.0.0-beta.3 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.3 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.3 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.3 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.3 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.3 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.3 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.3 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.3 - dev: true - - /@tauri-apps/cli@2.0.0-beta.6: - resolution: {integrity: sha512-4DwhpXI51NnAYkDlROMvCJ7S+M7efuaA5zqcBStodr0NaKyB4buuf8zkCSpqdMW4gXBXDHDwi1Mbm9G1L7LyDA==} - engines: {node: '>= 10'} - hasBin: true - optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.6 - '@tauri-apps/cli-darwin-x64': 2.0.0-beta.6 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.6 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.6 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.6 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.6 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.6 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.6 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.6 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.6 + '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.7 + '@tauri-apps/cli-darwin-x64': 2.0.0-beta.7 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.7 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.7 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.7 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.7 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.7 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.7 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.7 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.7 dev: true /@tauri-apps/toml@2.2.4: diff --git a/shared/template/package.json b/shared/template/package.json index 60cf5e267..caf348a4c 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -23,6 +23,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-beta.2" + "@tauri-apps/api": "2.0.0-beta.4" } } From 0f67dfc9b41fa46c0e9c492e9256c3ad9446298f Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 7 Mar 2024 05:10:45 +0200 Subject: [PATCH 108/643] feat(http): enhance scope config to accept string as well (#1025) --- .../src-tauri/gen/schemas/desktop-schema.json | 44 +++++++++++++------ .../src-tauri/gen/schemas/mobile-schema.json | 44 +++++++++++++------ plugins/http/build.rs | 35 ++++++++++++--- plugins/http/src/scope.rs | 17 ++++--- 4 files changed, 99 insertions(+), 41 deletions(-) diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index a52e8fcc1..52ed8e229 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -2243,32 +2243,48 @@ "items": { "title": "ScopeEntry", "description": "HTTP scope entry object definition.", - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { + "anyOf": [ + { "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } } - } + ] } }, "deny": { "items": { "title": "ScopeEntry", "description": "HTTP scope entry object definition.", - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { + "anyOf": [ + { "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } } - } + ] } } } diff --git a/examples/api/src-tauri/gen/schemas/mobile-schema.json b/examples/api/src-tauri/gen/schemas/mobile-schema.json index 900ededd7..6262fabb9 100644 --- a/examples/api/src-tauri/gen/schemas/mobile-schema.json +++ b/examples/api/src-tauri/gen/schemas/mobile-schema.json @@ -2236,32 +2236,48 @@ "items": { "title": "ScopeEntry", "description": "HTTP scope entry object definition.", - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { + "anyOf": [ + { "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } } - } + ] } }, "deny": { "items": { "title": "ScopeEntry", "description": "HTTP scope entry object definition.", - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { + "anyOf": [ + { "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } } - } + ] } } } diff --git a/plugins/http/build.rs b/plugins/http/build.rs index 3ad55b46b..7811cffc1 100644 --- a/plugins/http/build.rs +++ b/plugins/http/build.rs @@ -9,8 +9,10 @@ mod scope; const COMMANDS: &[&str] = &["fetch", "fetch_cancel", "fetch_send", "fetch_read_body"]; /// HTTP scope entry object definition. +#[allow(unused)] #[derive(schemars::JsonSchema)] -struct ScopeEntry { +#[serde(untagged)] +enum ScopeEntry { /// A URL that can be accessed by the webview when using the HTTP APIs. /// Wildcards can be used following the URL pattern standard. /// @@ -25,18 +27,39 @@ struct ScopeEntry { /// - "https://*.github.com/tauri-apps/tauri": allows any subdomain of "github.com" with the "tauri-apps/api" path /// /// - "https://myapi.service.com/users/*": allows access to any URLs that begins with "https://myapi.service.com/users/" - url: String, + Value(String), + + Object { + /// A URL that can be accessed by the webview when using the HTTP APIs. + /// Wildcards can be used following the URL pattern standard. + /// + /// See [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information. + /// + /// Examples: + /// + /// - "https://*" : allows all HTTPS origin on port 443 + /// + /// - "https://*:*" : allows all HTTPS origin on any port + /// + /// - "https://*.github.com/tauri-apps/tauri": allows any subdomain of "github.com" with the "tauri-apps/api" path + /// + /// - "https://myapi.service.com/users/*": allows access to any URLs that begins with "https://myapi.service.com/users/" + url: String, + }, } // ensure scope entry is up to date impl From for scope::Entry { fn from(value: ScopeEntry) -> Self { + let url = match value { + ScopeEntry::Value(url) => url, + ScopeEntry::Object { url } => url, + }; + scope::Entry { url: urlpattern::UrlPattern::parse( - urlpattern::UrlPatternInit::parse_constructor_string::( - &value.url, None, - ) - .unwrap(), + urlpattern::UrlPatternInit::parse_constructor_string::(&url, None) + .unwrap(), ) .unwrap(), } diff --git a/plugins/http/src/scope.rs b/plugins/http/src/scope.rs index e04e4210c..9067f4065 100644 --- a/plugins/http/src/scope.rs +++ b/plugins/http/src/scope.rs @@ -25,17 +25,20 @@ impl<'de> Deserialize<'de> for Entry { D: Deserializer<'de>, { #[derive(Deserialize)] - struct EntryRaw { - url: String, + #[serde(untagged)] + enum EntryRaw { + Value(String), + Object { url: String }, } EntryRaw::deserialize(deserializer).and_then(|raw| { + let url = match raw { + EntryRaw::Value(url) => url, + EntryRaw::Object { url } => url, + }; Ok(Entry { - url: parse_url_pattern(&raw.url).map_err(|e| { - serde::de::Error::custom(format!( - "`{}` is not a valid URL pattern: {e}", - raw.url - )) + url: parse_url_pattern(&url).map_err(|e| { + serde::de::Error::custom(format!("`{}` is not a valid URL pattern: {e}", url)) })?, }) }) From 5006717a7f6df23daaba5bd9d90165fd8d73d1b0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:24:51 -0300 Subject: [PATCH 109/643] publish new versions (#986) --- .changes/pre.json | 12 +- examples/api/CHANGELOG.md | 20 ++++ examples/api/package.json | 30 ++--- examples/api/src-tauri/CHANGELOG.md | 20 ++++ examples/api/src-tauri/Cargo.toml | 52 ++++----- plugins/authenticator/CHANGELOG.md | 6 +- plugins/authenticator/Cargo.toml | 2 +- plugins/authenticator/package.json | 2 +- plugins/autostart/CHANGELOG.md | 6 +- plugins/autostart/Cargo.toml | 2 +- plugins/autostart/package.json | 2 +- plugins/barcode-scanner/CHANGELOG.md | 6 +- plugins/barcode-scanner/Cargo.toml | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/CHANGELOG.md | 6 +- plugins/biometric/Cargo.toml | 2 +- plugins/biometric/package.json | 2 +- plugins/cli/CHANGELOG.md | 6 +- plugins/cli/Cargo.toml | 2 +- plugins/cli/package.json | 2 +- plugins/clipboard-manager/CHANGELOG.md | 7 +- plugins/clipboard-manager/Cargo.toml | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/CHANGELOG.md | 6 +- plugins/deep-link/Cargo.toml | 2 +- plugins/deep-link/examples/app/CHANGELOG.md | 6 + plugins/deep-link/examples/app/package.json | 4 +- plugins/deep-link/package.json | 2 +- plugins/dialog/CHANGELOG.md | 11 +- plugins/dialog/Cargo.toml | 4 +- plugins/dialog/package.json | 2 +- plugins/fs/CHANGELOG.md | 9 +- plugins/fs/Cargo.toml | 2 +- plugins/fs/package.json | 2 +- plugins/global-shortcut/CHANGELOG.md | 6 +- plugins/global-shortcut/Cargo.toml | 2 +- plugins/global-shortcut/package.json | 2 +- plugins/http/CHANGELOG.md | 26 ++++- plugins/http/Cargo.toml | 4 +- plugins/http/package.json | 2 +- plugins/localhost/CHANGELOG.md | 4 + plugins/localhost/Cargo.toml | 2 +- plugins/log/CHANGELOG.md | 6 +- plugins/log/Cargo.toml | 2 +- plugins/log/package.json | 2 +- plugins/nfc/CHANGELOG.md | 6 +- plugins/nfc/Cargo.toml | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/CHANGELOG.md | 6 +- plugins/notification/Cargo.toml | 2 +- plugins/notification/package.json | 2 +- plugins/os/CHANGELOG.md | 6 +- plugins/os/Cargo.toml | 2 +- plugins/os/package.json | 2 +- plugins/persisted-scope/CHANGELOG.md | 8 ++ plugins/persisted-scope/Cargo.toml | 4 +- plugins/positioner/CHANGELOG.md | 6 +- plugins/positioner/Cargo.toml | 2 +- plugins/positioner/package.json | 2 +- plugins/process/CHANGELOG.md | 6 +- plugins/process/Cargo.toml | 2 +- plugins/process/package.json | 2 +- plugins/shell/CHANGELOG.md | 9 +- plugins/shell/Cargo.toml | 2 +- plugins/shell/package.json | 2 +- plugins/single-instance/CHANGELOG.md | 5 + plugins/single-instance/Cargo.toml | 2 +- plugins/sql/CHANGELOG.md | 6 +- plugins/sql/Cargo.toml | 2 +- plugins/sql/package.json | 2 +- plugins/store/CHANGELOG.md | 6 +- plugins/store/Cargo.toml | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/CHANGELOG.md | 6 +- plugins/stronghold/Cargo.toml | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/CHANGELOG.md | 6 +- plugins/updater/Cargo.toml | 2 +- plugins/updater/package.json | 2 +- plugins/upload/CHANGELOG.md | 6 +- plugins/upload/Cargo.toml | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/CHANGELOG.md | 6 +- plugins/websocket/Cargo.toml | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/CHANGELOG.md | 6 +- plugins/window-state/Cargo.toml | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 118 +++++++++++++------- 89 files changed, 405 insertions(+), 168 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index f98964719..b7b5906e7 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -2,8 +2,18 @@ "tag": "beta", "changes": [ ".changes/beta.md", + ".changes/clipboard-html.md", + ".changes/dialog-can-create-directories.md", + ".changes/dialog-linux-freeze.md", + ".changes/enhance-http-scope.md", + ".changes/file-autogen-fix.md", + ".changes/fix-shutdown-timing.md", ".changes/fix-zbus-import.md", + ".changes/http-user-agent.md", ".changes/msrv-1.75.md", - ".changes/tauri-beta-4.md" + ".changes/shell-shellexcute.md", + ".changes/tauri-beta-4.md", + ".changes/tauri-beta-8.md", + ".changes/tauri-beta-9.md" ] } diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 97bab4e7e..a5799d0c6 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## \[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] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index 6faee7bec..10858549c 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -10,20 +10,20 @@ }, "dependencies": { "@tauri-apps/api": "2.0.0-beta.4", - "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.1", - "@tauri-apps/plugin-biometric": "2.0.0-beta.1", - "@tauri-apps/plugin-cli": "2.0.0-beta.1", - "@tauri-apps/plugin-clipboard-manager": "2.0.0-beta.1", - "@tauri-apps/plugin-dialog": "2.0.0-beta.1", - "@tauri-apps/plugin-fs": "2.0.0-beta.1", - "@tauri-apps/plugin-global-shortcut": "2.0.0-beta.1", - "@tauri-apps/plugin-http": "2.0.0-beta.1", - "@tauri-apps/plugin-nfc": "2.0.0-beta.1", - "@tauri-apps/plugin-notification": "2.0.0-beta.1", - "@tauri-apps/plugin-os": "2.0.0-beta.1", - "@tauri-apps/plugin-process": "2.0.0-beta.1", - "@tauri-apps/plugin-shell": "2.0.0-beta.1", - "@tauri-apps/plugin-updater": "2.0.0-beta.1", + "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.2", + "@tauri-apps/plugin-biometric": "2.0.0-beta.2", + "@tauri-apps/plugin-cli": "2.0.0-beta.2", + "@tauri-apps/plugin-clipboard-manager": "2.0.0-beta.2", + "@tauri-apps/plugin-dialog": "2.0.0-beta.2", + "@tauri-apps/plugin-fs": "2.0.0-beta.2", + "@tauri-apps/plugin-global-shortcut": "2.0.0-beta.2", + "@tauri-apps/plugin-http": "2.0.0-beta.2", + "@tauri-apps/plugin-nfc": "2.0.0-beta.2", + "@tauri-apps/plugin-notification": "2.0.0-beta.2", + "@tauri-apps/plugin-os": "2.0.0-beta.2", + "@tauri-apps/plugin-process": "2.0.0-beta.2", + "@tauri-apps/plugin-shell": "2.0.0-beta.2", + "@tauri-apps/plugin-updater": "2.0.0-beta.2", "@zerodevx/svelte-json-view": "1.0.7" }, "devDependencies": { diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 20364e9a1..900dd75c9 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## \[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] ### Dependencies diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 21c1ad634..b93ad33ec 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -9,55 +9,49 @@ license = "Apache-2.0 OR MIT" [lib] name = "api_lib" -crate-type = ["staticlib", "cdylib", "rlib"] +crate-type = [ "staticlib", "cdylib", "rlib" ] [build-dependencies] -tauri-build = { workspace = true, features = ["codegen", "isolation"] } +tauri-build = { workspace = true, features = [ "codegen", "isolation" ] } [dependencies] serde_json = { workspace = true } serde = { workspace = true } tiny_http = "0.11" log = { workspace = true } -tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.1" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.1", features = [ - "watch", -] } -tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-beta.1" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.1" } -tauri-plugin-http = { path = "../../../plugins/http", features = [ - "multipart", -], version = "2.0.0-beta.1" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.1", features = [ - "windows7-compat", -] } -tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.1" } -tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.1" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.1" } +tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-beta.2" } +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-beta.2", features = [ "watch" ] } +tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-beta.2" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-beta.2" } +tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart" ], version = "2.0.0-beta.2" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-beta.2", features = [ "windows7-compat" ] } +tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-beta.2" } +tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-beta.2" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-beta.2" } -[dependencies.tauri] -workspace = true -features = [ + [dependencies.tauri] + workspace = true + features = [ "image-ico", "image-png", "isolation", "macos-private-api", "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] -tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-beta.1" } -tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.1" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.1" } +tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-beta.2" } +tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-beta.2" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-beta.2" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] -tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.1" } -tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.1" } -tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.1" } +tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-beta.2" } +tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-beta.2" } +tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-beta.2" } [target."cfg(target_os = \"windows\")".dependencies] window-shadows = "0.2" [features] -prod = ["tauri/custom-protocol"] +prod = [ "tauri/custom-protocol" ] diff --git a/plugins/authenticator/CHANGELOG.md b/plugins/authenticator/CHANGELOG.md index 84b71e6fb..03f3c39b1 100644 --- a/plugins/authenticator/CHANGELOG.md +++ b/plugins/authenticator/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -41,4 +45,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index 9963b63e8..e33fcd15c 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-authenticator" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Use hardware security-keys in your Tauri App." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/authenticator/package.json b/plugins/authenticator/package.json index 7da13dd02..bae1a983f 100644 --- a/plugins/authenticator/package.json +++ b/plugins/authenticator/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-authenticator", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Use hardware security-keys in your Tauri App.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/autostart/CHANGELOG.md b/plugins/autostart/CHANGELOG.md index 84b71e6fb..03f3c39b1 100644 --- a/plugins/autostart/CHANGELOG.md +++ b/plugins/autostart/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -41,4 +45,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index f9c4fc86f..c8238a8da 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-autostart" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Automatically launch your application at startup." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index be4b4032f..59adcd916 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-autostart", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index 01a59b612..8627e3b48 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -28,4 +32,4 @@ ## \[2.0.0-alpha.0] - [`454428c`](https://github.com/tauri-apps/plugins-workspace/commit/454428cd50ce4962f0bad8e355aebc68af8cc61f)([#536](https://github.com/tauri-apps/plugins-workspace/pull/536)) Initial release. -commit/454428cd50ce4962f0bad8e355aebc68af8cc61f)([#536](https://github.com/tauri-apps/plugins-workspace/pull/536)) Initial release. + commit/454428cd50ce4962f0bad8e355aebc68af8cc61f)([#536](https://github.com/tauri-apps/plugins-workspace/pull/536)) Initial release. diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 81f8e4f1e..5b0fcbae0 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS" edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index c213ddbf3..376787c48 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/biometric/CHANGELOG.md b/plugins/biometric/CHANGELOG.md index 67aa19f94..4b57f6d67 100644 --- a/plugins/biometric/CHANGELOG.md +++ b/plugins/biometric/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -12,4 +16,4 @@ - [`8df28a9`](https://github.com/tauri-apps/plugins-workspace/commit/8df28a987519ecfa03dcb8635443025f8d010362)([#829](https://github.com/tauri-apps/plugins-workspace/pull/829)) Initial release. - [`8df28a9`](https://github.com/tauri-apps/plugins-workspace/commit/8df28a987519ecfa03dcb8635443025f8d010362)([#829](https://github.com/tauri-apps/plugins-workspace/pull/829)) Initial release. -commit/8df28a987519ecfa03dcb8635443025f8d010362)([#829](https://github.com/tauri-apps/plugins-workspace/pull/829)) Initial release. + commit/8df28a987519ecfa03dcb8635443025f8d010362)([#829](https://github.com/tauri-apps/plugins-workspace/pull/829)) Initial release. diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index c1699fd4c..dbf99dc00 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-biometric" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Prompt the user for biometric authentication on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 68f272960..df6dac90c 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-biometric", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/cli/CHANGELOG.md b/plugins/cli/CHANGELOG.md index 84b71e6fb..03f3c39b1 100644 --- a/plugins/cli/CHANGELOG.md +++ b/plugins/cli/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -41,4 +45,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index 478d6b477..5562a5596 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-cli" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Parse arguments from your Tauri application's command line interface." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/cli/package.json b/plugins/cli/package.json index 8966cb47d..a716a8302 100644 --- a/plugins/cli/package.json +++ b/plugins/cli/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-cli", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md index 46f2509a2..f24e7e10a 100644 --- a/plugins/clipboard-manager/CHANGELOG.md +++ b/plugins/clipboard-manager/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.2] + +- [`dc6d332`](https://github.com/tauri-apps/plugins-workspace/commit/dc6d3321e5305fa8b7250553bd179cbee995998a)([#977](https://github.com/tauri-apps/plugins-workspace/pull/977)) Add support for writing HTML content to the clipboard. +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -41,4 +46,4 @@ ## \[2.0.0-alpha.0] - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index cd032ac1f..9a3c51e3f 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Read and write to the system clipboard." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index 211d4fc60..33a4c2692 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-clipboard-manager", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index 3f711d809..33e79dbd4 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -36,4 +40,4 @@ - [`eccd6f9`](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. - [`eccd6f9`](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. -commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. + commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 95c495576..0f9d251de 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/deep-link/examples/app/CHANGELOG.md b/plugins/deep-link/examples/app/CHANGELOG.md index 7277d85ae..a8578b6b0 100644 --- a/plugins/deep-link/examples/app/CHANGELOG.md +++ b/plugins/deep-link/examples/app/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-beta.2] + +### Dependencies + +- Upgraded to `deep-link-js@2.0.0-beta.2` + ## \[2.0.0-beta.1] ### Dependencies diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index cc1e4d546..208fd9dcf 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -1,7 +1,7 @@ { "name": "deep-link-example", "private": true, - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "type": "module", "scripts": { "dev": "vite", @@ -11,7 +11,7 @@ }, "dependencies": { "@tauri-apps/api": "2.0.0-beta.4", - "@tauri-apps/plugin-deep-link": "2.0.0-beta.1" + "@tauri-apps/plugin-deep-link": "2.0.0-beta.2" }, "devDependencies": { "@tauri-apps/cli": "2.0.0-beta.7", diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 3417c9181..02e81a126 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-deep-link", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Set your Tauri application as the default handler for an URL", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 39b3bbf33..eb032c147 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.2] + +- [`aa25c91`](https://github.com/tauri-apps/plugins-workspace/commit/aa25c91bb01e957872fb2b606a3acaf2f2c4ef3a)([#978](https://github.com/tauri-apps/plugins-workspace/pull/978)) Allow configuring `canCreateDirectories` for open and save dialogs on macOS, if not configured, it will be set to `true` by default. +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -87,5 +92,9 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! pull/371)) First v2 alpha release! -kspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + kspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + pull/371)) First v2 alpha release! +71](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + pull/371)) First v2 alpha release! + kspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! pull/371)) First v2 alpha release! diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index eb40f6a18..5d1aba6af 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -22,7 +22,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.2" } [target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] glib = "0.16" diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index cbbcfbb13..c09913786 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-dialog", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index c4e8e6d3e..ed82af7ce 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.2] + +- [`7358102`](https://github.com/tauri-apps/plugins-workspace/commit/735810237e21504a027a65a7b3c25fd7e594288a)([#1029](https://github.com/tauri-apps/plugins-workspace/pull/1029)) Fix infinite loop on cargo build operations +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -55,4 +60,6 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! +.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 3f7cdbf70..01cb24400 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 8b6ebfd7f..0c5c6af25 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-fs", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Access the file system.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/global-shortcut/CHANGELOG.md b/plugins/global-shortcut/CHANGELOG.md index fd6708512..3d113bcab 100644 --- a/plugins/global-shortcut/CHANGELOG.md +++ b/plugins/global-shortcut/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -47,4 +51,4 @@ ## \[2.0.0-alpha.0] - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 90cbaa586..5c306faac 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-global-shortcut" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Register global hotkeys listeners on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/global-shortcut/package.json b/plugins/global-shortcut/package.json index 5ce28ccc1..9f02df12f 100644 --- a/plugins/global-shortcut/package.json +++ b/plugins/global-shortcut/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-global-shortcut", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index 31e0250f8..d956de0df 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.2] + +- [`ae56b13`](https://github.com/tauri-apps/plugins-workspace/commit/ae56b13a4d49dbf922b8a0fbb0d557bb63c1d72b)([#983](https://github.com/tauri-apps/plugins-workspace/pull/983)) Allow `User-Agent` header to be set. +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -72,7 +77,26 @@ 371\)) First v2 alpha release! ! 371\)) First v2 alpha release! -ace/pull/371)) First v2 alpha release! + ace/pull/371)) First v2 alpha release! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! +2 alpha release! + ! + 371\)) First v2 alpha release! + /717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! + ! + 371\)) First v2 alpha release! + ace/pull/371)) First v2 alpha release! 371\)) First v2 alpha release! ! 371\)) First v2 alpha release! diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 6bd71f19d..a35c1401a 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -25,7 +25,7 @@ serde = { workspace = true } serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.2" } urlpattern = "0.2" regex = "1" http = "0.2" diff --git a/plugins/http/package.json b/plugins/http/package.json index 52788f08c..ddd70e6ac 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-http", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/localhost/CHANGELOG.md b/plugins/localhost/CHANGELOG.md index d69e37271..2578d639c 100644 --- a/plugins/localhost/CHANGELOG.md +++ b/plugins/localhost/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`14f381a`](https://github.com/tauri-apps/plugins-workspace/commit/14f381acf8fe690acecc676922c6f05939b95734) Update MSRV to 1.75. diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index e23343dc1..c571e4fa1 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-localhost" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Expose your apps assets through a localhost server instead of the default custom protocol." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md index 2978fe214..f3b4c5e00 100644 --- a/plugins/log/CHANGELOG.md +++ b/plugins/log/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -45,4 +49,4 @@ https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ase! https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 309431c76..bb8f35e82 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-log" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Configurable logging for your Tauri app." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/package.json b/plugins/log/package.json index 525be84a6..17d969367 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-log", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Configurable logging for your Tauri app.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/nfc/CHANGELOG.md b/plugins/nfc/CHANGELOG.md index 0350c5d74..eb51853b7 100644 --- a/plugins/nfc/CHANGELOG.md +++ b/plugins/nfc/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -12,4 +16,4 @@ ## \[2.0.0-alpha.0] - [`fe79adb`](https://github.com/tauri-apps/plugins-workspace/commit/fe79adb5c7febd0e912efb5581264d671709fbb0)([#830](https://github.com/tauri-apps/plugins-workspace/pull/830)) Initial release. -commit/fe79adb5c7febd0e912efb5581264d671709fbb0)([#830](https://github.com/tauri-apps/plugins-workspace/pull/830)) Initial release. + commit/fe79adb5c7febd0e912efb5581264d671709fbb0)([#830](https://github.com/tauri-apps/plugins-workspace/pull/830)) Initial release. diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index 507fc5191..fd8d54457 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-nfc" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Read and write NFC tags on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index d1e9ee7af..021b13425 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-nfc", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index 0e8731dce..aad236e3f 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -53,4 +57,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ithub.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index eb5e6a86c..c9addf082 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/notification/package.json b/plugins/notification/package.json index cff9a71d9..1115719e3 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-notification", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/os/CHANGELOG.md b/plugins/os/CHANGELOG.md index 6355fe2e8..8a0c3fae3 100644 --- a/plugins/os/CHANGELOG.md +++ b/plugins/os/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -53,4 +57,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index 5be5846f5..1e6b71ea8 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-os" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Read information about the operating system." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/os/package.json b/plugins/os/package.json index 8ebbf4c50..b4293840a 100644 --- a/plugins/os/package.json +++ b/plugins/os/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-os", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 6d5c65141..96409e4ed 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + +### Dependencies + +- Upgraded to `fs@2.0.0-beta.2` + ## \[2.0.0-beta.1] - [`14f381a`](https://github.com/tauri-apps/plugins-workspace/commit/14f381acf8fe690acecc676922c6f05939b95734) Update MSRV to 1.75. diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index c8f75f0f5..afa9d7360 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -19,7 +19,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-beta.2" } [features] protocol-asset = [ "tauri/protocol-asset" ] diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index ebf02bd39..e1c92761e 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -101,4 +105,4 @@ \-19 data on 2021-11-19 - [39e517c](https://www.github.com/JonasKruckenberg/tauri-plugin-positioner/commit/39e517c145a4a901839ae9b46e296370ce6ababf) Update update-metadata.md on 2021-11-19 -m/JonasKruckenberg/tauri-plugin-positioner/commit/39e517c145a4a901839ae9b46e296370ce6ababf) Update update-metadata.md on 2021-11-19 + m/JonasKruckenberg/tauri-plugin-positioner/commit/39e517c145a4a901839ae9b46e296370ce6ababf) Update update-metadata.md on 2021-11-19 diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 1e4b57308..1f6fc0807 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 4e677b80d..320e69d41 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Position your windows at well-known locations.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/process/CHANGELOG.md b/plugins/process/CHANGELOG.md index 84b71e6fb..03f3c39b1 100644 --- a/plugins/process/CHANGELOG.md +++ b/plugins/process/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -41,4 +45,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index 5d1b2e1aa..f8066f79e 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-process" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Access the current process of your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/process/package.json b/plugins/process/package.json index ec482b9e7..2e9ff28e6 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-process", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index 13d76c86b..70ff8287b 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.2] + +- [`9586eab`](https://github.com/tauri-apps/plugins-workspace/commit/9586eabd5a96673e4d976757777f470ae358d68a)([#1021](https://github.com/tauri-apps/plugins-workspace/pull/1021)) On Windows, fix `open` can't open file if the file is being used by a program. +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -49,4 +54,6 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! .com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! +.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index 89dfd1aa2..97812318d 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/shell/package.json b/plugins/shell/package.json index d8fa339fc..22d4ff241 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-shell", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index f25e89a6c..efcb3386c 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-beta.3] + +- [`2397ec5`](https://github.com/tauri-apps/plugins-workspace/commit/2397ec5937e594397e533925ccd257cae30b4cd1)([#1019](https://github.com/tauri-apps/plugins-workspace/pull/1019)) Fix doesn't shutdown immediately. +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.2] - [`6d1e621`](https://github.com/tauri-apps/plugins-workspace/commit/6d1e6218b5877ef91f589f790f7251acda9c9605)([#981](https://github.com/tauri-apps/plugins-workspace/pull/981)) Fix `zbus::blocking::connection::Builder` import. diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 7a5fb0720..3635c1c4e 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-beta.2" +version = "2.0.0-beta.3" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 57dc46dd2..f82a1ddda 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -51,4 +55,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index d74c3f867..ada300ce8 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index 0159c5865..b7d32a61e 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-sql", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Interface with SQL databases", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index c71ad4c87..1a94cc62e 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -44,4 +48,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index a91d96e43..04e7fdf69 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/package.json b/plugins/store/package.json index 1f4dfd4fd..fcb7c1f90 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-store", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Simple, persistent key-value store.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/stronghold/CHANGELOG.md b/plugins/stronghold/CHANGELOG.md index 329770031..59f0d0c5c 100644 --- a/plugins/stronghold/CHANGELOG.md +++ b/plugins/stronghold/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -42,4 +46,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! \`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! \`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 8fb6f4a4d..ab4348186 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-stronghold" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Store secrets and keys using the IOTA Stronghold encrypted database." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index e59613510..e843ed02e 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-stronghold", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Store secrets and keys using the IOTA Stronghold encrypted database.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index 16ffe2354..7f0e2a88f 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -81,4 +85,4 @@ ## \[2.0.0-alpha.0] - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index e30345c9d..2440a6ecc 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/updater/package.json b/plugins/updater/package.json index 99c58ec31..38814ca6f 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-updater", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index fab00b132..f25f9bf5b 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -42,4 +46,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 17ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 2db3ac153..e8c3a9f2f 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index ed8c6c713..94d41c959 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-upload", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Upload files from disk to a remote server over HTTP.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/websocket/CHANGELOG.md b/plugins/websocket/CHANGELOG.md index f8865a013..8b323a322 100644 --- a/plugins/websocket/CHANGELOG.md +++ b/plugins/websocket/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -47,4 +51,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ae67\`]\(https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index ab3beff21..8d4d042e7 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-websocket" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Expose a WebSocket server to your Tauri frontend." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 26e29af41..421297caf 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-websocket", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index 7a380c034..99cfb82af 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.2] + +- [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. + ## \[2.0.0-beta.1] - [`569defb`](https://github.com/tauri-apps/plugins-workspace/commit/569defbe9492e38938554bb7bdc1be9151456d21) Update to tauri beta.4. @@ -45,4 +49,4 @@ lugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! /pull/371)) First v2 alpha release! lugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 60c03781a..e7b5904cd 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index e82459217..0b0f44556 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-window-state", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Save window positions and sizes and restore them when the app is reopened.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e6b1923d..b8cc145e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,46 +67,46 @@ importers: specifier: 2.0.0-beta.4 version: 2.0.0-beta.4 '@tauri-apps/plugin-barcode-scanner': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/barcode-scanner '@tauri-apps/plugin-biometric': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/biometric '@tauri-apps/plugin-cli': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/cli '@tauri-apps/plugin-clipboard-manager': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/dialog '@tauri-apps/plugin-fs': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/fs '@tauri-apps/plugin-global-shortcut': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/global-shortcut '@tauri-apps/plugin-http': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/http '@tauri-apps/plugin-nfc': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/nfc '@tauri-apps/plugin-notification': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/notification '@tauri-apps/plugin-os': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/os '@tauri-apps/plugin-process': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/process '@tauri-apps/plugin-shell': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/shell '@tauri-apps/plugin-updater': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../../plugins/updater '@zerodevx/svelte-json-view': specifier: 1.0.7 @@ -135,7 +135,7 @@ importers: version: 4.2.8 unocss: specifier: ^0.58.0 - version: 0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12) + version: 0.58.0(postcss@8.4.32)(vite@5.0.12) vite: specifier: ^5.0.12 version: 5.0.12 @@ -192,7 +192,7 @@ importers: specifier: 2.0.0-beta.4 version: 2.0.0-beta.4 '@tauri-apps/plugin-deep-link': - specifier: 2.0.0-beta.1 + specifier: 2.0.0-beta.2 version: link:../.. devDependencies: '@tauri-apps/cli': @@ -395,7 +395,7 @@ packages: '@babel/traverse': 7.23.5 '@babel/types': 7.23.5 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 7.5.4 @@ -665,7 +665,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.5 '@babel/types': 7.23.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -799,7 +799,7 @@ packages: peerDependencies: mocha: ^10.0.0 dependencies: - effection: 2.0.8(mocha@10.2.0) + effection: 2.0.8 mocha: 10.2.0 dev: true @@ -1046,7 +1046,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 espree: 9.6.1 globals: 13.23.0 ignore: 5.3.0 @@ -1068,7 +1068,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1109,7 +1109,7 @@ packages: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.6 '@iconify/types': 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -1225,6 +1225,20 @@ packages: typescript: 5.3.3 dev: true + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@rollup/pluginutils@5.1.0(rollup@4.9.6): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -1449,7 +1463,7 @@ packages: vite: ^5.0.0 dependencies: '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 svelte: 4.2.8 vite: 5.0.12 transitivePeerDependencies: @@ -1464,7 +1478,7 @@ packages: vite: ^5.0.0 dependencies: '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.12) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 @@ -1638,7 +1652,7 @@ packages: '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 @@ -1664,7 +1678,7 @@ packages: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: @@ -1691,7 +1705,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -1715,7 +1729,7 @@ packages: dependencies: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -1757,7 +1771,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@unocss/astro@0.58.0(rollup@4.9.6)(vite@5.0.12): + /@unocss/astro@0.58.0(vite@5.0.12): resolution: {integrity: sha512-df+tEFO5eKXjQOwSWQhS9IdjD0sfLHLtn8U09sEKR2Nmh5CvpwyBxmvLQgOCilPou7ehmyKfsyGRLZg7IMp+Ew==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1767,19 +1781,19 @@ packages: dependencies: '@unocss/core': 0.58.0 '@unocss/reset': 0.58.0 - '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) + '@unocss/vite': 0.58.0(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - rollup dev: true - /@unocss/cli@0.58.0(rollup@4.9.6): + /@unocss/cli@0.58.0: resolution: {integrity: sha512-rhsrDBxAVueygMcAbMkbuvsHbBL2rG6N96LllYwHn16FLgOE3Sf4JW1/LlNjQje3BtwMMtbSCCAeu2SryFhzbw==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0 '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/preset-uno': 0.58.0 @@ -1955,13 +1969,13 @@ packages: '@unocss/core': 0.58.0 dev: true - /@unocss/vite@0.58.0(rollup@4.9.6)(vite@5.0.12): + /@unocss/vite@0.58.0(vite@5.0.12): resolution: {integrity: sha512-OCUOLMSOBEtXOEyBbAvMI3/xdR175BWRzmvV9Wc34ANZclEvCdVH8+WU725ibjY4VT0gVIuX68b13fhXdHV41A==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0 '@unocss/config': 0.58.0 '@unocss/core': 0.58.0 '@unocss/inspector': 0.58.0 @@ -2464,6 +2478,18 @@ packages: ms: 2.1.3 dev: true + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2564,6 +2590,18 @@ packages: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true + /effection@2.0.8: + resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} + dependencies: + '@effection/channel': 2.0.6 + '@effection/core': 2.2.3 + '@effection/events': 2.0.6 + '@effection/fetch': 2.0.7(mocha@10.2.0) + '@effection/main': 2.1.2 + '@effection/stream': 2.0.6 + '@effection/subscription': 2.0.6 + dev: true + /effection@2.0.8(mocha@10.2.0): resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} dependencies: @@ -2906,7 +2944,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -3828,7 +3866,7 @@ packages: /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -4855,7 +4893,7 @@ packages: '@types/unist': 2.0.10 dev: true - /unocss@0.58.0(postcss@8.4.32)(rollup@4.9.6)(vite@5.0.12): + /unocss@0.58.0(postcss@8.4.32)(vite@5.0.12): resolution: {integrity: sha512-MSPRHxBqWN+1AHGV+J5uUy4//e6ZBK6O+ISzD0qrXcCD/GNtxk1+lYjOK2ltkUiKX539+/KF91vNxzhhwEf+xA==} engines: {node: '>=14'} peerDependencies: @@ -4867,8 +4905,8 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.0(rollup@4.9.6)(vite@5.0.12) - '@unocss/cli': 0.58.0(rollup@4.9.6) + '@unocss/astro': 0.58.0(vite@5.0.12) + '@unocss/cli': 0.58.0 '@unocss/core': 0.58.0 '@unocss/extractor-arbitrary-variants': 0.58.0 '@unocss/postcss': 0.58.0(postcss@8.4.32) @@ -4886,7 +4924,7 @@ packages: '@unocss/transformer-compile-class': 0.58.0 '@unocss/transformer-directives': 0.58.0 '@unocss/transformer-variant-group': 0.58.0 - '@unocss/vite': 0.58.0(rollup@4.9.6)(vite@5.0.12) + '@unocss/vite': 0.58.0(vite@5.0.12) vite: 5.0.12 transitivePeerDependencies: - postcss From 79691e93e04b820e44dce1c7d91b8865fa6ccb14 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:52:33 +0800 Subject: [PATCH 110/643] fix(store): `with_store` and `StoreCollection` become private in #1011 (#1040) * Fix with_store become private in #1011 * Add change file --- .changes/public-with-store.md | 5 +++++ plugins/store/src/lib.rs | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changes/public-with-store.md diff --git a/.changes/public-with-store.md b/.changes/public-with-store.md new file mode 100644 index 000000000..33dc15bbf --- /dev/null +++ b/.changes/public-with-store.md @@ -0,0 +1,5 @@ +--- +'store': patch +--- + +Fix `with_store` and `StoreCollection` changed to private in #1011 diff --git a/plugins/store/src/lib.rs b/plugins/store/src/lib.rs index 700b058e4..2b923fdee 100644 --- a/plugins/store/src/lib.rs +++ b/plugins/store/src/lib.rs @@ -48,7 +48,7 @@ struct ChangePayload<'a> { value: &'a JsonValue, } -struct StoreCollection { +pub struct StoreCollection { stores: Mutex>>, frozen: bool, @@ -56,7 +56,7 @@ struct StoreCollection { mobile_plugin_handle: PluginHandle, } -fn with_store) -> Result>( +pub fn with_store) -> Result>( app: AppHandle, collection: State<'_, StoreCollection>, path: impl AsRef, From c281df8d791fb1e8ca3f5ed5b126eedc17152b43 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 7 Mar 2024 11:56:39 +0100 Subject: [PATCH 111/643] ci: Move cargo target dir to /mnt (#1039) Currently our publishing workflow fails _twice_ because it runs out of disk space. https://github.com/tauri-apps/plugins-workspace/actions/runs/8182433330/job/22373757645#step:8:8499 A month ago github changed the azure vms for public repos which resulted in a size decrease of the root partition by ~10gb (though i kinda doubt this is the sole reason because it doesn't fail once, but twice). At the same time the /mnt partition was increased to a whopping 75gb, over 60gb of it unused, since the root partition only has ~20gb free space we'll let rust save its artifact into /mnt hoping that we're actually dealing with space issues and not something else... --- .github/workflows/covector-version-or-publish-v2.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/covector-version-or-publish-v2.yml b/.github/workflows/covector-version-or-publish-v2.yml index 6d1ce3a75..bfbab699e 100644 --- a/.github/workflows/covector-version-or-publish-v2.yml +++ b/.github/workflows/covector-version-or-publish-v2.yml @@ -46,10 +46,17 @@ jobs: git config --global user.name "${{ github.event.pusher.name }}" git config --global user.email "${{ github.event.pusher.email }}" + - name: Setup target dir on /mnt + 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) uses: jbolda/covector/packages/action@covector-v0 id: covector env: + CARGO_TARGET_DIR: /mnt/target NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }} with: token: ${{ secrets.GITHUB_TOKEN }} From 685c4094c56ef0176809dafd0d33a83abed99828 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 7 Mar 2024 12:11:42 +0100 Subject: [PATCH 112/643] ci: Change paths-filter's base to v2 branch (#1043) Currently it compares it to the default branch (v1) which makes it always run all plugin checks. While i plan to change default branches soon i still need a bit more time for this. --- .github/workflows/test-rust.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index ead80be32..5d138fce9 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -42,6 +42,7 @@ jobs: - uses: dorny/paths-filter@v2 id: filter with: + base: v2 filters: | tauri-plugin-authenticator: - .github/workflows/test-rust.yml From 75d82868b214b9d53ce8c80f518b78432574f9f4 Mon Sep 17 00:00:00 2001 From: DK Liao Date: Thu, 7 Mar 2024 19:15:46 +0800 Subject: [PATCH 113/643] docs(positioner): Update positioner readme to new tray api (#1041) `on_system_tray_event` is now reworked into `on_tray_icon_event` --- plugins/positioner/README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 4dd31413b..e6b25170a 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -51,12 +51,19 @@ First you need to register the core plugin with Tauri: `src-tauri/src/main.rs` ```rust +use tauri::tray::TrayIconBuilder; + fn main() { tauri::Builder::default() .plugin(tauri_plugin_positioner::init()) // This is required to get tray-relative positions to work - .on_system_tray_event(|app, event| { - tauri_plugin_positioner::on_tray_event(app, &event); + .setup(|app| { + TrayIconBuilder::new() + .on_tray_icon_event(|app, event| { + tauri_plugin_positioner::on_tray_event(app.app_handle(), &event); + }) + .build(app)?; + Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application"); From 644eb448bb5d32ee837c35902bfd14e3914e2bc5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:19:11 +0100 Subject: [PATCH 114/643] publish new versions (#1042) Co-authored-by: FabianLars --- .changes/pre.json | 1 + plugins/store/CHANGELOG.md | 4 ++++ plugins/store/Cargo.toml | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.changes/pre.json b/.changes/pre.json index b7b5906e7..246884ca8 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -11,6 +11,7 @@ ".changes/fix-zbus-import.md", ".changes/http-user-agent.md", ".changes/msrv-1.75.md", + ".changes/public-with-store.md", ".changes/shell-shellexcute.md", ".changes/tauri-beta-4.md", ".changes/tauri-beta-8.md", diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 1a94cc62e..ae9b43ab7 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-beta.3] + +- [`79691e9`](https://github.com/tauri-apps/plugins-workspace/commit/79691e93e04b820e44dce1c7d91b8865fa6ccb14)([#1040](https://github.com/tauri-apps/plugins-workspace/pull/1040)) Fix `with_store` and `StoreCollection` changed to private in #1011 + ## \[2.0.0-beta.2] - [`99bea25`](https://github.com/tauri-apps/plugins-workspace/commit/99bea2559c2c0648c2519c50a18cd124dacef57b)([#1005](https://github.com/tauri-apps/plugins-workspace/pull/1005)) Update to tauri beta.8. diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index 04e7fdf69..8b6328d61 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.0-beta.2" +version = "2.0.0-beta.3" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } From 62dafda6526899b407a7c5a1bb269c5c0dfb2630 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 7 Mar 2024 18:33:44 +0200 Subject: [PATCH 115/643] refactor!(global-shortcut): better APIs DX (#969) * feat(global-shortcut): add `GlobalShortcutExt::register_with_handler` ref: https://github.com/tauri-apps/plugins-workspace/issues/965 * clippy * refactor apis to take closure by default * change file * Update .changes/global-shortcut-refactor.md Co-authored-by: Simon Hyll * Update global-shortcut-refactor.md * use option instead * clippy * update readme * on_shortcut and with_shortcut * map handler * simplify events * lint --------- Co-authored-by: Simon Hyll Co-authored-by: Lucas Nogueira --- .changes/global-shortcut-refactor.md | 9 ++ plugins/global-shortcut/README.md | 24 +-- plugins/global-shortcut/src/lib.rs | 227 +++++++++++++++++---------- 3 files changed, 168 insertions(+), 92 deletions(-) create mode 100644 .changes/global-shortcut-refactor.md diff --git a/.changes/global-shortcut-refactor.md b/.changes/global-shortcut-refactor.md new file mode 100644 index 000000000..295c8f6f9 --- /dev/null +++ b/.changes/global-shortcut-refactor.md @@ -0,0 +1,9 @@ +--- +"global-shortcut": "patch" +--- + +**Breaking change** Refactored the plugin Rust APIs for better DX and flexibility: + +- Changed `Builder::with_handler` to be a method instead of a static method, it will also be triggered for any and all shortcuts even if the shortcut is registered through JS. +- Added `Builder::with_shortcut` and `Builder::with_shortcuts` to register shortcuts on the plugin builder. +- Added `on_shortcut` and `on_all_shortcuts` to register shortcuts with a handler. diff --git a/plugins/global-shortcut/README.md b/plugins/global-shortcut/README.md index 4bdb24f40..f3288258e 100644 --- a/plugins/global-shortcut/README.md +++ b/plugins/global-shortcut/README.md @@ -57,20 +57,22 @@ fn main() { .setup(|app| { #[cfg(desktop)] { - use tauri_plugin_global_shortcut::{Code, GlobalShortcutExt, Modifiers, Shortcut}; + use tauri::Manager; + use tauri_plugin_global_shortcut::{Code, Modifiers}; - let ctrl_n_shortcut = Shortcut::new(Some(Modifiers::CONTROL), Code::KeyN); app.handle().plugin( - tauri_plugin_global_shortcut::Builder::with_handler(move |_app, shortcut| { - println!("{:?}", shortcut); - if shortcut == &ctrl_n_shortcut { - println!("Ctrl-N Detected!"); - } - }) - .build(), + tauri_plugin_global_shortcut::Builder::new() + .with_shortcuts(["ctrl+d", "alt+space"])? + .with_handler(|app, shortcut| { + if shortcut.matches(Modifiers::CONTROL, Code::KeyD) { + let _ = app.emit("shortcut-event", "Ctrl+D triggered"); + } + if shortcut.matches(Modifiers::ALT, Code::Space) { + let _ = app.emit("shortcut-event", "Alt+Space triggered"); + } + }) + .build(), )?; - - app.global_shortcut().register(ctrl_n_shortcut)?; } Ok(()) diff --git a/plugins/global-shortcut/src/lib.rs b/plugins/global-shortcut/src/lib.rs index eed72a99c..b1f3b83ec 100644 --- a/plugins/global-shortcut/src/lib.rs +++ b/plugins/global-shortcut/src/lib.rs @@ -35,20 +35,6 @@ type Result = std::result::Result; type HotKeyId = u32; type HandlerFn = Box, &Shortcut) + Send + Sync + 'static>; -enum ShortcutSource { - Ipc(Channel), - Rust, -} - -impl Clone for ShortcutSource { - fn clone(&self) -> Self { - match self { - Self::Ipc(channel) => Self::Ipc(channel.clone()), - Self::Rust => Self::Rust, - } - } -} - pub struct ShortcutWrapper(Shortcut); impl From for ShortcutWrapper { @@ -64,52 +50,52 @@ impl TryFrom<&str> for ShortcutWrapper { } } -struct RegisteredShortcut { - source: ShortcutSource, - shortcut: (Shortcut, Option), +struct RegisteredShortcut { + shortcut: Shortcut, + handler: Option>>, } pub struct GlobalShortcut { #[allow(dead_code)] app: AppHandle, - manager: std::result::Result, - shortcuts: Arc>>, + manager: GlobalHotKeyManager, + shortcuts: Arc>>>, } impl GlobalShortcut { - fn register_internal( + fn register_internal, &Shortcut) + Send + Sync + 'static>( &self, - shortcut: (Shortcut, Option), - source: ShortcutSource, + shortcut: Shortcut, + handler: Option, ) -> Result<()> { - let id = shortcut.0.id(); - acquire_manager(&self.manager)?.register(shortcut.0)?; + let id = shortcut.id(); + let handler = handler.map(|h| Arc::new(Box::new(h) as HandlerFn)); + + self.manager.register(shortcut)?; self.shortcuts .lock() .unwrap() - .insert(id, RegisteredShortcut { source, shortcut }); + .insert(id, RegisteredShortcut { shortcut, handler }); Ok(()) } - fn register_all_internal)>>( - &self, - shortcuts: S, - source: ShortcutSource, - ) -> Result<()> { - let hotkeys = shortcuts - .into_iter() - .collect::)>>(); + fn register_all_internal(&self, shortcuts: S, handler: Option) -> Result<()> + where + S: IntoIterator, + F: Fn(&AppHandle, &Shortcut) + Send + Sync + 'static, + { + let handler = handler.map(|h| Arc::new(Box::new(h) as HandlerFn)); + + let hotkeys = shortcuts.into_iter().collect::>(); - let manager = acquire_manager(&self.manager)?; let mut shortcuts = self.shortcuts.lock().unwrap(); - for hotkey in hotkeys { - manager.register(hotkey.0)?; - + for shortcut in hotkeys { + self.manager.register(shortcut)?; shortcuts.insert( - hotkey.0.id(), + shortcut.id(), RegisteredShortcut { - source: source.clone(), - shortcut: hotkey, + shortcut, + handler: handler.clone(), }, ); } @@ -117,34 +103,65 @@ impl GlobalShortcut { Ok(()) } - pub fn register>(&self, shortcut: S) -> Result<()> + /// Register a shortcut. + pub fn register(&self, shortcut: S) -> Result<()> where + S: TryInto, S::Error: std::error::Error, { - self.register_internal((try_into_shortcut(shortcut)?, None), ShortcutSource::Rust) + self.register_internal( + try_into_shortcut(shortcut)?, + None::, &Shortcut)>, + ) } - pub fn register_all, S: IntoIterator>( - &self, - shortcuts: S, - ) -> Result<()> + /// Register a shortcut with a handler. + pub fn on_shortcut(&self, shortcut: S, handler: F) -> Result<()> where + S: TryInto, + S::Error: std::error::Error, + F: Fn(&AppHandle, &Shortcut) + Send + Sync + 'static, + { + self.register_internal(try_into_shortcut(shortcut)?, Some(handler)) + } + + /// Register multiple shortcuts. + pub fn register_all(&self, shortcuts: S) -> Result<()> + where + S: IntoIterator, + T: TryInto, T::Error: std::error::Error, { let mut s = Vec::new(); for shortcut in shortcuts { - s.push((try_into_shortcut(shortcut)?, None)); + s.push(try_into_shortcut(shortcut)?); } - self.register_all_internal(s, ShortcutSource::Rust) + self.register_all_internal(s, None::, &Shortcut)>) + } + + /// Register multiple shortcuts with a handler. + pub fn on_all_shortcuts(&self, shortcuts: S, handler: F) -> Result<()> + where + S: IntoIterator, + T: TryInto, + T::Error: std::error::Error, + F: Fn(&AppHandle, &Shortcut) + Send + Sync + 'static, + { + let mut s = Vec::new(); + for shortcut in shortcuts { + s.push(try_into_shortcut(shortcut)?); + } + self.register_all_internal(s, Some(handler)) } pub fn unregister>(&self, shortcut: S) -> Result<()> where S::Error: std::error::Error, { - acquire_manager(&self.manager)? - .unregister(try_into_shortcut(shortcut)?) - .map_err(Into::into) + let shortcut = try_into_shortcut(shortcut)?; + self.manager.unregister(shortcut)?; + self.shortcuts.lock().unwrap().remove(&shortcut.id()); + Ok(()) } pub fn unregister_all, S: IntoIterator>( @@ -158,9 +175,15 @@ impl GlobalShortcut { for shortcut in shortcuts { s.push(try_into_shortcut(shortcut)?); } - acquire_manager(&self.manager)? - .unregister_all(&s) - .map_err(Into::into) + + self.manager.unregister_all(&s)?; + + let mut shortcuts = self.shortcuts.lock().unwrap(); + for s in s { + shortcuts.remove(&s.id()); + } + + Ok(()) } /// Determines whether the given shortcut is registered by this application or not. @@ -188,14 +211,6 @@ impl> GlobalShortcutExt for T { } } -fn acquire_manager( - manager: &std::result::Result, -) -> Result<&GlobalHotKeyManager> { - manager - .as_ref() - .map_err(|e| Error::GlobalHotkey(e.to_string())) -} - fn parse_shortcut>(shortcut: S) -> Result { shortcut.as_ref().parse().map_err(Into::into) } @@ -218,8 +233,10 @@ fn register( handler: Channel, ) -> Result<()> { global_shortcut.register_internal( - (parse_shortcut(&shortcut)?, Some(shortcut)), - ShortcutSource::Ipc(handler), + parse_shortcut(&shortcut)?, + Some(move |_app: &AppHandle, _shortcut: &Shortcut| { + let _ = handler.send(&shortcut); + }), ) } @@ -231,10 +248,22 @@ fn register_all( handler: Channel, ) -> Result<()> { let mut hotkeys = Vec::new(); + + let mut shortcut_map = HashMap::new(); for shortcut in shortcuts { - hotkeys.push((parse_shortcut(&shortcut)?, Some(shortcut))); + let hotkey = parse_shortcut(&shortcut)?; + shortcut_map.insert(hotkey.id(), shortcut); + hotkeys.push(hotkey); } - global_shortcut.register_all_internal(hotkeys, ShortcutSource::Ipc(handler)) + + global_shortcut.register_all_internal( + hotkeys, + Some(move |_app: &AppHandle, shortcut: &Shortcut| { + if let Some(shortcut_str) = shortcut_map.get(&shortcut.id()) { + let _ = handler.send(shortcut_str); + } + }), + ) } #[tauri::command] @@ -269,12 +298,14 @@ fn is_registered( } pub struct Builder { + shortcuts: Vec, handler: Option>, } impl Default for Builder { fn default() -> Self { Self { + shortcuts: Vec::new(), handler: Default::default(), } } @@ -285,16 +316,42 @@ impl Builder { Self::default() } + /// Add a shortcut to be registerd. + pub fn with_shortcut(mut self, shortcut: T) -> Result + where + T: TryInto, + T::Error: std::error::Error, + { + self.shortcuts.push(try_into_shortcut(shortcut)?); + Ok(self) + } + + /// Add multiple shortcuts to be registerd. + pub fn with_shortcuts(mut self, shortcuts: S) -> Result + where + S: IntoIterator, + T: TryInto, + T::Error: std::error::Error, + { + for shortcut in shortcuts { + self.shortcuts.push(try_into_shortcut(shortcut)?); + } + + Ok(self) + } + + /// Specify a global shortcut handler that will be triggered for any and all shortcuts. pub fn with_handler, &Shortcut) + Send + Sync + 'static>( + mut self, handler: F, ) -> Self { - Self { - handler: Some(Box::new(handler)), - } + self.handler.replace(Box::new(handler)); + self } pub fn build(self) -> TauriPlugin { let handler = self.handler; + let shortcuts = self.shortcuts; PluginBuilder::new("global-shortcut") .js_init_script(include_str!("api-iife.js").to_string()) .invoke_handler(tauri::generate_handler![ @@ -305,29 +362,37 @@ impl Builder { is_registered ]) .setup(move |app, _api| { - let shortcuts = - Arc::new(Mutex::new(HashMap::::new())); + let manager = GlobalHotKeyManager::new()?; + let mut store = HashMap::>::new(); + for shortcut in shortcuts { + manager.register(shortcut)?; + store.insert( + shortcut.id(), + RegisteredShortcut { + shortcut, + handler: None, + }, + ); + } + + let shortcuts = Arc::new(Mutex::new(store)); let shortcuts_ = shortcuts.clone(); let app_handle = app.clone(); GlobalHotKeyEvent::set_event_handler(Some(move |e: GlobalHotKeyEvent| { if let Some(shortcut) = shortcuts_.lock().unwrap().get(&e.id) { - match &shortcut.source { - ShortcutSource::Ipc(channel) => { - let _ = channel.send(&shortcut.shortcut.1); - } - ShortcutSource::Rust => { - if let Some(handler) = &handler { - handler(&app_handle, &shortcut.shortcut.0); - } - } + if let Some(handler) = &shortcut.handler { + handler(&app_handle, &shortcut.shortcut); + } + if let Some(handler) = &handler { + handler(&app_handle, &shortcut.shortcut); } } })); app.manage(GlobalShortcut { app: app.clone(), - manager: GlobalHotKeyManager::new(), + manager, shortcuts, }); Ok(()) From bff722451d904e0d4a00c605cfb02c5de2a59afc Mon Sep 17 00:00:00 2001 From: Naman Garg <155433377+naman-crabnebula@users.noreply.github.com> Date: Fri, 8 Mar 2024 04:37:08 +0530 Subject: [PATCH 116/643] docs(sql): Fix minor typo (#1048) --- plugins/sql/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/sql/README.md b/plugins/sql/README.md index 770db6b11..cbe47e86a 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -89,7 +89,7 @@ const result = await db.execute( ); const result = await db.execute( - "UPDATE todos SET title = $1, completed = $2 WHERE id = $3", + "UPDATE todos SET title = $1, status = $2 WHERE id = $3", [todos.title, todos.status, todos.id], ); @@ -100,7 +100,7 @@ const result = await db.execute( ); const result = await db.execute( - "UPDATE todos SET title = ?, completed = ? WHERE id = ?", + "UPDATE todos SET title = ?, status = ? WHERE id = ?", [todos.title, todos.status, todos.id], ); ``` From 753c7be0a6a78121d2e88ea0efc3040580c885b4 Mon Sep 17 00:00:00 2001 From: Lorenzo Rizzotti Date: Fri, 8 Mar 2024 06:31:47 +0100 Subject: [PATCH 117/643] feat(http) add unsafe-headers feature flag (#1050) * [http] add unsafe-headers feature flag * change file * fmt --- .changes/http-unsafe-headers.md | 5 +++ Cargo.lock | 58 ++++++++++++++++----------------- plugins/http/Cargo.toml | 1 + plugins/http/src/commands.rs | 7 ++-- 4 files changed, 40 insertions(+), 31 deletions(-) create mode 100644 .changes/http-unsafe-headers.md diff --git a/.changes/http-unsafe-headers.md b/.changes/http-unsafe-headers.md new file mode 100644 index 000000000..a387be97a --- /dev/null +++ b/.changes/http-unsafe-headers.md @@ -0,0 +1,5 @@ +--- +"http": patch +--- + +Add `unsafe-headers` cargo feature flag to allow using [forbidden headers](https://fetch.spec.whatwg.org/#terminology-headers). \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 59c410937..fad46e8b5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -230,7 +230,7 @@ checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "api" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6401,7 +6401,7 @@ dependencies = [ [[package]] name = "tauri-plugin-authenticator" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "authenticator", "base64 0.21.7", @@ -6423,7 +6423,7 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "auto-launch", "log", @@ -6436,7 +6436,7 @@ dependencies = [ [[package]] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6448,7 +6448,7 @@ dependencies = [ [[package]] name = "tauri-plugin-biometric" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6461,7 +6461,7 @@ dependencies = [ [[package]] name = "tauri-plugin-cli" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "clap", "log", @@ -6474,7 +6474,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "arboard", "log", @@ -6487,7 +6487,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6500,7 +6500,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "glib 0.16.9", "log", @@ -6516,7 +6516,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "anyhow", "glob", @@ -6535,7 +6535,7 @@ dependencies = [ [[package]] name = "tauri-plugin-global-shortcut" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "global-hotkey", "log", @@ -6548,7 +6548,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "data-url", "http 0.2.11", @@ -6567,7 +6567,7 @@ dependencies = [ [[package]] name = "tauri-plugin-localhost" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "http 1.0.0", "log", @@ -6580,7 +6580,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "android_logger", "byte-unit", @@ -6599,7 +6599,7 @@ dependencies = [ [[package]] name = "tauri-plugin-nfc" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6612,7 +6612,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "chrono", "color-backtrace", @@ -6640,7 +6640,7 @@ dependencies = [ [[package]] name = "tauri-plugin-os" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "gethostname", "log", @@ -6656,7 +6656,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "aho-corasick", "bincode", @@ -6670,7 +6670,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "log", "serde", @@ -6683,7 +6683,7 @@ dependencies = [ [[package]] name = "tauri-plugin-process" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "tauri", "tauri-plugin", @@ -6691,7 +6691,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "encoding_rs", "log", @@ -6709,7 +6709,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-beta.2" +version = "2.0.0-beta.3" dependencies = [ "log", "serde", @@ -6722,7 +6722,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "futures-core", "log", @@ -6738,7 +6738,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.0.0-beta.1" +version = "2.0.0-beta.3" dependencies = [ "log", "serde", @@ -6750,7 +6750,7 @@ dependencies = [ [[package]] name = "tauri-plugin-stronghold" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "hex", "iota-crypto 0.23.1", @@ -6771,7 +6771,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "base64 0.21.7", "dirs-next", @@ -6798,7 +6798,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "futures-util", "log", @@ -6815,7 +6815,7 @@ dependencies = [ [[package]] name = "tauri-plugin-websocket" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "futures-util", "http 1.0.0", @@ -6832,7 +6832,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-beta.1" +version = "2.0.0-beta.2" dependencies = [ "bincode", "bitflags 2.4.2", diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index a35c1401a..95860309e 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -53,3 +53,4 @@ deflate = [ "reqwest/deflate" ] trust-dns = [ "reqwest/trust-dns" ] socks = [ "reqwest/socks" ] http3 = [ "reqwest/http3" ] +unsafe-headers = [] diff --git a/plugins/http/src/commands.rs b/plugins/http/src/commands.rs index d4b2469bf..e88608f60 100644 --- a/plugins/http/src/commands.rs +++ b/plugins/http/src/commands.rs @@ -195,7 +195,8 @@ pub async fn fetch( for (name, value) in &headers { let name = HeaderName::from_bytes(name.as_bytes())?; let value = HeaderValue::from_bytes(value.as_bytes())?; - if !matches!( + #[cfg(not(feature = "unsafe-headers"))] + if matches!( name, // forbidden headers per fetch spec https://fetch.spec.whatwg.org/#terminology-headers header::ACCEPT_CHARSET @@ -218,8 +219,10 @@ pub async fn fetch( | header::UPGRADE | header::VIA ) { - request = request.header(name, value); + continue; } + + request = request.header(name, value); } // POST and PUT requests should always have a 0 length content-length, From 11d98e911e455d16c447ad8293e181fee4894808 Mon Sep 17 00:00:00 2001 From: FabianLars Date: Sun, 10 Mar 2024 13:21:17 +0100 Subject: [PATCH 118/643] chore(log): Fix lint and formatting --- plugins/log/guest-js/index.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/log/guest-js/index.ts b/plugins/log/guest-js/index.ts index e12add7d0..057b113ca 100644 --- a/plugins/log/guest-js/index.ts +++ b/plugins/log/guest-js/index.ts @@ -189,13 +189,14 @@ type LoggerFn = (fn: RecordPayload) => void; /** * Attaches a listener for the log, and calls the passed function for each log entry. * @param fn - * + * * @returns a function to cancel the listener. */ export async function attachLogger(fn: LoggerFn): Promise { return await listen("log://log", (event: Event) => { - let { message, level } = event.payload; - + const { level } = event.payload; + let { message } = event.payload; + // Strip ANSI escape codes message = message.replace( // TODO: Investigate security/detect-unsafe-regex @@ -209,7 +210,7 @@ export async function attachLogger(fn: LoggerFn): Promise { /** * Attaches a listener that writes log entries to the console as they come in. - * + * * @returns a function to cancel the listener. */ export async function attachConsole(): Promise { From 509c23ed365ce3db5b52918855f1ba8ae77dd726 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:36:12 +0100 Subject: [PATCH 119/643] chore(deps): update dependency rollup to v4.12.1 (#1031) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 4dc83682f..fe522644d 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.1", "prettier": "3.2.5", - "rollup": "4.12.0", + "rollup": "4.12.1", "typescript": "5.3.3" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 115108d32..e6d8ddf12 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.12.0) + version: 15.2.3(rollup@4.12.1) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.12.0) + version: 0.4.4(rollup@4.12.1) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.12.0)(typescript@5.3.3) + version: 11.1.6(rollup@4.12.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': specifier: 7.1.1 version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) @@ -52,8 +52,8 @@ importers: specifier: 3.2.5 version: 3.2.5 rollup: - specifier: 4.12.0 - version: 4.12.0 + specifier: 4.12.1 + version: 4.12.1 typescript: specifier: 5.3.3 version: 5.3.3 @@ -545,7 +545,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.1): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -554,16 +554,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@rollup/pluginutils': 5.1.0(rollup@4.12.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.12.0 + rollup: 4.12.1 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.12.0): + /@rollup/plugin-terser@0.4.4(rollup@4.12.1): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -572,13 +572,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.12.0 + rollup: 4.12.1 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.12.0)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.12.1)(typescript@5.3.3): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -591,13 +591,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@rollup/pluginutils': 5.1.0(rollup@4.12.1) resolve: 1.22.8 - rollup: 4.12.0 + rollup: 4.12.1 typescript: 5.3.3 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.12.0): + /@rollup/pluginutils@5.1.0(rollup@4.12.1): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -609,107 +609,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.12.0 + rollup: 4.12.1 dev: true - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + /@rollup/rollup-android-arm-eabi@4.12.1: + resolution: {integrity: sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + /@rollup/rollup-android-arm64@4.12.1: + resolution: {integrity: sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + /@rollup/rollup-darwin-arm64@4.12.1: + resolution: {integrity: sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + /@rollup/rollup-darwin-x64@4.12.1: + resolution: {integrity: sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + /@rollup/rollup-linux-arm-gnueabihf@4.12.1: + resolution: {integrity: sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + /@rollup/rollup-linux-arm64-gnu@4.12.1: + resolution: {integrity: sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + /@rollup/rollup-linux-arm64-musl@4.12.1: + resolution: {integrity: sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + /@rollup/rollup-linux-riscv64-gnu@4.12.1: + resolution: {integrity: sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + /@rollup/rollup-linux-x64-gnu@4.12.1: + resolution: {integrity: sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + /@rollup/rollup-linux-x64-musl@4.12.1: + resolution: {integrity: sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + /@rollup/rollup-win32-arm64-msvc@4.12.1: + resolution: {integrity: sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + /@rollup/rollup-win32-ia32-msvc@4.12.1: + resolution: {integrity: sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + /@rollup/rollup-win32-x64-msvc@4.12.1: + resolution: {integrity: sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==} cpu: [x64] os: [win32] requiresBuild: true @@ -2428,26 +2428,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.12.1: + resolution: {integrity: sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.12.1 + '@rollup/rollup-android-arm64': 4.12.1 + '@rollup/rollup-darwin-arm64': 4.12.1 + '@rollup/rollup-darwin-x64': 4.12.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.1 + '@rollup/rollup-linux-arm64-gnu': 4.12.1 + '@rollup/rollup-linux-arm64-musl': 4.12.1 + '@rollup/rollup-linux-riscv64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-musl': 4.12.1 + '@rollup/rollup-win32-arm64-msvc': 4.12.1 + '@rollup/rollup-win32-ia32-msvc': 4.12.1 + '@rollup/rollup-win32-x64-msvc': 4.12.1 fsevents: 2.3.3 dev: true @@ -2769,7 +2769,7 @@ packages: dependencies: esbuild: 0.19.12 postcss: 8.4.35 - rollup: 4.12.0 + rollup: 4.12.1 optionalDependencies: fsevents: 2.3.3 dev: true From c290049051f6a8f77fc21c5fa99b592d9a2113cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:39:40 +0100 Subject: [PATCH 120/643] chore(deps): update dependency typescript to v5.4.2 (#1034) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 90 +++++++++++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index fe522644d..13b1abdef 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "eslint-plugin-security": "2.1.1", "prettier": "3.2.5", "rollup": "4.12.1", - "typescript": "5.3.3" + "typescript": "5.4.2" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6d8ddf12..be83baa7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: version: 0.4.4(rollup@4.12.1) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.12.1)(typescript@5.3.3) + version: 11.1.6(rollup@4.12.1)(typescript@5.4.2) '@typescript-eslint/eslint-plugin': specifier: 7.1.1 - version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) + version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': specifier: 7.1.1 - version: 7.1.1(eslint@8.57.0)(typescript@5.3.3) + version: 7.1.1(eslint@8.57.0)(typescript@5.4.2) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,7 +35,7 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) @@ -55,8 +55,8 @@ importers: specifier: 4.12.1 version: 4.12.1 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.4.2 + version: 5.4.2 plugins/authenticator: dependencies: @@ -151,7 +151,7 @@ importers: version: 1.5.10 typescript: specifier: ^5.3.3 - version: 5.3.3 + version: 5.4.2 vite: specifier: ^5.0.12 version: 5.1.5 @@ -197,7 +197,7 @@ importers: version: 1.5.10 typescript: specifier: ^5.3.3 - version: 5.3.3 + version: 5.4.2 vite: specifier: ^5.0.12 version: 5.1.5 @@ -578,7 +578,7 @@ packages: terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.12.1)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(rollup@4.12.1)(typescript@5.4.2): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -594,7 +594,7 @@ packages: '@rollup/pluginutils': 5.1.0(rollup@4.12.1) resolve: 1.22.8 rollup: 4.12.1 - typescript: 5.3.3 + typescript: 5.4.2 dev: true /@rollup/pluginutils@5.1.0(rollup@4.12.1): @@ -848,7 +848,7 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -860,10 +860,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 @@ -871,13 +871,13 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.3 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.4.0(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.4.0(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -889,16 +889,16 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.4.0 '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.4.2) '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4 eslint: 8.57.0 - typescript: 5.3.3 + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -910,11 +910,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 7.1.1 '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 - typescript: 5.3.3 + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true @@ -935,7 +935,7 @@ packages: '@typescript-eslint/visitor-keys': 7.1.1 dev: true - /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -945,12 +945,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true @@ -965,7 +965,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.4.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.4.2): resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -980,13 +980,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.3 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.1.1(typescript@5.3.3): + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.4.2): resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1002,13 +1002,13 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.5.3 - ts-api-utils: 1.0.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1019,7 +1019,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 7.1.1 '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1476,7 +1476,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1486,14 +1486,14 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) - typescript: 5.3.3 + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true @@ -1544,7 +1544,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1574,7 +1574,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -2644,13 +2644,13 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.0.1(typescript@5.3.3): + /ts-api-utils@1.0.1(typescript@5.4.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.2 dev: true /tsconfig-paths@3.15.0: @@ -2718,8 +2718,8 @@ packages: is-typed-array: 1.1.13 dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true dev: true From b74ccb6639df60265997edc4719f7a0a02a76d2d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:41:49 +0100 Subject: [PATCH 121/643] chore(deps): update dependency @tauri-apps/cli to v1.5.11 (#1049) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 76 +++++++++---------- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 08160070d..db254cb5c 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "1.5.10" + "@tauri-apps/cli": "1.5.11" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 54365da5e..6a9371c2a 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "1.5.10", + "@tauri-apps/cli": "1.5.11", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 21663e242..4b2fd6073 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "1.5.10", + "@tauri-apps/cli": "1.5.11", "typescript": "^5.3.3", "vite": "^5.0.12" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be83baa7f..6fbb8c9cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,8 +121,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 1.5.10 - version: 1.5.10 + specifier: 1.5.11 + version: 1.5.11 plugins/sql: dependencies: @@ -147,8 +147,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 1.5.10 - version: 1.5.10 + specifier: 1.5.11 + version: 1.5.11 typescript: specifier: ^5.3.3 version: 5.4.2 @@ -193,8 +193,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 1.5.10 - version: 1.5.10 + specifier: 1.5.11 + version: 1.5.11 typescript: specifier: ^5.3.3 version: 5.4.2 @@ -721,8 +721,8 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@1.5.10: - resolution: {integrity: sha512-8dqHaGFKFUEMv3CfEyRP0Ebq28X4Oz74bdi393nBZVqbZM8SN6JdB7kXNb3o3W1TMNSu0M71e6x06YvXSNWvXQ==} + /@tauri-apps/cli-darwin-arm64@1.5.11: + resolution: {integrity: sha512-2NLSglDb5VfvTbMtmOKWyD+oaL/e8Z/ZZGovHtUFyUSFRabdXc6cZOlcD1BhFvYkHqm+TqGaz5qtPR5UbqDs8A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -730,8 +730,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@1.5.10: - resolution: {integrity: sha512-qb/9H2FgGRAZPlPj5ingwgpI9B1BUWBUjJpjP+XzSkgjfSQVs3mbdCFz+knGIfrbpw/rBfdOt9BM7biWqIml3Q==} + /@tauri-apps/cli-darwin-x64@1.5.11: + resolution: {integrity: sha512-/RQllHiJRH2fJOCudtZlaUIjofkHzP3zZgxi71ZUm7Fy80smU5TDfwpwOvB0wSVh0g/ciDjMArCSTo0MRvL+ag==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -739,8 +739,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.10: - resolution: {integrity: sha512-iYwfKHGQU0Ezvj5OOhILDiv9VSNm3oouctsvUC4ygOLhpVKXDqQ6nQwJzUZey1KjpBPeM7spOOEYZYxNUgAdZA==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.11: + resolution: {integrity: sha512-IlBuBPKmMm+a5LLUEK6a21UGr9ZYd6zKuKLq6IGM4tVweQa8Sf2kP2Nqs74dMGIUrLmMs0vuqdURpykQg+z4NQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -748,8 +748,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.10: - resolution: {integrity: sha512-kz4tI6Rr8wRuSVrDYpT6mAzHDW/rwPosb2wGatnhKRPb5v9LGPAZflUUUj+AAXnyl6XmD86Rbu7ekkm9BGm1Vw==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.11: + resolution: {integrity: sha512-w+k1bNHCU/GbmXshtAhyTwqosThUDmCEFLU4Zkin1vl2fuAtQry2RN7thfcJFepblUGL/J7yh3Q/0+BCjtspKQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -757,8 +757,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.10: - resolution: {integrity: sha512-HswFaeTplIVY6YSjx+awXfLqB4zwzW3D/8WpmxHY3kyxaE4VnXBhKT86YnlA+qX0qZxgsYr0L0EXxk940lHtKQ==} + /@tauri-apps/cli-linux-arm64-musl@1.5.11: + resolution: {integrity: sha512-PN6/dl+OfYQ/qrAy4HRAfksJ2AyWQYn2IA/2Wwpaa7SDRz2+hzwTQkvajuvy0sQ5L2WCG7ymFYRYMbpC6Hk9Pg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -766,8 +766,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.10: - resolution: {integrity: sha512-sOh7slboFQxJCBH5QFNe1Iw3JF2GPWYsq2TlQ6T8GgFh/cb13bK/a1TJG/gOrsRA7/pkIweaSufjpKpPBzAoGQ==} + /@tauri-apps/cli-linux-x64-gnu@1.5.11: + resolution: {integrity: sha512-MTVXLi89Nj7Apcvjezw92m7ZqIDKT5SFKZtVPCg6RoLUBTzko/BQoXYIRWmdoz2pgkHDUHgO2OMJ8oKzzddXbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -775,8 +775,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.10: - resolution: {integrity: sha512-fbTZa3Q01ttIKg6s9rhWGRfdOI23zIPa6loVz6YafHAzr3WLLEXSuG2fI/+01TdX9xdr6glttu8j3H5xE5oDgw==} + /@tauri-apps/cli-linux-x64-musl@1.5.11: + resolution: {integrity: sha512-kwzAjqFpz7rvTs7WGZLy/a5nS5t15QKr3E9FG95MNF0exTl3d29YoAUAe1Mn0mOSrTJ9Z+vYYAcI/QdcsGBP+w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -784,8 +784,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.10: - resolution: {integrity: sha512-Hntd66+Rrjn2dPPHqCVhZSXotNn5u7lfSff/1riIFbR4hZysB1OPlMOEjh51lBYhmcrvhseMfGfwH6D9i7WYKg==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.11: + resolution: {integrity: sha512-L+5NZ/rHrSUrMxjj6YpFYCXp6wHnq8c8SfDTBOX8dO8x+5283/vftb4vvuGIsLS4UwUFXFnLt3XQr44n84E67Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -793,8 +793,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.10: - resolution: {integrity: sha512-Kgd3qojNhH7qRsS2RKD1rKgUzk4y/v+SWW8Yr/xNo6FIYZzJChawW+WrYyBBtRoftrhLwm09LSnkR21KlGZxbA==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.11: + resolution: {integrity: sha512-oVlD9IVewrY0lZzTdb71kNXkjdgMqFq+ohb67YsJb4Rf7o8A9DTlFds1XLCe3joqLMm4M+gvBKD7YnGIdxQ9vA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -802,8 +802,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.10: - resolution: {integrity: sha512-pvuot24ZeLqQYD3rQHSzHJvUDX/kE18F98yl2mO9IHrHQyasdqlLhr/6kkmOWIvFDqyQNhpFXDzGNPm7yRbB1g==} + /@tauri-apps/cli-win32-x64-msvc@1.5.11: + resolution: {integrity: sha512-1CexcqUFCis5ypUIMOKllxUBrna09McbftWENgvVXMfA+SP+yPDPAVb8fIvUcdTIwR/yHJwcIucmTB4anww4vg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -811,21 +811,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@1.5.10: - resolution: {integrity: sha512-8+6NJgqSXqsFAEuUERDDRWrLh24TMT4aisn1qpADvKVX4KlBAKE17KTXHI54XQFR8qLbkUFNzprU4M9PV8ighw==} + /@tauri-apps/cli@1.5.11: + resolution: {integrity: sha512-B475D7phZrq5sZ3kDABH4g2mEoUIHtnIO+r4ZGAAfsjMbZCwXxR/jlMGTEL+VO3YzjpF7gQe38IzB4vLBbVppw==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.10 - '@tauri-apps/cli-darwin-x64': 1.5.10 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.10 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.10 - '@tauri-apps/cli-linux-arm64-musl': 1.5.10 - '@tauri-apps/cli-linux-x64-gnu': 1.5.10 - '@tauri-apps/cli-linux-x64-musl': 1.5.10 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.10 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.10 - '@tauri-apps/cli-win32-x64-msvc': 1.5.10 + '@tauri-apps/cli-darwin-arm64': 1.5.11 + '@tauri-apps/cli-darwin-x64': 1.5.11 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.11 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.11 + '@tauri-apps/cli-linux-arm64-musl': 1.5.11 + '@tauri-apps/cli-linux-x64-gnu': 1.5.11 + '@tauri-apps/cli-linux-x64-musl': 1.5.11 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.11 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.11 + '@tauri-apps/cli-win32-x64-msvc': 1.5.11 dev: true /@types/estree@1.0.5: From 4e37316af0d6532bf9a9bd0e712b5b14b0598285 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 11 Mar 2024 23:29:16 +0800 Subject: [PATCH 122/643] fix(updater): fallback to passive mode & fix `installerArgs` deserialzation (#1051) --- ...-updater-installer-args-deserialization.md | 5 ++ .changes/fix-updater-installmode.md | 5 ++ plugins/updater/src/config.rs | 20 +++++++- plugins/updater/src/lib.rs | 13 ++--- plugins/updater/src/updater.rs | 50 ++++++++----------- .../updater/tests/app-updater/tauri.conf.json | 3 +- 6 files changed, 56 insertions(+), 40 deletions(-) create mode 100644 .changes/fix-updater-installer-args-deserialization.md create mode 100644 .changes/fix-updater-installmode.md diff --git a/.changes/fix-updater-installer-args-deserialization.md b/.changes/fix-updater-installer-args-deserialization.md new file mode 100644 index 000000000..6456f65f4 --- /dev/null +++ b/.changes/fix-updater-installer-args-deserialization.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +Fix deserialization of `windows > installerArgs` config field. diff --git a/.changes/fix-updater-installmode.md b/.changes/fix-updater-installmode.md new file mode 100644 index 000000000..ac20ee7a5 --- /dev/null +++ b/.changes/fix-updater-installmode.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +On Windows, fallback to `passive` install mode when not defined in config. diff --git a/plugins/updater/src/config.rs b/plugins/updater/src/config.rs index aea6a5474..6847363c3 100644 --- a/plugins/updater/src/config.rs +++ b/plugins/updater/src/config.rs @@ -64,13 +64,29 @@ impl Default for WindowsUpdateInstallMode { #[serde(rename_all = "camelCase")] pub struct WindowsConfig { /// Additional arguments given to the NSIS or WiX installer. - #[serde(default, alias = "installer-args")] + #[serde( + default, + alias = "installer-args", + deserialize_with = "deserialize_os_string" + )] pub installer_args: Vec, - /// Updating mode, see [`WindowsUpdateInstallMode`] for more info. + /// Updating mode, defaults to `passive` mode. + /// + /// See [`WindowsUpdateInstallMode`] for more info. #[serde(default, alias = "install-mode")] pub install_mode: WindowsUpdateInstallMode, } +fn deserialize_os_string<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + Ok(Vec::::deserialize(deserializer)? + .into_iter() + .map(OsString::from) + .collect::>()) +} + /// Updater configuration. #[derive(Debug, Clone, Deserialize, Default)] #[serde(rename_all = "camelCase")] diff --git a/plugins/updater/src/lib.rs b/plugins/updater/src/lib.rs index 8c0ea2cb6..e060827d2 100644 --- a/plugins/updater/src/lib.rs +++ b/plugins/updater/src/lib.rs @@ -13,7 +13,7 @@ html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" )] -use std::ffi::{OsStr, OsString}; +use std::ffi::OsString; use tauri::{ plugin::{Builder as PluginBuilder, TauriPlugin}, @@ -136,21 +136,18 @@ impl Builder { pub fn installer_args(mut self, args: I) -> Self where I: IntoIterator, - S: AsRef, + S: Into, { - let args = args - .into_iter() - .map(|a| a.as_ref().to_os_string()) - .collect::>(); + let args = args.into_iter().map(|a| a.into()).collect::>(); self.installer_args.extend_from_slice(&args); self } pub fn installer_arg(mut self, arg: S) -> Self where - S: AsRef, + S: Into, { - self.installer_args.push(arg.as_ref().to_os_string()); + self.installer_args.push(arg.into()); self } diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index a77d0af54..52b33e217 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -176,21 +176,18 @@ impl UpdaterBuilder { pub fn installer_arg(mut self, arg: S) -> Self where - S: AsRef, + S: Into, { - self.installer_args.push(arg.as_ref().to_os_string()); + self.installer_args.push(arg.into()); self } pub fn installer_args(mut self, args: I) -> Self where I: IntoIterator, - S: AsRef, + S: Into, { - let args = args - .into_iter() - .map(|a| a.as_ref().to_os_string()) - .collect::>(); + let args = args.into_iter().map(|a| a.into()).collect::>(); self.installer_args.extend_from_slice(&args); self } @@ -543,6 +540,13 @@ impl Update { |p| format!("{p}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"), ); + let install_mode = self + .config + .windows + .as_ref() + .map(|w| w.install_mode.clone()) + .unwrap_or_default(); + for path in paths { let found_path = path?.path(); // we support 2 type of files exe & msi for now @@ -555,17 +559,11 @@ impl Update { installer_path.push("\""); let installer_args = [ - self.config - .windows - .as_ref() - .map(|w| { - w.install_mode - .nsis_args() - .iter() - .map(|a| OsStr::new(a)) - .collect::>() - }) - .unwrap_or_default(), + install_mode + .nsis_args() + .iter() + .map(OsStr::new) + .collect::>(), self.installer_args .iter() .map(|a| a.as_os_str()) @@ -600,17 +598,11 @@ impl Update { msi_path.push("\"\"\""); let installer_args = [ - self.config - .windows - .as_ref() - .map(|w| { - w.install_mode - .msiexec_args() - .iter() - .map(|a| OsStr::new(a)) - .collect::>() - }) - .unwrap_or_default(), + install_mode + .msiexec_args() + .iter() + .map(OsStr::new) + .collect::>(), self.installer_args .iter() .map(|a| a.as_os_str()) diff --git a/plugins/updater/tests/app-updater/tauri.conf.json b/plugins/updater/tests/app-updater/tauri.conf.json index 6eb919efa..4c891ab9a 100644 --- a/plugins/updater/tests/app-updater/tauri.conf.json +++ b/plugins/updater/tests/app-updater/tauri.conf.json @@ -5,7 +5,8 @@ "endpoints": ["http://localhost:3007"], "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEUwNDRGMjkwRjg2MDhCRDAKUldUUWkyRDRrUEpFNEQ4SmdwcU5PaXl6R2ZRUUNvUnhIaVkwVUltV0NMaEx6VTkrWVhpT0ZqeEEK", "windows": { - "installMode": "quiet" + "installMode": "quiet", + "installerArgs": ["/NS"] } } }, From c873e4d6c74e759742f7c9a88e35cff10a75122a Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Mon, 11 Mar 2024 13:39:35 -0300 Subject: [PATCH 123/643] fix(http): inconsistencies on urlpattern usage on scope (#1059) * fix(http): inconsistencies on urlpattern usage on scope * fix tests * enhance tests --- .changes/fix-http-scope-url-match.md | 5 +++ plugins/http/src/scope.rs | 66 +++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 .changes/fix-http-scope-url-match.md diff --git a/.changes/fix-http-scope-url-match.md b/.changes/fix-http-scope-url-match.md new file mode 100644 index 000000000..c3929f5d8 --- /dev/null +++ b/.changes/fix-http-scope-url-match.md @@ -0,0 +1,5 @@ +--- +"http": patch +--- + +Fixes scope not allowing subpaths, query parameters and hash when those values are empty. diff --git a/plugins/http/src/scope.rs b/plugins/http/src/scope.rs index 9067f4065..291cbfa37 100644 --- a/plugins/http/src/scope.rs +++ b/plugins/http/src/scope.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use serde::{Deserialize, Deserializer}; use url::Url; -use urlpattern::{UrlPattern, UrlPatternInit, UrlPatternMatchInput}; +use urlpattern::{UrlPattern, UrlPatternMatchInput}; #[allow(rustdoc::bare_urls)] #[derive(Debug)] @@ -15,7 +15,21 @@ pub struct Entry { } fn parse_url_pattern(s: &str) -> Result { - let init = UrlPatternInit::parse_constructor_string::(s, None)?; + let mut init = urlpattern::UrlPatternInit::parse_constructor_string::(s, None)?; + if init.search.as_ref().map(|p| p.is_empty()).unwrap_or(true) { + init.search.replace("*".to_string()); + } + if init.hash.as_ref().map(|p| p.is_empty()).unwrap_or(true) { + init.hash.replace("*".to_string()); + } + if init + .pathname + .as_ref() + .map(|p| p.is_empty() || p == "/") + .unwrap_or(true) + { + init.pathname.replace("*".to_string()); + } UrlPattern::parse(init) } @@ -100,6 +114,7 @@ mod tests { let deny = Arc::new("http://localhost:8080/*".parse().unwrap()); let scope = super::Scope::new(vec![&allow], vec![&deny]); assert!(!scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); + assert!(!scope.is_allowed(&"http://localhost:8080?framework=tauri".parse().unwrap())); } #[test] @@ -109,9 +124,10 @@ mod tests { let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080".parse().unwrap())); assert!(scope.is_allowed(&"http://localhost:8080/".parse().unwrap())); + assert!(scope.is_allowed(&"http://localhost:8080/file".parse().unwrap())); + assert!(scope.is_allowed(&"http://localhost:8080/path/to/asset.png".parse().unwrap())); + assert!(scope.is_allowed(&"http://localhost:8080/path/list?limit=50".parse().unwrap())); - assert!(!scope.is_allowed(&"http://localhost:8080/file".parse().unwrap())); - assert!(!scope.is_allowed(&"http://localhost:8080/path/to/asset.png".parse().unwrap())); assert!(!scope.is_allowed(&"https://localhost:8080".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8081".parse().unwrap())); assert!(!scope.is_allowed(&"http://local:8080".parse().unwrap())); @@ -124,6 +140,7 @@ mod tests { let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); + assert!(scope.is_allowed(&"http://localhost:8080/file.png?q=1".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8080".parse().unwrap())); assert!(!scope.is_allowed(&"http://localhost:8080/file".parse().unwrap())); @@ -136,7 +153,13 @@ mod tests { let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://localhost:8080/file.png".parse().unwrap())); + assert!(scope.is_allowed(&"http://localhost:8080/file.png#head".parse().unwrap())); assert!(scope.is_allowed(&"http://localhost:8080/assets/file.png".parse().unwrap())); + assert!(scope.is_allowed( + &"http://localhost:8080/assets/file.png?width=100&height=200" + .parse() + .unwrap() + )); assert!(!scope.is_allowed(&"http://localhost:8080/file.jpeg".parse().unwrap())); } @@ -147,7 +170,15 @@ mod tests { let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); - assert!(!scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"http://something.else#tauri".parse().unwrap())); + assert!(scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"http://something.else?rel=tauri".parse().unwrap())); + assert!(scope.is_allowed( + &"http://something.else/path/to/file.mp4?start=500" + .parse() + .unwrap() + )); + assert!(!scope.is_allowed(&"https://something.else".parse().unwrap())); let entry = Arc::new("http://*/*".parse().unwrap()); @@ -163,10 +194,11 @@ mod tests { let scope = super::Scope::new(vec![&entry], Vec::new()); assert!(scope.is_allowed(&"http://something.else".parse().unwrap())); - assert!(!scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"http://something.else/path/to/file".parse().unwrap())); assert!(scope.is_allowed(&"file://path".parse().unwrap())); - assert!(!scope.is_allowed(&"file://path/to/file".parse().unwrap())); + assert!(scope.is_allowed(&"file://path/to/file".parse().unwrap())); assert!(scope.is_allowed(&"https://something.else".parse().unwrap())); + assert!(scope.is_allowed(&"https://something.else?x=1#frag".parse().unwrap())); let entry = Arc::new("*://*/*".parse().unwrap()); let scope = super::Scope::new(vec![&entry], Vec::new()); @@ -176,4 +208,24 @@ mod tests { assert!(scope.is_allowed(&"file://path/to/file".parse().unwrap())); assert!(scope.is_allowed(&"https://something.else".parse().unwrap())); } + + #[test] + fn validate_query() { + let entry = Arc::new("https://tauri.app/path?x=*".parse().unwrap()); + let scope = super::Scope::new(vec![&entry], Vec::new()); + + assert!(scope.is_allowed(&"https://tauri.app/path?x=5".parse().unwrap())); + + assert!(!scope.is_allowed(&"https://tauri.app/path?y=5".parse().unwrap())); + } + + #[test] + fn validate_hash() { + let entry = Arc::new("https://tauri.app/path#frame*".parse().unwrap()); + let scope = super::Scope::new(vec![&entry], Vec::new()); + + assert!(scope.is_allowed(&"https://tauri.app/path#frame".parse().unwrap())); + + assert!(!scope.is_allowed(&"https://tauri.app/path#work".parse().unwrap())); + } } From adbc333a0f233334a97cbabef266bf3fa6037d17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:42:59 +0100 Subject: [PATCH 124/643] chore(deps): update dependency vite to v5.1.6 (#1063) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fbb8c9cf..f9dc2fefc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -154,7 +154,7 @@ importers: version: 5.4.2 vite: specifier: ^5.0.12 - version: 5.1.5 + version: 5.1.6 plugins/stronghold: dependencies: @@ -200,7 +200,7 @@ importers: version: 5.4.2 vite: specifier: ^5.0.12 - version: 5.1.5 + version: 5.1.6 plugins/window-state: dependencies: @@ -2739,8 +2739,8 @@ packages: punycode: 2.3.0 dev: true - /vite@5.1.5: - resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + /vite@5.1.6: + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: From 24eb3398d03bba941e51c0a95225025dbf9a994b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 07:48:01 +0100 Subject: [PATCH 125/643] chore(deps): update typescript-eslint monorepo to v7.2.0 (#1064) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 100 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 13b1abdef..5a6a7ca14 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.1.1", - "@typescript-eslint/parser": "7.1.1", + "@typescript-eslint/eslint-plugin": "7.2.0", + "@typescript-eslint/parser": "7.2.0", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9dc2fefc..6ae6585c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.12.1)(typescript@5.4.2) '@typescript-eslint/eslint-plugin': - specifier: 7.1.1 - version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.2.0 + version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': - specifier: 7.1.1 - version: 7.1.1(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.2.0 + version: 7.2.0(eslint@8.57.0)(typescript@5.4.2) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.2.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -848,8 +848,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} + /@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -860,11 +860,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.1.1 + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -898,8 +898,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} + /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -908,10 +908,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.1.1 + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.2 @@ -927,16 +927,16 @@ packages: '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/scope-manager@7.1.1: - resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} + /@typescript-eslint/scope-manager@7.2.0: + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/visitor-keys': 7.1.1 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 dev: true - /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} + /@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -945,8 +945,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) - '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) + '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.0.1(typescript@5.4.2) @@ -960,8 +960,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.1.1: - resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} + /@typescript-eslint/types@7.2.0: + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -986,8 +986,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.1.1(typescript@5.4.2): - resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} + /@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.2): + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -995,8 +995,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/visitor-keys': 7.1.1 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1008,8 +1008,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} + /@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1017,9 +1017,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.1.1 - '@typescript-eslint/types': 7.1.1 - '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1035,11 +1035,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.1.1: - resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} + /@typescript-eslint/visitor-keys@7.2.0: + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/types': 7.2.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1476,7 +1476,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.2.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -1486,11 +1486,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.4.2 @@ -1508,7 +1508,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -1523,7 +1523,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1544,7 +1544,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1564,7 +1564,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1574,7 +1574,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -1583,7 +1583,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 From d95a1b382f512a0be748e7a89e0f8fc4278010e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 07:52:24 +0100 Subject: [PATCH 126/643] chore(deps): update dependency rollup to v4.13.0 (#1066) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 114 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 5a6a7ca14..8c37360b5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "eslint-plugin-promise": "6.1.1", "eslint-plugin-security": "2.1.1", "prettier": "3.2.5", - "rollup": "4.12.1", + "rollup": "4.13.0", "typescript": "5.4.2" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ae6585c3..99da63ab8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,13 +14,13 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.12.1) + version: 15.2.3(rollup@4.13.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.12.1) + version: 0.4.4(rollup@4.13.0) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.12.1)(typescript@5.4.2) + version: 11.1.6(rollup@4.13.0)(typescript@5.4.2) '@typescript-eslint/eslint-plugin': specifier: 7.2.0 version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) @@ -52,8 +52,8 @@ importers: specifier: 3.2.5 version: 3.2.5 rollup: - specifier: 4.12.1 - version: 4.12.1 + specifier: 4.13.0 + version: 4.13.0 typescript: specifier: 5.4.2 version: 5.4.2 @@ -545,7 +545,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.13.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -554,16 +554,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.1) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.12.1 + rollup: 4.13.0 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.12.1): + /@rollup/plugin-terser@0.4.4(rollup@4.13.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -572,13 +572,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.12.1 + rollup: 4.13.0 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.0 dev: true - /@rollup/plugin-typescript@11.1.6(rollup@4.12.1)(typescript@5.4.2): + /@rollup/plugin-typescript@11.1.6(rollup@4.13.0)(typescript@5.4.2): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -591,13 +591,13 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.1) + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) resolve: 1.22.8 - rollup: 4.12.1 + rollup: 4.13.0 typescript: 5.4.2 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.12.1): + /@rollup/pluginutils@5.1.0(rollup@4.13.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -609,107 +609,107 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.12.1 + rollup: 4.13.0 dev: true - /@rollup/rollup-android-arm-eabi@4.12.1: - resolution: {integrity: sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==} + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.12.1: - resolution: {integrity: sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==} + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.12.1: - resolution: {integrity: sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==} + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.12.1: - resolution: {integrity: sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==} + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.1: - resolution: {integrity: sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.1: - resolution: {integrity: sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==} + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.1: - resolution: {integrity: sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==} + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.1: - resolution: {integrity: sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==} + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.1: - resolution: {integrity: sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==} + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.1: - resolution: {integrity: sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==} + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.1: - resolution: {integrity: sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==} + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.1: - resolution: {integrity: sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==} + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.1: - resolution: {integrity: sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==} + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} cpu: [x64] os: [win32] requiresBuild: true @@ -2428,26 +2428,26 @@ packages: glob: 7.2.3 dev: true - /rollup@4.12.1: - resolution: {integrity: sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==} + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.1 - '@rollup/rollup-android-arm64': 4.12.1 - '@rollup/rollup-darwin-arm64': 4.12.1 - '@rollup/rollup-darwin-x64': 4.12.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.1 - '@rollup/rollup-linux-arm64-gnu': 4.12.1 - '@rollup/rollup-linux-arm64-musl': 4.12.1 - '@rollup/rollup-linux-riscv64-gnu': 4.12.1 - '@rollup/rollup-linux-x64-gnu': 4.12.1 - '@rollup/rollup-linux-x64-musl': 4.12.1 - '@rollup/rollup-win32-arm64-msvc': 4.12.1 - '@rollup/rollup-win32-ia32-msvc': 4.12.1 - '@rollup/rollup-win32-x64-msvc': 4.12.1 + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 dev: true @@ -2769,7 +2769,7 @@ packages: dependencies: esbuild: 0.19.12 postcss: 8.4.35 - rollup: 4.12.1 + rollup: 4.13.0 optionalDependencies: fsevents: 2.3.3 dev: true From 69d45a06a694a69233763cd5e57f5f8b3be6df8a Mon Sep 17 00:00:00 2001 From: Han Date: Tue, 12 Mar 2024 17:16:39 +0800 Subject: [PATCH 127/643] chore(examples): example incorrect command (#1068) --- examples/api/src-tauri/tauri.conf.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/api/src-tauri/tauri.conf.json b/examples/api/src-tauri/tauri.conf.json index ec3190ef8..9f1852d26 100644 --- a/examples/api/src-tauri/tauri.conf.json +++ b/examples/api/src-tauri/tauri.conf.json @@ -6,8 +6,8 @@ "build": { "devUrl": "http://localhost:5173", "frontendDist": "../dist", - "beforeDevCommand": "yarn dev", - "beforeBuildCommand": "yarn build" + "beforeDevCommand": "pnpm dev", + "beforeBuildCommand": "pnpm build" }, "app": { "withGlobalTauri": true, From 040004a6b9fbb89161d1b5764d79428dfe693776 Mon Sep 17 00:00:00 2001 From: Jason Tsai Date: Tue, 12 Mar 2024 21:20:56 +0800 Subject: [PATCH 128/643] chore(shell): change schema property name `command` to `cmd` (#1069) * chore: fix shell plugin `command` property in schema * chore: add changelog --- .changes/shell-fix-schema-command-property-name.md | 5 +++++ plugins/shell/src/scope_entry.rs | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changes/shell-fix-schema-command-property-name.md diff --git a/.changes/shell-fix-schema-command-property-name.md b/.changes/shell-fix-schema-command-property-name.md new file mode 100644 index 000000000..836368a18 --- /dev/null +++ b/.changes/shell-fix-schema-command-property-name.md @@ -0,0 +1,5 @@ +--- +"shell": "patch" +--- + +Change shell's schema property name `command` to `cmd`. diff --git a/plugins/shell/src/scope_entry.rs b/plugins/shell/src/scope_entry.rs index aac8e695f..ff94a3a78 100644 --- a/plugins/shell/src/scope_entry.rs +++ b/plugins/shell/src/scope_entry.rs @@ -22,6 +22,7 @@ pub struct Entry { /// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, /// `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. // use default just so the schema doesn't flag it as required + #[serde(rename = "cmd")] pub command: PathBuf, /// The allowed arguments for the command execution. From a3b5396113ca93912274f6890d9ef5b1a409587a Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:47:22 +0800 Subject: [PATCH 129/643] refactor!(updater): migrate run updater using powershell to `ShellExecute` (#1054) * Migrate to ShellExecute * Add change file * Revert cargo.toml style * Remove unused imports * Migrate to windows-sys * Use open instead of runas * Use encode_wide instead of hstring * small cleanup --- .changes/fix-updater-powershell-flashing.md | 5 + Cargo.lock | 57 +++---- plugins/updater/Cargo.toml | 1 + .../updater/permissions/schemas/schema.json | 10 +- plugins/updater/src/updater.rs | 152 ++++++------------ 5 files changed, 83 insertions(+), 142 deletions(-) create mode 100644 .changes/fix-updater-powershell-flashing.md diff --git a/.changes/fix-updater-powershell-flashing.md b/.changes/fix-updater-powershell-flashing.md new file mode 100644 index 000000000..a23b5b06c --- /dev/null +++ b/.changes/fix-updater-powershell-flashing.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +Fix Windows powershell window flashing on update diff --git a/Cargo.lock b/Cargo.lock index fad46e8b5..9dee2ec47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1039,7 +1039,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -6793,6 +6793,7 @@ dependencies = [ "time", "tokio", "url", + "windows-sys 0.52.0", "zip", ] @@ -8092,7 +8093,7 @@ dependencies = [ "windows-core 0.52.0", "windows-implement", "windows-interface", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8110,7 +8111,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8172,7 +8173,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8207,17 +8208,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -8226,7 +8227,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -8243,9 +8244,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -8267,9 +8268,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -8291,9 +8292,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -8315,9 +8316,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -8339,9 +8340,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -8357,9 +8358,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -8381,9 +8382,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 2440a6ecc..6159feb26 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -37,6 +37,7 @@ tar = "0.4" [target."cfg(target_os = \"windows\")".dependencies] zip = { version = "0.6", default-features = false } +windows-sys = { version = "0.52.0", features = ["Win32_Foundation", "Win32_UI_WindowsAndMessaging"] } [target."cfg(any(target_os = \"macos\", target_os = \"linux\"))".dependencies] flate2 = "1.0.27" diff --git a/plugins/updater/permissions/schemas/schema.json b/plugins/updater/permissions/schemas/schema.json index 6d6a3c211..691359767 100644 --- a/plugins/updater/permissions/schemas/schema.json +++ b/plugins/updater/permissions/schemas/schema.json @@ -139,14 +139,10 @@ }, "platforms": { "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", - "default": [ - "linux", - "macOS", - "windows", - "android", - "iOS" + "type": [ + "array", + "null" ], - "type": "array", "items": { "$ref": "#/definitions/Target" } diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 52b33e217..4ba744358 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -512,7 +512,11 @@ impl Update { // Update server can provide a custom EXE (installer) who can run any task. #[cfg(windows)] fn install_inner(&self, bytes: Vec) -> Result<()> { - use std::{fs, process::Command}; + use std::fs; + use windows_sys::{ + w, + Win32::UI::{Shell::ShellExecuteW, WindowsAndMessaging::SW_SHOW}, + }; // FIXME: We need to create a memory buffer with the MSI and then run it. // (instead of extracting the MSI to a temp path) @@ -521,131 +525,54 @@ impl Update { // shouldn't drop but we should be able to pass the reference so we can drop it once the installation // is done, otherwise we have a huge memory leak. - let archive = Cursor::new(bytes); - let tmp_dir = tempfile::Builder::new().tempdir()?.into_path(); - - // extract the buffer to the tmp_dir - // we extract our signed archive into our final directory without any temp file + let archive = Cursor::new(bytes); let mut extractor = zip::ZipArchive::new(archive)?; - - // extract the msi extractor.extract(&tmp_dir)?; let paths = fs::read_dir(&tmp_dir)?; - let system_root = std::env::var("SYSTEMROOT"); - let powershell_path = system_root.as_ref().map_or_else( - |_| "powershell.exe".to_string(), - |p| format!("{p}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"), - ); - let install_mode = self .config .windows .as_ref() .map(|w| w.install_mode.clone()) .unwrap_or_default(); + let mut installer_args = self + .installer_args + .iter() + .map(|a| OsStr::new(a)) + .collect::>(); for path in paths { let found_path = path?.path(); // we support 2 type of files exe & msi for now - // If it's an `exe` we expect an installer not a runtime. + // If it's an `exe` we expect an NSIS installer. if found_path.extension() == Some(OsStr::new("exe")) { - // we need to wrap the installer path in quotes for Start-Process - let mut installer_path = std::ffi::OsString::new(); - installer_path.push("\""); - installer_path.push(&found_path); - installer_path.push("\""); - - let installer_args = [ - install_mode - .nsis_args() - .iter() - .map(OsStr::new) - .collect::>(), - self.installer_args - .iter() - .map(|a| a.as_os_str()) - .collect::>(), - ] - .concat(); - - // Run the installer - let mut cmd = Command::new(powershell_path); - - cmd.args(["-NoProfile", "-WindowStyle", "Hidden"]) - .args(["Start-Process"]) - .arg(installer_path); - - if !installer_args.is_empty() { - cmd.arg("-ArgumentList") - .arg(installer_args.join(OsStr::new(", "))); - } - cmd.spawn().expect("installer failed to start"); - - std::process::exit(0); + installer_args.extend(install_mode.nsis_args().iter().map(OsStr::new)); } else if found_path.extension() == Some(OsStr::new("msi")) { - // we need to wrap the current exe path in quotes for Start-Process - let mut current_exe_arg = std::ffi::OsString::new(); - current_exe_arg.push("\""); - current_exe_arg.push(current_exe()?); - current_exe_arg.push("\""); - - let mut msi_path = std::ffi::OsString::new(); - msi_path.push("\"\"\""); - msi_path.push(&found_path); - msi_path.push("\"\"\""); - - let installer_args = [ - install_mode - .msiexec_args() - .iter() - .map(OsStr::new) - .collect::>(), - self.installer_args - .iter() - .map(|a| a.as_os_str()) - .collect::>(), - ] - .concat(); - - // run the installer and relaunch the application - let powershell_install_res = Command::new(powershell_path) - .args(["-NoProfile", "-WindowStyle", "Hidden"]) - .args([ - "Start-Process", - "-Wait", - "-FilePath", - "$Env:SYSTEMROOT\\System32\\msiexec.exe", - "-ArgumentList", - ]) - .arg("/i,") - .arg(&msi_path) - .arg(format!( - ", {}, /promptrestart;", - installer_args.join(OsStr::new(", ")).to_string_lossy() - )) - .arg("Start-Process") - .arg(current_exe_arg) - .spawn(); - if powershell_install_res.is_err() { - // fallback to running msiexec directly - relaunch won't be available - // we use this here in case powershell fails in an older machine somehow - let msiexec_path = system_root.as_ref().map_or_else( - |_| "msiexec.exe".to_string(), - |p| format!("{p}\\System32\\msiexec.exe"), - ); - let _ = Command::new(msiexec_path) - .arg("/i") - .arg(msi_path) - .args(installer_args) - .arg("/promptrestart") - .spawn(); - } - - std::process::exit(0); + installer_args.extend(install_mode.msiexec_args().iter().map(OsStr::new)); + installer_args.push(OsStr::new("/promptrestart")); + } else { + continue; } + + let file = encode_wide(found_path.as_os_str()); + let parameters = encode_wide(installer_args.join(OsStr::new(" ")).as_os_str()); + let ret = unsafe { + ShellExecuteW( + 0, + w!("open"), + file.as_ptr(), + parameters.as_ptr(), + std::ptr::null(), + SW_SHOW, + ) + }; + if ret <= 32 { + return Err(Error::Io(std::io::Error::last_os_error())); + } + std::process::exit(0); } Ok(()) @@ -944,3 +871,14 @@ fn base64_to_string(base64_string: &str) -> Result { .to_string(); Ok(result) } + +#[cfg(target_os = "windows")] +fn encode_wide(string: impl AsRef) -> Vec { + use std::os::windows::ffi::OsStrExt; + + string + .as_ref() + .encode_wide() + .chain(std::iter::once(0)) + .collect() +} From 14c858391d12e2bbb64c6d46788c9788863bddd6 Mon Sep 17 00:00:00 2001 From: DK Liao Date: Wed, 13 Mar 2024 17:36:59 +0800 Subject: [PATCH 130/643] docs: Update positioner readme (#1072) --- plugins/positioner/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index e6b25170a..ad22ffacd 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -73,9 +73,9 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { move_window, Position } from "@tauri-apps/plugin-positioner"; +import { moveWindow, Position } from "@tauri-apps/plugin-positioner"; -move_window(Position.TopRight); +moveWindow(Position.TopRight); ``` If you only intend on moving the window from rust code, you can import the Window trait extension instead of registering the plugin: From 35ea5956d060f0bdafd140f2541c607bb811805b Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Wed, 13 Mar 2024 14:41:23 +0100 Subject: [PATCH 131/643] fix(dialog): Create dialogs on main thread (#1073) fixes https://github.com/tauri-apps/tauri/issues/6301 --- .changes/dialog-main-thread.md | 5 ++ .../src-tauri/gen/schemas/desktop-schema.json | 8 ++-- plugins/dialog/src/desktop.rs | 48 ++++++++++++------- .../updater/permissions/schemas/schema.json | 10 ++-- 4 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 .changes/dialog-main-thread.md diff --git a/.changes/dialog-main-thread.md b/.changes/dialog-main-thread.md new file mode 100644 index 000000000..c4388bc64 --- /dev/null +++ b/.changes/dialog-main-thread.md @@ -0,0 +1,5 @@ +--- +dialog: patch +--- + +Fixed an issue where the dialog apis panicked when they were called with no application windows open. diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index 52ed8e229..a01af2486 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -2362,7 +2362,7 @@ "type": "object", "required": [ "args", - "command", + "cmd", "name", "sidecar" ], @@ -2375,7 +2375,7 @@ } ] }, - "command": { + "cmd": { "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, @@ -2397,7 +2397,7 @@ "type": "object", "required": [ "args", - "command", + "cmd", "name", "sidecar" ], @@ -2410,7 +2410,7 @@ } ] }, - "command": { + "cmd": { "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, diff --git a/plugins/dialog/src/desktop.rs b/plugins/dialog/src/desktop.rs index 5d98952df..606a933f6 100644 --- a/plugins/dialog/src/desktop.rs +++ b/plugins/dialog/src/desktop.rs @@ -42,18 +42,6 @@ impl Dialog { } } -macro_rules! run_dialog { - ($e:expr, $h: expr) => {{ - std::thread::spawn(move || $h(tauri::async_runtime::block_on($e))); - }}; -} - -macro_rules! run_file_dialog { - ($e:expr, $h: ident) => {{ - std::thread::spawn(move || $h(tauri::async_runtime::block_on($e))); - }}; -} - impl From for rfd::MessageLevel { fn from(kind: MessageDialogKind) -> Self { match kind { @@ -132,7 +120,11 @@ pub fn pick_file) + Send + 'static>( f: F, ) { let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(AsyncFileDialog::from(dialog).pick_file(), f) + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncFileDialog::from(dialog).pick_file(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } pub fn pick_files>) + Send + 'static>( @@ -142,7 +134,11 @@ pub fn pick_files>) + Send + 'static>( let f = |paths: Option>| { f(paths.map(|list| list.into_iter().map(|p| p.path().to_path_buf()).collect())) }; - run_file_dialog!(AsyncFileDialog::from(dialog).pick_files(), f) + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncFileDialog::from(dialog).pick_files(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } pub fn pick_folder) + Send + 'static>( @@ -150,7 +146,11 @@ pub fn pick_folder) + Send + 'static>( f: F, ) { let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(AsyncFileDialog::from(dialog).pick_folder(), f) + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncFileDialog::from(dialog).pick_folder(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } pub fn pick_folders>) + Send + 'static>( @@ -160,7 +160,11 @@ pub fn pick_folders>) + Send + 'static let f = |paths: Option>| { f(paths.map(|list| list.into_iter().map(|p| p.path().to_path_buf()).collect())) }; - run_file_dialog!(AsyncFileDialog::from(dialog).pick_folders(), f) + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncFileDialog::from(dialog).pick_folders(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } pub fn save_file) + Send + 'static>( @@ -168,7 +172,11 @@ pub fn save_file) + Send + 'static>( f: F, ) { let f = |path: Option| f(path.map(|p| p.path().to_path_buf())); - run_file_dialog!(AsyncFileDialog::from(dialog).save_file(), f) + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncFileDialog::from(dialog).save_file(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } /// Shows a message dialog @@ -187,5 +195,9 @@ pub fn show_message_dialog( }); }; - run_dialog!(AsyncMessageDialog::from(dialog).show(), f); + let handle = dialog.dialog.app_handle().to_owned(); + let _ = handle.run_on_main_thread(move || { + let dialog = AsyncMessageDialog::from(dialog).show(); + std::thread::spawn(move || f(tauri::async_runtime::block_on(dialog))); + }); } diff --git a/plugins/updater/permissions/schemas/schema.json b/plugins/updater/permissions/schemas/schema.json index 691359767..6d6a3c211 100644 --- a/plugins/updater/permissions/schemas/schema.json +++ b/plugins/updater/permissions/schemas/schema.json @@ -139,10 +139,14 @@ }, "platforms": { "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", - "type": [ - "array", - "null" + "default": [ + "linux", + "macOS", + "windows", + "android", + "iOS" ], + "type": "array", "items": { "$ref": "#/definitions/Target" } From 1d7dc86ec3da382e0b2f23cbd052c6ce77173848 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 13 Mar 2024 22:12:21 +0800 Subject: [PATCH 132/643] fix(updater): run cleanup before exit on Windows (#1070) --- .changes/fix-updater-cleanup-md | 5 +++++ plugins/updater/src/lib.rs | 5 +++++ plugins/updater/src/updater.rs | 31 ++++++++++++++++++++++++------- 3 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 .changes/fix-updater-cleanup-md diff --git a/.changes/fix-updater-cleanup-md b/.changes/fix-updater-cleanup-md new file mode 100644 index 000000000..fe69a0049 --- /dev/null +++ b/.changes/fix-updater-cleanup-md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +Add a `on_before_exit` hook for cleanup before spawning the updater on Windows, defaults to `app.cleanup_before_exit` when used through `UpdaterExt` diff --git a/plugins/updater/src/lib.rs b/plugins/updater/src/lib.rs index e060827d2..37198150d 100644 --- a/plugins/updater/src/lib.rs +++ b/plugins/updater/src/lib.rs @@ -98,6 +98,11 @@ impl> UpdaterExt for T { } } + let app_handle = app.app_handle().clone(); + builder = builder.on_before_exit(move || { + app_handle.cleanup_before_exit(); + }); + builder } diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 4ba744358..27749bc37 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -8,6 +8,7 @@ use std::{ io::{Cursor, Read}, path::{Path, PathBuf}, str::FromStr, + sync::Arc, time::Duration, }; @@ -88,6 +89,8 @@ impl RemoteRelease { } } +pub type OnBeforeExit = Arc; + pub struct UpdaterBuilder { current_version: Version, config: Config, @@ -99,6 +102,7 @@ pub struct UpdaterBuilder { timeout: Option, proxy: Option, installer_args: Vec, + on_before_exit: Option, } impl UpdaterBuilder { @@ -118,6 +122,7 @@ impl UpdaterBuilder { headers: Default::default(), timeout: None, proxy: None, + on_before_exit: None, } } @@ -197,6 +202,11 @@ impl UpdaterBuilder { self } + pub fn on_before_exit(mut self, f: F) -> Self { + self.on_before_exit.replace(Arc::new(f)); + self + } + pub fn build(self) -> Result { let endpoints = self .endpoints @@ -236,6 +246,7 @@ impl UpdaterBuilder { json_target, headers: self.headers, extract_path, + on_before_exit: self.on_before_exit, }) } } @@ -256,6 +267,7 @@ pub struct Updater { json_target: String, headers: HeaderMap, extract_path: PathBuf, + on_before_exit: Option, } impl Updater { @@ -354,6 +366,7 @@ impl Updater { let update = if should_update { Some(Update { config: self.config.clone(), + on_before_exit: self.on_before_exit.clone(), current_version: self.current_version.to_string(), target: self.target.clone(), extract_path: self.extract_path.clone(), @@ -375,9 +388,11 @@ impl Updater { } } -#[derive(Debug, Clone)] +#[derive(Clone)] pub struct Update { config: Config, + #[allow(unused)] + on_before_exit: Option, /// Update description pub body: Option, /// Version used to check for update @@ -490,7 +505,7 @@ impl Update { } #[cfg(mobile)] - fn install_inner(&self, bytes: Vec) -> Result<()> { + fn install_inner(&self, _bytes: Vec) -> Result<()> { Ok(()) } @@ -541,7 +556,7 @@ impl Update { let mut installer_args = self .installer_args .iter() - .map(|a| OsStr::new(a)) + .map(OsStr::new) .collect::>(); for path in paths { @@ -557,9 +572,13 @@ impl Update { continue; } + if let Some(on_before_exit) = self.on_before_exit.as_ref() { + on_before_exit(); + } + let file = encode_wide(found_path.as_os_str()); let parameters = encode_wide(installer_args.join(OsStr::new(" ")).as_os_str()); - let ret = unsafe { + unsafe { ShellExecuteW( 0, w!("open"), @@ -569,9 +588,7 @@ impl Update { SW_SHOW, ) }; - if ret <= 32 { - return Err(Error::Io(std::io::Error::last_os_error())); - } + std::process::exit(0); } From cb96aa06277f7b864952827ec9fb1e74c8a1f761 Mon Sep 17 00:00:00 2001 From: i-c-b <133848861+i-c-b@users.noreply.github.com> Date: Sat, 16 Mar 2024 20:01:49 +1000 Subject: [PATCH 133/643] fix(fs): rename `dir` field to `base_dir` in `WatchOptions`, fixes #1081 (#1082) * fix(fs): rename `dir` field to `base_dir` in `WatchOptions`, fixes #1081 * Create fix-fs-watcher-basedir.md --- .changes/fix-fs-watcher-basedir.md | 5 +++++ plugins/fs/src/watcher.rs | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changes/fix-fs-watcher-basedir.md diff --git a/.changes/fix-fs-watcher-basedir.md b/.changes/fix-fs-watcher-basedir.md new file mode 100644 index 000000000..031056b7d --- /dev/null +++ b/.changes/fix-fs-watcher-basedir.md @@ -0,0 +1,5 @@ +--- +"fs": patch +--- + +Fixes `watch` and `watchImmediate` which previously ignored the `baseDir` parameter. diff --git a/plugins/fs/src/watcher.rs b/plugins/fs/src/watcher.rs index d83262a2d..0795aa49e 100644 --- a/plugins/fs/src/watcher.rs +++ b/plugins/fs/src/watcher.rs @@ -75,7 +75,7 @@ fn watch_debounced(on_event: Channel, rx: Receiver) { #[derive(Deserialize)] #[serde(rename_all = "camelCase")] pub struct WatchOptions { - dir: Option, + base_dir: Option, recursive: bool, delay_ms: Option, } @@ -96,7 +96,7 @@ pub async fn watch( &global_scope, &command_scope, path, - options.dir, + options.base_dir, )?); } From 6a6c9daeb261a29707c9d011346c8b7746ae6f54 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Mon, 18 Mar 2024 09:40:14 +0100 Subject: [PATCH 134/643] chore(template): Replace {{name}} with PLUGIN_NAME (#1087) fixes #1052 --- shared/template/Cargo.toml | 2 +- shared/template/README.md | 2 +- shared/template/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index 7b0fbd4b0..e8eecc46f 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "tauri-plugin-{{name}}" +name = "tauri-plugin-PLUGIN_NAME" version = "0.0.0" edition.workspace = true authors.workspace = true diff --git a/shared/template/README.md b/shared/template/README.md index 4765690ff..f2d83a45a 100644 --- a/shared/template/README.md +++ b/shared/template/README.md @@ -1,4 +1,4 @@ -![{{plugin name}}](https://github.com/tauri-apps/plugins-workspace/raw/v1/plugins/{{plugin name}}/banner.png) +![PLUGIN_NAME](https://github.com/tauri-apps/plugins-workspace/raw/v1/plugins/PLUGIN_NAME/banner.png) diff --git a/shared/template/package.json b/shared/template/package.json index 287997fc6..046683a03 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -1,5 +1,5 @@ { - "name": "tauri-plugin-{{name}}-api", + "name": "tauri-plugin-PLUGIN_NAME-api", "version": "0.0.0", "license": "MIT or APACHE-2.0", "authors": [ From 7b9fa6607bdcf9161b097e95ad68651a8db0bcb6 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Mon, 18 Mar 2024 09:40:37 +0100 Subject: [PATCH 135/643] chore(template): Replace {{name}} with PLUGIN_NAME (#1088) fixes #1052 --- shared/template/Cargo.toml | 4 ++-- shared/template/README.md | 20 ++++++++++---------- shared/template/package.json | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index be8472bc0..1a2deb3fb 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -1,10 +1,10 @@ [package] -name = "tauri-plugin-{{name}}" +name = "tauri-plugin-PLUGIN_NAME" version = "1.0.0" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } -links = "tauri-plugin-{{name}}" +links = "tauri-plugin-PLUGIN_NAME" [package.metadata.docs.rs] rustc-args = [ "--cfg", "docsrs" ] diff --git a/shared/template/README.md b/shared/template/README.md index 920f5f8cc..0bd82b564 100644 --- a/shared/template/README.md +++ b/shared/template/README.md @@ -1,4 +1,4 @@ -![{{plugin-name}}](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/{{plugin-name}}/banner.png) +![PLUGIN_NAME](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/PLUGIN_NAME/banner.png) @@ -18,9 +18,9 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-{{plugin-name}} = "2.0.0-beta" +tauri-plugin-PLUGIN_NAME = "2.0.0-beta" # alternatively with Git: -tauri-plugin-{{plugin-name}} = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } +tauri-plugin-PLUGIN_NAME = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` You can install the JavaScript Guest bindings using your preferred JavaScript package manager: @@ -30,18 +30,18 @@ You can install the JavaScript Guest bindings using your preferred JavaScript pa ```sh -pnpm add @tauri-apps/plugin-{{plugin-name}} +pnpm add @tauri-apps/plugin-PLUGIN_NAME # or -npm add @tauri-apps/plugin-{{plugin-name}} +npm add @tauri-apps/plugin-PLUGIN_NAME # or -yarn add @tauri-apps/plugin-{{plugin-name}} +yarn add @tauri-apps/plugin-PLUGIN_NAME # alternatively with Git: -pnpm add https://github.com/tauri-apps/tauri-plugin-{{plugin-name}}#v2 +pnpm add https://github.com/tauri-apps/tauri-plugin-PLUGIN_NAME#v2 # or -npm add https://github.com/tauri-apps/tauri-plugin-{{plugin-name}}#v2 +npm add https://github.com/tauri-apps/tauri-plugin-PLUGIN_NAME#v2 # or -yarn add https://github.com/tauri-apps/tauri-plugin-{{plugin-name}}#v2 +yarn add https://github.com/tauri-apps/tauri-plugin-PLUGIN_NAME#v2 ``` ## Usage @@ -53,7 +53,7 @@ First you need to register the core plugin with Tauri: ```rust fn main() { tauri::Builder::default() - .plugin(tauri_plugin_{{plugin-name}}::init()) + .plugin(tauri_plugin_PLUGIN_NAME::init()) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/shared/template/package.json b/shared/template/package.json index caf348a4c..542a1cb6b 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -1,5 +1,5 @@ { - "name": "@tauri-apps/plugin-{{name}}", + "name": "@tauri-apps/plugin-PLUGIN_NAME", "version": "1.0.0", "license": "MIT or APACHE-2.0", "authors": [ From 03fab3c6adebcc74e4bf3ce3d9803c9cb3dde118 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 20:37:57 +0100 Subject: [PATCH 136/643] chore(deps): update typescript-eslint monorepo to v7.3.0 (#1090) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 117 +++++++++++++++++++++++++------------------------ 2 files changed, 61 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 8c37360b5..cdfd85062 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.2.0", - "@typescript-eslint/parser": "7.2.0", + "@typescript-eslint/eslint-plugin": "7.3.0", + "@typescript-eslint/parser": "7.3.0", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99da63ab8..e08bed014 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.13.0)(typescript@5.4.2) '@typescript-eslint/eslint-plugin': - specifier: 7.2.0 - version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.3.0 + version: 7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': - specifier: 7.2.0 - version: 7.2.0(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.3.0 + version: 7.3.0(eslint@8.57.0)(typescript@5.4.2) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.2.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.3.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -848,9 +848,9 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-e65ii0Y/jkqX3GXSBM7v9qt9ufxd4omcWyPVVC/msq/hP+hYC6CddLRvlvclni+u7UcaNYT/QhBYlaMHaR2ixw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 @@ -860,11 +860,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.3.0 + '@typescript-eslint/type-utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.3.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -898,9 +898,9 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.3.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-OZcvH8zipGILuxJmtFgzjAJ+bOpWidzEppIRsT2P4ZUrizU0EsPt4hhzDn3lNfM1Hv7slZPTEQGKjUEn/ftQYA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -908,10 +908,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/scope-manager': 7.3.0 + '@typescript-eslint/types': 7.3.0 + '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.3.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.2 @@ -927,17 +927,17 @@ packages: '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/scope-manager@7.2.0: - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.3.0: + resolution: {integrity: sha512-KlG7xH3J/+nHpZRcYeskO5QVJCnnssxYKBlrj3MoyMONihn3P4xu5jIelrS5YWvBjbytgHmFkzjDApranoYkNA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/types': 7.3.0 + '@typescript-eslint/visitor-keys': 7.3.0 dev: true - /@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.3.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-TyQ19ydo248eFjTfHFSvZbxalFUOxU9o2M6SUk3wOA0yRF1ZiB2VP5iaoLrGKcg7TyUxS4knYIHnE55ih82Cfg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -945,8 +945,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) + '@typescript-eslint/utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.0.1(typescript@5.4.2) @@ -960,9 +960,9 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.2.0: - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.3.0: + resolution: {integrity: sha512-oYCBkD0xVxzmZZmYiIWVewyy/q/ugq7PPm4pHhE1IgcT062i96G0Ww3gd8BvUYpk2yvg95q00Hj2CHRLjAuZBA==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true /@typescript-eslint/typescript-estree@6.4.0(typescript@5.4.2): @@ -986,17 +986,17 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.2): - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.3.0(typescript@5.4.2): + resolution: {integrity: sha512-UF85+bInQZ3olhI/zxv0c2b2SMuymn3t6/lkRkSB239HHxFmPSlmcggOKAjYzqRCdtqhPDftpsV1LlDH66AXrA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/types': 7.3.0 + '@typescript-eslint/visitor-keys': 7.3.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1008,18 +1008,18 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.3.0(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-7PKIDoe2ppR1SK56TLv7WQXrdHqEiueVwLVIjdSR4ROY2LprmJenf4+tT8iJIfxrsPzjSJGNeQ7GVmfoYbqrhw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.3.0 + '@typescript-eslint/types': 7.3.0 + '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1035,11 +1035,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.2.0: - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.3.0: + resolution: {integrity: sha512-Gz8Su+QjOI5qP8UQ74VqKaTt/BLy23IhCCHLbYxhmNzHCGFHrvfgq4hISZvuqQ690ubkD0746qLcWC647nScuQ==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/types': 7.3.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1476,8 +1476,9 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.2.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.3.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} + deprecated: Please use eslint-config-love, instead. peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 @@ -1486,11 +1487,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/eslint-plugin': 7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.4.2 @@ -1508,7 +1509,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -1523,7 +1524,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.3.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1544,7 +1545,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1564,7 +1565,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1574,7 +1575,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -1583,7 +1584,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 From 02111b9526e69e01f3bd5656ce6309b6814eb882 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Mon, 18 Mar 2024 21:39:46 +0100 Subject: [PATCH 137/643] chore: Change workspace inheritance syntax for better covector support (#1092) --- plugins/authenticator/Cargo.toml | 18 +++++++++--------- plugins/autostart/Cargo.toml | 18 +++++++++--------- plugins/fs-extra/Cargo.toml | 18 +++++++++--------- plugins/fs-watch/Cargo.toml | 18 +++++++++--------- plugins/localhost/Cargo.toml | 18 +++++++++--------- plugins/log/Cargo.toml | 14 +++++++------- plugins/persisted-scope/Cargo.toml | 18 +++++++++--------- plugins/positioner/Cargo.toml | 18 +++++++++--------- plugins/single-instance/Cargo.toml | 18 +++++++++--------- .../examples/vanilla/src-tauri/Cargo.toml | 8 ++++---- plugins/sql/Cargo.toml | 18 +++++++++--------- plugins/store/Cargo.toml | 18 +++++++++--------- .../AppSettingsManager/src-tauri/Cargo.toml | 6 +++--- plugins/stronghold/Cargo.toml | 18 +++++++++--------- plugins/upload/Cargo.toml | 18 +++++++++--------- plugins/websocket/Cargo.toml | 18 +++++++++--------- .../examples/tauri-app/src-tauri/Cargo.toml | 8 ++++---- plugins/window-state/Cargo.toml | 18 +++++++++--------- shared/template/Cargo.toml | 16 ++++++++-------- 19 files changed, 152 insertions(+), 152 deletions(-) diff --git a/plugins/authenticator/Cargo.toml b/plugins/authenticator/Cargo.toml index e0e71a75a..b8b039ef7 100644 --- a/plugins/authenticator/Cargo.toml +++ b/plugins/authenticator/Cargo.toml @@ -2,19 +2,19 @@ name = "tauri-plugin-authenticator" version = "0.0.0" description = "Use hardware security-keys in your Tauri App." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } authenticator = "0.3.1" once_cell = "1" sha2 = "0.10" diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index f1049a6ea..51b5bc0ab 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -2,17 +2,17 @@ name = "tauri-plugin-autostart" version = "0.0.0" description = "Automatically launch your application at startup." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } auto-launch = "0.5" \ No newline at end of file diff --git a/plugins/fs-extra/Cargo.toml b/plugins/fs-extra/Cargo.toml index 3904ec59a..3bb15aa31 100644 --- a/plugins/fs-extra/Cargo.toml +++ b/plugins/fs-extra/Cargo.toml @@ -2,16 +2,16 @@ name = "tauri-plugin-fs-extra" version = "0.0.0" description = "Additional file system methods not included in the core API." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true \ No newline at end of file +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } \ No newline at end of file diff --git a/plugins/fs-watch/Cargo.toml b/plugins/fs-watch/Cargo.toml index 9114907db..7c0822b48 100644 --- a/plugins/fs-watch/Cargo.toml +++ b/plugins/fs-watch/Cargo.toml @@ -2,18 +2,18 @@ name = "tauri-plugin-fs-watch" version = "0.0.0" description = "Watch files and directories for changes." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } notify = { version = "6" , features = ["serde"] } notify-debouncer-mini = { version = "0.4" , features = ["serde"] } diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index e56b16f10..26372bae9 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -2,18 +2,18 @@ name = "tauri-plugin-localhost" version = "0.1.0" description = "Expose your apps assets through a localhost server instead of the default custom protocol." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } tiny_http = "0.12" http = "1" diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 01e312d58..52668c99b 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -2,17 +2,17 @@ name = "tauri-plugin-log" version = "0.0.0" description = "Configurable logging for your Tauri app." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } serde_repr = "0.1" byte-unit = "5" fern = "0.6" diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 23cfed408..e3c481cd3 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -2,19 +2,19 @@ name = "tauri-plugin-persisted-scope" version = "0.1.3" description = "Save filesystem and asset scopes and restore them when the app is reopened." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } aho-corasick = "1.1" bincode = "1" diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index dcab86c96..11623b330 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -2,19 +2,19 @@ name = "tauri-plugin-positioner" version = "1.0.4" description = "Position your windows at well-known locations." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } serde_repr = "0.1" [features] diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 3ed003753..b0d703ba6 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -2,20 +2,20 @@ name = "tauri-plugin-single-instance" version = "0.0.0" description = "Ensure a single instance of your tauri app is running." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } [target.'cfg(target_os = "windows")'.dependencies.windows-sys] version = "0.52" diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index 21c3af739..ab8df5a22 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -8,13 +8,13 @@ edition = "2021" rust-version = "1.57" [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } tauri-plugin-single-instance = { path = "../../../" } [build-dependencies] -tauri-build.workspace = true +tauri-build = { workspace = true } [features] custom-protocol = [ "tauri/custom-protocol" ] diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 17239b023..40fa7e6d5 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -2,20 +2,20 @@ name = "tauri-plugin-sql" version = "0.0.0" description = "Interface with SQL databases." -authors.workspace = true -license.workspace = true -edition.workspace = true -#rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +#rust-version = { workspace = true } rust-version = "1.65" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } futures-core = "0.3" sqlx = { version = "0.7", features = ["json", "time"] } time = "0.3" diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index 626dbebc1..b73881ad1 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -2,16 +2,16 @@ name = "tauri-plugin-store" version = "0.0.0" description = "Simple, persistent key-value store." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true \ No newline at end of file +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } \ No newline at end of file diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml index a342892fa..d2ca76b4e 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml +++ b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml @@ -10,12 +10,12 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build.workspace = true +tauri-build = { workspace = true } [dependencies] tauri = { workspace = true, features = ["shell-open"] } -serde.workspace = true -serde_json.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } tauri-plugin-store = { path = "../../../" } [features] diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 5952fb1bf..e046f13c9 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -2,19 +2,19 @@ name = "tauri-plugin-stronghold" version = "0.0.0" description = "Store secrets and keys using the IOTA Stronghold encrypted database." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } iota_stronghold = "1" iota-crypto = "0.23" hex = "0.4" diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 49abc6d43..0395abfd1 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -2,19 +2,19 @@ name = "tauri-plugin-upload" version = "0.0.0" description = "Upload files from disk to a remote server over HTTP." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } tokio = { version = "1", features = [ "fs" ] } tokio-util = { version = "0.7", features = [ "codec" ] } reqwest = { version = "0.11", features = [ "json", "stream" ] } diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 249f3c9b1..6ded04a13 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,20 +1,20 @@ [package] name = "tauri-plugin-websocket" version = "0.0.0" -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } exclude = ["/examples"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } http = "1" rand = "0.8" futures-util = "0.3" diff --git a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index ed1ab7d6f..ce5c6d225 100644 --- a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -5,16 +5,16 @@ description = "A Tauri App" edition = "2021" [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } tokio = { version = "1", features = ["net"] } futures-util = "0.3" tauri-plugin-websocket = { path = "../../../" } tokio-tungstenite = "0.21" [build-dependencies] -tauri-build.workspace = true +tauri-build = { workspace = true } [features] custom-protocol = [ "tauri/custom-protocol" ] diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 19693f36f..cdf6955e5 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -2,18 +2,18 @@ name = "tauri-plugin-window-state" version = "0.1.0" description = "Save window positions and sizes and restore them when the app is reopened." -authors.workspace = true -license.workspace = true -edition.workspace = true -rust-version.workspace = true +authors = { workspace = true } +license = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } bincode = "1.3" bitflags = "2" diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index e8eecc46f..07b8b1e48 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "tauri-plugin-PLUGIN_NAME" version = "0.0.0" -edition.workspace = true -authors.workspace = true -license.workspace = true +edition = { workspace = true } +authors = { workspace = true } +license = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serde.workspace = true -serde_json.workspace = true -tauri.workspace = true -log.workspace = true -thiserror.workspace = true \ No newline at end of file +serde = { workspace = true } +serde_json = { workspace = true } +tauri = { workspace = true } +log = { workspace = true } +thiserror = { workspace = true } \ No newline at end of file From cc63614f1e4415f847ad14cb75ff79a9ade44184 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 21:49:08 +0100 Subject: [PATCH 138/643] publish new versions (#471) Co-authored-by: FabianLars --- .changes/stronghold-arg-name.md | 5 ----- .changes/stronghold-argon2.md | 5 ----- .changes/stronghold-constructor.md | 5 ----- .changes/tray-position.md | 5 ----- .changes/window-state-zero-positions.md | 8 -------- plugins/positioner/CHANGELOG.md | 5 +++++ plugins/positioner/Cargo.toml | 6 ++---- plugins/window-state/CHANGELOG.md | 11 +++++++++++ plugins/window-state/Cargo.toml | 4 +--- 9 files changed, 19 insertions(+), 35 deletions(-) delete mode 100644 .changes/stronghold-arg-name.md delete mode 100644 .changes/stronghold-argon2.md delete mode 100644 .changes/stronghold-constructor.md delete mode 100644 .changes/tray-position.md delete mode 100644 .changes/window-state-zero-positions.md create mode 100644 plugins/window-state/CHANGELOG.md diff --git a/.changes/stronghold-arg-name.md b/.changes/stronghold-arg-name.md deleted file mode 100644 index 61efc0ede..000000000 --- a/.changes/stronghold-arg-name.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"stronghold-js": patch ---- - -Change the argument name of the `Stronghold.remove` from `location` to `recordPath` to match the Stronghold command argument diff --git a/.changes/stronghold-argon2.md b/.changes/stronghold-argon2.md deleted file mode 100644 index 598e4f804..000000000 --- a/.changes/stronghold-argon2.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"stronghold": patch ---- - -Added `Builder::with_argon2`. diff --git a/.changes/stronghold-constructor.md b/.changes/stronghold-constructor.md deleted file mode 100644 index 999660958..000000000 --- a/.changes/stronghold-constructor.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"stronghold-js": minor ---- - -Added `Stronghold.load` and removed its constructor. diff --git a/.changes/tray-position.md b/.changes/tray-position.md deleted file mode 100644 index c1fa71cb5..000000000 --- a/.changes/tray-position.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"positioner": patch ---- - -`TrayLeft`, `TrayRight` and `TrayCenter` will now position the window according to the tray position relative to the monitor dimensions to prevent windows being displayed partially off-screen. diff --git a/.changes/window-state-zero-positions.md b/.changes/window-state-zero-positions.md deleted file mode 100644 index 14e89087c..000000000 --- a/.changes/window-state-zero-positions.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"window-state": "patch" ---- - -Address a couple of issues with restoring positions: - -- Fix restoring window positions correctly when the top-left corner of the window was outside of the monitor. -- Fix restore maximization state only maximized on main monitor. diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index 711997802..bc9a2ae26 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[1.0.5] + +- `TrayLeft`, `TrayRight` and `TrayCenter` will now position the window according to the tray position relative to the monitor dimensions to prevent windows being displayed partially off-screen. + - [3d27909](https://github.com/tauri-apps/plugins-workspace/commit/3d279094d44be78cdc5d1de3938f1414e13db6b0) fix(positioner): Prevent tray relative windows from being moved off-screen ([#291](https://github.com/tauri-apps/plugins-workspace/pull/291)) on 2023-09-27 + ## \[0.2.7] - Update Tauri to v1.0.0 diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 11623b330..2e925e21f 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,14 +1,12 @@ [package] name = "tauri-plugin-positioner" -version = "1.0.4" +version = "1.0.5" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] serde = { workspace = true } serde_json = { workspace = true } @@ -18,4 +16,4 @@ thiserror = { workspace = true } serde_repr = "0.1" [features] -system-tray = [ "tauri/system-tray" ] \ No newline at end of file +system-tray = [ "tauri/system-tray" ] diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md new file mode 100644 index 000000000..a05ab29ee --- /dev/null +++ b/plugins/window-state/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +## \[0.1.1] + +- Address a couple of issues with restoring positions: + +- Fix restoring window positions correctly when the top-left corner of the window was outside of the monitor. + +- Fix restore maximization state only maximized on main monitor. + +- [70d9908](https://github.com/tauri-apps/plugins-workspace/commit/70d99086de3a58189d65c49954a3495972880725) fix(window-state): restore window position if the one of the window corners intersects with monitor ([#898](https://github.com/tauri-apps/plugins-workspace/pull/898)) on 2024-01-25 diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index cdf6955e5..81172a80e 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,14 +1,12 @@ [package] name = "tauri-plugin-window-state" -version = "0.1.0" +version = "0.1.1" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] serde = { workspace = true } serde_json = { workspace = true } From 6db4320e98a4278d605dd05d4d87e1433939a7cd Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Mon, 18 Mar 2024 22:27:43 +0100 Subject: [PATCH 139/643] ci: Rename covector working branch to ci/release-v1 (#1091) --- .github/workflows/covector-version-or-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index f6a677242..08bef7370 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -60,5 +60,5 @@ jobs: title: "Publish New Versions" commit-message: "publish new versions" labels: "version updates" - branch: "release" + branch: "ci/release-v1" body: ${{ steps.covector.outputs.change }} From 160498dae5bfb1761275b6af69678ff820ee73bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 08:22:46 +0100 Subject: [PATCH 140/643] chore(deps): update typescript-eslint monorepo to v7.3.1 (#1093) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 100 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index cdfd85062..057b2d6bd 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", - "@typescript-eslint/eslint-plugin": "7.3.0", - "@typescript-eslint/parser": "7.3.0", + "@typescript-eslint/eslint-plugin": "7.3.1", + "@typescript-eslint/parser": "7.3.1", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-config-standard-with-typescript": "43.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e08bed014..60a90b7fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,11 +22,11 @@ importers: specifier: 11.1.6 version: 11.1.6(rollup@4.13.0)(typescript@5.4.2) '@typescript-eslint/eslint-plugin': - specifier: 7.3.0 - version: 7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.3.1 + version: 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': - specifier: 7.3.0 - version: 7.3.0(eslint@8.57.0)(typescript@5.4.2) + specifier: 7.3.1 + version: 7.3.1(eslint@8.57.0)(typescript@5.4.2) eslint: specifier: 8.57.0 version: 8.57.0 @@ -35,10 +35,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: 43.0.1 - version: 43.0.1(@typescript-eslint/eslint-plugin@7.3.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) + version: 43.0.1(@typescript-eslint/eslint-plugin@7.3.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -848,8 +848,8 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-e65ii0Y/jkqX3GXSBM7v9qt9ufxd4omcWyPVVC/msq/hP+hYC6CddLRvlvclni+u7UcaNYT/QhBYlaMHaR2ixw==} + /@typescript-eslint/eslint-plugin@7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -860,11 +860,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/scope-manager': 7.3.0 - '@typescript-eslint/type-utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.3.0 + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/type-utils': 7.3.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -898,8 +898,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.3.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-OZcvH8zipGILuxJmtFgzjAJ+bOpWidzEppIRsT2P4ZUrizU0EsPt4hhzDn3lNfM1Hv7slZPTEQGKjUEn/ftQYA==} + /@typescript-eslint/parser@7.3.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -908,10 +908,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.3.0 - '@typescript-eslint/types': 7.3.0 - '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.3.0 + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.2 @@ -927,16 +927,16 @@ packages: '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/scope-manager@7.3.0: - resolution: {integrity: sha512-KlG7xH3J/+nHpZRcYeskO5QVJCnnssxYKBlrj3MoyMONihn3P4xu5jIelrS5YWvBjbytgHmFkzjDApranoYkNA==} + /@typescript-eslint/scope-manager@7.3.1: + resolution: {integrity: sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.3.0 - '@typescript-eslint/visitor-keys': 7.3.0 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 dev: true - /@typescript-eslint/type-utils@7.3.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-TyQ19ydo248eFjTfHFSvZbxalFUOxU9o2M6SUk3wOA0yRF1ZiB2VP5iaoLrGKcg7TyUxS4knYIHnE55ih82Cfg==} + /@typescript-eslint/type-utils@7.3.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -945,8 +945,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) - '@typescript-eslint/utils': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.0.1(typescript@5.4.2) @@ -960,8 +960,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.3.0: - resolution: {integrity: sha512-oYCBkD0xVxzmZZmYiIWVewyy/q/ugq7PPm4pHhE1IgcT062i96G0Ww3gd8BvUYpk2yvg95q00Hj2CHRLjAuZBA==} + /@typescript-eslint/types@7.3.1: + resolution: {integrity: sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==} engines: {node: ^18.18.0 || >=20.0.0} dev: true @@ -986,8 +986,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.3.0(typescript@5.4.2): - resolution: {integrity: sha512-UF85+bInQZ3olhI/zxv0c2b2SMuymn3t6/lkRkSB239HHxFmPSlmcggOKAjYzqRCdtqhPDftpsV1LlDH66AXrA==} + /@typescript-eslint/typescript-estree@7.3.1(typescript@5.4.2): + resolution: {integrity: sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -995,8 +995,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.3.0 - '@typescript-eslint/visitor-keys': 7.3.0 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1008,8 +1008,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.3.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-7PKIDoe2ppR1SK56TLv7WQXrdHqEiueVwLVIjdSR4ROY2LprmJenf4+tT8iJIfxrsPzjSJGNeQ7GVmfoYbqrhw==} + /@typescript-eslint/utils@7.3.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1017,9 +1017,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.3.0 - '@typescript-eslint/types': 7.3.0 - '@typescript-eslint/typescript-estree': 7.3.0(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.2) eslint: 8.57.0 semver: 7.5.3 transitivePeerDependencies: @@ -1035,11 +1035,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.3.0: - resolution: {integrity: sha512-Gz8Su+QjOI5qP8UQ74VqKaTt/BLy23IhCCHLbYxhmNzHCGFHrvfgq4hISZvuqQ690ubkD0746qLcWC647nScuQ==} + /@typescript-eslint/visitor-keys@7.3.1: + resolution: {integrity: sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.3.0 + '@typescript-eslint/types': 7.3.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1476,7 +1476,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.3.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): + /eslint-config-standard-with-typescript@43.0.1(@typescript-eslint/eslint-plugin@7.3.1)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.2): resolution: {integrity: sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==} deprecated: Please use eslint-config-love, instead. peerDependencies: @@ -1487,11 +1487,11 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.3.0(@typescript-eslint/parser@7.3.0)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/eslint-plugin': 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': 6.4.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) typescript: 5.4.2 @@ -1509,7 +1509,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -1524,7 +1524,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.3.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -1545,7 +1545,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.2) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -1565,7 +1565,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1575,7 +1575,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.3.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -1584,7 +1584,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 From 9dec9605ed1ce19dbef697e55debddf9008ecba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=89=AF=E4=BB=94?= <32487868+cijiugechu@users.noreply.github.com> Date: Tue, 19 Mar 2024 20:35:37 +0800 Subject: [PATCH 141/643] feat(clipboard): support `readImage` & `writeImage` (#845) * feat(clipboard): support `read_image` & `write_image` * fix plugin name * platform specific bahavior * remove unnecessary BufWriter * improvement * update example * update example * format * header, fix change file * use image from tauri * fix ci * update tauri, fix read * image crate only on desktop [skip ci] * Update plugins/authenticator/src/u2f_crate/protocol.rs [skip ci] Co-authored-by: Amr Bashir * Update plugins/authenticator/src/u2f_crate/protocol.rs [skip ci] Co-authored-by: Amr Bashir * update deps, address code review * fix mobile [skip ci] --------- Co-authored-by: Lucas Nogueira Co-authored-by: Lucas Nogueira Co-authored-by: Amr Bashir --- .changes/clipboard-manager-image.md | 6 + .changes/clipboard-text-command-rename.md | 5 + Cargo.lock | 549 ++++++++++-------- Cargo.toml | 6 +- examples/api/package.json | 4 +- examples/api/src-tauri/capabilities/base.json | 7 +- .../src-tauri/gen/schemas/desktop-schema.json | 207 +++++-- .../src-tauri/gen/schemas/mobile-schema.json | 253 +++++++- examples/api/src-tauri/src/tray.rs | 5 +- examples/api/src/lib/utils.js | 15 + examples/api/src/views/Clipboard.svelte | 52 +- examples/api/src/views/FileSystem.svelte | 19 +- plugins/authenticator/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- .../authenticator/src/u2f_crate/protocol.rs | 6 +- plugins/autostart/package.json | 2 +- .../autostart/permissions/schemas/schema.json | 10 +- plugins/barcode-scanner/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/biometric/package.json | 2 +- .../biometric/permissions/schemas/schema.json | 10 +- plugins/cli/package.json | 2 +- plugins/cli/permissions/schemas/schema.json | 10 +- plugins/clipboard-manager/Cargo.toml | 1 + .../android/src/main/java/ClipboardPlugin.kt | 4 +- plugins/clipboard-manager/build.rs | 9 +- plugins/clipboard-manager/guest-js/index.ts | 57 +- .../ios/Sources/ClipboardPlugin.swift | 4 +- plugins/clipboard-manager/package.json | 2 +- .../autogenerated/commands/clear.toml | 13 + .../autogenerated/commands/read.toml | 13 - .../autogenerated/commands/read_image.toml | 13 + .../autogenerated/commands/read_text.toml | 13 + .../autogenerated/commands/write.toml | 13 - .../autogenerated/commands/write_html.toml | 13 + .../autogenerated/commands/write_image.toml | 13 + .../autogenerated/commands/write_text.toml | 13 + .../permissions/autogenerated/reference.md | 16 +- .../permissions/schemas/schema.json | 82 ++- plugins/clipboard-manager/src/api-iife.js | 2 +- plugins/clipboard-manager/src/commands.rs | 30 +- plugins/clipboard-manager/src/desktop.rs | 53 +- plugins/clipboard-manager/src/error.rs | 6 + plugins/clipboard-manager/src/lib.rs | 8 +- plugins/clipboard-manager/src/mobile.rs | 17 +- plugins/clipboard-manager/src/models.rs | 16 +- plugins/deep-link/examples/app/package.json | 4 +- plugins/deep-link/package.json | 2 +- .../deep-link/permissions/schemas/schema.json | 10 +- plugins/dialog/package.json | 2 +- .../dialog/permissions/schemas/schema.json | 10 +- plugins/fs/package.json | 2 +- plugins/fs/permissions/schemas/schema.json | 10 +- plugins/global-shortcut/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/http/package.json | 2 +- plugins/http/permissions/schemas/schema.json | 10 +- plugins/log/package.json | 2 +- plugins/log/permissions/schemas/schema.json | 10 +- plugins/nfc/package.json | 2 +- plugins/nfc/permissions/schemas/schema.json | 10 +- plugins/notification/Cargo.toml | 1 - plugins/notification/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/os/package.json | 2 +- plugins/os/permissions/schemas/schema.json | 10 +- plugins/positioner/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/process/package.json | 2 +- .../process/permissions/schemas/schema.json | 10 +- plugins/shell/package.json | 2 +- plugins/shell/permissions/schemas/schema.json | 10 +- .../examples/vanilla/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/sql/permissions/schemas/schema.json | 10 +- plugins/store/package.json | 2 +- plugins/store/permissions/schemas/schema.json | 10 +- plugins/stronghold/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/updater/package.json | 2 +- .../updater/permissions/schemas/schema.json | 10 +- plugins/upload/package.json | 2 +- .../upload/permissions/schemas/schema.json | 10 +- .../websocket/examples/tauri-app/package.json | 2 +- plugins/websocket/package.json | 2 +- .../websocket/permissions/schemas/schema.json | 10 +- plugins/window-state/package.json | 2 +- .../permissions/schemas/schema.json | 10 +- plugins/window-state/src/api-iife.js | 2 +- pnpm-lock.yaml | 280 ++++----- shared/template/package.json | 2 +- 91 files changed, 1331 insertions(+), 795 deletions(-) create mode 100644 .changes/clipboard-manager-image.md create mode 100644 .changes/clipboard-text-command-rename.md create mode 100644 examples/api/src/lib/utils.js create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/clear.toml delete mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/read.toml create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/read_image.toml create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/read_text.toml delete mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/write.toml create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/write_html.toml create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/write_image.toml create mode 100644 plugins/clipboard-manager/permissions/autogenerated/commands/write_text.toml diff --git a/.changes/clipboard-manager-image.md b/.changes/clipboard-manager-image.md new file mode 100644 index 000000000..9151d108b --- /dev/null +++ b/.changes/clipboard-manager-image.md @@ -0,0 +1,6 @@ +--- +"clipboard-manager": "minor" +"clipboard-manager-js": "minor" +--- + +Add support for `read_image` and `write_image` to the clipboard plugin (desktop). diff --git a/.changes/clipboard-text-command-rename.md b/.changes/clipboard-text-command-rename.md new file mode 100644 index 000000000..53ec3888d --- /dev/null +++ b/.changes/clipboard-text-command-rename.md @@ -0,0 +1,5 @@ +--- +"clipboard-manager": patch +--- + +The `write` and `read` commands are now called `write_text` and `read_text` so the permission name was changed. diff --git a/Cargo.lock b/Cargo.lock index 9dee2ec47..e4e67de7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,7 +83,7 @@ dependencies = [ "aes 0.8.4", "cipher 0.4.4", "ctr 0.9.2", - "ghash 0.5.0", + "ghash 0.5.1", "subtle", ] @@ -100,9 +100,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom 0.2.12", @@ -176,9 +176,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -271,9 +271,9 @@ dependencies = [ [[package]] name = "arboard" -version = "3.3.1" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1faa3c733d9a3dd6fbaf85da5d162a2e03b2e0033a90dceb0e2a90fdd1e5380a" +checksum = "a2041f1943049c7978768d84e6d0fd95de98b76d6c4727b09e78ec253d29fa58" dependencies = [ "clipboard-win", "core-graphics 0.23.1", @@ -345,7 +345,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" dependencies = [ - "event-listener 5.1.0", + "event-listener 5.2.0", "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", @@ -358,7 +358,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 5.1.0", + "event-listener 5.2.0", "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", @@ -454,7 +454,7 @@ dependencies = [ "async-signal", "blocking", "cfg-if", - "event-listener 5.1.0", + "event-listener 5.2.0", "futures-lite", "rustix", "windows-sys 0.52.0", @@ -468,7 +468,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -503,7 +503,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -546,11 +546,11 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "atomic-write-file" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +checksum = "a8204db279bf648d64fe845bd8840f78b39c8132ed4d6a4194c3b10d4b4cfb0b" dependencies = [ - "nix 0.27.1", + "nix 0.28.0", "rand 0.8.5", ] @@ -742,9 +742,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667" dependencies = [ "borsh-derive", "cfg_aliases 0.1.1", @@ -752,15 +752,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" dependencies = [ "once_cell", - "proc-macro-crate 2.0.2", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", "syn_derive", ] @@ -787,9 +787,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byte-unit" @@ -841,7 +841,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -944,14 +944,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" dependencies = [ "serde", - "toml 0.8.2", + "toml 0.8.10", ] [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ "jobserver", "libc", @@ -1029,9 +1029,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1069,18 +1069,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -1096,9 +1096,9 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "clipboard-win" -version = "5.1.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec832972fefb8cf9313b45a0d1945e29c9c251f1d4c6eafc5fe2124c02d2e81" +checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297" dependencies = [ "error-code", ] @@ -1352,9 +1352,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -1434,17 +1434,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] name = "ctor" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" +checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -1480,9 +1480,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ "darling_core", "darling_macro", @@ -1490,27 +1490,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] name = "darling_macro" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -1665,7 +1665,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.1", + "libloading 0.8.3", ] [[package]] @@ -1688,7 +1688,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -1765,9 +1765,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ed25519-zebra" @@ -1794,16 +1794,16 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881" +checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d" dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.2", + "toml 0.8.10", "vswhom", - "winreg 0.51.0", + "winreg 0.52.0", ] [[package]] @@ -1836,7 +1836,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -1857,7 +1857,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -1891,9 +1891,9 @@ dependencies = [ [[package]] name = "error-code" -version = "3.0.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc" +checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b" [[package]] name = "etcetera" @@ -1925,9 +1925,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.1.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", @@ -1950,7 +1950,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" dependencies = [ - "event-listener 5.1.0", + "event-listener 5.2.0", "pin-project-lite", ] @@ -2086,7 +2086,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -2215,7 +2215,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -2425,19 +2425,19 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", - "polyval 0.6.1", + "polyval 0.6.2", ] [[package]] name = "gif" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" dependencies = [ "color_quant", "weezl", @@ -2561,11 +2561,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ "heck", - "proc-macro-crate 2.0.2", + "proc-macro-crate 2.0.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -2679,7 +2679,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -2693,8 +2693,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.11", - "indexmap 2.2.3", + "http 0.2.12", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -2710,7 +2710,7 @@ dependencies = [ "bytes", "fastrand", "futures-util", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", "tokio", "tracing", @@ -2733,9 +2733,9 @@ dependencies = [ [[package]] name = "half" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" dependencies = [ "cfg-if", "crunchy", @@ -2756,7 +2756,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "allocator-api2", ] @@ -2789,9 +2789,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -2853,9 +2853,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -2864,9 +2864,9 @@ dependencies = [ [[package]] name = "http" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -2880,7 +2880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", ] @@ -2919,7 +2919,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http 0.2.11", + "http 0.2.12", "http-body", "httparse", "httpdate", @@ -2939,7 +2939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.11", + "http 0.2.12", "hyper", "rustls 0.21.10", "tokio", @@ -3030,9 +3030,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" dependencies = [ "bytemuck", "byteorder", @@ -3059,9 +3059,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3201,7 +3201,7 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", "windows-sys 0.52.0", ] @@ -3302,9 +3302,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3433,12 +3433,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] [[package]] @@ -3723,9 +3723,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", @@ -3753,9 +3753,9 @@ dependencies = [ [[package]] name = "muda" -version = "0.11.5" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c47e7625990fc1af2226ea4f34fb2412b03c12639fcb91868581eb3a6893453" +checksum = "3e27c56b8cb9b3214d196556227b0eaa12db8393b4f919a0a93ffb67ed17d185" dependencies = [ "cocoa 0.25.0", "crossbeam-channel", @@ -3836,12 +3836,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.4.2", "cfg-if", + "cfg_aliases 0.1.1", "libc", "memoffset 0.9.0", ] @@ -3965,7 +3966,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", ] @@ -4055,9 +4056,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" @@ -4072,9 +4073,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ "bitflags 2.4.2", "cfg-if", @@ -4093,7 +4094,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -4113,9 +4114,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -4369,7 +4370,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -4456,7 +4457,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" dependencies = [ "base64 0.21.7", - "indexmap 2.2.3", + "indexmap 2.2.5", "line-wrap", "quick-xml 0.31.0", "serde", @@ -4515,9 +4516,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -4555,12 +4556,20 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -4829,9 +4838,9 @@ checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -4886,7 +4895,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -4901,9 +4910,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -4949,7 +4958,7 @@ dependencies = [ "h2", "h3", "h3-quinn", - "http 0.2.11", + "http 0.2.12", "http-body", "hyper", "hyper-rustls", @@ -5218,9 +5227,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" +checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" [[package]] name = "rustls-webpki" @@ -5399,22 +5408,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -5430,9 +5439,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa 1.0.10", "ryu", @@ -5447,7 +5456,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -5481,7 +5490,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.3", + "indexmap 2.2.5", "serde", "serde_derive", "serde_json", @@ -5498,7 +5507,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -5658,12 +5667,12 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -5778,7 +5787,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "atoi", "byteorder", "bytes", @@ -5794,7 +5803,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.2.3", + "indexmap 2.2.5", "log", "memchr", "once_cell", @@ -6121,9 +6130,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.49" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -6139,7 +6148,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -6187,15 +6196,15 @@ dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml 0.8.2", + "toml 0.8.10", "version-compare", ] [[package]] name = "tao" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d9325da2dd7ebd48a8a433c64240079b15dbe1249da04c72557611bcd08d1c" +checksum = "ccba570365293ca309d60f30fdac2c5271b732dc762e6154e59c85d2c762a0a1" dependencies = [ "bitflags 1.3.2", "cocoa 0.25.0", @@ -6261,15 +6270,15 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tauri" -version = "2.0.0-beta.9" +version = "2.0.0-beta.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353a521566bd41164a05887f40fe93b375c82b82000726f63c66237955dfb4f5" +checksum = "c33d0026c6146b73322833bc8e51fc4ee400a814c4cbfe489e3c2aa92cfedcec" dependencies = [ "anyhow", "bytes", @@ -6281,10 +6290,9 @@ dependencies = [ "glob", "gtk", "heck", - "http 0.2.11", + "http 0.2.12", "http-range", - "ico", - "infer", + "image", "jni", "libc", "log", @@ -6292,7 +6300,6 @@ dependencies = [ "muda", "objc", "percent-encoding", - "png", "raw-window-handle 0.6.0", "reqwest", "serde", @@ -6310,6 +6317,7 @@ dependencies = [ "tokio", "tray-icon", "url", + "urlpattern", "uuid", "webkit2gtk", "webview2-com", @@ -6319,9 +6327,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50887f06d343b6ede0260d29abb4edd57f40d8aac538f6e34d801c9a4fa1c6b8" +checksum = "1e851a54f222a49babb6b8b94869307e0bf95be086ed92983c42a56d5ed92132" dependencies = [ "anyhow", "cargo_toml", @@ -6337,15 +6345,15 @@ dependencies = [ "tauri-codegen", "tauri-utils", "tauri-winres", - "toml 0.8.2", + "toml 0.8.10", "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c676621ba42f97d349ee1a835cfac8a268d8843c8b81fa7663ebac2854786a" +checksum = "3ff9b1089989eecc839680cb6b52f6e7ee4733d09fa31861fc4a855996006fe5" dependencies = [ "base64 0.22.0", "brotli", @@ -6359,7 +6367,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "syn 2.0.49", + "syn 2.0.52", "tauri-utils", "thiserror", "time", @@ -6370,23 +6378,23 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5e87dc692a359ee99662616639fe35681e3ce9929e1ec2447b2e3853b6bda6" +checksum = "a4b56c7b752b2b70b74299ff5421795e0e287b6748dd7ec8d44ae8e1637216a7" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84ccc2181a81c66f2b203775b6b67590cc357bc477c57f0fac844c31dd5c474" +checksum = "233d4ed7ba51ff398831204ed6c8971b9565c91077e3fdef4711fe7b7715b23a" dependencies = [ "anyhow", "glob", @@ -6395,7 +6403,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "toml 0.8.2", + "toml 0.8.10", "walkdir", ] @@ -6477,6 +6485,7 @@ name = "tauri-plugin-clipboard-manager" version = "2.0.0-beta.2" dependencies = [ "arboard", + "image", "log", "serde", "serde_json", @@ -6551,7 +6560,7 @@ name = "tauri-plugin-http" version = "2.0.0-beta.2" dependencies = [ "data-url", - "http 0.2.11", + "http 0.2.12", "regex", "reqwest", "schemars", @@ -6569,7 +6578,7 @@ dependencies = [ name = "tauri-plugin-localhost" version = "2.0.0-beta.2" dependencies = [ - "http 1.0.0", + "http 1.1.0", "log", "serde", "serde_json", @@ -6618,7 +6627,6 @@ dependencies = [ "color-backtrace", "ctor", "env_logger", - "image", "lazy_static", "log", "mac-notification-sys", @@ -6777,7 +6785,7 @@ dependencies = [ "dirs-next", "flate2", "futures-util", - "http 0.2.11", + "http 0.2.12", "minisign-verify", "mockito", "percent-encoding", @@ -6819,7 +6827,7 @@ name = "tauri-plugin-websocket" version = "2.0.0-beta.2" dependencies = [ "futures-util", - "http 1.0.0", + "http 1.1.0", "log", "rand 0.8.5", "serde", @@ -6847,12 +6855,12 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc1ebe2a720c1b62a9980ebf44f27db4f8a475e1465917959ce3940d6903307" +checksum = "34ddcf3c08632714e854e38105b39260ec239edd05a77ffcf5f4b3a51f97b119" dependencies = [ "gtk", - "http 0.2.11", + "http 0.2.12", "jni", "raw-window-handle 0.6.0", "serde", @@ -6865,13 +6873,13 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e853c02137e908589e9f0c684f10bb49d0dedf9e86ad734a18e42ce9bbd2ab" +checksum = "e2694f090a001c55536bbafb45f813229f06e461b3878a5c8280a98e52abb501" dependencies = [ "cocoa 0.25.0", "gtk", - "http 0.2.11", + "http 0.2.12", "jni", "log", "percent-encoding", @@ -6889,9 +6897,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-beta.7" +version = "2.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1973b15065cb63868f5fba789d54ef04232d7e0229fb2230d1f557480a5ceea" +checksum = "ef6a9ec42c3429fac6d46f4af147c765963a6fca18062dd73833032d812231af" dependencies = [ "aes-gcm 0.10.3", "brotli", @@ -6910,6 +6918,7 @@ dependencies = [ "phf 0.11.2", "proc-macro2", "quote", + "regex", "schemars", "semver", "serde", @@ -6918,8 +6927,9 @@ dependencies = [ "serialize-to-javascript", "swift-rs", "thiserror", - "toml 0.8.2", + "toml 0.8.10", "url", + "urlpattern", "walkdir", ] @@ -6945,9 +6955,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -6998,14 +7008,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -7063,7 +7073,7 @@ checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d" dependencies = [ "as-raw-xcb-connection", "ctor", - "libloading 0.8.1", + "libloading 0.8.3", "tracing", ] @@ -7225,21 +7235,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.22.6", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -7250,24 +7260,46 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.5", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.5", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +dependencies = [ + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -7296,7 +7328,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -7340,9 +7372,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.11.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4d9ddd4a7c0f3b6862af1c4911b529a49db4ee89310d3a258859c2f5053fdd" +checksum = "454035ff34b8430638c894e6197748578d6b4d449c6edaf8ea854d94e2dd862b" dependencies = [ "cocoa 0.25.0", "core-graphics 0.23.1", @@ -7428,7 +7460,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.0.0", + "http 1.1.0", "httparse", "log", "native-tls", @@ -7522,9 +7554,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -7692,9 +7724,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -7722,10 +7754,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.91" +name = "wasite" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -7733,24 +7771,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -7760,9 +7798,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7770,22 +7808,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-streams" @@ -7851,9 +7889,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -7954,7 +7992,7 @@ checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -7976,9 +8014,13 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "whoami" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e" +dependencies = [ + "redox_syscall", + "wasite", +] [[package]] name = "widestring" @@ -8122,7 +8164,7 @@ checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -8133,7 +8175,7 @@ checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -8395,6 +8437,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -8416,9 +8467,9 @@ dependencies = [ [[package]] name = "winreg" -version = "0.51.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if", "windows-sys 0.48.0", @@ -8440,7 +8491,7 @@ dependencies = [ "gdkx11", "gtk", "html5ever", - "http 0.2.11", + "http 0.2.12", "javascriptcore-rs", "jni", "kuchikiki", @@ -8508,7 +8559,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.1", + "libloading 0.8.3", "once_cell", "rustix", "x11rb-protocol", @@ -8554,9 +8605,9 @@ dependencies = [ [[package]] name = "zbus" -version = "4.0.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" +checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9" dependencies = [ "async-broadcast", "async-executor", @@ -8570,12 +8621,12 @@ dependencies = [ "blocking", "derivative", "enumflags2", - "event-listener 5.1.0", + "event-listener 5.2.0", "futures-core", "futures-sink", "futures-util", "hex", - "nix 0.27.1", + "nix 0.28.0", "ordered-stream", "rand 0.8.5", "serde", @@ -8594,11 +8645,11 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.0.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" +checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "regex", @@ -8634,7 +8685,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -8654,7 +8705,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.52", ] [[package]] @@ -8717,9 +8768,9 @@ dependencies = [ [[package]] name = "zvariant" -version = "4.0.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" +checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a" dependencies = [ "endi", "enumflags2", @@ -8731,11 +8782,11 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.0.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" +checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", diff --git a/Cargo.toml b/Cargo.toml index 5f2dae3bc..b1db0153e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,9 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = "2.0.0-beta.9" -tauri-build = "2.0.0-beta.7" -tauri-plugin = "2.0.0-beta.7" +tauri = "2.0.0-beta.12" +tauri-build = "2.0.0-beta.10" +tauri-plugin = "2.0.0-beta.10" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index 10858549c..9c238503d 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.4", + "@tauri-apps/api": "2.0.0-beta.6", "@tauri-apps/plugin-barcode-scanner": "2.0.0-beta.2", "@tauri-apps/plugin-biometric": "2.0.0-beta.2", "@tauri-apps/plugin-cli": "2.0.0-beta.2", @@ -30,7 +30,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-beta.7", + "@tauri-apps/cli": "2.0.0-beta.9", "@unocss/extractor-svelte": "^0.58.0", "internal-ip": "^8.0.0", "svelte": "^4.2.8", diff --git a/examples/api/src-tauri/capabilities/base.json b/examples/api/src-tauri/capabilities/base.json index f34be5ec1..486615b4a 100644 --- a/examples/api/src-tauri/capabilities/base.json +++ b/examples/api/src-tauri/capabilities/base.json @@ -21,6 +21,7 @@ "tray:default", "event:default", "window:default", + "image:default", "notification:default", "os:allow-platform", "dialog:allow-open", @@ -54,8 +55,10 @@ }, "shell:allow-kill", "shell:allow-stdin-write", - "clipboard-manager:allow-read", - "clipboard-manager:allow-write", + "clipboard-manager:allow-read-text", + "clipboard-manager:allow-write-text", + "clipboard-manager:allow-read-image", + "clipboard-manager:allow-write-image", "fs:allow-rename", "fs:allow-mkdir", "fs:allow-remove", diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index a01af2486..14558fd00 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -41,8 +41,7 @@ "type": "object", "required": [ "identifier", - "permissions", - "windows" + "permissions" ], "properties": { "identifier": { @@ -93,14 +92,10 @@ }, "platforms": { "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", - "default": [ - "linux", - "macOS", - "windows", - "android", - "iOS" + "type": [ + "array", + "null" ], - "type": "array", "items": { "$ref": "#/definitions/Target" } @@ -115,7 +110,7 @@ ], "properties": { "urls": { - "description": "Remote domains this capability refers to. Can use glob patterns.", + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n# Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", "type": "array", "items": { "type": "string" @@ -2297,6 +2292,12 @@ "properties": { "identifier": { "oneOf": [ + { + "type": "string", + "enum": [ + "shell:default" + ] + }, { "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", "type": "string", @@ -2532,31 +2533,99 @@ ] }, { - "description": "clipboard-manager:allow-read -> Enables the read command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:allow-read" + "clipboard-manager:default" ] }, { - "description": "clipboard-manager:allow-write -> Enables the write command without any pre-configured scope.", + "description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:allow-write" + "clipboard-manager:allow-clear" ] }, { - "description": "clipboard-manager:deny-read -> Denies the read command without any pre-configured scope.", + "description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:deny-read" + "clipboard-manager:allow-read-image" ] }, { - "description": "clipboard-manager:deny-write -> Denies the write command without any pre-configured scope.", + "description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:deny-write" + "clipboard-manager:allow-read-text" + ] + }, + { + "description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-html" + ] + }, + { + "description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-image" + ] + }, + { + "description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-text" + ] + }, + { + "description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-clear" + ] + }, + { + "description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-read-image" + ] + }, + { + "description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-read-text" + ] + }, + { + "description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-html" + ] + }, + { + "description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-image" + ] + }, + { + "description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-text" + ] + }, + { + "type": "string", + "enum": [ + "dialog:default" ] }, { @@ -4680,6 +4749,12 @@ "fs:write-files" ] }, + { + "type": "string", + "enum": [ + "global-shortcut:default" + ] + }, { "description": "global-shortcut:allow-is-registered -> Enables the is_registered command without any pre-configured scope.", "type": "string", @@ -4827,13 +4902,6 @@ "image:allow-from-bytes" ] }, - { - "description": "image:allow-from-ico-bytes -> Enables the from_ico_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-ico-bytes" - ] - }, { "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", "type": "string", @@ -4841,20 +4909,6 @@ "image:allow-from-path" ] }, - { - "description": "image:allow-from-png-bytes -> Enables the from_png_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-from-png-bytes" - ] - }, - { - "description": "image:allow-height -> Enables the height command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:allow-height" - ] - }, { "description": "image:allow-new -> Enables the new command without any pre-configured scope.", "type": "string", @@ -4870,10 +4924,10 @@ ] }, { - "description": "image:allow-width -> Enables the width command without any pre-configured scope.", + "description": "image:allow-size -> Enables the size command without any pre-configured scope.", "type": "string", "enum": [ - "image:allow-width" + "image:allow-size" ] }, { @@ -4883,13 +4937,6 @@ "image:deny-from-bytes" ] }, - { - "description": "image:deny-from-ico-bytes -> Denies the from_ico_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-ico-bytes" - ] - }, { "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", "type": "string", @@ -4897,20 +4944,6 @@ "image:deny-from-path" ] }, - { - "description": "image:deny-from-png-bytes -> Denies the from_png_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-from-png-bytes" - ] - }, - { - "description": "image:deny-height -> Denies the height command without any pre-configured scope.", - "type": "string", - "enum": [ - "image:deny-height" - ] - }, { "description": "image:deny-new -> Denies the new command without any pre-configured scope.", "type": "string", @@ -4926,10 +4959,10 @@ ] }, { - "description": "image:deny-width -> Denies the width command without any pre-configured scope.", + "description": "image:deny-size -> Denies the size command without any pre-configured scope.", "type": "string", "enum": [ - "image:deny-width" + "image:deny-size" ] }, { @@ -5317,6 +5350,12 @@ "notification:deny-request-permission" ] }, + { + "type": "string", + "enum": [ + "os:default" + ] + }, { "description": "os:allow-arch -> Enables the arch command without any pre-configured scope.", "type": "string", @@ -5548,6 +5587,12 @@ "path:deny-resolve-directory" ] }, + { + "type": "string", + "enum": [ + "process:default" + ] + }, { "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", "type": "string", @@ -5597,6 +5642,12 @@ "resources:deny-close" ] }, + { + "type": "string", + "enum": [ + "shell:default" + ] + }, { "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", "type": "string", @@ -5660,6 +5711,13 @@ "tray:default" ] }, + { + "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:allow-get-by-id" + ] + }, { "description": "tray:allow-new -> Enables the new command without any pre-configured scope.", "type": "string", @@ -5667,6 +5725,13 @@ "tray:allow-new" ] }, + { + "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:allow-remove-by-id" + ] + }, { "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", "type": "string", @@ -5723,6 +5788,13 @@ "tray:allow-set-visible" ] }, + { + "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:deny-get-by-id" + ] + }, { "description": "tray:deny-new -> Denies the new command without any pre-configured scope.", "type": "string", @@ -5730,6 +5802,13 @@ "tray:deny-new" ] }, + { + "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:deny-remove-by-id" + ] + }, { "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", "type": "string", diff --git a/examples/api/src-tauri/gen/schemas/mobile-schema.json b/examples/api/src-tauri/gen/schemas/mobile-schema.json index 6262fabb9..29d8bf4ea 100644 --- a/examples/api/src-tauri/gen/schemas/mobile-schema.json +++ b/examples/api/src-tauri/gen/schemas/mobile-schema.json @@ -11,6 +11,13 @@ } ] }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, { "description": "A list of capabilities.", "type": "object", @@ -34,8 +41,7 @@ "type": "object", "required": [ "identifier", - "permissions", - "windows" + "permissions" ], "properties": { "identifier": { @@ -86,14 +92,10 @@ }, "platforms": { "description": "Target platforms this capability applies. By default all platforms are affected by this capability.", - "default": [ - "linux", - "macOS", - "windows", - "android", - "iOS" + "type": [ + "array", + "null" ], - "type": "array", "items": { "$ref": "#/definitions/Target" } @@ -108,7 +110,7 @@ ], "properties": { "urls": { - "description": "Remote domains this capability refers to. Can use glob patterns.", + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n# Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", "type": "array", "items": { "type": "string" @@ -2290,6 +2292,12 @@ "properties": { "identifier": { "oneOf": [ + { + "type": "string", + "enum": [ + "shell:default" + ] + }, { "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", "type": "string", @@ -2503,6 +2511,12 @@ "app:deny-version" ] }, + { + "type": "string", + "enum": [ + "barcode-scanner:default" + ] + }, { "description": "barcode-scanner:allow-cancel -> Enables the cancel command without any pre-configured scope.", "type": "string", @@ -2587,6 +2601,12 @@ "barcode-scanner:deny-vibrate" ] }, + { + "type": "string", + "enum": [ + "biometric:default" + ] + }, { "description": "biometric:allow-authenticate -> Enables the authenticate command without any pre-configured scope.", "type": "string", @@ -2616,31 +2636,99 @@ ] }, { - "description": "clipboard-manager:allow-read -> Enables the read command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:allow-read" + "clipboard-manager:default" ] }, { - "description": "clipboard-manager:allow-write -> Enables the write command without any pre-configured scope.", + "description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:allow-write" + "clipboard-manager:allow-clear" ] }, { - "description": "clipboard-manager:deny-read -> Denies the read command without any pre-configured scope.", + "description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:deny-read" + "clipboard-manager:allow-read-image" ] }, { - "description": "clipboard-manager:deny-write -> Denies the write command without any pre-configured scope.", + "description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.", "type": "string", "enum": [ - "clipboard-manager:deny-write" + "clipboard-manager:allow-read-text" + ] + }, + { + "description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-html" + ] + }, + { + "description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-image" + ] + }, + { + "description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:allow-write-text" + ] + }, + { + "description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-clear" + ] + }, + { + "description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-read-image" + ] + }, + { + "description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-read-text" + ] + }, + { + "description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-html" + ] + }, + { + "description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-image" + ] + }, + { + "description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.", + "type": "string", + "enum": [ + "clipboard-manager:deny-write-text" + ] + }, + { + "type": "string", + "enum": [ + "dialog:default" ] }, { @@ -4827,6 +4915,83 @@ "http:deny-fetch-send" ] }, + { + "description": "image:default -> Default permissions for the plugin.", + "type": "string", + "enum": [ + "image:default" + ] + }, + { + "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-bytes" + ] + }, + { + "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-from-path" + ] + }, + { + "description": "image:allow-new -> Enables the new command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-new" + ] + }, + { + "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-rgba" + ] + }, + { + "description": "image:allow-size -> Enables the size command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:allow-size" + ] + }, + { + "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-bytes" + ] + }, + { + "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-from-path" + ] + }, + { + "description": "image:deny-new -> Denies the new command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-new" + ] + }, + { + "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-rgba" + ] + }, + { + "description": "image:deny-size -> Denies the size command without any pre-configured scope.", + "type": "string", + "enum": [ + "image:deny-size" + ] + }, { "description": "log:default -> Allows the log command", "type": "string", @@ -5163,6 +5328,12 @@ "menu:deny-text" ] }, + { + "type": "string", + "enum": [ + "nfc:default" + ] + }, { "description": "nfc:allow-is-available -> Enables the is_available command without any pre-configured scope.", "type": "string", @@ -5254,6 +5425,12 @@ "notification:deny-request-permission" ] }, + { + "type": "string", + "enum": [ + "os:default" + ] + }, { "description": "os:allow-arch -> Enables the arch command without any pre-configured scope.", "type": "string", @@ -5485,6 +5662,12 @@ "path:deny-resolve-directory" ] }, + { + "type": "string", + "enum": [ + "process:default" + ] + }, { "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", "type": "string", @@ -5534,6 +5717,12 @@ "resources:deny-close" ] }, + { + "type": "string", + "enum": [ + "shell:default" + ] + }, { "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", "type": "string", @@ -5597,6 +5786,13 @@ "tray:default" ] }, + { + "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:allow-get-by-id" + ] + }, { "description": "tray:allow-new -> Enables the new command without any pre-configured scope.", "type": "string", @@ -5604,6 +5800,13 @@ "tray:allow-new" ] }, + { + "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:allow-remove-by-id" + ] + }, { "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", "type": "string", @@ -5660,6 +5863,13 @@ "tray:allow-set-visible" ] }, + { + "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:deny-get-by-id" + ] + }, { "description": "tray:deny-new -> Denies the new command without any pre-configured scope.", "type": "string", @@ -5667,6 +5877,13 @@ "tray:deny-new" ] }, + { + "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "enum": [ + "tray:deny-remove-by-id" + ] + }, { "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", "type": "string", diff --git a/examples/api/src-tauri/src/tray.rs b/examples/api/src-tauri/src/tray.rs index 74863c0ae..bd700fdb3 100644 --- a/examples/api/src-tauri/src/tray.rs +++ b/examples/api/src-tauri/src/tray.rs @@ -80,9 +80,10 @@ pub fn create_tray(app: &tauri::AppHandle) -> tauri::Result<()> { i @ "icon-1" | i @ "icon-2" => { if let Some(tray) = app.tray_by_id("tray-1") { let _ = tray.set_icon(Some(if i == "icon-1" { - tauri::Image::from_ico_bytes(include_bytes!("../icons/icon.ico")).unwrap() + tauri::image::Image::from_bytes(include_bytes!("../icons/icon.ico")) + .unwrap() } else { - tauri::Image::from_png_bytes(include_bytes!( + tauri::image::Image::from_bytes(include_bytes!( "../icons/tray_icon_with_transparency.png" )) .unwrap() diff --git a/examples/api/src/lib/utils.js b/examples/api/src/lib/utils.js new file mode 100644 index 000000000..442052c2c --- /dev/null +++ b/examples/api/src/lib/utils.js @@ -0,0 +1,15 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +export function arrayBufferToBase64(buffer, callback) { + const blob = new Blob([buffer], { + type: "application/octet-binary", + }); + const reader = new FileReader(); + reader.onload = function (evt) { + const dataurl = evt.target.result; + callback(dataurl.substr(dataurl.indexOf(",") + 1)); + }; + reader.readAsDataURL(blob); +} diff --git a/examples/api/src/views/Clipboard.svelte b/examples/api/src/views/Clipboard.svelte index f571b2eef..c86282d90 100644 --- a/examples/api/src/views/Clipboard.svelte +++ b/examples/api/src/views/Clipboard.svelte @@ -1,23 +1,59 @@ @@ -27,6 +63,8 @@ placeholder="Text to write to the clipboard" bind:value={text} /> - + + + diff --git a/examples/api/src/views/FileSystem.svelte b/examples/api/src/views/FileSystem.svelte index dce83663e..f7222ef87 100644 --- a/examples/api/src/views/FileSystem.svelte +++ b/examples/api/src/views/FileSystem.svelte @@ -1,6 +1,7 @@ diff --git a/examples/api/src/views/Store.svelte b/examples/api/src/views/Store.svelte new file mode 100644 index 000000000..d8e6653b5 --- /dev/null +++ b/examples/api/src/views/Store.svelte @@ -0,0 +1,55 @@ + + +

diff --git a/plugins/store/android/.gitignore b/plugins/store/android/.gitignore deleted file mode 100644 index c0f21ec2f..000000000 --- a/plugins/store/android/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -/.tauri diff --git a/plugins/store/android/build.gradle.kts b/plugins/store/android/build.gradle.kts deleted file mode 100644 index b548022b7..000000000 --- a/plugins/store/android/build.gradle.kts +++ /dev/null @@ -1,39 +0,0 @@ -plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") -} - -android { - namespace = "app.tauri.store" - compileSdk = 34 - - defaultConfig { - minSdk = 24 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = "1.8" - } -} - -dependencies { - implementation("androidx.core:core-ktx:1.9.0") - implementation("com.fasterxml.jackson.core:jackson-databind:2.15.3") - implementation(project(":tauri-android")) -} diff --git a/plugins/store/android/proguard-rules.pro b/plugins/store/android/proguard-rules.pro deleted file mode 100644 index 481bb4348..000000000 --- a/plugins/store/android/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/plugins/store/android/settings.gradle b/plugins/store/android/settings.gradle deleted file mode 100644 index 14a752e43..000000000 --- a/plugins/store/android/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -include ':tauri-android' -project(':tauri-android').projectDir = new File('./.tauri/tauri-api') diff --git a/plugins/store/android/src/main/AndroidManifest.xml b/plugins/store/android/src/main/AndroidManifest.xml deleted file mode 100644 index 9a40236b9..000000000 --- a/plugins/store/android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/store/android/src/main/java/StorePlugin.kt b/plugins/store/android/src/main/java/StorePlugin.kt deleted file mode 100644 index 8389661ff..000000000 --- a/plugins/store/android/src/main/java/StorePlugin.kt +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -package app.tauri.store - -import android.app.Activity -import app.tauri.annotation.Command -import app.tauri.annotation.TauriPlugin -import app.tauri.plugin.Invoke -import app.tauri.plugin.Plugin -import com.fasterxml.jackson.databind.JsonNode -import com.fasterxml.jackson.databind.ObjectMapper -import java.io.File - -@TauriPlugin -class StorePlugin(private val activity: Activity) : Plugin(activity) { - @Command - fun load(invoke: Invoke) { - try { - val path = invoke.parseArgs(String::class.java) - val file = File(activity.applicationContext.getExternalFilesDir(null), path) - - invoke.resolveObject(ObjectMapper().readTree(file)) - } catch (ex: Exception) { - invoke.reject(ex.message) - } - } - - @Command - fun save(invoke: Invoke) { - try { - val args = invoke.parseArgs(JsonNode::class.java) - val path = args.get("store").asText() - val cache = args.get("cache") - val file = File(activity.applicationContext.getExternalFilesDir(null), path) - - if (!file.exists()) { - file.parentFile?.mkdirs() - file.createNewFile() - } - - file.writeText(cache.toString()) - - invoke.resolve() - } catch (ex: Exception) { - invoke.reject(ex.message) - } - } -} \ No newline at end of file diff --git a/plugins/store/build.rs b/plugins/store/build.rs index d9bac3bfe..7b54fe421 100644 --- a/plugins/store/build.rs +++ b/plugins/store/build.rs @@ -10,7 +10,5 @@ const COMMANDS: &[&str] = &[ fn main() { tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .android_path("android") - .ios_path("ios") .build(); } diff --git a/plugins/store/ios/Package.resolved b/plugins/store/ios/Package.resolved deleted file mode 100644 index 5f998e0e6..000000000 --- a/plugins/store/ios/Package.resolved +++ /dev/null @@ -1,16 +0,0 @@ -{ - "object": { - "pins": [ - { - "package": "SwiftRs", - "repositoryURL": "https://github.com/Brendonovich/swift-rs", - "state": { - "branch": null, - "revision": "b5ed223fcdab165bc21219c1925dc1e77e2bef5e", - "version": "1.0.6" - } - } - ] - }, - "version": 1 -} diff --git a/plugins/store/ios/Package.swift b/plugins/store/ios/Package.swift deleted file mode 100644 index 51ba6bf65..000000000 --- a/plugins/store/ios/Package.swift +++ /dev/null @@ -1,34 +0,0 @@ -// swift-tools-version:5.3 -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -import PackageDescription - -let package = Package( - name: "tauri-plugin-store", - platforms: [ - .macOS(.v10_13), - .iOS(.v13), - ], - products: [ - // Products define the executables and libraries a package produces, and make them visible to other packages. - .library( - name: "tauri-plugin-store", - type: .static, - targets: ["tauri-plugin-store"]) - ], - dependencies: [ - .package(name: "Tauri", path: "../.tauri/tauri-api") - ], - targets: [ - // Targets are the basic building blocks of a package. A target can define a module or a test suite. - // Targets can depend on other targets in this package, and on products in packages this package depends on. - .target( - name: "tauri-plugin-store", - dependencies: [ - .byName(name: "Tauri") - ], - path: "Sources") - ] -) diff --git a/plugins/store/ios/Sources/StorePlugin.swift b/plugins/store/ios/Sources/StorePlugin.swift deleted file mode 100644 index 4f651a5e2..000000000 --- a/plugins/store/ios/Sources/StorePlugin.swift +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -import Foundation - -import SwiftRs -import Tauri -import UIKit -import WebKit - - -struct SaveStore: Codable { - let store: String - let cache: [String: JSON] -} - -class StorePlugin: Plugin { - @objc public func save(_ invoke: Invoke) throws { - do { - let args = try invoke.parseArgs(SaveStore.self) - let store = args.store - let cache = args.cache - let fileURL = getUrlFromPath(path: store, createDirs: true) - - try JSONEncoder().encode(cache).write(to: fileURL) - invoke.resolve() - } catch { - invoke.reject(error.localizedDescription) - } - } - - @objc public func load(_ invoke: Invoke) throws { - do { - let path = try invoke.parseArgs(String.self) - let fileURL = getUrlFromPath(path: path, createDirs: false) - let data = try String(contentsOf: fileURL) - let passData = dictionary(text: data) - - invoke.resolve(passData) - } catch { - invoke.reject(error.localizedDescription) - } - } - - func dictionary(text: String) -> [String: Any?] { - if let data = text.data(using: .utf8) { - do { - return try JSONSerialization.jsonObject(with: data, options: []) as! [String: Any] - } catch { - fatalError(error.localizedDescription) - } - } - - return [:] - } - - func getUrlFromPath(path: String, createDirs: Bool) -> URL { - do { - var url = try FileManager.default - .url( - for: .applicationSupportDirectory, - in: .userDomainMask, - appropriateFor: nil, - create: true - ) - let components = path.split(separator: "/").map { element in String(element) } - - if components.count == 1 { - return url.appendPath(path: path, isDirectory: false) - } - - for i in 0.. 1 && createDirs { - try FileManager.default.createDirectory(at: url, withIntermediateDirectories: true) - } - - url = url.appendPath(path: components.last!, isDirectory: false) - - return url - } catch { - fatalError(error.localizedDescription) - } - } -} - - -@_cdecl("init_plugin_store") -func initPlugin() -> Plugin { - return StorePlugin() -} - -private extension URL { - func appendPath(path: String, isDirectory: Bool) -> URL { - if #available(iOS 16.0, *) { - return self.appending(path: path, directoryHint: isDirectory ? .isDirectory : .notDirectory) - } else { - return self.appendingPathComponent(path, isDirectory: isDirectory) - } - } -} - -public enum JSON : Codable { - case null - case number(NSNumber) - case string(String) - case array([JSON]) - case bool(Bool) - case dictionary([String : JSON]) - - public var value: Any? { - switch self { - case .null: return nil - case .number(let number): return number - case .string(let string): return string - case .bool(let bool): return bool - case .array(let array): return array.map { $0.value } - case .dictionary(let dictionary): return dictionary.mapValues { $0.value } - } - } - - public init?(_ value: Any?) { - guard let value = value else { - self = .null - return - } - - if let bool = value as? Bool { - self = .bool(bool) - } else if let int = value as? Int { - self = .number(NSNumber(value: int)) - } else if let double = value as? Double { - self = .number(NSNumber(value: double)) - } else if let string = value as? String { - self = .string(string) - } else if let array = value as? [Any] { - var mapped = [JSON]() - for inner in array { - guard let inner = JSON(inner) else { - return nil - } - - mapped.append(inner) - } - - self = .array(mapped) - } else if let dictionary = value as? [String : Any] { - var mapped = [String : JSON]() - for (key, inner) in dictionary { - guard let inner = JSON(inner) else { - return nil - } - - mapped[key] = inner - } - - self = .dictionary(mapped) - } else { - return nil - } - } - - public init(from decoder: Decoder) throws { - let container = try decoder.singleValueContainer() - guard !container.decodeNil() else { - self = .null - return - } - - if let bool = try container.decodeIfMatched(Bool.self) { - self = .bool(bool) - } else if let int = try container.decodeIfMatched(Int.self) { - self = .number(NSNumber(value: int)) - } else if let double = try container.decodeIfMatched(Double.self) { - self = .number(NSNumber(value: double)) - } else if let string = try container.decodeIfMatched(String.self) { - self = .string(string) - } else if let array = try container.decodeIfMatched([JSON].self) { - self = .array(array) - } else if let dictionary = try container.decodeIfMatched([String : JSON].self) { - self = .dictionary(dictionary) - } else { - throw DecodingError.typeMismatch(JSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Unable to decode JSON as any of the possible types.")) - } - } - - public func encode(to encoder: Encoder) throws { - var container = encoder.singleValueContainer() - - switch self { - case .null: try container.encodeNil() - case .bool(let bool): try container.encode(bool) - case .number(let number): - if number.objCType.pointee == 0x64 /* 'd' */ { - try container.encode(number.doubleValue) - } else { - try container.encode(number.intValue) - } - case .string(let string): try container.encode(string) - case .array(let array): try container.encode(array) - case .dictionary(let dictionary): try container.encode(dictionary) - } - } -} - -fileprivate extension SingleValueDecodingContainer { - func decodeIfMatched(_ type: T.Type) throws -> T? { - do { - return try self.decode(T.self) - } catch DecodingError.typeMismatch { - return nil - } - } -} diff --git a/plugins/store/src/desktop.rs b/plugins/store/src/desktop.rs deleted file mode 100644 index 3e98080e5..000000000 --- a/plugins/store/src/desktop.rs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use crate::Error; -use crate::Runtime; -use crate::Store; -use std::fs::create_dir_all; -use std::fs::read; -use std::fs::File; -use std::io::Write; -use tauri::Manager; - -#[cfg(desktop)] -impl Store { - pub fn save(&self) -> Result<(), Error> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); - - create_dir_all(store_path.parent().expect("invalid store path"))?; - - let bytes = (self.serialize)(&self.cache).map_err(Error::Serialize)?; - let mut f = File::create(&store_path)?; - f.write_all(&bytes)?; - - Ok(()) - } - - /// Update the store from the on-disk state - pub fn load(&mut self) -> Result<(), Error> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); - - let bytes = read(store_path)?; - - self.cache - .extend((self.deserialize)(&bytes).map_err(Error::Deserialize)?); - - Ok(()) - } -} diff --git a/plugins/store/src/error.rs b/plugins/store/src/error.rs index d8ce9bb51..afd43addf 100644 --- a/plugins/store/src/error.rs +++ b/plugins/store/src/error.rs @@ -11,13 +11,6 @@ pub type Result = std::result::Result; #[derive(thiserror::Error, Debug)] #[non_exhaustive] pub enum Error { - #[cfg(mobile)] - #[error(transparent)] - PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError), - /// Mobile plugin handled is not initialized, Probably [`StoreBuilder::mobile_plugin_handle`] was not called. - #[cfg(mobile)] - #[error("Mobile plugin handled is not initialized, Perhaps you forgot to call StoreBuilder::mobile_plugin_handle")] - MobilePluginHandleUnInitialized, #[error("Failed to serialize store. {0}")] Serialize(Box), #[error("Failed to deserialize store. {0}")] diff --git a/plugins/store/src/lib.rs b/plugins/store/src/lib.rs index f7c9eb0d3..fa331eb54 100644 --- a/plugins/store/src/lib.rs +++ b/plugins/store/src/lib.rs @@ -29,18 +29,6 @@ use tauri::{ mod error; mod store; -#[cfg(mobile)] -mod mobile; -#[cfg(mobile)] -use crate::plugin::PluginHandle; -#[cfg(target_os = "android")] -const PLUGIN_IDENTIFIER: &str = "app.tauri.store"; -#[cfg(target_os = "ios")] -tauri::ios_plugin_binding!(init_plugin_store); - -#[cfg(desktop)] -mod desktop; - #[derive(Serialize, Clone)] struct ChangePayload<'a> { path: &'a Path, @@ -51,9 +39,6 @@ struct ChangePayload<'a> { pub struct StoreCollection { stores: Mutex>>, frozen: bool, - - #[cfg(mobile)] - mobile_plugin_handle: PluginHandle, } pub fn with_store) -> Result>( @@ -73,11 +58,6 @@ pub fn with_store) -> Result>( #[allow(unused_mut)] let mut builder = StoreBuilder::new(path); - #[cfg(mobile)] - { - builder = builder.mobile_plugin_handle(collection.mobile_plugin_handle.clone()); - } - let mut store = builder.build(app); // ignore loading errors, just use the default @@ -329,17 +309,9 @@ impl Builder { } } - #[cfg(target_os = "android")] - let handle = _api.register_android_plugin(PLUGIN_IDENTIFIER, "StorePlugin")?; - #[cfg(target_os = "ios")] - let handle = _api.register_ios_plugin(init_plugin_store)?; - app_handle.manage(StoreCollection { stores: Mutex::new(self.stores), frozen: self.frozen, - - #[cfg(mobile)] - mobile_plugin_handle: handle, }); Ok(()) diff --git a/plugins/store/src/mobile.rs b/plugins/store/src/mobile.rs deleted file mode 100644 index 7d999fb4a..000000000 --- a/plugins/store/src/mobile.rs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use tauri::Runtime; - -use crate::error::Result; -use crate::Store; -use serde_json::Value; -use std::collections::HashMap; - -#[derive(Debug, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct LoadStore { - pub cache: HashMap, -} - -#[derive(Debug, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct SaveStore { - pub store: String, - pub cache: HashMap, -} - -#[cfg(mobile)] -impl Store { - pub fn save(&self) -> Result<()> { - self.mobile_plugin_handle - .as_ref() - .ok_or_else(|| crate::error::Error::MobilePluginHandleUnInitialized)? - .run_mobile_plugin( - "save", - SaveStore { - store: self.path.to_string_lossy().to_string(), - cache: self.cache.clone(), - }, - ) - .map_err(Into::into) - } - - pub fn load(&mut self) -> Result<()> { - let result: Value = self - .mobile_plugin_handle - .as_ref() - .ok_or_else(|| crate::error::Error::MobilePluginHandleUnInitialized)? - .run_mobile_plugin("load", self.path.to_string_lossy().to_string())?; - - let map = serde_json::from_value::>(result)?; - self.cache.extend(map); - - Ok(()) - } -} diff --git a/plugins/store/src/store.rs b/plugins/store/src/store.rs index 503cae76f..081844391 100644 --- a/plugins/store/src/store.rs +++ b/plugins/store/src/store.rs @@ -2,15 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -#[cfg(mobile)] -use crate::plugin::PluginHandle; use crate::{ChangePayload, Error}; use serde_json::Value as JsonValue; use std::{ collections::HashMap, + fs::{create_dir_all, read, File}, + io::Write, path::{Path, PathBuf}, }; -use tauri::{AppHandle, Emitter, Runtime}; +use tauri::{AppHandle, Emitter, Manager, Runtime}; type SerializeFn = fn(&HashMap) -> Result, Box>; @@ -30,20 +30,15 @@ fn default_deserialize( } /// Builds a [`Store`] -pub struct StoreBuilder { +pub struct StoreBuilder { path: PathBuf, defaults: Option>, cache: HashMap, serialize: SerializeFn, deserialize: DeserializeFn, - - #[cfg(mobile)] - mobile_plugin_handle: Option>, - #[cfg(not(mobile))] - _marker: std::marker::PhantomData, } -impl StoreBuilder { +impl StoreBuilder { /// Creates a new [`StoreBuilder`]. /// /// # Examples @@ -64,19 +59,9 @@ impl StoreBuilder { cache: Default::default(), serialize: default_serialize, deserialize: default_deserialize, - #[cfg(mobile)] - mobile_plugin_handle: None, - #[cfg(not(mobile))] - _marker: std::marker::PhantomData, } } - #[cfg(mobile)] - pub fn mobile_plugin_handle(mut self, handle: PluginHandle) -> Self { - self.mobile_plugin_handle = Some(handle); - self - } - /// Inserts a default key-value pair. /// /// # Examples @@ -164,7 +149,7 @@ impl StoreBuilder { /// Ok(()) /// }); /// ``` - pub fn build(self, app: AppHandle) -> Store { + pub fn build(self, app: AppHandle) -> Store { Store { app, path: self.path, @@ -172,9 +157,6 @@ impl StoreBuilder { cache: self.cache, serialize: self.serialize, deserialize: self.deserialize, - - #[cfg(mobile)] - mobile_plugin_handle: self.mobile_plugin_handle, } } } @@ -187,12 +169,43 @@ pub struct Store { pub(crate) cache: HashMap, pub(crate) serialize: SerializeFn, pub(crate) deserialize: DeserializeFn, - - #[cfg(mobile)] - pub(crate) mobile_plugin_handle: Option>, } impl Store { + pub fn save(&self) -> Result<(), Error> { + let app_dir = self + .app + .path() + .app_data_dir() + .expect("failed to resolve app dir"); + let store_path = app_dir.join(&self.path); + + create_dir_all(store_path.parent().expect("invalid store path"))?; + + let bytes = (self.serialize)(&self.cache).map_err(Error::Serialize)?; + let mut f = File::create(&store_path)?; + f.write_all(&bytes)?; + + Ok(()) + } + + /// Update the store from the on-disk state + pub fn load(&mut self) -> Result<(), Error> { + let app_dir = self + .app + .path() + .app_data_dir() + .expect("failed to resolve app dir"); + let store_path = app_dir.join(&self.path); + + let bytes = read(store_path)?; + + self.cache + .extend((self.deserialize)(&bytes).map_err(Error::Deserialize)?); + + Ok(()) + } + pub fn insert(&mut self, key: String, value: JsonValue) -> Result<(), Error> { self.cache.insert(key.clone(), value.clone()); self.app.emit( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e83b058f..3fde875ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,6 +99,9 @@ importers: '@tauri-apps/plugin-shell': specifier: 2.0.0-rc.0 version: link:../../plugins/shell + '@tauri-apps/plugin-store': + specifier: 2.0.0-rc.0 + version: link:../../plugins/store '@tauri-apps/plugin-updater': specifier: 2.0.0-rc.0 version: link:../../plugins/updater From d0482502e97d58f17eb7392750936577886c5b8c Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 28 Aug 2024 17:58:56 -0300 Subject: [PATCH 495/643] chore(api): tauri can serialize array buffers from rc.7 (#1694) * chore(api): tauri can serialize array buffers from rc.7 * fmt * fix audit * update lockfile --- .gitignore | 2 ++ package.json | 5 +++ plugins/fs/api-iife.js | 2 +- plugins/fs/guest-js/index.ts | 2 +- plugins/shell/api-iife.js | 2 +- plugins/shell/guest-js/index.ts | 5 ++- plugins/stronghold/api-iife.js | 2 +- plugins/stronghold/guest-js/index.ts | 46 +++++++++++----------------- pnpm-lock.yaml | 9 +++--- 9 files changed, 36 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 0a7e85039..dc9385b7f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ dist .vscode .gradle **/capabilities/schemas +.build +.tauri \ No newline at end of file diff --git a/package.json b/package.json index f25d2013b..b517cedc6 100644 --- a/package.json +++ b/package.json @@ -31,5 +31,10 @@ }, "engines": { "pnpm": "^9.0.0" + }, + "pnpm": { + "overrides": { + "micromatch@<4.0.8": ">=4.0.8" + } } } diff --git a/plugins/fs/api-iife.js b/plugins/fs/api-iife.js index 73656c4d7..e3efe2e7a 100644 --- a/plugins/fs/api-iife.js +++ b/plugins/fs/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return await l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){await l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return await l("plugin:fs|write",{rid:this.rid,data:Array.from(t)})}}async function h(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=w,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return n instanceof ArrayBuffer?new Uint8Array(n):Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return await Promise.resolve({path:n,rid:null,async next(){null===this.rid&&(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:t instanceof URL?t.toString():t,options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return await l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){await l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return await l("plugin:fs|write",{rid:this.rid,data:t})}}async function h(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=w,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return n instanceof ArrayBuffer?new Uint8Array(n):Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return await Promise.resolve({path:n,rid:null,async next(){null===this.rid&&(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:t instanceof URL?t.toString():t,options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index fcb99c0b4..718a30cab 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -411,7 +411,7 @@ class FileHandle extends Resource { async write(data: Uint8Array): Promise { return await invoke("plugin:fs|write", { rid: this.rid, - data: Array.from(data), + data, }); } } diff --git a/plugins/shell/api-iife.js b/plugins/shell/api-iife.js index 40c33e380..25ba6d3ed 100644 --- a/plugins/shell/api-iife.js +++ b/plugins/shell/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_SHELL__=function(e){"use strict";function t(e,t,s,n){if("a"===s&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?n:"a"===s?n.call(e):n?n.value:t.get(e)}function s(e,t,s,n,i){if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,s),s}var n,i,r;"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),i.set(this,0),r.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:o})=>{if(o===t(this,i,"f")){s(this,i,o+1),t(this,n,"f").call(this,e);const a=Object.keys(t(this,r,"f"));if(a.length>0){let e=o+1;for(const s of a.sort()){if(parseInt(s)!==e)break;{const i=t(this,r,"f")[s];delete t(this,r,"f")[s],t(this,n,"f").call(this,i),e+=1}}s(this,i,e)}}else t(this,r,"f")[o.toString()]=e}))}set onmessage(e){s(this,n,e)}get onmessage(){return t(this,n,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(e,t={},s){return window.__TAURI_INTERNALS__.invoke(e,t,s)}n=new WeakMap,i=new WeakMap,r=new WeakMap;class h{constructor(){this.eventListeners=Object.create(null)}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}on(e,t){return e in this.eventListeners?this.eventListeners[e].push(t):this.eventListeners[e]=[t],this}once(e,t){const s=n=>{this.removeListener(e,s),t(n)};return this.addListener(e,s)}off(e,t){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter((e=>e!==t))),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,t){if(e in this.eventListeners){const s=this.eventListeners[e];for(const e of s)e(t);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,t){return e in this.eventListeners?this.eventListeners[e].unshift(t):this.eventListeners[e]=[t],this}prependOnceListener(e,t){const s=n=>{this.removeListener(e,s),t(n)};return this.prependListener(e,s)}}class c{constructor(e){this.pid=e}async write(e){await a("plugin:shell|stdin_write",{pid:this.pid,buffer:"string"==typeof e?e:Array.from(e)})}async kill(){await a("plugin:shell|kill",{cmd:"killChild",pid:this.pid})}}class l extends h{constructor(e,t=[],s){super(),this.stdout=new h,this.stderr=new h,this.program=e,this.args="string"==typeof t?[t]:t,this.options=s??{}}static create(e,t=[],s){return new l(e,t,s)}static sidecar(e,t=[],s){const n=new l(e,t,s);return n.options.sidecar=!0,n}async spawn(){const e=this.program,t=this.args,s=this.options;"object"==typeof t&&Object.freeze(t);const n=new o;return n.onmessage=e=>{switch(e.event){case"Error":this.emit("error",e.payload);break;case"Terminated":this.emit("close",e.payload);break;case"Stdout":this.stdout.emit("data",e.payload);break;case"Stderr":this.stderr.emit("data",e.payload)}},await a("plugin:shell|spawn",{program:e,args:t,options:s,onEvent:n}).then((e=>new c(e)))}async execute(){const e=this.program,t=this.args,s=this.options;return"object"==typeof t&&Object.freeze(t),await a("plugin:shell|execute",{program:e,args:t,options:s})}}return e.Child=c,e.Command=l,e.EventEmitter=h,e.open=async function(e,t){await a("plugin:shell|open",{path:e,with:t})},e}({});Object.defineProperty(window.__TAURI__,"shell",{value:__TAURI_PLUGIN_SHELL__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_SHELL__=function(e){"use strict";function t(e,t,s,n){if("a"===s&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?n:"a"===s?n.call(e):n?n.value:t.get(e)}function s(e,t,s,n,i){if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,s),s}var n,i,r;"function"==typeof SuppressedError&&SuppressedError;class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),i.set(this,0),r.set(this,{}),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:o})=>{if(o===t(this,i,"f")){s(this,i,o+1),t(this,n,"f").call(this,e);const a=Object.keys(t(this,r,"f"));if(a.length>0){let e=o+1;for(const s of a.sort()){if(parseInt(s)!==e)break;{const i=t(this,r,"f")[s];delete t(this,r,"f")[s],t(this,n,"f").call(this,i),e+=1}}s(this,i,e)}}else t(this,r,"f")[o.toString()]=e}))}set onmessage(e){s(this,n,e)}get onmessage(){return t(this,n,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(e,t={},s){return window.__TAURI_INTERNALS__.invoke(e,t,s)}n=new WeakMap,i=new WeakMap,r=new WeakMap;class h{constructor(){this.eventListeners=Object.create(null)}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}on(e,t){return e in this.eventListeners?this.eventListeners[e].push(t):this.eventListeners[e]=[t],this}once(e,t){const s=n=>{this.removeListener(e,s),t(n)};return this.addListener(e,s)}off(e,t){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter((e=>e!==t))),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,t){if(e in this.eventListeners){const s=this.eventListeners[e];for(const e of s)e(t);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,t){return e in this.eventListeners?this.eventListeners[e].unshift(t):this.eventListeners[e]=[t],this}prependOnceListener(e,t){const s=n=>{this.removeListener(e,s),t(n)};return this.prependListener(e,s)}}class c{constructor(e){this.pid=e}async write(e){await a("plugin:shell|stdin_write",{pid:this.pid,buffer:e})}async kill(){await a("plugin:shell|kill",{cmd:"killChild",pid:this.pid})}}class l extends h{constructor(e,t=[],s){super(),this.stdout=new h,this.stderr=new h,this.program=e,this.args="string"==typeof t?[t]:t,this.options=s??{}}static create(e,t=[],s){return new l(e,t,s)}static sidecar(e,t=[],s){const n=new l(e,t,s);return n.options.sidecar=!0,n}async spawn(){const e=this.program,t=this.args,s=this.options;"object"==typeof t&&Object.freeze(t);const n=new o;return n.onmessage=e=>{switch(e.event){case"Error":this.emit("error",e.payload);break;case"Terminated":this.emit("close",e.payload);break;case"Stdout":this.stdout.emit("data",e.payload);break;case"Stderr":this.stderr.emit("data",e.payload)}},await a("plugin:shell|spawn",{program:e,args:t,options:s,onEvent:n}).then((e=>new c(e)))}async execute(){const e=this.program,t=this.args,s=this.options;return"object"==typeof t&&Object.freeze(t),await a("plugin:shell|execute",{program:e,args:t,options:s})}}return e.Child=c,e.Command=l,e.EventEmitter=h,e.open=async function(e,t){await a("plugin:shell|open",{path:e,with:t})},e}({});Object.defineProperty(window.__TAURI__,"shell",{value:__TAURI_PLUGIN_SHELL__})} diff --git a/plugins/shell/guest-js/index.ts b/plugins/shell/guest-js/index.ts index ea27ba85a..4cad60ca4 100644 --- a/plugins/shell/guest-js/index.ts +++ b/plugins/shell/guest-js/index.ts @@ -319,11 +319,10 @@ class Child { * * @since 2.0.0 */ - async write(data: IOPayload): Promise { + async write(data: IOPayload | number[]): Promise { await invoke("plugin:shell|stdin_write", { pid: this.pid, - // correctly serialize Uint8Arrays - buffer: typeof data === "string" ? data : Array.from(data), + buffer: data, }); } diff --git a/plugins/stronghold/api-iife.js b/plugins/stronghold/api-iife.js index df21fa508..aabe9ed27 100644 --- a/plugins/stronghold/api-iife.js +++ b/plugins/stronghold/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_STRONGHOLD__=function(t){"use strict";async function e(t,e={},r){return window.__TAURI_INTERNALS__.invoke(t,e,r)}function r(t){return"string"==typeof t?t:Array.from(t instanceof ArrayBuffer?new Uint8Array(t):t)}"function"==typeof SuppressedError&&SuppressedError;class n{constructor(t,e){this.type=t,this.payload=e}static generic(t,e){return new n("Generic",{vault:r(t),record:r(e)})}static counter(t,e){return new n("Counter",{vault:r(t),counter:e})}}class a{constructor(t){this.procedureArgs=t}async generateSLIP10Seed(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"SLIP10Generate",payload:{output:t,sizeBytes:r}}}).then((t=>Uint8Array.from(t)))}async deriveSLIP10(t,r,n,a){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"SLIP10Derive",payload:{chain:t,input:{type:r,payload:n},output:a}}}).then((t=>Uint8Array.from(t)))}async recoverBIP39(t,r,n){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"BIP39Recover",payload:{mnemonic:t,passphrase:n,output:r}}}).then((t=>Uint8Array.from(t)))}async generateBIP39(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"BIP39Generate",payload:{output:t,passphrase:r}}}).then((t=>Uint8Array.from(t)))}async getEd25519PublicKey(t){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"PublicKey",payload:{type:"Ed25519",privateKey:t}}}).then((t=>Uint8Array.from(t)))}async signEd25519(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"Ed25519Sign",payload:{privateKey:t,msg:r}}}).then((t=>Uint8Array.from(t)))}}class s{constructor(t,e){this.path=t,this.name=r(e)}getVault(t){return new i(this.path,this.name,r(t))}getStore(){return new o(this.path,this.name)}}class o{constructor(t,e){this.path=t,this.client=e}async get(t){return await e("plugin:stronghold|get_store_record",{snapshotPath:this.path,client:this.client,key:r(t)}).then((t=>t&&Uint8Array.from(t)))}async insert(t,n,a){await e("plugin:stronghold|save_store_record",{snapshotPath:this.path,client:this.client,key:r(t),value:n,lifetime:a})}async remove(t){return await e("plugin:stronghold|remove_store_record",{snapshotPath:this.path,client:this.client,key:r(t)}).then((t=>t&&Uint8Array.from(t)))}}class i extends a{constructor(t,e,n){super({snapshotPath:t,client:e,vault:n}),this.path=t,this.client=r(e),this.name=r(n)}async insert(t,n){await e("plugin:stronghold|save_secret",{snapshotPath:this.path,client:this.client,vault:this.name,recordPath:r(t),secret:n})}async remove(t){await e("plugin:stronghold|remove_secret",{snapshotPath:this.path,client:this.client,vault:this.name,recordPath:t.payload.record})}}class h{constructor(t){this.path=t}static async load(t,r){return await e("plugin:stronghold|initialize",{snapshotPath:t,password:r}).then((()=>new h(t)))}async unload(){await e("plugin:stronghold|destroy",{snapshotPath:this.path})}async loadClient(t){return await e("plugin:stronghold|load_client",{snapshotPath:this.path,client:r(t)}).then((()=>new s(this.path,t)))}async createClient(t){return await e("plugin:stronghold|create_client",{snapshotPath:this.path,client:r(t)}).then((()=>new s(this.path,t)))}async save(){await e("plugin:stronghold|save",{snapshotPath:this.path})}}return t.Client=s,t.Location=n,t.Store=o,t.Stronghold=h,t.Vault=i,t}({});Object.defineProperty(window.__TAURI__,"stronghold",{value:__TAURI_PLUGIN_STRONGHOLD__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_STRONGHOLD__=function(t){"use strict";async function e(t,e={},r){return window.__TAURI_INTERNALS__.invoke(t,e,r)}"function"==typeof SuppressedError&&SuppressedError;class r{constructor(t,e){this.type=t,this.payload=e}static generic(t,e){return new r("Generic",{vault:t,record:e})}static counter(t,e){return new r("Counter",{vault:t,counter:e})}}class n{constructor(t){this.procedureArgs=t}async generateSLIP10Seed(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"SLIP10Generate",payload:{output:t,sizeBytes:r}}}).then((t=>Uint8Array.from(t)))}async deriveSLIP10(t,r,n,a){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"SLIP10Derive",payload:{chain:t,input:{type:r,payload:n},output:a}}}).then((t=>Uint8Array.from(t)))}async recoverBIP39(t,r,n){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"BIP39Recover",payload:{mnemonic:t,passphrase:n,output:r}}}).then((t=>Uint8Array.from(t)))}async generateBIP39(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"BIP39Generate",payload:{output:t,passphrase:r}}}).then((t=>Uint8Array.from(t)))}async getEd25519PublicKey(t){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"PublicKey",payload:{type:"Ed25519",privateKey:t}}}).then((t=>Uint8Array.from(t)))}async signEd25519(t,r){return await e("plugin:stronghold|execute_procedure",{...this.procedureArgs,procedure:{type:"Ed25519Sign",payload:{privateKey:t,msg:r}}}).then((t=>Uint8Array.from(t)))}}class a{constructor(t,e){this.path=t,this.name=e}getVault(t){return new o(this.path,this.name,t)}getStore(){return new s(this.path,this.name)}}class s{constructor(t,e){this.path=t,this.client=e}async get(t){return await e("plugin:stronghold|get_store_record",{snapshotPath:this.path,client:this.client,key:t}).then((t=>t&&Uint8Array.from(t)))}async insert(t,r,n){await e("plugin:stronghold|save_store_record",{snapshotPath:this.path,client:this.client,key:t,value:r,lifetime:n})}async remove(t){return await e("plugin:stronghold|remove_store_record",{snapshotPath:this.path,client:this.client,key:t}).then((t=>t&&Uint8Array.from(t)))}}class o extends n{constructor(t,e,r){super({snapshotPath:t,client:e,vault:r}),this.path=t,this.client=e,this.name=r}async insert(t,r){await e("plugin:stronghold|save_secret",{snapshotPath:this.path,client:this.client,vault:this.name,recordPath:t,secret:r})}async remove(t){await e("plugin:stronghold|remove_secret",{snapshotPath:this.path,client:this.client,vault:this.name,recordPath:t.payload.record})}}class i{constructor(t){this.path=t}static async load(t,r){return await e("plugin:stronghold|initialize",{snapshotPath:t,password:r}).then((()=>new i(t)))}async unload(){await e("plugin:stronghold|destroy",{snapshotPath:this.path})}async loadClient(t){return await e("plugin:stronghold|load_client",{snapshotPath:this.path,client:t}).then((()=>new a(this.path,t)))}async createClient(t){return await e("plugin:stronghold|create_client",{snapshotPath:this.path,client:t}).then((()=>new a(this.path,t)))}async save(){await e("plugin:stronghold|save",{snapshotPath:this.path})}}return t.Client=a,t.Location=r,t.Store=s,t.Stronghold=i,t.Vault=o,t}({});Object.defineProperty(window.__TAURI__,"stronghold",{value:__TAURI_PLUGIN_STRONGHOLD__})} diff --git a/plugins/stronghold/guest-js/index.ts b/plugins/stronghold/guest-js/index.ts index 635436ae5..f539b7190 100644 --- a/plugins/stronghold/guest-js/index.ts +++ b/plugins/stronghold/guest-js/index.ts @@ -4,7 +4,6 @@ import { invoke } from "@tauri-apps/api/core"; -type BytesDto = string | number[]; export type ClientPath = | string | Iterable @@ -26,15 +25,6 @@ export type StoreKey = | ArrayLike | ArrayBuffer; -function toBytesDto( - v: ClientPath | VaultPath | RecordPath | StoreKey, -): string | number[] { - if (typeof v === "string") { - return v; - } - return Array.from(v instanceof ArrayBuffer ? new Uint8Array(v) : v); -} - export interface ConnectionLimits { maxPendingIncoming?: number; maxPendingOutgoing?: number; @@ -100,14 +90,14 @@ export class Location { static generic(vault: VaultPath, record: RecordPath): Location { return new Location("Generic", { - vault: toBytesDto(vault), - record: toBytesDto(record), + vault, + record, }); } static counter(vault: VaultPath, counter: number): Location { return new Location("Counter", { - vault: toBytesDto(vault), + vault, counter, }); } @@ -270,11 +260,11 @@ class ProcedureExecutor { export class Client { path: string; - name: BytesDto; + name: ClientPath; constructor(path: string, name: ClientPath) { this.path = path; - this.name = toBytesDto(name); + this.name = name; } /** @@ -284,7 +274,7 @@ export class Client { * @returns */ getVault(name: VaultPath): Vault { - return new Vault(this.path, this.name, toBytesDto(name)); + return new Vault(this.path, this.name, name); } getStore(): Store { @@ -294,9 +284,9 @@ export class Client { export class Store { path: string; - client: BytesDto; + client: ClientPath; - constructor(path: string, client: BytesDto) { + constructor(path: string, client: ClientPath) { this.path = path; this.client = client; } @@ -305,7 +295,7 @@ export class Store { return await invoke("plugin:stronghold|get_store_record", { snapshotPath: this.path, client: this.client, - key: toBytesDto(key), + key, }).then((v) => v && Uint8Array.from(v)); } @@ -317,7 +307,7 @@ export class Store { await invoke("plugin:stronghold|save_store_record", { snapshotPath: this.path, client: this.client, - key: toBytesDto(key), + key, value, lifetime, }); @@ -329,7 +319,7 @@ export class Store { { snapshotPath: this.path, client: this.client, - key: toBytesDto(key), + key, }, ).then((v) => v && Uint8Array.from(v)); } @@ -343,9 +333,9 @@ export class Store { export class Vault extends ProcedureExecutor { /** The vault path. */ path: string; - client: BytesDto; + client: ClientPath; /** The vault name. */ - name: BytesDto; + name: VaultPath; constructor(path: string, client: ClientPath, name: VaultPath) { super({ @@ -354,8 +344,8 @@ export class Vault extends ProcedureExecutor { vault: name, }); this.path = path; - this.client = toBytesDto(client); - this.name = toBytesDto(name); + this.client = client; + this.name = name; } /** @@ -370,7 +360,7 @@ export class Vault extends ProcedureExecutor { snapshotPath: this.path, client: this.client, vault: this.name, - recordPath: toBytesDto(recordPath), + recordPath, secret, }); } @@ -431,14 +421,14 @@ export class Stronghold { async loadClient(client: ClientPath): Promise { return await invoke("plugin:stronghold|load_client", { snapshotPath: this.path, - client: toBytesDto(client), + client, }).then(() => new Client(this.path, client)); } async createClient(client: ClientPath): Promise { return await invoke("plugin:stronghold|create_client", { snapshotPath: this.path, - client: toBytesDto(client), + client, }).then(() => new Client(this.path, client)); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fde875ac..34dba95f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ settings: overrides: semver: '>=7.5.2' optionator: '>=0.9.3' + micromatch@<4.0.8: '>=4.0.8' importers: @@ -2057,8 +2058,8 @@ packages: micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mimic-fn@2.1.0: @@ -4092,7 +4093,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -4389,7 +4390,7 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 From 9ea9e0594481abbd702374baca97d658c2ab632b Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 28 Aug 2024 19:21:37 -0300 Subject: [PATCH 496/643] chore(deps): update to tauri rc.7 (#1699) * chore(deps): update to tauri rc.7 * update api [skip ci] * downgrade sqlx [skip ci] --- .changes/tauri-rc-7.md | 61 +++++ Cargo.lock | 154 +++++++---- Cargo.toml | 8 +- examples/api/package.json | 4 +- .../src-tauri/gen/android/.idea/gradle.xml | 3 +- .../src-tauri/gen/android/.idea/kotlinc.xml | 2 +- .../api/src-tauri/gen/android/.idea/misc.xml | 1 + .../gen/android/app/build.gradle.kts | 6 +- .../android/app/src/main/AndroidManifest.xml | 6 + .../src-tauri/gen/android/build.gradle.kts | 4 +- .../gen/android/buildSrc/build.gradle.kts | 2 +- .../src-tauri/gen/android/gradle.properties | 1 - .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../api/src-tauri/gen/android/gradlew.bat | 178 ++++++------- .../src-tauri/gen/apple/ExportOptions.plist | 2 +- .../gen/apple/api.xcodeproj/project.pbxproj | 19 +- .../gen/apple/api_iOS/api_iOS.entitlements | 7 +- examples/api/src-tauri/gen/apple/project.yml | 9 +- plugins/authenticator/package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/package.json | 2 +- plugins/cli/package.json | 2 +- plugins/clipboard-manager/api-iife.js | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/examples/app/package.json | 4 +- plugins/deep-link/package.json | 2 +- plugins/dialog/package.json | 2 +- plugins/fs/package.json | 2 +- plugins/geolocation/package.json | 2 +- plugins/global-shortcut/package.json | 2 +- plugins/haptics/package.json | 2 +- plugins/http/package.json | 2 +- plugins/log/package.json | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/package.json | 2 +- plugins/os/package.json | 2 +- plugins/positioner/package.json | 2 +- plugins/process/package.json | 2 +- plugins/shell/package.json | 2 +- .../examples/vanilla/package.json | 2 +- plugins/sql/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/package.json | 2 +- plugins/upload/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/api-iife.js | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 252 +++++++++--------- shared/template/package.json | 2 +- 53 files changed, 449 insertions(+), 342 deletions(-) create mode 100644 .changes/tauri-rc-7.md diff --git a/.changes/tauri-rc-7.md b/.changes/tauri-rc-7.md new file mode 100644 index 000000000..0d1e5e715 --- /dev/null +++ b/.changes/tauri-rc-7.md @@ -0,0 +1,61 @@ +--- +"authenticator": patch +"autostart": patch +"barcode-scanner": patch +"biometric": patch +"cli": patch +"clipboard-manager": patch +"deep-link": patch +"dialog": patch +"fs": patch +"global-shortcut": patch +"http": patch +"localhost": patch +"log-plugin": patch +"nfc": patch +"notification": patch +"os": patch +"persisted-scope": patch +"positioner": patch +"process": patch +"shell": patch +"single-instance": patch +"sql": patch +"store": patch +"stronghold": patch +"updater": patch +"upload": patch +"websocket": patch +"window-state": patch +"authenticator-js": patch +"autostart-js": patch +"barcode-scanner-js": patch +"biometric-js": patch +"cli-js": patch +"clipboard-manager-js": patch +"deep-link-js": patch +"dialog-js": patch +"fs-js": patch +"global-shortcut-js": patch +"http-js": patch +"log-js": patch +"nfc-js": patch +"notification-js": patch +"os-js": patch +"positioner-js": patch +"process-js": patch +"shell-js": patch +"sql-js": patch +"store-js": patch +"stronghold-js": patch +"updater-js": patch +"upload-js": patch +"websocket-js": patch +"window-state-js": patch +"haptics": patch +"haptics-js": patch +"geolocation": patch +"geolocation-js": patch +--- + +Update to tauri 2.0.0-rc.7 diff --git a/Cargo.lock b/Cargo.lock index 99c7da52a..94040a0ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2866,13 +2866,13 @@ dependencies = [ "http", "hyper", "hyper-util", - "rustls", + "rustls 0.23.12", "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", - "webpki-roots", + "webpki-roots 0.26.3", ] [[package]] @@ -3441,9 +3441,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.30.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" dependencies = [ "cc", "pkg-config", @@ -4714,7 +4714,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls", + "rustls 0.23.12", "socket2", "thiserror", "tokio", @@ -4731,7 +4731,7 @@ dependencies = [ "rand 0.8.5", "ring", "rustc-hash", - "rustls", + "rustls 0.23.12", "slab", "thiserror", "tinyvec", @@ -5005,9 +5005,9 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls", + "rustls 0.23.12", "rustls-native-certs", - "rustls-pemfile", + "rustls-pemfile 2.1.3", "rustls-pki-types", "serde", "serde_json", @@ -5025,7 +5025,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", + "webpki-roots 0.26.3", "winreg 0.52.0", ] @@ -5223,6 +5223,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "ring", + "rustls-webpki 0.101.7", + "sct", +] + [[package]] name = "rustls" version = "0.23.12" @@ -5232,7 +5243,7 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] @@ -5244,12 +5255,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 2.1.3", "rustls-pki-types", "schannel", "security-framework", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -5266,6 +5286,16 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustls-webpki" version = "0.102.6" @@ -5377,6 +5407,16 @@ dependencies = [ "sha2", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "seahash" version = "4.1.0" @@ -5824,9 +5864,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcfa89bea9500db4a0d038513d7a060566bfc51d46d1c014847049a45cce85e8" +checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" dependencies = [ "sqlx-core", "sqlx-macros", @@ -5837,9 +5877,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06e2f2bd861719b1f3f0c7dbe1d80c30bf59e76cf019f07d9014ed7eefb8e08" +checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" dependencies = [ "atoi", "byteorder", @@ -5862,8 +5902,8 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rustls", - "rustls-pemfile", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", "serde", "serde_json", "sha2", @@ -5875,14 +5915,14 @@ dependencies = [ "tokio-stream", "tracing", "url", - "webpki-roots", + "webpki-roots 0.25.4", ] [[package]] name = "sqlx-macros" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f998a9defdbd48ed005a89362bd40dd2117502f15294f61c8d47034107dbbdc" +checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" dependencies = [ "proc-macro2", "quote", @@ -5893,9 +5933,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d100558134176a2629d46cec0c8891ba0be8910f7896abfdb75ef4ab6f4e7ce" +checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" dependencies = [ "dotenvy", "either", @@ -5919,9 +5959,9 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cac0ab331b14cb3921c62156d913e4c15b74fb6ec0f3146bd4ef6e4fb3c12" +checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" dependencies = [ "atoi", "base64 0.22.1", @@ -5962,9 +6002,9 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9734dbce698c67ecf67c442f768a5e90a49b2a4d61a9f1d59f73874bd4cf0710" +checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" dependencies = [ "atoi", "base64 0.22.1", @@ -6001,9 +6041,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b419c3c1b1697833dd927bdc4c6545a620bc1bbafabd44e1efbe9afcd337e" +checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" dependencies = [ "atoi", "flume", @@ -6153,9 +6193,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swift-rs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" dependencies = [ "base64 0.21.7", "serde", @@ -6247,9 +6287,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.29.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6775bcf3c1da33f848ede9cff5883ed1e45a29f66533ce42ad06c93ae514ed59" +checksum = "d3a97abbc7d6cfd0720da3e06fcb1cf2ac87cbfdb5bbbce103a1279a211c4d81" dependencies = [ "bitflags 2.6.0", "cocoa 0.26.0", @@ -6320,9 +6360,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d386b956b09cf88301912453829269f3914b3c813020d429ed8110c75e9dded" +checksum = "fd19af7f228219ba1c18b8058594f444d9758f94f9e2643283985059f056d5bd" dependencies = [ "anyhow", "bytes", @@ -6373,9 +6413,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e79aafbbfc8262d7937675cb44c397e975ab8e0cd722db1c37de694fd443570" +checksum = "7d5ad5fcfaf02cf79aa6727f6c5df38567d8dce172b00b62690c6bc46c08b7ce" dependencies = [ "anyhow", "cargo_toml", @@ -6397,9 +6437,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce4e521130c5d7b377ddfdc43310ece626b67ec07ae74174407ad7e6cd17d20" +checksum = "809ef6316726fc72593d296cf6f4e7461326e310c313d6a6c42b6e7f1e2671cf" dependencies = [ "base64 0.22.1", "brotli", @@ -6424,9 +6464,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5995206394cd30411fc5c8ae195e498357f63e11ed960ea32b53512dcb2a5a5" +checksum = "1359e8861d210d25731f8b1bfbb4d111dd06406cf73c59659366ef450364d811" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6438,9 +6478,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ebbdbf4e6d7328e0c0f2427b4f56d792ee1ae84ab4fb0286b81a2e408836046" +checksum = "a7dded420c86183f592d0fe925ef9447f41e26fa79f0bdfef8d3f17bfbcdbfb7" dependencies = [ "anyhow", "glob", @@ -6933,9 +6973,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e49398fb1d7736e41099aa7efaf45d599e480a36b3e7f88977b547b662d7253" +checksum = "75c72b844f387bfc3341c355f3e16b8cbf4161848fa4e348670effb222cd3ba5" dependencies = [ "dpi", "gtk", @@ -6952,9 +6992,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2ce1dca90243bd4a77a1020847688590e1ded2f6d190d5a96877b0039f0500" +checksum = "73accf936a7cd01d1382de7850726fdf6c1f6ab3b01ccb7a0950cb852e332596" dependencies = [ "cocoa 0.26.0", "gtk", @@ -6976,9 +7016,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.5" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d702b62eed4cf89034926cb1834e2d13a7d745ea08a457fd336f94cde48f2fb" +checksum = "d53d9fe87e985b273696ae22ce2b9f099a8f1b44bc8fb127467bda5fcb3e4371" dependencies = [ "aes-gcm", "brotli", @@ -7227,7 +7267,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls", + "rustls 0.23.12", "rustls-pki-types", "tokio", ] @@ -7264,14 +7304,14 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls", + "rustls 0.23.12", "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-native-tls", "tokio-rustls", "tungstenite", - "webpki-roots", + "webpki-roots 0.26.3", ] [[package]] @@ -7437,9 +7477,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b92252d649d771105448969f2b2dda4342ba48b77731b60d37c93665e26615b" +checksum = "131a65b2cef2081bc14dbcd414c906edbfa3bb5323dd7e748cc298614681196b" dependencies = [ "core-graphics 0.24.0", "crossbeam-channel", @@ -7482,7 +7522,7 @@ dependencies = [ "log", "native-tls", "rand 0.8.5", - "rustls", + "rustls 0.23.12", "rustls-pki-types", "sha1", "thiserror", @@ -7924,6 +7964,12 @@ dependencies = [ "system-deps", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "webpki-roots" version = "0.26.3" diff --git a/Cargo.toml b/Cargo.toml index 5ba3f825e..f4bf02827 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.5", default-features = false } -tauri-build = "2.0.0-rc.5" -tauri-plugin = "2.0.0-rc.5" -tauri-utils = "2.0.0-rc.5" +tauri = { version = "2.0.0-rc.7", default-features = false } +tauri-build = "2.0.0-rc.7" +tauri-plugin = "2.0.0-rc.7" +tauri-utils = "2.0.0-rc.7" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index 51083ba21..3bb816e9a 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.1", + "@tauri-apps/api": "2.0.0-rc.4", "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.0", "@tauri-apps/plugin-biometric": "2.0.0-rc.0", "@tauri-apps/plugin-cli": "2.0.0-rc.0", @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.6", + "@tauri-apps/cli": "2.0.0-rc.8", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.8", "unocss": "^0.62.0", diff --git a/examples/api/src-tauri/gen/android/.idea/gradle.xml b/examples/api/src-tauri/gen/android/.idea/gradle.xml index 120d2e91f..be7415439 100644 --- a/examples/api/src-tauri/gen/android/.idea/gradle.xml +++ b/examples/api/src-tauri/gen/android/.idea/gradle.xml @@ -1,6 +1,5 @@ -

headings in markdown content for Tauri documentation generation purposes.", - "type": [ - "string", - "null" - ] - }, - "commands": { - "description": "Allowed or denied commands when using this permission.", - "default": { - "allow": [], - "deny": [] - }, - "allOf": [ - { - "$ref": "#/definitions/Commands" - } - ] - }, - "scope": { - "description": "Allowed or denied scoped when using this permission.", - "allOf": [ - { - "$ref": "#/definitions/Scopes" - } - ] - }, - "platforms": { - "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "Commands": { - "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.", - "type": "object", - "properties": { - "allow": { - "description": "Allowed command.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - }, - "deny": { - "description": "Denied command, which takes priority.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Scopes": { - "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```", - "type": "object", - "properties": { - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "PermissionKind": { - "type": "string", - "oneOf": [ - { - "description": "allow-init-auth -> Enables the init_auth command without any pre-configured scope.", - "type": "string", - "enum": [ - "allow-init-auth" - ] - }, - { - "description": "deny-init-auth -> Denies the init_auth command without any pre-configured scope.", - "type": "string", - "enum": [ - "deny-init-auth" - ] - }, - { - "description": "allow-register -> Enables the register command without any pre-configured scope.", - "type": "string", - "enum": [ - "allow-register" - ] - }, - { - "description": "deny-register -> Denies the register command without any pre-configured scope.", - "type": "string", - "enum": [ - "deny-register" - ] - }, - { - "description": "allow-sign -> Enables the sign command without any pre-configured scope.", - "type": "string", - "enum": [ - "allow-sign" - ] - }, - { - "description": "deny-sign -> Denies the sign command without any pre-configured scope.", - "type": "string", - "enum": [ - "deny-sign" - ] - }, - { - "description": "allow-verify-registration -> Enables the verify_registration command without any pre-configured scope.", - "type": "string", - "enum": [ - "allow-verify-registration" - ] - }, - { - "description": "deny-verify-registration -> Denies the verify_registration command without any pre-configured scope.", - "type": "string", - "enum": [ - "deny-verify-registration" - ] - }, - { - "description": "allow-verify-signature -> Enables the verify_signature command without any pre-configured scope.", - "type": "string", - "enum": [ - "allow-verify-signature" - ] - }, - { - "description": "deny-verify-signature -> Denies the verify_signature command without any pre-configured scope.", - "type": "string", - "enum": [ - "deny-verify-signature" - ] - } - ] - } - } -} \ No newline at end of file diff --git a/plugins/authenticator/rollup.config.js b/plugins/authenticator/rollup.config.js deleted file mode 100644 index 977dfac83..000000000 --- a/plugins/authenticator/rollup.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -import { createConfig } from "../../shared/rollup.config.js"; - -export default createConfig(); diff --git a/plugins/authenticator/src/auth.rs b/plugins/authenticator/src/auth.rs deleted file mode 100644 index 34bc332b5..000000000 --- a/plugins/authenticator/src/auth.rs +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use authenticator::{ - authenticatorservice::AuthenticatorService, statecallback::StateCallback, - AuthenticatorTransports, KeyHandle, RegisterFlags, SignFlags, StatusUpdate, -}; -use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; -use once_cell::sync::Lazy; -use serde::Serialize; -use sha2::{Digest, Sha256}; -use std::io; -use std::sync::mpsc::channel; -use std::{convert::Into, sync::Mutex}; - -static MANAGER: Lazy> = Lazy::new(|| { - let manager = AuthenticatorService::new().expect("The auth service should initialize safely"); - Mutex::new(manager) -}); - -pub fn init_usb() { - let mut manager = MANAGER.lock().unwrap(); - // theres also "add_detected_transports()" in the docs? - manager.add_u2f_usb_hid_platform_transports(); -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct Registration { - pub key_handle: String, - pub pubkey: String, - pub register_data: String, - pub client_data: String, -} - -pub fn register(application: String, timeout: u64, challenge: String) -> crate::Result { - let (chall_bytes, app_bytes, client_data_string) = - format_client_data(application.as_str(), challenge.as_str()); - - // log the status rx? - let (status_tx, _status_rx) = channel::(); - - let mut manager = MANAGER.lock().unwrap(); - - let (register_tx, register_rx) = channel(); - let callback = StateCallback::new(Box::new(move |rv| { - register_tx.send(rv).unwrap(); - })); - - let res = manager.register( - RegisterFlags::empty(), - timeout, - chall_bytes, - app_bytes, - vec![], - status_tx, - callback, - ); - - match res { - Ok(_r) => { - let register_result = register_rx - .recv() - .expect("Problem receiving, unable to continue"); - - if let Err(e) = register_result { - return Err(e.into()); - } - - let (register_data, device_info) = register_result.unwrap(); // error already has been checked - - // println!("Register result: {}", base64::encode(®ister_data)); - println!("Device info: {}", &device_info); - - let (key_handle, public_key) = - _u2f_get_key_handle_and_public_key_from_register_response(®ister_data).unwrap(); - let key_handle_base64 = URL_SAFE_NO_PAD.encode(key_handle); - let public_key_base64 = URL_SAFE_NO_PAD.encode(public_key); - let register_data_base64 = URL_SAFE_NO_PAD.encode(®ister_data); - println!("Key Handle: {}", &key_handle_base64); - println!("Public Key: {}", &public_key_base64); - - // Ok(base64::encode(®ister_data)) - // Ok(key_handle_base64) - let res = serde_json::to_string(&Registration { - key_handle: key_handle_base64, - pubkey: public_key_base64, - register_data: register_data_base64, - client_data: client_data_string, - })?; - Ok(res) - } - Err(e) => Err(e.into()), - } -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct Signature { - pub key_handle: String, - pub sign_data: String, -} - -pub fn sign( - application: String, - timeout: u64, - challenge: String, - key_handle: String, -) -> crate::Result { - let credential = match URL_SAFE_NO_PAD.decode(key_handle) { - Ok(v) => v, - Err(e) => { - return Err(e.into()); - } - }; - let key_handle = KeyHandle { - credential, - transports: AuthenticatorTransports::empty(), - }; - - let (chall_bytes, app_bytes, _) = format_client_data(application.as_str(), challenge.as_str()); - - let (sign_tx, sign_rx) = channel(); - let callback = StateCallback::new(Box::new(move |rv| { - sign_tx.send(rv).unwrap(); - })); - - // log the status rx? - let (status_tx, _status_rx) = channel::(); - - let mut manager = MANAGER.lock().unwrap(); - - let res = manager.sign( - SignFlags::empty(), - timeout, - chall_bytes, - vec![app_bytes], - vec![key_handle], - status_tx, - callback, - ); - match res { - Ok(_v) => { - let sign_result = sign_rx - .recv() - .expect("Problem receiving, unable to continue"); - - if let Err(e) = sign_result { - return Err(e.into()); - } - - let (_, handle_used, sign_data, device_info) = sign_result.unwrap(); - - let sig = URL_SAFE_NO_PAD.encode(sign_data); - - println!("Sign result: {sig}"); - println!("Key handle used: {}", URL_SAFE_NO_PAD.encode(&handle_used)); - println!("Device info: {}", &device_info); - println!("Done."); - - let res = serde_json::to_string(&Signature { - sign_data: sig, - key_handle: URL_SAFE_NO_PAD.encode(&handle_used), - })?; - Ok(res) - } - Err(e) => Err(e.into()), - } -} - -fn format_client_data(application: &str, challenge: &str) -> (Vec, Vec, String) { - let d = - format!(r#"{{"challenge": "{challenge}", "version": "U2F_V2", "appId": "{application}"}}"#); - let mut challenge = Sha256::new(); - challenge.update(d.as_bytes()); - let chall_bytes = challenge.finalize().to_vec(); - - let mut app = Sha256::new(); - app.update(application.as_bytes()); - let app_bytes = app.finalize().to_vec(); - - (chall_bytes, app_bytes, d) -} - -fn _u2f_get_key_handle_and_public_key_from_register_response( - register_response: &[u8], -) -> io::Result<(Vec, Vec)> { - if register_response[0] != 0x05 { - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "Reserved byte not set correctly", - )); - } - - // 1: reserved - // 65: public key - // 1: key handle length - // key handle - // x.509 cert - // sig - - let key_handle_len = register_response[66] as usize; - let mut public_key = register_response.to_owned(); - let mut key_handle = public_key.split_off(67); - let _attestation = key_handle.split_off(key_handle_len); - - // remove fist (reserved) and last (handle len) bytes - let pk: Vec = public_key[1..public_key.len() - 1].to_vec(); - - Ok((key_handle, pk)) -} diff --git a/plugins/authenticator/src/error.rs b/plugins/authenticator/src/error.rs deleted file mode 100644 index 214706e6a..000000000 --- a/plugins/authenticator/src/error.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use serde::{Serialize, Serializer}; - -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error(transparent)] - Base64Decode(#[from] base64::DecodeError), - #[error(transparent)] - JSON(#[from] serde_json::Error), - #[error(transparent)] - U2F(#[from] crate::u2f_crate::u2ferror::U2fError), - #[error(transparent)] - Auth(#[from] authenticator::errors::AuthenticatorError), -} - -impl Serialize for Error { - fn serialize(&self, serializer: S) -> std::result::Result - where - S: Serializer, - { - serializer.serialize_str(self.to_string().as_ref()) - } -} diff --git a/plugins/authenticator/src/lib.rs b/plugins/authenticator/src/lib.rs deleted file mode 100644 index 0e3e9f057..000000000 --- a/plugins/authenticator/src/lib.rs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -//! [![](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/authenticator/banner.png)](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/authenticator) -//! -//! Use hardware security-keys in your Tauri App. -//! -//! - Supported platforms: Windows, Linux, FreeBSD, NetBSD, OpenBSD, and macOS. - -#![doc( - html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", - html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" -)] -#![cfg(not(any(target_os = "android", target_os = "ios")))] - -mod auth; -mod error; -mod u2f; -mod u2f_crate; - -use tauri::{ - plugin::{Builder as PluginBuilder, TauriPlugin}, - Runtime, -}; - -pub use error::Error; -type Result = std::result::Result; - -#[tauri::command] -fn init_auth() { - auth::init_usb(); -} - -#[tauri::command] -fn register(timeout: u64, challenge: String, application: String) -> crate::Result { - auth::register(application, timeout, challenge) -} - -#[tauri::command] -fn verify_registration( - challenge: String, - application: String, - register_data: String, - client_data: String, -) -> crate::Result { - u2f::verify_registration(application, challenge, register_data, client_data) -} - -#[tauri::command] -fn sign( - timeout: u64, - challenge: String, - application: String, - key_handle: String, -) -> crate::Result { - auth::sign(application, timeout, challenge, key_handle) -} - -#[tauri::command] -fn verify_signature( - challenge: String, - application: String, - sign_data: String, - client_data: String, - key_handle: String, - pubkey: String, -) -> crate::Result { - u2f::verify_signature( - application, - challenge, - sign_data, - client_data, - key_handle, - pubkey, - ) -} - -pub fn init() -> TauriPlugin { - PluginBuilder::new("authenticator") - .invoke_handler(tauri::generate_handler![ - init_auth, - register, - verify_registration, - sign, - verify_signature - ]) - .build() -} diff --git a/plugins/authenticator/src/u2f.rs b/plugins/authenticator/src/u2f.rs deleted file mode 100644 index 9e246094e..000000000 --- a/plugins/authenticator/src/u2f.rs +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use crate::u2f_crate::messages::*; -use crate::u2f_crate::protocol::*; -use crate::u2f_crate::register::*; -use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; -use chrono::prelude::*; -use serde::Serialize; -use std::convert::Into; - -static VERSION: &str = "U2F_V2"; - -pub fn make_challenge(app_id: &str, challenge_bytes: Vec) -> Challenge { - let utc: DateTime = Utc::now(); - Challenge { - challenge: URL_SAFE_NO_PAD.encode(challenge_bytes), - timestamp: format!("{utc:?}"), - app_id: app_id.to_string(), - } -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct RegistrationVerification { - pub key_handle: String, - pub pubkey: String, - pub device_name: Option, -} - -pub fn verify_registration( - app_id: String, - challenge: String, - register_data: String, - client_data: String, -) -> crate::Result { - let challenge_bytes = URL_SAFE_NO_PAD.decode(challenge)?; - let challenge = make_challenge(&app_id, challenge_bytes); - let client_data_bytes: Vec = client_data.as_bytes().into(); - let client_data_base64 = URL_SAFE_NO_PAD.encode(client_data_bytes); - let client = U2f::new(app_id); - match client.register_response( - challenge, - RegisterResponse { - registration_data: register_data, - client_data: client_data_base64, - version: VERSION.to_string(), - }, - ) { - Ok(v) => { - let rv = RegistrationVerification { - key_handle: URL_SAFE_NO_PAD.encode(&v.key_handle), - pubkey: URL_SAFE_NO_PAD.encode(&v.pub_key), - device_name: v.device_name, - }; - Ok(serde_json::to_string(&rv)?) - } - Err(e) => Err(e.into()), - } -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct SignatureVerification { - pub counter: u8, -} - -pub fn verify_signature( - app_id: String, - challenge: String, - sign_data: String, - client_data: String, - key_handle: String, - pub_key: String, -) -> crate::Result { - let challenge_bytes = URL_SAFE_NO_PAD.decode(challenge)?; - let chal = make_challenge(&app_id, challenge_bytes); - let client_data_bytes: Vec = client_data.as_bytes().into(); - let client_data_base64 = URL_SAFE_NO_PAD.encode(client_data_bytes); - let key_handle_bytes = URL_SAFE_NO_PAD.decode(&key_handle)?; - let pubkey_bytes = URL_SAFE_NO_PAD.decode(pub_key)?; - let client = U2f::new(app_id); - let mut _counter: u32 = 0; - match client.sign_response( - chal, - Registration { - // here only needs pubkey and keyhandle - key_handle: key_handle_bytes, - pub_key: pubkey_bytes, - attestation_cert: None, - device_name: None, - }, - SignResponse { - // here needs client data and sig data and key_handle - signature_data: sign_data, - client_data: client_data_base64, - key_handle, - }, - _counter, - ) { - Ok(v) => Ok(v), - Err(e) => Err(e.into()), - } -} diff --git a/plugins/authenticator/src/u2f_crate/LICENSE b/plugins/authenticator/src/u2f_crate/LICENSE deleted file mode 100644 index d26d5f6c0..000000000 --- a/plugins/authenticator/src/u2f_crate/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -Copyright (c) 2017 - -Licensed under either of - - * Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0) - * MIT license (http://opensource.org/licenses/MIT) - -at your option. \ No newline at end of file diff --git a/plugins/authenticator/src/u2f_crate/authorization.rs b/plugins/authenticator/src/u2f_crate/authorization.rs deleted file mode 100644 index 0e667ea6c..000000000 --- a/plugins/authenticator/src/u2f_crate/authorization.rs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use bytes::{Buf, BufMut}; -use openssl::sha::sha256; -use serde::Serialize; -use std::io::Cursor; - -use crate::u2f_crate::u2ferror::U2fError; - -/// The `Result` type used in this crate. -type Result = ::std::result::Result; - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct Authorization { - pub counter: u32, - pub user_presence: bool, -} - -pub fn parse_sign_response( - app_id: String, - client_data: Vec, - public_key: Vec, - sign_data: Vec, -) -> Result { - if sign_data.len() <= 5 { - return Err(U2fError::InvalidSignatureData); - } - - let user_presence_flag = &sign_data[0]; - let counter = &sign_data[1..=4]; - let signature = &sign_data[5..]; - - // Let's build the msg to verify the signature - let app_id_hash = sha256(&app_id.into_bytes()); - let client_data_hash = sha256(&client_data[..]); - - let mut msg = vec![]; - msg.put(app_id_hash.as_ref()); - msg.put_u8(*user_presence_flag); - msg.put(counter); - msg.put(client_data_hash.as_ref()); - - let public_key = super::crypto::NISTP256Key::from_bytes(&public_key)?; - - // The signature is to be verified by the relying party using the public key obtained during registration. - let verified = public_key.verify_signature(signature, msg.as_ref())?; - if !verified { - return Err(U2fError::BadSignature); - } - - let authorization = Authorization { - counter: get_counter(counter), - user_presence: true, - }; - - Ok(authorization) -} - -fn get_counter(counter: &[u8]) -> u32 { - let mut buf = Cursor::new(counter); - buf.get_u32() -} diff --git a/plugins/authenticator/src/u2f_crate/crypto.rs b/plugins/authenticator/src/u2f_crate/crypto.rs deleted file mode 100644 index ddcdf1b63..000000000 --- a/plugins/authenticator/src/u2f_crate/crypto.rs +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -//! Cryptographic operation wrapper for Webauthn. This module exists to -//! allow ease of auditing, safe operation wrappers for the webauthn library, -//! and cryptographic provider abstraction. This module currently uses OpenSSL -//! as the cryptographic primitive provider. - -// Source can be found here: https://github.com/Firstyear/webauthn-rs/blob/master/src/crypto.rs - -#![allow(non_camel_case_types)] - -use openssl::{bn, ec, hash, nid, sign, x509}; -use std::convert::TryFrom; - -// use super::constants::*; -use crate::u2f_crate::u2ferror::U2fError; -use openssl::pkey::Public; - -// use super::proto::*; - -// Why OpenSSL over another rust crate? -// - Well, the openssl crate allows us to reconstruct a public key from the -// x/y group coords, where most others want a pkcs formatted structure. As -// a result, it's easiest to use openssl as it gives us exactly what we need -// for these operations, and despite it's many challenges as a library, it -// has resources and investment into it's maintenance, so we can a least -// assert a higher level of confidence in it that . - -// Object({Integer(-3): Bytes([48, 185, 178, 204, 113, 186, 105, 138, 190, 33, 160, 46, 131, 253, 100, 177, 91, 243, 126, 128, 245, 119, 209, 59, 186, 41, 215, 196, 24, 222, 46, 102]), Integer(-2): Bytes([158, 212, 171, 234, 165, 197, 86, 55, 141, 122, 253, 6, 92, 242, 242, 114, 158, 221, 238, 163, 127, 214, 120, 157, 145, 226, 232, 250, 144, 150, 218, 138]), Integer(-1): U64(1), Integer(1): U64(2), Integer(3): I64(-7)}) -// - -/// An X509PublicKey. This is what is otherwise known as a public certificate -/// which comprises a public key and other signed metadata related to the issuer -/// of the key. -pub struct X509PublicKey { - pubk: x509::X509, -} - -impl std::fmt::Debug for X509PublicKey { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - write!(f, "X509PublicKey") - } -} - -impl TryFrom<&[u8]> for X509PublicKey { - type Error = U2fError; - - // Must be DER bytes. If you have PEM, base64decode first! - fn try_from(d: &[u8]) -> Result { - let pubk = x509::X509::from_der(d)?; - Ok(X509PublicKey { pubk }) - } -} - -impl X509PublicKey { - pub(crate) fn common_name(&self) -> Option { - let cert = &self.pubk; - - let subject = cert.subject_name(); - let common = subject - .entries_by_nid(openssl::nid::Nid::COMMONNAME) - .next() - .map(|b| b.data().as_slice()); - - if let Some(common) = common { - std::str::from_utf8(common).ok().map(|s| s.to_string()) - } else { - None - } - } - - pub(crate) fn is_secp256r1(&self) -> Result { - // Can we get the public key? - let pk = self.pubk.public_key()?; - - let ec_key = pk.ec_key()?; - - ec_key.check_key()?; - - let ec_grpref = ec_key.group(); - - let ec_curve = ec_grpref.curve_name().ok_or(U2fError::OpenSSLNoCurveName)?; - - Ok(ec_curve == nid::Nid::X9_62_PRIME256V1) - } - - pub(crate) fn verify_signature( - &self, - signature: &[u8], - verification_data: &[u8], - ) -> Result { - let pkey = self.pubk.public_key()?; - - // TODO: Should this determine the hash type from the x509 cert? Or other? - let mut verifier = sign::Verifier::new(hash::MessageDigest::sha256(), &pkey)?; - verifier.update(verification_data)?; - Ok(verifier.verify(signature)?) - } -} - -pub struct NISTP256Key { - /// The key's public X coordinate. - pub x: [u8; 32], - /// The key's public Y coordinate. - pub y: [u8; 32], -} - -impl NISTP256Key { - pub fn from_bytes(public_key_bytes: &[u8]) -> Result { - if public_key_bytes.len() != 65 { - return Err(U2fError::InvalidPublicKey); - } - - if public_key_bytes[0] != 0x04 { - return Err(U2fError::InvalidPublicKey); - } - - let mut x: [u8; 32] = Default::default(); - x.copy_from_slice(&public_key_bytes[1..=32]); - - let mut y: [u8; 32] = Default::default(); - y.copy_from_slice(&public_key_bytes[33..=64]); - - Ok(NISTP256Key { x, y }) - } - - fn get_key(&self) -> Result, U2fError> { - let ec_group = ec::EcGroup::from_curve_name(openssl::nid::Nid::X9_62_PRIME256V1)?; - - let xbn = bn::BigNum::from_slice(&self.x)?; - let ybn = bn::BigNum::from_slice(&self.y)?; - - let ec_key = openssl::ec::EcKey::from_public_key_affine_coordinates(&ec_group, &xbn, &ybn)?; - - // Validate the key is sound. IIRC this actually checks the values - // are correctly on the curve as specified - ec_key.check_key()?; - - Ok(ec_key) - } - - pub fn verify_signature( - &self, - signature: &[u8], - verification_data: &[u8], - ) -> Result { - let pkey = self.get_key()?; - - let signature = openssl::ecdsa::EcdsaSig::from_der(signature)?; - let hash = openssl::sha::sha256(verification_data); - - Ok(signature.verify(hash.as_ref(), &pkey)?) - } -} diff --git a/plugins/authenticator/src/u2f_crate/messages.rs b/plugins/authenticator/src/u2f_crate/messages.rs deleted file mode 100644 index fbae95111..000000000 --- a/plugins/authenticator/src/u2f_crate/messages.rs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -// As defined by FIDO U2F Javascript API. -// https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html#registration - -use serde::{Deserialize, Serialize}; - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct U2fRegisterRequest { - pub app_id: String, - pub register_requests: Vec, - pub registered_keys: Vec, -} - -#[derive(Serialize)] -pub struct RegisterRequest { - pub version: String, - pub challenge: String, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct RegisteredKey { - pub version: String, - pub key_handle: Option, - pub app_id: String, -} - -#[derive(Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct RegisterResponse { - pub registration_data: String, - #[allow(unused)] - pub version: String, - pub client_data: String, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct U2fSignRequest { - pub app_id: String, - pub challenge: String, - pub registered_keys: Vec, -} - -#[derive(Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct SignResponse { - pub key_handle: String, - pub signature_data: String, - pub client_data: String, -} diff --git a/plugins/authenticator/src/u2f_crate/mod.rs b/plugins/authenticator/src/u2f_crate/mod.rs deleted file mode 100644 index ab2a1e0cf..000000000 --- a/plugins/authenticator/src/u2f_crate/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -mod util; - -pub mod authorization; -mod crypto; -pub mod messages; -pub mod protocol; -pub mod register; -pub mod u2ferror; diff --git a/plugins/authenticator/src/u2f_crate/protocol.rs b/plugins/authenticator/src/u2f_crate/protocol.rs deleted file mode 100644 index aa4259e9f..000000000 --- a/plugins/authenticator/src/u2f_crate/protocol.rs +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use crate::u2f_crate::authorization::*; -use crate::u2f_crate::messages::*; -use crate::u2f_crate::register::*; -use crate::u2f_crate::u2ferror::U2fError; -use crate::u2f_crate::util::*; - -use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; -use chrono::prelude::*; -use chrono::Duration; -use serde::{Deserialize, Serialize}; - -type Result = ::std::result::Result; - -#[derive(Clone)] -pub struct U2f { - app_id: String, -} - -#[derive(Deserialize, Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct Challenge { - pub app_id: String, - pub challenge: String, - pub timestamp: String, -} - -impl Challenge { - // Not used in this plugin. - #[allow(dead_code)] - pub fn new() -> Self { - Challenge { - app_id: String::new(), - challenge: String::new(), - timestamp: String::new(), - } - } -} - -impl U2f { - // The app ID is a string used to uniquely identify an U2F app - pub fn new(app_id: String) -> Self { - U2f { app_id } - } - - // Not used in this plugin. - #[allow(dead_code)] - pub fn generate_challenge(&self) -> Result { - let utc: DateTime = Utc::now(); - - let challenge_bytes = generate_challenge(32)?; - let challenge = Challenge { - challenge: URL_SAFE_NO_PAD.encode(challenge_bytes), - timestamp: format!("{:?}", utc), - app_id: self.app_id.clone(), - }; - - Ok(challenge.clone()) - } - - // Not used in this plugin. - #[allow(dead_code)] - pub fn request( - &self, - challenge: Challenge, - registrations: Vec, - ) -> Result { - let u2f_request = U2fRegisterRequest { - app_id: self.app_id.clone(), - register_requests: self.register_request(challenge), - registered_keys: self.registered_keys(registrations), - }; - - Ok(u2f_request) - } - - fn register_request(&self, challenge: Challenge) -> Vec { - let mut requests: Vec = vec![]; - - let request = RegisterRequest { - version: U2F_V2.into(), - challenge: challenge.challenge, - }; - requests.push(request); - - requests - } - - pub fn register_response( - &self, - challenge: Challenge, - response: RegisterResponse, - ) -> Result { - // Safe to unwrap since 300 is within the constraints of Duration::try_seconds - if expiration(challenge.timestamp) > Duration::try_seconds(300).unwrap() { - return Err(U2fError::ChallengeExpired); - } - - let registration_data: Vec = URL_SAFE_NO_PAD - .decode(&response.registration_data[..]) - .unwrap(); - let client_data: Vec = URL_SAFE_NO_PAD.decode(&response.client_data[..]).unwrap(); - - parse_registration(challenge.app_id, client_data, registration_data) - } - - fn registered_keys(&self, registrations: Vec) -> Vec { - let mut keys: Vec = vec![]; - - for registration in registrations { - keys.push(get_registered_key( - self.app_id.clone(), - registration.key_handle, - )); - } - - keys - } - - // Not used in this plugin. - #[allow(dead_code)] - pub fn sign_request( - &self, - challenge: Challenge, - registrations: Vec, - ) -> U2fSignRequest { - let mut keys: Vec = vec![]; - - for registration in registrations { - keys.push(get_registered_key( - self.app_id.clone(), - registration.key_handle, - )); - } - - let signed_request = U2fSignRequest { - app_id: self.app_id.clone(), - challenge: URL_SAFE_NO_PAD.encode(challenge.challenge.as_bytes()), - registered_keys: keys, - }; - - signed_request - } - - pub fn sign_response( - &self, - challenge: Challenge, - reg: Registration, - sign_resp: SignResponse, - counter: u32, - ) -> Result { - // Safe to unwrap since 300 is within the constraints of Duration::try_seconds - if expiration(challenge.timestamp) > Duration::try_seconds(300).unwrap() { - return Err(U2fError::ChallengeExpired); - } - - if sign_resp.key_handle != get_encoded(®.key_handle[..]) { - return Err(U2fError::WrongKeyHandler); - } - - let client_data: Vec = URL_SAFE_NO_PAD - .decode(&sign_resp.client_data[..]) - .map_err(|_e| U2fError::InvalidClientData)?; - let sign_data: Vec = URL_SAFE_NO_PAD - .decode(&sign_resp.signature_data[..]) - .map_err(|_e| U2fError::InvalidSignatureData)?; - - let public_key = reg.pub_key; - - let auth = parse_sign_response( - self.app_id.clone(), - client_data.clone(), - public_key, - sign_data.clone(), - ); - - match auth { - Ok(ref res) => { - // CounterTooLow is raised when the counter value received from the device is - // lower than last stored counter value. - if res.counter < counter { - Err(U2fError::CounterTooLow) - } else { - Ok(res.counter) - } - } - Err(e) => Err(e), - } - } -} diff --git a/plugins/authenticator/src/u2f_crate/register.rs b/plugins/authenticator/src/u2f_crate/register.rs deleted file mode 100644 index 6b47817d1..000000000 --- a/plugins/authenticator/src/u2f_crate/register.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use byteorder::{BigEndian, ByteOrder}; -use bytes::{BufMut, Bytes}; -use openssl::sha::sha256; -use serde::Serialize; - -use crate::u2f_crate::messages::RegisteredKey; -use crate::u2f_crate::u2ferror::U2fError; -use crate::u2f_crate::util::*; -use std::convert::TryFrom; - -/// The `Result` type used in this crate. -type Result = ::std::result::Result; - -// Single enrolment or pairing between an application and a token. -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct Registration { - pub key_handle: Vec, - pub pub_key: Vec, - - // AttestationCert can be null for Authenticate requests. - pub attestation_cert: Option>, - pub device_name: Option, -} - -pub fn parse_registration( - app_id: String, - client_data: Vec, - registration_data: Vec, -) -> Result { - let reserved_byte = registration_data[0]; - if reserved_byte != 0x05 { - return Err(U2fError::InvalidReservedByte); - } - - let mut mem = Bytes::from(registration_data); - - //Start parsing ... advance the reserved byte. - let _ = mem.split_to(1); - - // P-256 NIST elliptic curve - let public_key = mem.split_to(65); - - // Key Handle - let key_handle_size = mem.split_to(1); - let key_len = BigEndian::read_uint(&key_handle_size[..], 1); - let key_handle = mem.split_to(key_len as usize); - - // The certificate length needs to be inferred by parsing. - let cert_len = asn_length(mem.clone()).unwrap(); - let attestation_certificate = mem.split_to(cert_len); - - // Remaining data corresponds to the signature - let signature = mem; - - // Let's build the msg to verify the signature - let app_id_hash = sha256(&app_id.into_bytes()); - let client_data_hash = sha256(&client_data[..]); - - let mut msg = vec![0x00]; // A byte reserved for future use [1 byte] with the value 0x00 - msg.put(app_id_hash.as_ref()); - msg.put(client_data_hash.as_ref()); - msg.put(key_handle.clone()); - msg.put(public_key.clone()); - - // The signature is to be verified by the relying party using the public key certified - // in the attestation certificate. - let cerificate_public_key = - super::crypto::X509PublicKey::try_from(&attestation_certificate[..])?; - - if !(cerificate_public_key.is_secp256r1()?) { - return Err(U2fError::BadCertificate); - } - - let verified = cerificate_public_key.verify_signature(&signature[..], &msg[..])?; - - if !verified { - return Err(U2fError::BadCertificate); - } - - let registration = Registration { - key_handle: key_handle[..].to_vec(), - pub_key: public_key[..].to_vec(), - attestation_cert: Some(attestation_certificate[..].to_vec()), - device_name: cerificate_public_key.common_name(), - }; - - Ok(registration) -} - -pub fn get_registered_key(app_id: String, key_handle: Vec) -> RegisteredKey { - RegisteredKey { - app_id, - version: U2F_V2.into(), - key_handle: Some(get_encoded(key_handle.as_slice())), - } -} diff --git a/plugins/authenticator/src/u2f_crate/u2ferror.rs b/plugins/authenticator/src/u2f_crate/u2ferror.rs deleted file mode 100644 index 377af9d8d..000000000 --- a/plugins/authenticator/src/u2f_crate/u2ferror.rs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum U2fError { - #[error("ASM1 Decoder error")] - Asm1DecoderError, - #[error("Not able to verify signature")] - BadSignature, - #[error("Not able to generate random bytes")] - RandomSecureBytesError, - #[error("Invalid Reserved Byte")] - InvalidReservedByte, - #[error("Challenge Expired")] - ChallengeExpired, - #[error("Wrong Key Handler")] - WrongKeyHandler, - #[error("Invalid Client Data")] - InvalidClientData, - #[error("Invalid Signature Data")] - InvalidSignatureData, - #[error("Invalid User Presence Byte")] - InvalidUserPresenceByte, - #[error("Failed to parse certificate")] - BadCertificate, - #[error("Not Trusted Anchor")] - NotTrustedAnchor, - #[error("Counter too low")] - CounterTooLow, - #[error("Invalid public key")] - OpenSSLNoCurveName, - #[error("OpenSSL no curve name")] - InvalidPublicKey, - #[error(transparent)] - OpenSSLError(#[from] openssl::error::ErrorStack), -} diff --git a/plugins/authenticator/src/u2f_crate/util.rs b/plugins/authenticator/src/u2f_crate/util.rs deleted file mode 100644 index 6a7e3fbd2..000000000 --- a/plugins/authenticator/src/u2f_crate/util.rs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2021 Flavio Oliveira -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use crate::u2f_crate::u2ferror::U2fError; -use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; -use bytes::Bytes; -use chrono::prelude::*; -use chrono::Duration; -use openssl::rand; - -/// The `Result` type used in this crate. -type Result = ::std::result::Result; - -pub const U2F_V2: &str = "U2F_V2"; - -// Generates a challenge from a secure, random source. -pub fn generate_challenge(size: usize) -> Result> { - let mut bytes: Vec = vec![0; size]; - rand::rand_bytes(&mut bytes).map_err(|_e| U2fError::RandomSecureBytesError)?; - Ok(bytes) -} - -pub fn expiration(timestamp: String) -> Duration { - let now: DateTime = Utc::now(); - - let ts = timestamp.parse::>(); - - now.signed_duration_since(ts.unwrap()) -} - -// Decode initial bytes of buffer as ASN and return the length of the encoded structure. -// http://en.wikipedia.org/wiki/X.690 -pub fn asn_length(mem: Bytes) -> Result { - let buffer: &[u8] = &mem[..]; - - if mem.len() < 2 || buffer[0] != 0x30 { - // Type - return Err(U2fError::Asm1DecoderError); - } - - let len = buffer[1]; // Len - if len & 0x80 == 0 { - return Ok((len & 0x7f) as usize); - } - - let numbem_of_bytes = len & 0x7f; - if numbem_of_bytes == 0 { - return Err(U2fError::Asm1DecoderError); - } - - let mut length: usize = 0; - for num in 0..numbem_of_bytes { - length = length * 0x100 + (buffer[(2 + num) as usize] as usize); - } - - length += numbem_of_bytes as usize; - - Ok(length + 2) // Add the 2 initial bytes: type and length. -} - -pub fn get_encoded(data: &[u8]) -> String { - let encoded: String = URL_SAFE_NO_PAD.encode(data); - - encoded.trim_end_matches('=').to_string() -} diff --git a/plugins/authenticator/tsconfig.json b/plugins/authenticator/tsconfig.json deleted file mode 100644 index 5098169aa..000000000 --- a/plugins/authenticator/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "include": ["guest-js/*.ts"] -} diff --git a/plugins/mirrors.txt b/plugins/mirrors.txt index 73f0816e4..d346da18d 100644 --- a/plugins/mirrors.txt +++ b/plugins/mirrors.txt @@ -1,4 +1,3 @@ -authenticator autostart cli clipboard-manager diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 548b87ecf..d4d7f65ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -135,12 +135,6 @@ importers: specifier: ^5.0.13 version: 5.4.0(terser@5.31.5) - plugins/authenticator: - dependencies: - '@tauri-apps/api': - specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 - plugins/autostart: dependencies: '@tauri-apps/api': @@ -2772,18 +2766,17 @@ snapshots: picocolors: 1.0.1 sisteransi: 1.0.5 - '@covector/apply@0.10.0(mocha@10.7.3)': + '@covector/apply@0.10.0': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) semver: 7.6.3 transitivePeerDependencies: - encoding - - mocha - '@covector/assemble@0.12.0': + '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2794,6 +2787,7 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color '@covector/changelog@0.12.0': @@ -2808,12 +2802,13 @@ snapshots: - encoding - supports-color - '@covector/command@0.8.0': + '@covector/command@0.8.0(mocha@10.7.3)': dependencies: '@effection/process': 2.1.4 effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding + - mocha '@covector/files@0.8.0': dependencies: @@ -3711,10 +3706,10 @@ snapshots: covector@0.12.3(mocha@10.7.3): dependencies: '@clack/prompts': 0.7.0 - '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0 + '@covector/apply': 0.10.0 + '@covector/assemble': 0.12.0(mocha@10.7.3) '@covector/changelog': 0.12.0 - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From feb1e93fcb9a913c002daa29e3b709f24b97c664 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Mon, 2 Sep 2024 21:13:43 -0300 Subject: [PATCH 517/643] feat(dialog): implement save API on iOS (#1707) --- .changes/ios-dialog-save.md | 5 ++ plugins/dialog/ios/Sources/DialogPlugin.swift | 79 +++++++++++++++---- plugins/dialog/src/commands.rs | 61 +++++++------- plugins/dialog/src/error.rs | 3 - 4 files changed, 97 insertions(+), 51 deletions(-) create mode 100644 .changes/ios-dialog-save.md diff --git a/.changes/ios-dialog-save.md b/.changes/ios-dialog-save.md new file mode 100644 index 000000000..27e526450 --- /dev/null +++ b/.changes/ios-dialog-save.md @@ -0,0 +1,5 @@ +--- +"dialog": patch:feat +--- + +Implement `save` API on iOS. diff --git a/plugins/dialog/ios/Sources/DialogPlugin.swift b/plugins/dialog/ios/Sources/DialogPlugin.swift index 5e8d9e428..b3f7e7da6 100644 --- a/plugins/dialog/ios/Sources/DialogPlugin.swift +++ b/plugins/dialog/ios/Sources/DialogPlugin.swift @@ -17,10 +17,10 @@ enum FilePickerEvent { } struct MessageDialogOptions: Decodable { - let title: String? + var title: String? let message: String - let okButtonLabel: String? - let cancelButtonLabel: String? + var okButtonLabel: String? + var cancelButtonLabel: String? } struct Filter: Decodable { @@ -30,13 +30,18 @@ struct Filter: Decodable { struct FilePickerOptions: Decodable { var multiple: Bool? var filters: [Filter]? + var defaultPath: String? +} + +struct SaveFileDialogOptions: Decodable { + var fileName: String? + var defaultPath: String? } class DialogPlugin: Plugin { var filePickerController: FilePickerController! - var pendingInvoke: Invoke? = nil - var pendingInvokeArgs: FilePickerOptions? = nil + var onFilePickerResult: ((FilePickerEvent) -> Void)? = nil override init() { super.init() @@ -66,8 +71,16 @@ class DialogPlugin: Plugin { } } - pendingInvoke = invoke - pendingInvokeArgs = args + onFilePickerResult = { (event: FilePickerEvent) -> Void in + switch event { + case .selected(let urls): + invoke.resolve(["files": urls]) + case .cancelled: + invoke.resolve(["files": nil]) + case .error(let error): + invoke.reject(error) + } + } if uniqueMimeType == true || isMedia { DispatchQueue.main.async { @@ -104,6 +117,9 @@ class DialogPlugin: Plugin { let documentTypes = parsedTypes.isEmpty ? ["public.data"] : parsedTypes DispatchQueue.main.async { let picker = UIDocumentPickerViewController(documentTypes: documentTypes, in: .import) + if let defaultPath = args.defaultPath { + picker.directoryURL = URL(string: defaultPath) + } picker.delegate = self.filePickerController picker.allowsMultipleSelection = args.multiple ?? false picker.modalPresentationStyle = .fullScreen @@ -112,6 +128,46 @@ class DialogPlugin: Plugin { } } + @objc public func saveFileDialog(_ invoke: Invoke) throws { + let args = try invoke.parseArgs(SaveFileDialogOptions.self) + + // The Tauri save dialog API prompts the user to select a path where a file must be saved + // This behavior maps to the operating system interfaces on all platforms except iOS, + // which only exposes a mechanism to "move file `srcPath` to a location defined by the user" + // + // so we have to work around it by creating an empty file matching the requested `args.fileName`, + // and using it as `srcPath` for the operation - returning the path the user selected + // so the app dev can write to it later - matching cross platform behavior as mentioned above + let fileManager = FileManager.default + let srcFolder = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! + let srcPath = srcFolder.appendingPathComponent(args.fileName ?? "file") + if !fileManager.fileExists(atPath: srcPath.path) { + // the file contents must be actually provided by the tauri dev after the path is resolved by the save API + try "".write(to: srcPath, atomically: true, encoding: .utf8) + } + + onFilePickerResult = { (event: FilePickerEvent) -> Void in + switch event { + case .selected(let urls): + invoke.resolve(["file": urls.first!]) + case .cancelled: + invoke.resolve(["file": nil]) + case .error(let error): + invoke.reject(error) + } + } + + DispatchQueue.main.async { + let picker = UIDocumentPickerViewController(url: srcPath, in: .exportToService) + if let defaultPath = args.defaultPath { + picker.directoryURL = URL(string: defaultPath) + } + picker.delegate = self.filePickerController + picker.modalPresentationStyle = .fullScreen + self.presentViewController(picker) + } + } + private func presentViewController(_ viewControllerToPresent: UIViewController) { self.manager.viewController?.present(viewControllerToPresent, animated: true, completion: nil) } @@ -133,14 +189,7 @@ class DialogPlugin: Plugin { } public func onFilePickerEvent(_ event: FilePickerEvent) { - switch event { - case .selected(let urls): - pendingInvoke?.resolve(["files": urls]) - case .cancelled: - pendingInvoke?.resolve(["files": nil]) - case .error(let error): - pendingInvoke?.reject(error) - } + self.onFilePickerResult?(event) } @objc public func showMessageDialog(_ invoke: Invoke) throws { diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 25716e91e..2d884b6e0 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -197,41 +197,36 @@ pub(crate) async fn save( dialog: State<'_, Dialog>, options: SaveDialogOptions, ) -> Result> { - #[cfg(target_os = "ios")] - return Err(crate::Error::FileSaveDialogNotImplemented); - #[cfg(any(desktop, target_os = "android"))] + let mut dialog_builder = dialog.file(); + #[cfg(any(windows, target_os = "macos"))] { - let mut dialog_builder = dialog.file(); - #[cfg(any(windows, target_os = "macos"))] - { - dialog_builder = dialog_builder.set_parent(&window); - } - if let Some(title) = options.title { - dialog_builder = dialog_builder.set_title(title); - } - if let Some(default_path) = options.default_path { - dialog_builder = set_default_path(dialog_builder, default_path); - } - if let Some(can) = options.can_create_directories { - dialog_builder = dialog_builder.set_can_create_directories(can); - } - for filter in options.filters { - let extensions: Vec<&str> = filter.extensions.iter().map(|s| &**s).collect(); - dialog_builder = dialog_builder.add_filter(filter.name, &extensions); - } - - let path = dialog_builder.blocking_save_file(); - if let Some(p) = &path { - if let Ok(path) = p.path() { - if let Some(s) = window.try_fs_scope() { - s.allow_file(&path); - } - window.state::().allow_file(&path)?; - } - } - - Ok(path.map(|p| p.simplified())) + dialog_builder = dialog_builder.set_parent(&window); } + if let Some(title) = options.title { + dialog_builder = dialog_builder.set_title(title); + } + if let Some(default_path) = options.default_path { + dialog_builder = set_default_path(dialog_builder, default_path); + } + if let Some(can) = options.can_create_directories { + dialog_builder = dialog_builder.set_can_create_directories(can); + } + for filter in options.filters { + let extensions: Vec<&str> = filter.extensions.iter().map(|s| &**s).collect(); + dialog_builder = dialog_builder.add_filter(filter.name, &extensions); + } + + let path = dialog_builder.blocking_save_file(); + if let Some(p) = &path { + if let Ok(path) = p.path() { + if let Some(s) = window.try_fs_scope() { + s.allow_file(&path); + } + window.state::().allow_file(&path)?; + } + } + + Ok(path.map(|p| p.simplified())) } fn message_dialog( diff --git a/plugins/dialog/src/error.rs b/plugins/dialog/src/error.rs index 99fb37989..cb70e714f 100644 --- a/plugins/dialog/src/error.rs +++ b/plugins/dialog/src/error.rs @@ -18,9 +18,6 @@ pub enum Error { #[cfg(mobile)] #[error("Folder picker is not implemented on mobile")] FolderPickerNotImplemented, - #[cfg(target_os = "ios")] - #[error("File save dialog is not implemented on iOS")] - FileSaveDialogNotImplemented, #[error(transparent)] Fs(#[from] tauri_plugin_fs::Error), #[error("URL is not a valid path")] From 4654591d820403d6fa1a007fd55bb0d85947a6cc Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 4 Sep 2024 08:18:42 -0300 Subject: [PATCH 518/643] fix(deep-link): allow empty config values (#1732) --- .changes/fix-deep-link-config.md | 5 +++++ plugins/deep-link/src/config.rs | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 .changes/fix-deep-link-config.md diff --git a/.changes/fix-deep-link-config.md b/.changes/fix-deep-link-config.md new file mode 100644 index 000000000..81b5bcf1c --- /dev/null +++ b/.changes/fix-deep-link-config.md @@ -0,0 +1,5 @@ +--- +"deep-link": patch +--- + +Allow empty configuration values. diff --git a/plugins/deep-link/src/config.rs b/plugins/deep-link/src/config.rs index 1796aa636..9cd2e66bb 100644 --- a/plugins/deep-link/src/config.rs +++ b/plugins/deep-link/src/config.rs @@ -32,10 +32,12 @@ where #[derive(Deserialize)] pub struct Config { /// Mobile requires `https://` urls. + #[serde(default)] pub mobile: Vec, /// Desktop requires urls starting with `://`. /// These urls are also active in dev mode on Android. #[allow(unused)] // Used in tauri-bundler + #[serde(default)] pub desktop: DesktopProtocol, } @@ -46,3 +48,9 @@ pub enum DesktopProtocol { One(DeepLinkProtocol), List(Vec), } + +impl Default for DesktopProtocol { + fn default() -> Self { + Self::List(Vec::new()) + } +} From 72c2ce82c13a0caaebd93fab790cf548d65cca2c Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 4 Sep 2024 08:37:34 -0300 Subject: [PATCH 519/643] chore(deep-link): fix example, update documentation (#1725) * chore(deep-link): fix example, update documentation * update lock file * fix lint, add header * fmt --- Cargo.lock | 2 + eslint.config.js | 1 + .../.well-known/apple-app-site-association | 17 ++ plugins/deep-link/.test-server/server.js | 27 +++ plugins/deep-link/README.md | 14 +- .../examples/app/src-tauri/Cargo.toml | 2 + .../app/src-tauri/capabilities/app.json | 11 ++ .../app/src-tauri/gen/android/app/.gitignore | 3 +- .../gen/android/app/build.gradle.kts | 21 ++- .../android/app/src/main/AndroidManifest.xml | 15 ++ .../src-tauri/gen/android/build.gradle.kts | 4 +- .../gen/android/buildSrc/build.gradle.kts | 2 +- .../deep_link_example/kotlin/BuildTask.kt | 4 - .../deep_link_example/kotlin/RustPlugin.kt | 4 - .../src-tauri/gen/android/gradle.properties | 1 - .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../app/src-tauri/gen/android/gradlew.bat | 178 +++++++++--------- .../AppIcon.appiconset/AppIcon-20x20@1x.png | Bin 844 -> 1036 bytes .../AppIcon.appiconset/AppIcon-20x20@2x-1.png | Bin 2199 -> 2216 bytes .../AppIcon.appiconset/AppIcon-20x20@2x.png | Bin 2199 -> 2216 bytes .../AppIcon.appiconset/AppIcon-20x20@3x.png | Bin 3622 -> 3512 bytes .../AppIcon.appiconset/AppIcon-29x29@1x.png | Bin 1419 -> 1568 bytes .../AppIcon.appiconset/AppIcon-29x29@2x-1.png | Bin 3509 -> 3394 bytes .../AppIcon.appiconset/AppIcon-29x29@2x.png | Bin 3509 -> 3394 bytes .../AppIcon.appiconset/AppIcon-29x29@3x.png | Bin 5618 -> 5228 bytes .../AppIcon.appiconset/AppIcon-40x40@1x.png | Bin 2199 -> 2216 bytes .../AppIcon.appiconset/AppIcon-40x40@2x-1.png | Bin 5143 -> 4794 bytes .../AppIcon.appiconset/AppIcon-40x40@2x.png | Bin 5143 -> 4794 bytes .../AppIcon.appiconset/AppIcon-40x40@3x.png | Bin 7879 -> 7288 bytes .../AppIcon.appiconset/AppIcon-512@2x.png | Bin 155248 -> 121323 bytes .../AppIcon.appiconset/AppIcon-512x512@2x.png | Bin 15001 -> 0 bytes .../AppIcon.appiconset/AppIcon-60x60@2x.png | Bin 7879 -> 7288 bytes .../AppIcon.appiconset/AppIcon-60x60@3x.png | Bin 12188 -> 11091 bytes .../AppIcon.appiconset/AppIcon-76x76@1x.png | Bin 4789 -> 4515 bytes .../AppIcon.appiconset/AppIcon-76x76@2x.png | Bin 10113 -> 9257 bytes .../AppIcon-83.5x83.5@2x.png | Bin 11189 -> 10219 bytes .../src-tauri/gen/apple/ExportOptions.plist | 2 +- .../gen/apple/LaunchScreen.storyboard | 30 +++ .../app/src-tauri/gen/apple/assets/.gitkeep | 0 .../project.pbxproj | 97 +++++++--- .../xcschemes/deep-link-example_iOS.xcscheme | 2 +- .../apple/deep-link-example_iOS/Info.plist | 2 +- .../deep-link-example_iOS.entitlements | 1 + .../app/src-tauri/gen/apple/project.yml | 20 +- .../examples/app/src-tauri/src/lib.rs | 5 + .../examples/app/src-tauri/tauri.conf.json | 2 +- plugins/shell/guest-js/index.ts | 2 +- plugins/shell/src/error.rs | 2 +- 48 files changed, 323 insertions(+), 150 deletions(-) create mode 100644 plugins/deep-link/.test-server/.well-known/apple-app-site-association create mode 100644 plugins/deep-link/.test-server/server.js create mode 100644 plugins/deep-link/examples/app/src-tauri/capabilities/app.json delete mode 100644 plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512x512@2x.png create mode 100644 plugins/deep-link/examples/app/src-tauri/gen/apple/LaunchScreen.storyboard delete mode 100644 plugins/deep-link/examples/app/src-tauri/gen/apple/assets/.gitkeep diff --git a/Cargo.lock b/Cargo.lock index 313e8e837..6b4b4cbbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1521,11 +1521,13 @@ checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" name = "deep-link-example" version = "0.0.0" dependencies = [ + "log", "serde", "serde_json", "tauri", "tauri-build", "tauri-plugin-deep-link", + "tauri-plugin-log", ] [[package]] diff --git a/eslint.config.js b/eslint.config.js index 11edf2ab5..862fd2c29 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -21,6 +21,7 @@ export default tseslint.config( "**/init.js", "**/rollup.config.js", "**/bindings.ts", + "**/.test-server", ".scripts", "eslint.config.js", ], diff --git a/plugins/deep-link/.test-server/.well-known/apple-app-site-association b/plugins/deep-link/.test-server/.well-known/apple-app-site-association new file mode 100644 index 000000000..da5d0a770 --- /dev/null +++ b/plugins/deep-link/.test-server/.well-known/apple-app-site-association @@ -0,0 +1,17 @@ +{ + "applinks": { + "details": [ + { + "appIDs": [ + "Q93MBH6S2F.com.tauri.deep-link-example" + ], + "components": [ + { + "/": "/open/*", + "comment": "Matches any URL whose path starts with /open/" + } + ] + } + ] + } +} diff --git a/plugins/deep-link/.test-server/server.js b/plugins/deep-link/.test-server/server.js new file mode 100644 index 000000000..6eee44e49 --- /dev/null +++ b/plugins/deep-link/.test-server/server.js @@ -0,0 +1,27 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +import http from "http"; +import fs from "fs"; + +const hostname = "localhost"; +const port = 8080; + +const server = http.createServer(function (req, res) { + console.log(req.url); + if (req.url == "/.well-known/apple-app-site-association") { + const association = fs.readFileSync( + ".well-known/apple-app-site-association", + ); + res.writeHead(200, { "Content-Type": "application/json" }); + res.end(association); + } else { + res.writeHead(404); + res.end("404 NOT FOUND"); + } +}); + +server.listen(port, hostname, () => { + console.log("Server started on port", port); +}); diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index 9f62cf704..6080405cb 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -63,7 +63,7 @@ For [app links](https://developer.android.com/training/app-links#android-app-lin ] ``` -Where `$APP_BUNDLE_ID` is the value defined on `tauri.conf.json > tauri > bundle > identifier` with `-` replaced with `_` and `$CERT_FINGERPRINT` is a list of SHA256 fingerprints of your app's signing certificates, see [verify android applinks](https://developer.android.com/training/app-links/verify-android-applinks#web-assoc) for more information. +Where `$APP_BUNDLE_ID` is the value defined on `tauri.conf.json > identifier` with `-` replaced with `_` and `$CERT_FINGERPRINT` is a list of SHA256 fingerprints of your app's signing certificates, see [verify android applinks](https://developer.android.com/training/app-links/verify-android-applinks#web-assoc) for more information. ### iOS @@ -87,7 +87,17 @@ For [universal links](https://developer.apple.com/documentation/xcode/allowing-a } ``` -Where `$DEVELOPMENT_TEAM_ID` is the value defined on `tauri.conf.json > tauri > bundle > iOS > developmentTeam` or the `TAURI_APPLE_DEVELOPMENT_TEAM` environment variable and `$APP_BUNDLE_ID` is the value defined on `tauri.conf.json > tauri > bundle > identifier`. See [applinks.details](https://developer.apple.com/documentation/bundleresources/applinks/details) for more information. +Where `$DEVELOPMENT_TEAM_ID` is the value defined on `tauri.conf.json > bundle > iOS > developmentTeam` or the `APPLE_DEVELOPMENT_TEAM` environment variable and `$APP_BUNDLE_ID` is the value defined on `tauri.conf.json > identifier`. See [applinks.details](https://developer.apple.com/documentation/bundleresources/applinks/details) for more information. + +To verify if your domain has been properly configured to expose the app associations, you can run the following command: + +```sh +curl -v https://app-site-association.cdn-apple.com/a/v1/ +``` + +**The apple-app-site-association file must be served over HTTPS and the response must include the `Content-Type: application/json` header.** + +To quickly open an app link on the iOS simulator you can execute `xcrun simctl openurl booted `. See [supporting associated domains](https://developer.apple.com/documentation/xcode/supporting-associated-domains?language=objc) for more information. diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index 4b8e7a7d3..05d2319f5 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -21,6 +21,8 @@ serde = { workspace = true } serde_json = { workspace = true } tauri = { workspace = true, features = ["wry", "compression"] } tauri-plugin-deep-link = { path = "../../../" } +tauri-plugin-log = { path = "../../../../log" } +log = "0.4" [features] # this feature is used for production builds or when `devUrl` points to the filesystem and the built-in dev server is disabled. diff --git a/plugins/deep-link/examples/app/src-tauri/capabilities/app.json b/plugins/deep-link/examples/app/src-tauri/capabilities/app.json new file mode 100644 index 000000000..a4bc7b4c3 --- /dev/null +++ b/plugins/deep-link/examples/app/src-tauri/capabilities/app.json @@ -0,0 +1,11 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "run-app-base", + "description": "Base permissions to run the app", + "windows": ["main"], + "permissions": [ + "core:default", + "deep-link:allow-get-current", + "deep-link:default" + ] +} diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/.gitignore b/plugins/deep-link/examples/app/src-tauri/gen/android/app/.gitignore index 6d888c108..1efb55bd0 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/.gitignore +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/.gitignore @@ -2,4 +2,5 @@ /src/main/jniLibs/**/*.so /src/main/assets/tauri.conf.json /tauri.build.gradle.kts -/proguard-tauri.pro \ No newline at end of file +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/build.gradle.kts b/plugins/deep-link/examples/app/src-tauri/gen/android/app/build.gradle.kts index 2209a9393..f434bbfb0 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/build.gradle.kts +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/build.gradle.kts @@ -1,18 +1,28 @@ +import java.util.Properties + plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("rust") } +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + android { compileSdk = 34 namespace = "com.tauri.deep_link_example" defaultConfig { manifestPlaceholders["usesCleartextTraffic"] = "false" applicationId = "com.tauri.deep_link_example" - minSdk = 24 - versionCode = 1 - versionName = "1.0" + minSdk = 24 + targetSdk = 34 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") } buildTypes { getByName("debug") { @@ -38,6 +48,9 @@ android { kotlinOptions { jvmTarget = "1.8" } + buildFeatures { + buildConfig = true + } } rust { @@ -53,4 +66,4 @@ dependencies { androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") } -apply(from = "tauri.build.gradle.kts") +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml index 68c05a374..9324740da 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,10 @@ + + + + + + @@ -35,6 +41,15 @@ + + + + + + + + + diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/build.gradle.kts b/plugins/deep-link/examples/app/src-tauri/gen/android/build.gradle.kts index 9afefe173..c5ef452a6 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/build.gradle.kts +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/build.gradle.kts @@ -4,8 +4,8 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.3.2") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") + classpath("com.android.tools.build:gradle:8.5.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") } } diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/build.gradle.kts b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/build.gradle.kts index 5d4cf37e2..39e90b054 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/build.gradle.kts +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -18,6 +18,6 @@ repositories { dependencies { compileOnly(gradleApi()) - implementation("com.android.tools.build:gradle:8.3.2") + implementation("com.android.tools.build:gradle:8.5.1") } diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/BuildTask.kt b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/BuildTask.kt index b9e83018f..f98748258 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/BuildTask.kt +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/BuildTask.kt @@ -1,7 +1,3 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - import java.io.File import org.apache.tools.ant.taskdefs.condition.Os import org.gradle.api.DefaultTask diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/RustPlugin.kt b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/RustPlugin.kt index cad2d8770..4aa7fcaf6 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/RustPlugin.kt +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/deep_link_example/kotlin/RustPlugin.kt @@ -1,7 +1,3 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - import com.android.build.api.dsl.ApplicationExtension import org.gradle.api.DefaultTask import org.gradle.api.Plugin diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/gradle.properties b/plugins/deep-link/examples/app/src-tauri/gen/android/gradle.properties index 022338b78..2a7ec6959 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/gradle.properties +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/gradle.properties @@ -21,5 +21,4 @@ kotlin.code.style=official # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -android.defaults.buildfeatures.buildconfig=true android.nonFinalResIds=false \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/plugins/deep-link/examples/app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties index a03ce6aa2..0df10d556 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Tue May 10 19:22:52 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/gradlew.bat b/plugins/deep-link/examples/app/src-tauri/gen/android/gradlew.bat index ac1b06f93..107acd32c 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/gradlew.bat +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/gradlew.bat @@ -1,89 +1,89 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@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 obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@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 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -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. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@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 obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@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 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +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. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png index f8b128e3c0f8eaf9fe7842259829ba458adb636b..a6ac2a8ccf0aff8558f948fbc2c9befd5aa34361 100644 GIT binary patch literal 1036 zcmZ{jdrVt(6vux^=qiX3s2gLFAdJBT+`Ui-HZI6Ug^odBfSZdL7%)L)4%X?Ib07hA zS>`ZBnHwl(Atsws7r|Mcqr4pBu@3Bm(Lu|r&5C7>4eS1K87N#!3gJRqnirZfRZ3AHJyk7{dUZAP~mklTt{3QZIC&moJ2BpI4 z)7T&diw1YU1Vb4vUHR;=0r6vgtwj2|TL9ZCk}tdQOj`ZqCG5=P*OVy-a+E z0NS`jJA(%&MRKhJpwnzwu+yNuilxtk^3%T6$4~btYG;k7ru5!2{I_ zixcC7vFV_}$r&4c+iWkLwkRLle>bdq_9*w=pLuAd?F>_{SwdaoZ~v|RN@sjVrrb85 zKBk(#pf!|h^fAL4_dAO0iCLNfsfpSz*KY1p`}8Vf?rARRj10iYy44Awro;N#GrJv4 zNlHXtdITo3#U`;RRk%sd@%MhpEpPC&iXDfD5)-og$Az`ohuleC^}9c&>t8++S=6pS zTBB3w%&cmHqs-6Z`huHOE!FsH?8z`UUg^26Oi6q$m&+fTp{lAHK^p;oE=WZVs2eNxl-5Q%8oxqy*O0HcGt6UDF)iYE4;Xps+u*IXq%9 zqH^f^dmsJKG@$+Y=Dto*5em5a!EnnpY4bPDEpJUG2n6j#TdU09zti+3`-tlv81*OI19yi`MyisoB?7scSXN{UY5$gE3tm}TY*YfMv zf0Ja!Cbl}%bbqMFCEN0qC`qVp!DHU6AAfG*btdI9 zw6tTtZ%Nz$oQM-luiB38gB1^n0uf)EhInd}DZ ze}Iw?3yP1G|3Bcx-M*g%!k=sq7nc;C6z7$kc)~>Uv&a|$5iKCdf0q=`nkbe*B4JwM JFMD&V{sG_UJ5T@s delta 832 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 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png index 6bbd9e3ce55524cf0ec4cbbfb82d0cdc2860456f..2869541f735d2f3f890a5b400fcced58698cbac4 100644 GIT binary patch literal 2216 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 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png index f702cc04f27173bd63bcab3501d2a3199db711f1..cf265a45d3410960cefbf4833d3a1902e92ef09a 100644 GIT binary patch literal 3512 zcmZ{nc`($E|Ht3f8Olwqko#t>jmVLkvg_Kl$dMJpAn9*JGZ4yk=fAuSipb!9_+eBLDywjSO|o&sFW; zWB{Glx(tNqxmwJhC>{ z>Z`T$xA`!H3TJHdj8eI2ac7irRw+DCC(G#)hsA9yYbeF$STZ#CM-<@oih`7P_Ooyo z$X6DvT2&?lr)Q1zG@28KhL;q!pGjrpxQ5M9l|Uu4Zd>A77Iz=*ReEiiUD~-LaCSwz zl>UmBUfVvZ`Is|YIE&L5Jo>9cVzl#Zc0yjmTJjzxE|B=b*ULfJ2U8Jz?69()`TN-a ztJ)1(!@r#Du90~ts&f1LhP3X8$49>({>+36!TOZMZdee zDkuokZlzVY0p#CePFjUgJ0MZyrFoa5>Cs<9_L|Ettq}MTW{o%`4^Sl1*iIu^j7|7s z3B#GC(Z88uP6{tlGd6$ukwCeis(@sJH?^}6rv(IiQMo<(C$%N)2a0${dI5tHaW;s; zs9l;G+Ck74^3IGc0+yQe!a-@e zq4INEuqzkq(E-)raHXPJ2jRKQRLp%mf<^6N^)n#r(p>WkE;8YL+=s!8EDnLiPprmr zUSHXxa9y&4o+auEhx$&!P2r#$d)B+&b3V_x;0MV%jVnfp8!z-fK7vJnX)v#7Il;tZ zD)nPoqb)+F$@)u*?Uj+=@ggJEj%6G+>JiR|&KW^$oY$^epiPSgHws@kVA4WVO{?e{ z^s)dj(I=k&xH?50P#J1l<1T{*zS)yO*;GI-GaLf8%HVXM-LP1EMO-+~EvqVx$ zjriFeoQl~mp-6(2t(nP*q)AYG9`h}@e!%QNpny<)Ut=VdX%Fu8O!x5pAQ401bpH$K z4NCW|=zU_GFXVFV{Y@ywlO&F7*JZx5H28t8A1F#^ogD?b>^KaKUQDFBWvaOEyS2Dq zj&HM-q~T(;5%B{OXG3uy0E$%Opg#T+8HevX4jY>~?@1c!Mkl%A}GoF{U2EU>VNlltVCs2X>=!dhHQ#E0KXbu2JR4gV9c zrpQwGFcQJtM}GF$RpO6&h;PZZo)8pSs38QbMjKU?ac~@HJGmlc@9Lh=oz$Z1bPJ<@ z?qysiZGUrz=P`D$Ch0vOnT(~8q}U|d)FT(HniaI#^88?<@-0nz@f9F*aWa!=gTt$F@!z z^(mg-Lk!?fc&Yr#OgP*nur9+cNSCTVord;8zG_|rRjlGGu7R#naL#-#Mc!8O3GEkD zWVF3TP3hXq0ACUR5S>QkWz&{<{>+uGeDR_nwrd0HopCIdeI=rmB_NEX{oD_ul*Ls$ zy}pnnXiE1G*!d-0d-K7zSXfH92gz~ry*OiNRjs77GY`-m(|bDZlqn=dWlt4nc| z)q}9I+`-prT0?9{2G^}?XQsYJSwdMV8Rz!D_7lxV`(+4%#wvKU-)4Jxy1ipjXQIu# zOhk4@mYcU*4JW$g`g^Hs(n&`A8kZ99h#6WxK5BAyKw%%fsMjR~2L{Ov$du5$d_EB3 z-&o0e2Ye;E+WaZJA}~~@O1!WtRb`Cbbv^O#l*8j2bO=#O-t!s1p12x8d+Ozo7Sprj&aO2oZJ#8nOMKP>(!kI9Tj$yQ6*v!d#R!Ph_A4 z`}+ic1oDQ67z@(lz3d{YHoMp5mLYvr==o2hBZ z4|*bEj}9Uyjs|0poLDhH{LZj9Ix2pBv#F**He<+@Ui!!1sRtYRKtJB&DJ4m z=9vE$TGEa87B47^I;oev_<5vuf=&|*Ftdx8++MjV6)vEz>=JSFq6!MQ(wDs|kSU-! z^}1al(LSRZDlw zH@qm-EUOjYBHfq=XvAz7e^?fMst%h+7?<-CWW39kY@Fr(?DT@3d;YWJF_K2c?Hpyh zhuW`!vnXMTV%tMB3_faqir_G=4qW+_V*UM4#|WX}$!}05O39fZ7rinQLW?iQD8yI! zm~Hwv4?9C@d~-b}Aiqa}6bPEfc!xoUSIlYqqBHk(+e@X-;&%HzmzfjFPg`ug8tRm0 z$0$+xa?oUd|CH#;PM-G*$Mr1BvL=&udy1xMugX-x2iQ=-bsVDYhMiDVQ326j4ym2M z`Fq4zVfVembi+^K2m1CYQehx~>U&(=dakm&P)-0^Hvi6YYkEMOc~7}vow#HC)4z#m z>4`&bZPM(s2bjedm9h2K9O!UwL`G0wvhaoq`Td%#C-qZ*_f!1hC&sJ&O4B2$dUdQ7 zi4hWBWtiunQO|G9*-qAom&5X8C}e4jJq0qqz=tD>?|PKR^Z3dV>CmQW{nCU?PN_k7 z|LNwJxVVmruWoKIu!JZgpxL}L;mcx(mZ%`#+#tDsWxsSdDmTonh$%V%bzZD(^7Md$@QHDxf+m^ z%2SQydAAp~A=l%u&qvisgA88`V#Xfo(h}(Xp4455 zTC=X~0&BmHXj=5{p z12l!-#;5-L`doosf^)qaNIgARPOrQa^Og!<<%dddefZ`!kB)sl%ZOhZc|0<$edoKiDo;g`_p`&?f zN;T`P+{p@)Q#>==Io3$=K=dl2P6%8q7N*4zk(wei{10z8UvbVJiyIDKRk>snF-{XJ zN`Ce<7_*zrG*8Vn`%vZDYblQGZdLAiCJwz4MMS+a@%-46OQp#L@zvv(_`G{mJ|Y+R z`AEk{+fCcOg+z+67uf|{ZL+=eV658JI!_vMz6!Ofwi@*+FRmcCrkVBDQgmnv6nQBV zoOx0x{bBsJV`u3-Hql^py2oL=O7vUny(cby!H-l!A6k0jI@ZGNrFQl!DIad*-vt$L z#=WdqMum{F;gT(dD!!1knYY-ejm2h$r}IPGthc^!e@vI61nhhsX9-BKPc-R4sz)(O z{CFL%#Cju`d&r~rsl}<>7W~2qUaP9l&8V>H-`_{nN6*UVzN3$`s?%fVa{-_bC`=Zj zBnyEdA4%zXEP)cV=gIXWy?rx7)W+S}dg|2Ad|RNF#|w1%wy~h$M|Kz=#Nu8a1F%BLxEj zQ6NUJfON<8=W*}#|Ia!1&fVRa+1>6eG~!LBo!)!T z<2(QVfB$#>GZh|PcpqKz{RH-X3D|ybhNUR-+`_L2wuLDA$l~3LVFNM;5Pt$<7Hv*r z!2YDI0GvD40gUX2mv{#v)de?`P=I744lmjSQN9u)z7`_3APduTiUNFo0jo)Bpl-4k zUe_}~?+Xx#w;tV^NT=s75C^{xIeM7r zkt`&mZ0itVk!8gs3wxgF!+$2(J%G$GT(lRn2FTp}{7j20l41+Er>{!aHJ z)AAKqD{r7)UCc&K6fX~ZOg7}k2Yvusfo;rMRZWy)l8DMJUkk5kJ5aZk*myZTicAXq zB;3Ryc)c${cKrczjKiTSWN})!XdUdfyWm*muv)I0RZJJh!e&6{*yFJF-J~X@!6I-) z*NVd>tH{Nd6Y4o^xOd( zVc?9mL%i~7axTZXn5UUI!&dzOymh-^mA9BS8U0R9((xC-4Vc^++6%GwYmmuK0v*rh zWa0qVt_C)fCq!!y#Cw6OC|X*r*r6XmI>S2Vd>|BSPQ?b`oJTcSCMbU)@`?x(>k6!= z+E|tA;B9<_V!oNsk7nJQ#^Ocr4&Rww{AsSa0X8e`4(x&Kdy&3VJf^zIfFmp);7}S7 z>+gZI%d}Pb`K;22&}|rWtPvi$uS;>OJw)igDZV+@osomurKbTsN76Ehq3s@W-BCC- z9|o#F1XOJV%7~C+i;Pfk^9zk2^@OZDWf%jRNG`MDCdmEY0wUEx+=|Q)aBMfQ=GIVO zMUP<}FHW)t?vV#b{#^u7wILYJn)F`o_TE${D<~+~ZzvJHdIhZEJv2zUj(1jLoE0`d zslBN{EEj>a9JsW~UI5Z`$KB?exFI@4O~bT_7$I%VmaSL^S-!%w$T4X@8+1Jji%2YM zWvRl*-S7)ob>|gi>^bM*48gR`C=_W z;K399_ybf;aES`r_Omta{e zI&}cUpziS}V4eIc5L>A4u?wn?r=+IrehO~y-wZ%!N*t@9*h`!z0bjr5UVEK=viZ@%eq7=uA0iB%plXexP3He(ouM$Ic1=`I7tZM-Er!%^Hss;0d%5 zBl}?e#se7_UszCy7tU_RCwR3$?f0qBz%pf#Yq@|vBr z6!lINl6AAdkm$jFgc!*OFM?7c6SZn*^>!HPMHwcgyZ6l<@LCFVeJG` z%bOU4j$OO?DmY~=z|n_k!+%6g+ACWHG+!Gk;Y?aMBUs!-8)Rai*)F={=ca~$mIJc)9$tZQOcDi?R~y_Px!HWTFKnQRVp%vtqY;qfOkqV7q%Tu(TtMdu1G zvT)avsyc#5ZIIGDmYG$XP%sQIjY~TQ-0to{92iTZR7w-iKtGYwWess$x44ep)AwY7 zh4XT{x1+>{wBrV>n;)#%fVjy%NZu%@eX)6$lo}WKWX0N$7o7rNZ7mOv^$a5>wRQPU zipE(Ov9PnHAz05`YszYj7sG$f-`z0sfUrUviJX%)^=kg}&=0BH+ifbKrVUp$Ns?;s zaBxa2?N98D;c@Iuq{zA=VC!Lu+pC(YP#2Bpcow<5L%TRzK0{(8O&{e2LO+}0;(6WB z%htG${tDKKC$gIcZbJn@x0FsQi20|pZowFK+104Se-4cz;j(13m5Vbwvy%EuLq!nF zxfYATwT_J8-edhFRFcXTYf7WIZcz<3RhG@5*60JZ)hE-r8`i`DUPE)+Ius@{xV?mo(dWU=Ed%xP(;yama-i>jj!Y5ic)bJrNJ> z$+U`P&(qdqt-K)~GnVuw$Vi{iI>%GE@lZE?m#Cu~8AE<${TZ*jN$6>atjl z?W3_Tmuq`oggA09EKWhnjYGvfu7r|e6KC9EV%H0#>#Sqg53zBIRTdQtB6|ShVOdEe zPu%O4zv~&oNn&x1dkz7=Edwv1NsSOnW_|=zGZ)z|O9QQ4ny9CSGP`^RF-#>Pa~hTz|54wp5j=HZmtS2<16j zs>>#{$$qB=b_obqB01NpBbq)Mmza9RHy}1qjk|PVmceIv$=t5#%SuW6T}#PEr3N`w z@fL9`Il+a)VEFoEeI+iaDZ{Z;M%}YRpX0Ro*iu!B%NnbU7lr!p%}s}CGVwOW>WDg` zah6;IZ}Stdm+#OM&ZV(WUZ7$(UoLjXj#4r1e2B(vRIsC>91&BXqJ*3=LFF`NzA~-9 zOM1F@5ZAulg=*UJ`L(QJV(v%JScI)L@!&n=0L|B);ZgjX)EW=6zPtpRtIC4~l_K9_ zyE=wVKf)|)p*C{{>|3svYF8h9y`AKwr>c=W;2;6MfMW3BGneEQ4|&S$dGCkEoOlO# zlRWAv5;9+0T#MR>J%b~&Qy?v0?AMcC-byjY^3vDAm6VpA9~i}RRDWi$=^SfjeypIZ z;@7-fFMB^%2>AlyL^6ec3?y*Z(LP+(dK6o!D*7g+ItClOS8NN1-R_m41TNm&X&75i zI7!Xw3HYBjGzXiAneBzAUVhsi@}{e(ICzAJZHPn<*T`a07Yv?Uw*(tWgBO;gbFi>x zP#urwR+eL1O}SECwjmoPuj5pQ<{H;H6$to#`V>xW(grN|aW(bzuaOkVPm-Yov?;1L zEIjr`v*EDj7{k-koxyO+vU*foA}HJ`*Cvankl-*&hQKRY&n z1>|nonzXKhj8NR26OZC^bdYv_bvc^(xMgx&Q=4|O=u1ROzv&(#4@s#iXjEnk18nsZ zBwD__s2bm0(KO57=@bcYI2GJ@;5Z)c8bSks_Kf=~_N9q(6*EbUUQ5nUMU#pr5LQI>yQ1ngvx<-(E0f>~{_D&Bg({WM`q5tuV+ z((HmsS64^^R~FiOB~q9@c6PD+lZynA*Y%5Qa7#;L(ZS9dus;EqNpMx;wzeKB5;&-$ z6vbfN5D4{|>d_O#hcxWYVrFTHMP=UxrNw9e8@qV|?1T2THXpz2>gdC7sj}IV)^5rc z_lxn9H~7N;X(A2F79A(|XJ)>%z5>_NnQ~3U4hn$9|9SWvfASC(8(h|ToGKlEq?*;+ zq>4ryZRzmD{e@!7#%Z4s3mS3~S3u0-v8xs}>cof4R^#t=Y;;onOVf_Pn>9`u~5_`d`2P3&@J(Q&*kQg#Z8m07*qoM6N<$g0ZUiMgRZ+ diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png index c5e92f781f349240e58858d92db3ab3be0c9b8d8..29c9746c053996568d0fcf678fcf98ba0ce0f700 100644 GIT binary patch literal 1568 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 R+5rQcJL_y$amF|Ce*nJiS(X3* literal 3509 zcmV;m4NCHfP)d<{Fcu{w0#9mv?=eJ zpAeun-w4Eu9|aC?hST>tgiHc%1%D3bcxK|Qb3n^6fZmqTR`~O8hgh<~c-T+#u+Ya0 zR4q`2AwPP@Uxah`mvGXGWqlozmPwUIyivZV?D3BEr9H-p((~okFu{2QVml$?`wj3= zP1eKOU@6*Z6yEC12+g~BN?|-ZK&^GXkA4QX<2MA^YCQ%6GR@Eqxs6^n}U zrzB{9@IB!8@8O*KJA)usqHlj>zSS7pJ>^|mRst?|RyWp&N*epXWG$5HX8P9_D#=3#s_rQ%GU?>M*$=s=a zc=K3#RzFS<@{HG6v_*jI`7B)#SBX)(Uai z3y|dt4T%LMCR_)n`_GVrJ1oh`x$>wf0dkB2;O(^#UIH@G#6o|*RyTg-GPn!Ard1D0 zT704ioVeQ%jyLo^oSnDvdTvhc55a4?3C_h&ozbh)mw?JXT$?<(6{2!Eu;31$?n*Lg zyIyiA7f7K6Oq6vKmsj zDUT2S$J|SZ*(W2<_q7L<{d&ezc&eihU)JNzp+dp5!y-bJP! zB$4&N?b!ygs(+=Ynjz4=jnkIk{t(TS(PaW^Wb6rE| zN_i-E9n^u+`)4!2M*2^Kt{hQ#g*=k5EuRhxMsufmE z1@bVYYqg*312T1b7Ch=%knfL-;-=ll@Y9ZdB)FdDa0n6pUQMv-^XZXfE#32)$~JTB zKq9J_Olbgu^->PJnD}-eU@9&{!>G?Ge;w6<)Y+2Qg=15rQuv(B?w4RyY z-R0kdrkO3bqH6qCXwe@%YI>`2QEDJq4Y@JBGRYrwmoN3-= zasZ<54W3+?Jx+O)(o+QCEvDhoz%jq>90&qOUq=}r$`8-1Xqy1C0J-G(GUpRRQxChM zE!iaTQA8J;*33V?1@3rfw&zuB>oPZ+u0QQAlg?4;o1OdOW7r-W)%7tbFN$67ZLh=X z%Ce#$)%l*Ep&BzV%d3lSjw#I4uoOsdct4zu=joc-Y-lU;s=pde<@v@?CAyd5K&>zS z);~hRks6>{@E8#+in_SFt=@!00gwuyA}kf+3C}|;l{Voj1PTkg(k+@yQ#Q5#;}?CcV~PYDWY2x z4dJe~I^5h;bLPQE<`D)#vb*tjZ-ARPXr*6v!XR62fzxnRY4R!sG+4+mK^+=PX{Dp{ zTo@v{p{}xEMg$;t#1dHl;Ry_~&{n!8XgX8l_{YAJcw})B_b+TRsZo@i&1_iqzXh@X zhj2Nq$bxkBa9eT!Czd}n>4y|0f%YWR7$DfdYf2#0ha6l`5jAn2<4xU<3X_Kq9_~S0 zD*bDSN^QzmRc;86QyX7bTY)QTDvE&h*}?2FQ$VGQ9XAUSriD{-&%fw#xY6cGPXUYQ zF!MG@kSZsGwWv_7BT!Xl3XzZ6-WrNyUm~f=OUXk&Lqz6g%2=6-I7_(Y2ZREm@XgL0-VIYU8J;G{i3AQRCAj+c4?dGGiZKMi^FwONlwBb3AQ@ zL*eTxub)h&^U4=;5p~$z zL^(`6$Qr8h_OuIG_gur=TUr*<$|-D1lId*~DHan2nB1bQ%$w0Y_0oud^KbMxm*TlDBl8N@R_!6j?Ym3#wRZgpYTQ6FGCyw=DFO8x?eMvNoJ6oG@yA>LuKuOVXITMyw z{E76=(J6aOS05{pd8#(et?0Nj5Ccyh>&0Uo18AamRq0SnI**@UzjQGwLvF$1AJkK| z_0o%~#I&)y5keFlSL?cIg?e_{YmPq2;agiYf|+bi@g3$?pKGW>CB5m{Qc=c!REdZ! z-Gdo}ponKR@ep7;7pXu7lS5IEuhn@@#)Ha0+gOHfzbvULYNX*30LYMQ}xR8P?R4vv&<=i~xV;wQ|mY zW=IOAi7r$IWDem>49Gycx^oC{R)J3Ru$j1ujPl7hh`F631kM7!xdB=X{OP_t``euV j^T5XqFxbwSe+T(L?uD8#1zeE%00000NkvXXu0mjfQHZ$R diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png index 1c607d5c35ea3f4d5111a1542341d7df7c9c2ba7..a4e68c8d6d5c4a564be190fdd200d7214eda2db2 100644 GIT binary patch literal 3394 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 R+5rQcJL_y$amF|Ce*nJiS(X3* literal 3509 zcmV;m4NCHfP)d<{Fcu{w0#9mv?=eJ zpAeun-w4Eu9|aC?hST>tgiHc%1%D3bcxK|Qb3n^6fZmqTR`~O8hgh<~c-T+#u+Ya0 zR4q`2AwPP@Uxah`mvGXGWqlozmPwUIyivZV?D3BEr9H-p((~okFu{2QVml$?`wj3= zP1eKOU@6*Z6yEC12+g~BN?|-ZK&^GXkA4QX<2MA^YCQ%6GR@Eqxs6^n}U zrzB{9@IB!8@8O*KJA)usqHlj>zSS7pJ>^|mRst?|RyWp&N*epXWG$5HX8P9_D#=3#s_rQ%GU?>M*$=s=a zc=K3#RzFS<@{HG6v_*jI`7B)#SBX)(Uai z3y|dt4T%LMCR_)n`_GVrJ1oh`x$>wf0dkB2;O(^#UIH@G#6o|*RyTg-GPn!Ard1D0 zT704ioVeQ%jyLo^oSnDvdTvhc55a4?3C_h&ozbh)mw?JXT$?<(6{2!Eu;31$?n*Lg zyIyiA7f7K6Oq6vKmsj zDUT2S$J|SZ*(W2<_q7L<{d&ezc&eihU)JNzp+dp5!y-bJP! zB$4&N?b!ygs(+=Ynjz4=jnkIk{t(TS(PaW^Wb6rE| zN_i-E9n^u+`)4!2M*2^Kt{hQ#g*=k5EuRhxMsufmE z1@bVYYqg*312T1b7Ch=%knfL-;-=ll@Y9ZdB)FdDa0n6pUQMv-^XZXfE#32)$~JTB zKq9J_Olbgu^->PJnD}-eU@9&{!>G?Ge;w6<)Y+2Qg=15rQuv(B?w4RyY z-R0kdrkO3bqH6qCXwe@%YI>`2QEDJq4Y@JBGRYrwmoN3-= zasZ<54W3+?Jx+O)(o+QCEvDhoz%jq>90&qOUq=}r$`8-1Xqy1C0J-G(GUpRRQxChM zE!iaTQA8J;*33V?1@3rfw&zuB>oPZ+u0QQAlg?4;o1OdOW7r-W)%7tbFN$67ZLh=X z%Ce#$)%l*Ep&BzV%d3lSjw#I4uoOsdct4zu=joc-Y-lU;s=pde<@v@?CAyd5K&>zS z);~hRks6>{@E8#+in_SFt=@!00gwuyA}kf+3C}|;l{Voj1PTkg(k+@yQ#Q5#;}?CcV~PYDWY2x z4dJe~I^5h;bLPQE<`D)#vb*tjZ-ARPXr*6v!XR62fzxnRY4R!sG+4+mK^+=PX{Dp{ zTo@v{p{}xEMg$;t#1dHl;Ry_~&{n!8XgX8l_{YAJcw})B_b+TRsZo@i&1_iqzXh@X zhj2Nq$bxkBa9eT!Czd}n>4y|0f%YWR7$DfdYf2#0ha6l`5jAn2<4xU<3X_Kq9_~S0 zD*bDSN^QzmRc;86QyX7bTY)QTDvE&h*}?2FQ$VGQ9XAUSriD{-&%fw#xY6cGPXUYQ zF!MG@kSZsGwWv_7BT!Xl3XzZ6-WrNyUm~f=OUXk&Lqz6g%2=6-I7_(Y2ZREm@XgL0-VIYU8J;G{i3AQRCAj+c4?dGGiZKMi^FwONlwBb3AQ@ zL*eTxub)h&^U4=;5p~$z zL^(`6$Qr8h_OuIG_gur=TUr*<$|-D1lId*~DHan2nB1bQ%$w0Y_0oud^KbMxm*TlDBl8N@R_!6j?Ym3#wRZgpYTQ6FGCyw=DFO8x?eMvNoJ6oG@yA>LuKuOVXITMyw z{E76=(J6aOS05{pd8#(et?0Nj5Ccyh>&0Uo18AamRq0SnI**@UzjQGwLvF$1AJkK| z_0o%~#I&)y5keFlSL?cIg?e_{YmPq2;agiYf|+bi@g3$?pKGW>CB5m{Qc=c!REdZ! z-Gdo}ponKR@ep7;7pXu7lS5IEuhn@@#)Ha0+gOHfzbvULYNX*30LYMQ}xR8P?R4vv&<=i~xV;wQ|mY zW=IOAi7r$IWDem>49Gycx^oC{R)J3Ru$j1ujPl7hh`F631kM7!xdB=X{OP_t``euV j^T5XqFxbwSe+T(L?uD8#1zeE%00000NkvXXu0mjfQHZ$R diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png index 60e93a6a1e666cc452bb8ee700f8f43bf8fff19b..e4adcbcedc3780375b853ef315244b28a735f047 100644 GIT binary patch literal 5228 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 W{J%q-7Pk)mF@QP-t6ZsQ9q~WT1(vM< literal 5618 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 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png index 819410f9ffac0496b0801c65fc3920ac8ebd56e4..a414e65bb05f202d6d3bd3e6e0762fc02c6124bb 100644 GIT binary patch literal 4794 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 FV1g=}>J|V1 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png index 819410f9ffac0496b0801c65fc3920ac8ebd56e4..a414e65bb05f202d6d3bd3e6e0762fc02c6124bb 100644 GIT binary patch literal 4794 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 FV1g=}>J|V1 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png index e00ae5a6a44bd40c58d4d0dd5339a56260638c46..a0807e5dfdad18ce50a5f44e9c116e96d6e606d6 100644 GIT binary patch literal 7288 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 literal 7879 zcmV;&9ysBNP)P zHJ=)4?XYcnZ3t=r*IEtWTB`wEYc+sttp;$d)c~%w>}LM`c3rvuX&T^QIzUr@w9NY& zz*P>Y?`46eXT2|^d6~(e>9YoO?XYID1fc!|K>Xn4I&kd+(ClGo&KPVb3XeYHW*8Ps zD+14KhGw-ww_4~F`a$cN0=&w>K0GDZcco-%5)zl;i0^|x`ZD~nwa}uQpe1%gw+ErQ zG3b7hUT*fhr^5{r@;YcnBRs1Ue*Gf&O{<|rj)fjM3VN7;*RrmM%=N0N9bOVFfHea7 zf*ailfAA@QUi$beFdPCj_>E?&m!ZHpND9TUcv1`aB-y?#-g}w_FEj@p0gaB+pmm%A zv#v9vANcp`9%=wj0kAIh#@+uUw7#E0AAW{FJs^QJ>f~Pmg|BR?Kw;+`qJt&?{oW(6 zy#&nx4=#c2w!abDym!E8I|1qG#iy+TiJs*EXC#J|q`UWFXnXF3IrgHID5F7v>MMz? zR9Caqv6rF?$KdHU?sJD^Y+l6p>4YZ=E$=&o)!Vy znEB1r51|5)CYm!&|LSl$P6w7<4XbIHgjP(#nUUt%39tg!PSJpF`2wuIpOC>r-7uOk z!5y0R(KO`sol&?(1kS=sU@o~FhFBFGrA=x8=R#KftHB<82HM6OVa2xs?y672 znsX+7>LG2o)c~FduCS2TU58NL56FXWm6mPEQmYk6LzZcv32CNhD)QC?i&pryDQN-Id3*(UmLo*(16q>SO+7?^EqQ$4 z9~aehi6t>-sres-vFcOGotk=(s~g}faJ?5Vg*Eg9t+(w(s$^y5@`Ui>!iV+rM!4a5 z@amUBt6vB|JeO$67E<{kafC-cu0a$glD*L4JH$&*^+ETN5^Q$A#6)q6zmL=)5OGmxj=9ORqBkuB_7%B{%6TFHLpH&z#!kbvQ|xx?Evz-vG+$X27d#?i;+FhT--X% z{yVGd?<2J7Mq2*b3zrfeD3=Kb6ZYKmp)a}^X2ZORTyen$ zR+cOW0A_LB&ggnz`(3aGAES8?62XbW?o-mGo|}Yo+&u_&{KJ&FP}K*p>S$`@WtcBq zKm>-79+13)#-P#KX-7_gzv2dRkB?JKQiY>E=`f@r-L`!s$y+`LGr5bTxur0W`Ce#E zcQ{hD=BKd2?Nh>dRatyX4w^%8S#87h6vDGJ>`>lr_@wqmkt8csTk~Ut7+fCcAi7h@ zf#Y+DwU-wW58*j)0bct6QthV;OSvHaneR)lhe=^ef755AT|Nc2R&@bPofhldwy(h& zUn`B6ywbp3aLDqtky`m#SgWpusb@67lybo0+`3p&%uox=%PT#}oT$Sa|t4BpE^^_Xh1mn4P5`SCBbmrf9a6A|8QFkERecH@LaK!yHPenB9 zwr?V|?TchPv=l(ZFsP)eLvu+BJP6a`KuP8NB_C0eoUb2BRTHP~?Yu{YsVm2+R|mkNL*!Ww{T1fm@08my zF@;8|+iaC<(*O=5wd`7iy5BNm(VADyQo)FMu$Em3d)|B0nw;mpxUXgeM(_P_;`<7; zJ7yEWN_w^3-(}BN4U{ru1mBzzq&*LoPo#y*lR;}lYQYC#Eqbq%f*A)F6F}yHHCEpY zyZI!#_pv;Z%*JJi*t31`_xzxuQatl(aIp50Pia2??~*PQv|>WI5u7REg?r#Nu7=-q zG_Z>bk4_ljmOxRX>M|PxcW->Fv?&B9r(<%-)CBA1SY5zL4~neLO7yD=roAsI z!F|7kPRtV+P$Kr-hSl)e-vF)spP)yM6vl^sh-0TS^j4hc$e3`bX&G78m%-R}D_P8K zIjm$~^xa78fZhLVVE)@HlE62^5-b67Qe*J{bh;oloUXS*n{y7)ipP^QYgy1`(~8A1 zQ8U{=*Cl)5FK;J9YMW%cCW}U~eL+i*-F6C$*W9gw5wlr>MdCOOKy)ko`5%C`-~xm~ zkxZA;3{xX5ZIZXdIg(WCQP!j{Awk|PLibfJfbsq z(tpF46lGS)9Ec#&CbZyPWpmV3VR{O1gMrNIjHl9<8Bjg_!wQ%lSs9tm=mvO$zZZ$| z>~?8PR)o6XM~;Qoc`5}e7G(JBk_K8yu^C3P`)x3{e~H%O`rM2akHdjy;1R&OR^Du` z%4iY?_<5l9EGgI(PvTD_F$~xaE}h>g^RdbR*N*N6w%!JV;=8&V&Crg4bdx;0W;>iY zZ-cSyBV^hol z;5eQbiDP5j#^!{BtL8Nea5+EAD7McEpya?GV7&4lFnQMllPYZ8s)>{yWNHSvEykYj z!a49q*hdpT9$8)*$N|gMv|PA*#`udeE98*At}oJqID^EEkveZ)Rn|IO6#!2FmOB0D zz$otDKZ>VElNcr>Ez;4A1ZtOM;M|U;EHH}bbl{f`{t4#GSITP%x5de!E(sX&OU?Lp zxG!D^`@|o>YM5VISdXqDyo8oD!05A?3o%=O*F+-PZb@>$rb*ClYFO16mP23Ej8jct+PkPwtgzucfSM zzEtaabUhhAdr(*!(W{%m*0=yTf1KEKN7MbUdVm?AfJFGl?)@aSd$GrM(Lqw{F|dBV zsR6W=akoAhEFuM{9KwP$0hfF5o{lu|MIbCB&#do;*Y*Zl^rNNm$qc5OfY)`7+Oc1x zHVOKk8YF;6@&K%MKn4_Q8RW#-<1t*fV-OKj7j94?05JJ6Nb30b1`7`!-Gf_>m?ywxV#F&a=B2ie za#0lbh-+0kD+&XN!Szxi(a&G?85!LPV%8-zf9!7*!ppx*u!-f>FD@I8ib}8#r9Nq9 zer#($Vl+V`1}3mllg%=o%fn~SPGq%k=M_a8&AkjC6E5LB^`L5T4!CQ<}2HDxtC}OMTRJJr)|C!W^99qJ#*S> zTB1c(XG*w4qKL|h>k$%RyHbPxDyxGSFn#=GS(MGson6UE2YQ2&V66%O4k*Z-@dWPN zJ3_$%xidfKq=vMTUDChbSTP6Zbhd~|!cuEg9NY}ZyeTczc?z7ie?V&AW6%blpvcWu zK@GBMbh-XV8l*<;ECJ+Pyt-HDh<(klA2h4S@}s70oYU773;{b`uR{4%|>o;g&Yx(2gsnh zaZwx2?QRvnpB8YlK~`%o--~YWdfc2fW8KW}%Gsf)B;Of$3ZbzV@>|dJdzbBk_Sa_s zFQZk&iVm>+R__6fdwyO&mA_|$>fbsVaMi*tp@fWS#CC$T2%v)<2U%qpg1t~>UqXgA zwO!wVmJckkDLetU@kkhvBQu}PB)|bUJ7NhudLTwtv!2tX;VvfVpv55rpF3hsdWOt= z3cH4i?~+jNkh}LGSi{d0;QMN_v{ToarI9I90ke;=)+-xr!Pzkb_uUpiC z7RwUru0HeVR=)XiL!6Tug}&{}qzvlvgG<)4Yjr{EK3jcMzJe|53=AY&&aUU;SG4xl z>sn4ygJ#&N7=QYvfNP9YwYGa@nu42F8&-^p1OB_5VT^ zOU3dED;O#qFFheTP%9dbmPYuV!x|&PX@^|Aj>aUB0aY}ncv0kNjBG_soeP-1W z(j>m;$i2Cm{LaHP1Fbfq^A164>lf&40qHraXsN?HA0jKWw#$^?%5sx}ERAQz5+Zlm z&uLs~aA@s4zbgWnW963&aCXxBD`QbSHZ+cxqABbrw~Ms`C+{885W?y0O<2>?B!r=) zMEPQ;y8y;SV*l@9t@{|cUZKo)IYvgVy&cdNUr|x%Eeqfv?Yu9M!X~AjbH%SyBt|_U z9jCQ5smW0uxP6HvKD~WE9wF^9?m{KbD|RgI;PK%E?&=%Gn_B8{{o*dHXsn+)kb}KW zEV*Pchc;d(NKwH#7b3m(Fq~x{Lb#!);sw!41~?!$HpP;HxoR{gcaK=o<21Ub(O`Fm zLnV`M0YHBl9>XP@_F<3hp_SaS4oi8kSvya3L)rt65ztSM?Z#J+=*C%!3auQ-8L1UD zHMe{Pp`CXTK3uHSC=6V845{XmU@pE`eO5Jv(Bx=tj3<%uk;jRbDY36>u9ruauqFn; zyfPNUdp7i8kVdrAR67K-46R_z4ML2Z+~@cjF5b8gPYsRAERnL;WIvM`!csfF4c_w? zA-v;j^xp_F@v)rfigUOcjmfH8(owidGXiA*EN^6M+);1+9MbNS3I~o=+fIt!GX@DR z*TcGc%RWSD92)6-g(MNMpG_+ROyZWW*|Hx)sgyWZ=@@%yU>!S()Yd!2jzMeqk1B}Z zp`f#KV!JaY;?p5vSUFQtw5{Yb21{sf$`+|?xuyZn^)^zai|axYjxBgd)p*^vcNot{ zZL}1?bssGKyklZ#%Ej0B3{5y^@v=+TP7ENq?c2b!=OVQI%d)@!$-_!kBYQ(D8f^O*Anc8jRw@ z3v5IztH}L{z6d2Ix7-D5&%Frq)>AIW5J+t?;8Msi)%8|U`MnaUv3YSSeiqA?qEO$s z>*l2zU9lEwg0(7kD{~-eo1+PAOynn1a@{klYTiw;c08`mUDO^J+3)Cj7|sBltV5Rh zFXqt#0^A`a+fIdX%vWSt|0!5^%LX`THr*U&V(2-tjd^l1NWA|@tUE;mBahgTv;|R8 zPDukc1d}wLo8xx+lfrLA?S>3NnGu2Hw!aC+ao-g2=IMA~R+&_#Uyu|qNTqYm z^0=tyqx`up?{(ZM=P^9FikVIFd-1FWTDQB;gK_-bFbxya^)$4yR(4TGqX6Joa_o}% zLaEdn)bo4G^Kj(7Hk##hyO?K2m?FOGIZ4<{u7-8QhtsypbUo^>EPyQ<^pMVJY_0(D zP=oLL0ns6gb8AI*Eby-vhD~7!du0SDSd)b4bW7{3^d|-D1Z6+CPE>?M^GmHJ${{)Y zM3*CPLa6)Aa)hS&siY-cDd--9+h`bhT@E%T4$%7PsCBHUO_%CoD;vT%qRtdM{q+*> zIYojqFJ$2OCP}yyx1OuQEcTGplD5>S#>m*sq{+b6Qxakz2=?#yTJe7i7?j5Ek ztmIr+QpViiYmXIaSS@6+P(nVrk zQkDD7#y4H!KP3z)yKXU3NB=jhWAA`f*OkRDPk-#Y^k9S1Zga@D^^lnK=7XdF-ecKr2$=^(&)gHi%U%qY(RwDAMJ>kwYb1HVOXCRzdU5M$AjNfL zecrx&4y}O@?oJ_=dB8mS-WA7;<*&Pb_05FCjOwne@%qj_AVKWki$2xd(m=E!7V%JfB`m;I+L@CdjqDHgnEH zlw_RAR&puB!2axwCvfK4-H7=)O%EbPAlB<&AGZ)~p-{=i`2v8pMB}(=#{ixji6cp$ zg;YE^_zedl_E|kp!#}SuFzkl`C3WWdLW8_Hf?X zop_dl0F60lL^g5`I4-_Hl62mjwsdv7Qd%}pf2P>*!$VP`9}^gIr5QN>rwsOjGmlFrYssBk8<3 zttF}H%w$njd+6`Utr79!iN;wYeEG0GanLI>;L6j_el*@em2rdpS;4ic;XwmsSpdP! zpGJ~Wr{@mj^8hr_!2d6;!+#zg7Z-NRP#(HU&k3?BeF8K@K6%(MG7ppXGrz4&)3Ua* zXqjsxv&}U{uGIH?2e5H0T4E)wDw5zp2-id!u!5}VO-Tp!+T?1Q2f_9=+|@fQq)w}V z)1M7qwvkmy6&ajYR5em^8Dwn+zt}?2u7@a`c|U0=E}Zz(Yg$natvrCC_5_pEoJj=2 z+C3v^w6sZ?E&gpYP4mZx<9K{v1ZPxuN8wbc!|eRAz%mz*lH0X8p2Q!9V|e^P6wgId zWU>3?4*IxZVH+BV?{@qOZC)>DOv*K~f;w1i)t*h(w4Vno9;^h{og~WevEvq@-ZabH z0XuaqSVKJmbBLI@-N_WzN0WGwUN4L%Mg8g#0@W1dj%7JypVsJK9kT$-8|$+Qz|B$# z7J#Yb@*}82Z)vT^14A*in);+H6aSVYLmOytZrIk3FRtjB@pUSf!@{W3gMt$p>8S*oWlD*-LnPdxHcQGY@VcP?eeL)GnUaim;YH--*>SXFJ~4KaTJ9 z4hnzOt|FAhhB*3rAKlv*Y1!GHA|BoIMR0|a>f2}nH|Uvi$APiMegELR)(K;BSO6SI z@rf->IH#>1qpp|N$YJ83nFi{H9fSDIz_4J$ssUtM*#y5G9L4oJhR{wEkvG)^WmAGu z$JvIY+*IdL-y6hEifWPGiUFKGW3O4zfrzf^rf5jiM2H_By;WB;P1K5*DUOqFcyauz`6owMNPC;QkL3%(IWckSaR(y1EmpGH7=*+1aFR5|^SH{PecJ$**wB|M#dO>yY zST#rK1gq;!JaX(J;VxF&V=^oL+@yeGeql6<^ZvF+sNg~vonTN{8h8)WXP0&f%bc5| zsK!bS+(cl3t>of;YTJJNZX_WLD8In_m1^C`14s4X1d4K%!>`X8fCE5y@b1|&h)--E zET|w_(AdBkAxVyqSYI-?1(#8fpOe(ZO})+Oz@Xnto^kQ&nlFt@;u{Me>m@mz*ts?8c|Js%}$URGz|-CYr!-_?ws zgNl+$)$ga}DS+M2`YfOovm1vvf3klR|Ip9qrDL)Me5O07b-kkg4m_r zL<-N2#qk)07JomQAb>ow5A^g_m_i4^Qj&Wnxr6r|IX|7uU#*o!ru5l`0aeElmh=C% z8&8j?iUK(RT30@D)RksWCrKP5^sX=#I>`2)d$aK^ngL&PPF(@u6DqSldC{!8rWcdAN^~Hx?2<8EdTfJ*k1lA#*ymIg)Yxw3vh1Gga3){WPL0D9~f7E4`3cv0M}Y!Z8ouPwN?YT)@lIP0Iszf lz_nHbxYlX_*V;6+{|DzI^6%F^&QkyY002ovPDHLkV1iRGRc-(P diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png index f5301f37d539dec93a855f5330a94743f797041c..704c929133f23779ee37099bf32d400b01599be1 100644 GIT binary patch literal 121323 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

czx#jF#6mJLj~w)_{zG8b6!^vNY{U+x}olE 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 YT4AfGt7r@P&$Qe%qIU@) z>S`fcwAVB5%ro=;@y?lhzcc5Y&zw1boO@?Z%rosLcgdN_0RXtGhJfqds^)(VDgNz^ zIPML&6|faTR|^3AxB&ni4gmjdUFb~!@Dv4rZ3_T^WdZ=BOHPZ9+--o^QsW66xcQIe zw-u)V0Cl<=TnXtjznks<`qflmUq{E1jQ39owgrd%JFTC03aJ^=t$mRpAjxkKeBNdv~k+XP19BVZ~4?8?}1_vAahZ$RJ=hB zK(h$2%kOS*iTJL7qG<#>>|8QVY_qMVY6ZY6T@I$C)06z~YfFzH z4B$}?))GC6IrN6+m{x1#x1s*MqVbpFtH0Gb7=R?&glKJzS6s;~N$r^v8z~8690hsm zh*~fgdg$)p7|&)m=95QaHyS!ifI^q^^8u{go#)h$BD3EfTUT0w9nZO>kUEU{oyEku zrZuOHF3%_fQl8{lXNSdxeg*J!C1m0;Rqu5139Il;T=@6WP1VY8kUfTyKTk3MT|tCQ zC)?Q*&ja>{bfapCWo3I6jKr4FVQ)QPYsA;#hD%=>vOAU%Efwd}pY~TR9M1-S#o?o( z9fw5&oyyI?L}CX#ny1dAbEl;)<_FQIRJs(1>>V~g9E1KN{M^XdEf`aOUmANFF+aW- zFCk?JJsg;k)98A$a6mqHmam;FY52V-jN+B_r!aSs6!cAJo(tXh009s0VIO*DY40+ z0$mJ_mx5b2W`AFNkMZn&@uQ9wjFw(nJ6-9%1HF7RxE~pdhDhwMN(*lUoAiuiUY(oL zBk=m?k}p^6^%w7?*%>i~+`Dd$uS(W`w`y%DHq*2;Oo}Tjo|M5w1|vw?OJhlv-)F}kGULnXyt*{^q^8VUv9ubGFxmkQpy?d9#Ng0AeNCofvmBB^VMKA&jV zFHg`fCuLQtFcOU8XNF<6+swH@<$Rtl&Ro~c@)stS1K_VF@HC&mM-WJ5w@j!gGwcvG&W;k)kyW6Upmd+~M@y zCEd?I@0_0ZLk?PS>+#@wzS{qqybRKap3ju!!*f8zzJoqq<7}>AuNBjEeZCzCP&<{= zjy7%>mgo+dwISJRaFp}JQwqQx|H2lhC3yR+;}1Rf-Ax8h8t(=iL{N6y{8gRzemA(!{s)iLSGe(KMVpz(rwU0PF>tD>Na>O2wYUeCnZ4$AB(nWk zwvO1x%kt_h5D;t(-i|QF!w$?rxKfn>AtL?)?Edb^<;WR^|Pn0xPq>y`Yp6XMvHJ z**&W2_z1BH*%$)8?4|0H#bFrnVb+Q+2txU1S^i;z8rO8=)WUBWW%jIIJ)fqJMDH-~ z>N!H#9{KqEjopo6lg}fviz(*NwB{jrNd;c8G*Ja)F7GV}@1gi>mtHhQ8CTZ9Uoi1yEVdwlQiYCLw0m6bL5Pwv zv5)civ9T82O}46kePc*J#Ky-1>Cv1GWL1mvC5fQ|YTKrkPC5+aY_{A349p%O01r&Y zv#XVB3s6m!SpU$3(K1rwucD*vgfm$gMjbl}_*HG~lk;)et+9vo@7Cjf9HacZ{SDNW-q0<)zKMK#4Xlc+7^7_TK96@wi%%=m_lUa7sHBg}q;#vVZ zdL4`SqLW{Xkw)mTOX-U5H8tcwwwMQ@QEXy79!wg42ztP$>mew zzFhe8$MJK5lgJrO52|wfdBoe`^zwj!jie22P5$kYCjFt(T%m=geI5TjZV;+U(BX_} z;l|&7u5TVTWvooh?e08aOOD+w^MPn)uT&OJC`S6g)>reb%kAx8Nce^4}3 zmE%no>^B~QDGjvT;=?QA96BFpR@okRdj;yGQFh_-e(sXBJZI@B zXw9#LmIFm$oOp=oW-y2{62u8AM#dTA^M-ovZOrMylN>9*(Z2MPF~KkDsig?5PTJ5v z@gzU~wz+_6#ug^Zp0ei}nd2%1pCtouO?Pq;YK)rug0b%gcO~z$Ar;0~JgdFwWiqyL zQEtstto2eqCi{wBa#yH-*1Ew?Y>YHaEb1)6%jRGt!rje{UXU-WR&I_fRQNgI0_iVr zrrTtrg(Q#1!)8mw?e$D*)-GCbIliqDqYUCc=K=+DF_V}FVTT5XRS{F*PIBdM8{H~g zGcbe&wl3v}mgZTxx}j*#2vTET>E3UQtm}1FN50UK!PpwLtl<~!#ICp7M@W?;yev_t z#o9WIK{}+f1!dgCi2R$?p-%{*wfZ+%CtRQK%!m-lL>$EqI%9GLP27kzt&8Ic(M z^h-see)F09 zE?5;u0FEGle!AcI$`fP!=gHn>-&8M&ho#xEQ1W?uz_h{NF6Kw{cl@>9o4&*{_QlPJ zI0#XwQZIijK0fieY*4X^5@=-OucX9%o<1>~ngMYN3q=V~S)EHd4H&398@z}GcnlQf zMDVn0>ou~%C_I`?=UT2Tl=AK08G+S(f+jlaTuRK+w?k9sGa1Ftz11HP;0k|QZ^1PM zyv1h>f|ro?ess8tTD2W%u@=Q*9no>8sk z7qq7j-Wsix=J#3={dgW|%Xx|$`1U{;ccR)#B>06K`s+Fj66|fKNpp^m;r%j+E7e*0 z*$gG(Sa>A+Za7oF!Kuh}?%#S>g^J299%T&&m9vqT@6&O{G3bUqLdexOfcK~;5Te$j z2}g%fKdY$|#=cvqSC=kB6Kx1m-bkQ-BYu|E%2f7Nj;A83T&Th`oRfjKe4hv zl+he=ey?{D0wH8QCAlwofRdfXT!OZ&IWIwo5I!fmGbqT$dVkGq%+(6FK8eSM2bbDs zYPne^1;_GIJChiY5W=cs0yg&MWj!{o$1+!Xi4&iAd}*3F;Zm5-CWq1AvC8=oN26qZ zjwn4GYofFf`tqhl=Wd>Y(_+uSfqC9ff0Q@JnW?>S!7qJ;y{OLNxBlNVl$c%qGkLbp zk(+9C)|DnKV>hmQikhWF{M)Qx9o)i|hn)A1y+XE+98eg>!kWWPjlZr^#1{o?m)mL3 zl=vxR5R@~ZASQku7r@m`Z|k&|P_W6_^>?y&V!DUpPQ8?SWQF_nMSr(Y*jJjK7w)Cp z(W>qSZ&Ds%q~LAGW21vL8P5b0)mAApuH;pNYc?@VESB2545&c^Nu91wykp*v>Mh;H zr`gA)BNBl(igbAohJLo#mIxyFPqK?8LKNE(12G~TQ`a%XvTFLY^DY`BD(#5s}3*?P(>K@kp?AjenwBW$(9HP9c% zl3pDh&XD2qDADsfw&9dj`g+!7IwU!(#2#gHWq~H+$gC0W^}rog$&&n2tltbj3Wrys z$d+yC&Z{4=`J=FQAjKqg%Y`j@`$zS`QE*cgTQ%S# zmU1!kD<*?G4$@A*4yU)&)sN3@nI#WMiY3Jxl0P=t+PteVk*y~NxbNMxNhNlXx?Nhh z_6??G^d2d^<=x{)M)Gsxy1l2cSbSwoz8(P;dn>sBl;KWtmC@6Fm1mkTNqkdiKa8JQ zoR7z;$TGq3TX?N19{QeMlfe~xTld6q>KFCnS9#mDnZdsxQxzB(kGTPLs*bk&4?c7b zvEVpzhl4t|PVe+u@me?jhA}wz8t-@Y;F-DJ+B`X=4qbk`v*7YjHS&1%(!&~NDg}dz!JtwCqM|TSQ9u2hlm7!aI=@2M`2PRE9a2v9TY&e!6+BRm p*6toJ9bNv*h(nQL5-?G5n5fwQ7D27<9^Ep4nyNOuO4%axe*js5U~2#X literal 4789 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 SjxJs>07Y3fXqB{C=zjqou7cM9 literal 10113 zcmV-{Cw|z8P)1^@s67{VYS001XQNkl@x^61IQw)K}?7!Chtqrl}uV{(S>rjqy@2`4S+Su6~vY7T+tl*5U=7)(CbV3RIo~ zfFArt42OU1OuDeO^C=mUh0 zPQ$Uf1<H% zPb1RzdTHm@FgH6q0HzkewrAiz|M!Rt{Qx>!fJQLPz2S*J<&!hyth|9#>_N zNg&I#z8e1Vw;&dYFF42+55NM><@s=*{ve`bzYYmpT3)nzDFG^1Pr!>Vg_}4MXj%(D zz6xf132eO$y48ey7L)_enStd_!Ab3<0QnARvs<9^E4>E>=}%xl>TwBzFgP27%o#_z z* z9oY?EL~P%k1g`GNz$Lf|J2j`_MEc=$zY%)>1<+fM%jIze_swUt7G|s#qH4d4*Zp$K z*aCDXH^3kKG0c&BVP*yjfaX>VvULADU>)-nX+bvtR>oi*hyaneuco*QNhA6 zdYBE8NQ?Bs>Aw{EvP)sbd-6-;tDLWjvQP`+oGNh5|FYAg6mY)_=D>GgWd}*pw&r!d zGC}5NN0B+=vxu(w5Ix%b>tpo|Fh#KJ=%X;6c^`3?SbhOZri3A~7(80cZ2u+DSAT?n z)nAY*qg79j2}Gg_z}u-Ic-y}YYw#}OJSwZBtWBfIn7NaJ{mO43+Vk3ZSNiK0U?RO( zgPoZKo_HH9n|8b&En~L_CjJD)_>O{iK10R$9JLtpC0cw108_?HM<0W}<;#e0 z%v3}l%F)f(K*_*1yWpSvABe=d=T+&i-?B9lWg_cz%XP5QJESF64!C&92wZ83>*3@d zAjaSlS*M=VW9C(F(d0d8^Y9#EU8g}i`EF$TE*5hvoOAKR6ST21d*BnTymBsa*a1vs zciMaJrNH%%)$T4;sn-SZeX^wRP@CprSuvQ${x4)+@ddbU z8qy9eac)c-qETe{|06qakNkcm21F^3Qhy>+T0_}v658W$CDFK#{uxDSfoonMhkRxp z-1XNZ(tn$}?-iGIq>v_^133RB+Ih%&eY_tR<*TnGTKi#f)Zyb;->|4Eg_9jJoo z5F3+>ATzTQE*TKMqGh#5eF046&}XN&!`k~jnJicmt5-Ugn<371BjSB$D@A_3b**xM zW{SDSXwI4SH&Hk&i;_7IKP$ODtbKRGPQFkOJ!k+dppf*0@45{J*CPsG_=f3BpsII*J7F(Eigy# zhdsGTLZFIVtd1z`%ly=V@56K^3Ox2&J}bea@D7PT-sK+qlFW8^J#EMjwBZX45 zC&+SS@hH+_d>M@PQX&@VT0QWa*1>N*5okFMXgU%`tdHnv?H80@n7CZHB$4iv^!QV- zp1Ojf7>XW60#q0}dJ{Qc$)b$+RgEU~!NHVxbcY{6OvLD#g~;Rm>PDBtZ95(4ItzN+ ziL{Y>50K$d5R_gl%|(QQ?jYK60y136w)>V6;;_D`q%w(?nW6iDRaeewn{fC6jFSlI z2N%a`ZW4~s3b*TA_`Pq2(eWpUL|Y4#$-)G_AoW3CoZXQ$5vhc+>cen`?<3V=R8^uE z!^wP+v7yoToRwF?tWtck_5r5iX7>2gKxzP))mK65zmS;N>bVU<6cBS(<6$v0!Nu5V znqK}M7+b$g_$rc%F3_E7O$j5i`#q3PA1LG*~ftV%jh9k?kpL99sgDnuAuK_D9XK{FkM zx8Ikq>H;gUWDT-hNl)a>;CkZ4@4dhWC%8>DihSjDxeJfedx6NlEuIVc!dTMBAC`2g zLL{S3+!PXIxn1}2-04vfGF32>Q8DbKbcUn(@IsQxKh&~jzl=Ib{adKckOKzQIp<9!6+XOh^ zRtzXZE$B!(jYp?a`0eB@{xFllA7^a5wJU+w_jHt#f=?izpW=jyJ-ZCuVh)25z*Pa&wV znSR{?Y%Z{fpv0*j9G}KLqtkeJDvbf#6JSc{x&YqWx?2?e{mNx#0IuO*!F=wML_Aj& z^|}YP+zJ^8b2j>HBs&1_>GvYD_C`dPo);p>9c*7j^mnTp1vLuxH81K1h{lv z=Ajjx=;+JO>T%*24kDYcLN?loXxFR55tj-WdSW%{eQRLMZYVC5$(M@0k=ad=wpkdW z?^t+xSX}_jRUC`KHImNY*1co6Yh(tyh+D;U4b2Kv%-Q&}OzIT<;@W zb_M90KPNet09P4Vp(^KI*BxjiVr>r9aQme&7L~588)S4)xC}FYq{}6WGg=wk*>Q@x zk)zg1gsSJ)w3|Y3E#yVvzwH{rInV6E%>zk{(;qqsSaIS^0kCqa4}YF^=FtgRo?o%6 zLM1u6J8y->?Vq@Av67Ty{w{HsNP0UN3E?LH32$4=`XUtkLMqD?9xXFe@ViA0FxU5G z7=&KG9-Y8>Pw&JRcTQk})~1U@A9FJXm3NQ_TNjUnKrqR@ob(vX!5>M5K8$>Jz6M!( z#?VjTq=uA;3}<0I&K%+17sXyrlMw+seV72u@ug)rW81iT%N|^|c?g@+E&;5zac$kKvrCbvH&vRY-ESvjyyQ$UgZz@oFaoH*Mgw9?`iZ| zKCL9|QBwd5dN(jQo|sJHJQ9a@49^H1E3RvzB~vj=%hzDh*&B@%kiD{bVe;{+IBvOJ zx;FWHm0hY;dNH}E58E=twM;{X ze2S%U4q!mD<`vSt%tbS#k&)U~M2dE)$dxVvKeZE{7v6Gs9X`i9E-rut z;K~xXF5kEZzn+rda%v`nNGZ*na&0Q7WkK9Moa=jV^k$-ir37T0 z&>lm$te1x7rb6Ho^ zz4?{RR$Qg+R8%83ldtKwouWEJ`;}fy{;;QHd(L7~c5+WiYKq=g{{Zs~-hE=rUfeg4 zMt6naVqh_E86!|}VCb^0IKH>OA8X=K`H&S^k&;A4*K5VOj-`v9gKP=nUar**z3Wfs z+^f>zl1JX>de9OQ4}Fe!nC%FA%)1U2WI}v(=P`m zjQ94pV`Wn!#2KrM(RdHCy?+5yRPS_E-dtFuD^J2%`c^~}OG3&IlXNu5?O_P3w5iCi z5&t50i5ct3KXW|-%uycp2Sz4vO|{bg?2AJfw0*?%(ru>Tu~~t?xHEx!k6Vtjy4vKS?FztEdmz;ij@xUd*WE;% zGb8(66y2FebuXmvxMbnkYyTdxo<9pOby{&#Z*~Xt)QghC7FAiKiIxjqY`JL59(GRt zya3EmVW2w)#)MMeZpw3nN}VW^aE7+%H7nZjwe`!cV+K-vlI5Q|AyGIi$X5`kOcK6eh-6tcN87gQm&Gw zqf}qoa2ugiT?gYwWX>{_&fw-f<7hTY*Sq+^ZC?gtzj0I#{zB#0LvXG6cC#BI&6#_- zW?O!U^tP|T9R8^|HCLSTEfzM|x1JO~d~On1i{8?=K_i_j7Kp_#D~mKuwxk>V6}>Iq zJt4@*)ln_SS0!Lkb$|sr(M`KXM814yiQG#zyM*Wf^Y3f>aaLzb&RAHm5KbU2NhkBy ze;)R#50LWzAoR({;iq>a;!cXmWl3??$cf56G>u#lkwkxW%GOi?vNKKABh5h`Sy(*x zat-o-wZ5`|;&lSBz$Nk2)HLoMokg2b8n^=AwoM-STaW4!;9{4CrPV-iP$dX*9#w?9 z)2w(qJbsBz;~7a@Eh=>SIV}!?{$*9z#{ST~vOh(!?E{#OZW>Ufap}S3hvnIe*_<%tsst74*6whN0pd7rx;s-4bs?sw< zX541&S?D6;HeOPqp-}KU{)Fg?svOc#H6`Cu#TQRbPUHUZ6k3Uul>#o-t=JXuL2{m6 zxvX307iP_7HE0D2zFPF04y0H2Foz)HcJGg5y?{9F#4q~0A~CV^Pu1+gpJVl`NHy2n z_7eBvg9S>MJB!sMS&OGPMR4t!zA8_&S`R-TyCJA{nufXOTlBUR?j@bQZqs_0ZO5x= zhfn3ItXoh;{o>3lemUc&#C zh1YYgI6EKLauzH-t8h)M{Gf_GqN)aOxBycfk~Ytzu{Gl$sud?5`T4T+-K7y7 z=c{&0VK1!k%PC-G9S4t1&EWAQ%`@#_(zZoEt+t4XbukmCwZw5sTT`xSUGUvn0N3o; zldv}Y4;3BY|Cb;dRZmuX$rXsS9X&6n--gb?c>G~HjcHny4zoDtDlgtFv8?mk2zDg8(q%8AvW7;HMnXvHQzBXLk*G_-e7m%CD zD1lGlvPT|5gurETwrWYO0n|1ow}cZ}0%Og`R5oz+y^G<7iqrx;NdVJI{;H32JDYMe z4U26Dz}S$S!C!A3!V@#L=p)9jrk8mDzWvj)4nDSZ1b30E+%SM=Q;w(sU?*Mt|upxc>k6m*uF*)1=&EQnB@^}0H4LYj!_cdmv7pO?XxLa8do)t zDPS=_Cy|($coyChmm)TB2Xw0y`TUX+mzYGOZS_K5drdgyai!foB+{rk57@5AfG8oK zQY_?giKzHj7>gHJv(u!!e{$=v09RBmkNfc4n&@J~wvSJ~Feo^*u7%yA!Yk;vPr6oi z3fbpxg!$BEh|D}ou82;>waU0FZwN09@5nESe6+G_2^Jh+>gS$R2APtqF4=zkm_!)O z;^YWG`oDLNivF#o#6k}YGKgj@|CP+*4l)u7?-9yi{fPCfY!d11cL0xHgy`;XO1Ftf z9xSs&jZWVV^72Inm zohAi+8m%IOHVn}E!Z5gFa0>4v>oR6qp@?%%r{*J~G58bcL-!z>-cA@u0z_W%3Dv`Y{&P}7yrU%bu_x%j|tA5mL-H^yp~zQ|-N4{-CXj7E6UH$& zDTnI9oRJwGz|`E6wku5OVrkEd)Iuz$Sr13%1m$rLPo^s7hA+1v9-(W8HTXOu^36*< zD+jC!XraKBX+9D9abJgJ=v6sIZQcPEc#vjYx3rpK7Li1Rm{Ga3_SFM$FVZ!BlNiFn-gsdWu5|{QUDi8+oG+kQH&_Vzg>0B8WiznVez-?X- zrM~I_E1P44%xS8Z=p#WJJf|PlgezG>=1@wZ*N?xII9I$Tz{MlN~Mbk<)qSKHO2Y6PV6COB5EHWCFMhsbl8D>L5NXP5yi0nsES&_Y@ zl5J1ZhIC6bpS4{0$1&SsANzI01i1WyQ-Et@gf|m~Dt2o6C2U8LXh;B?35m@}*MW{x zT4FM#IAntH^-gV#&3WdE7J&Oml;T2QU5mJ$Z%-iAbuRpqe~4)BpUYF*#NTTx2RKBi zOKNvVEcI3^>KmL?I6*)dv)zKLR0aSZ=X5leT#I?A>jo#doz*V$Fe(ko3#&A{j~1br zDr_b4>@nD87c%Q^Lge^=hBYTMqV^KZLwB_Hm_bTQaVyJ1dCYiJ5SGb(YSLn{{IEYBo3V<~s?wMZpe)y;S2(e`s zD3Mq@`c_o|77%+0dE|LPi%yk>RPs5+XYQ3M80y|vujoRn9(3lZj7XgEu{@&VuT-^D zVx!Z7}Vmgbi)?ZQ6N?{3&Vj&?JDT3b=Xq0e$=2pb_cuI|J+ z-Rm8V5K zGHPN|$|aY@p>weK&k_3auB?k^r_*?KM+9LUuN};Zum71<#Cb?Lzjo&s#$8P)|3Tv5 z{?pS`8%_oxH(%){lzsKc9-QCXq0Y1phh8GPYxrK_YOo`{@F=|FcfJN%$7^7=t`jst z9Rn+LfC*aoa)nN4j^f7?X%x$cSfr)tyFVYFA%L}p<`@kC#*2C7(r%pE635NE$M8#< z+l1;f#xGrcQ1&A8MGvx8`sF2^aa_H!TQnFBwGc%(NGaUZ@+xGHKNnit@i2)~8HL*} z2vFB4uyT*;hj@HNP~P>(_!Qo;X&>U`Q7^V^jYZLFQlfu${EEcPph?@otS_GQi$PuLe1kp9Y&(x&2 z68(wfEdFyii3cW9*pPN{L1zr>S`xV?e}^5w1m~ewXEchlC@B2xkr`22SWHZiKf^AB zUlSMm@!&Wv=<5{O3+5teKqt9VUVG9N7cG3ejAILT%>!f8M28eMrW|2mw;DS6@yN0j zy*sppO0h2;4}KL6K@6vU)~qL! zBRQ(U36n7u&y{wjj~OzUF6wF(;HtT{Qu7Tk0Te+59q;aI#lu@irwu11EX=rmNjGCcHxW@kzhewfPfe>BV*T+lM+NZ4huP2ZNT=)KwN&MZ;aZzQ?G%4)jbFilgQki<_dmmcbA%9nAT)e6P zGgMOD1-IY;2xE>sx#7AEkf<(S)y5&c%bd-?-z7 zW24`k%R{SA6S^vn)&q?oJL0!vQ+U^A>3l8c#z8vtG;zX9yA!x(buZeL^^d;c0}vj(L8Se;}IynH}4q4^}8oUztnQL zkL(OB&yrk4@y@GPbl`1#c!Q?rfW~pmYC)|~&*Cv_+xXg^QG9b>Qq&@}7<$>y#e;im zd~aR9h{w9~ylLthVEJS@AMe|^8~<-Sg)Y-5Tf`ZnzpFfc=FFBTKDn$NukC2bCF~Vu zBvhP659wCW3i8R)6gRwkaFT#Eh0WxVXa80uje?mIj!@|6+Layn$cmo2b}lanz<_+5 zlKZD#`0OrhOuIsXcgmbaz|FY+k%9Z_<_IqDZN=Fg%_5GOyD##oMEeJr4+y9NAJzT< z9Z03|laVQWZ+IFTC>YJ1599iQ9i^p$>++ri{!xU-w7OL47aU+b0=B=K7V5(1_F$Mq z9Uq!iNfmaGSI-AP@b!;~8hCws9ItCn;Kb%Q+C>M&GMCKvFp$pRv8fd9AD_W*r!pdb z7+1jZ{K|5(7+j;I)SuH9!<|PjqlYo-CYW850OJv);XId|#>E@=iDUfYdgXoSMe?x{ zovh1n=U2{4J34ORI10QU-4w;js440sTgd#kkhgOA-dUR0L^g{d0?>8}MsJ+W;;ESo zo+nPl8-Y0scb&Gh%7GPti!H`8NW_2lm}R07UriicQ||ziAd@=A6B9{XLE#|gK23W0 z;&RS|A)nQeWj&2UG@dVXB+k8OE0!I&aZNVAV=CChsW?q$+L74{X+P+np^4O);9%7- zfE9pijKK981{ZOzm}%C%QeRU5D+Jj_;$-jMJSf6Kt%e?|Zz}*>FkF=e6a36KpVDL= zzRD~Oz7yzUVV2VwO6Ph*dknX&TdKgd_zqxQaDWwpjP;!NP|WdYb-OzLFpQ~JaU`*6=#N~E-CT8$qNTEZ}u zZpa~^tCqLpQ!9HAoNlsMbgr5O7>~UE;p3}2hw%@4CX`aG*JUnPj>wQAah!~VC8WsR zu%=t|xu~}y+PViA4^`VNUcVck!ryKm!85at;AZ-~opu)95Dip38QMCpBZljb=taNk zFBXOaxB;*-Mqwz1t88xEIfC1VriFNEHMN{qy_QGd(Vrw>Ew^-hhN2AbTG}PH&SI*R zs!Mz>HR^02$$B+Vtd9FS*~0b7S+OYlokSt2XiAXgypaj zbE{)04E5&D1TN@q6=!>k4I!s@Sc$_$0k8uDO=f5Oj==T+1*0FE&R|Ez!HhcJAZRov zo0=4V_J=QgRK5UIR{WG{%k6ZbwJ{TCw#IQbiNcdwn?&`Lm>1-+Lx(%C>K%KR>sAm!U6yQxT-1&y8mRwe>w*6-}vCO*8NY= z+p6el0ss&e03a+10J#4*6?Oms`0@e(ht>dqcs2k)?wQx6Bl&Lu?X9}90^sF8t+1ye z9ROf~t18Ip`>!4c2l!hU`JQ?l_soj<{opcbvzKT~7j1ikMpVe`Ja|KoQzn=po0CDH zHc4_X4sc^=LAX$xVig_RzK-HW@JY&t&*@s~TC!udsH(_2j5h9=q;Z>cEi8SV5eq!M zdKSG=^Lnd%1NUaOP<{@+Cvxf7|I-}m*wAxL760Wu7AMZzPIOPK$uPaz28F!0!OXu% zjyMS`jIH8Dhws(Cv%`!S!HvB{?>}B;#{Hiy^4vFoRV>NVm*x{ppv}qVEM~18jB?8R zPg*uprYA6h(v|N)S%LL;pe*Oi{s@^h!Sspy{Dlje$(y#f8Y>4M`D`xD*lDVWbjz|O z$#e-lahAxY0O8>B9pzI92j}~J{UG`K zlEEnq7(lk^8XRY<=+{DM3`M1eA}yyiH4Q;(+#sBOmTX=5Jd3%danb^Qqll1e;$LD@ z5WxqcFeIN4a;?W~meaIh*3x_y;8?V$Y?Bf`UCnnI$NIhF8ysOMgQ&GbiMZyW#z`kh z50B1Qv+DD7%{8x=JiDF=5o8KRa4H4!Ti3)8^R67Y_tE;uzlp(9g zVff^5j!4J&v+(Y-*mp>h$MOEufZ6W0*;i{4e#}&3g{Fe|I196Ib{9Y1S3!}+Hx9E$ zIW*f|TEu_NZF)EsS{3~dTn@L$U%k-VQ4Q8rpG*RPn9Bs^1T3)MMeWr^n_eib~!e2^Y7P|LOpax-nkylE*nX4qEo0(S(9!e9PC-feG*m14Z5_4u?^~b zAvhK7q`Fc~UCQO+dd)4$`7MVe;R;J?_$C4)d<16U^wFOD2VHTq&$avIpVMyBV}0A` zZG46$ABFu6-9T{UEO( zxJdL=J=rTO<~BXT7mclD4&N#(@6k_GN>hjSj7FY3N#)@3!QW9eeBa@K@SuH645`p{Tnyq51P{JFI6G+|sS6uYAP43m^zR?B6n1iikn zNJRX1YwH+0G1GM&nYS`g80z3cCCzh}_pO=QexZ23lko=A_;zXEZ)CW0pL#;=N~_3` ztL#EShndu4w=PRDozS@_QJZVs8TxB-YB<6UhRr3Pr^hXv5MJonfAY{G@*Ks6VGNE3V{T4+E zcRL1QS>6v7>lZfdE!1EmTL~#lV;P_O1DYgDO$mTLq5wa~;1eT_o(0^C*sHR3rk#S@)0R z8&UJB&c`DNjweO6d+(Nnd$AuMo|hZ@_KIo$pNG;N{5Sr-datcHd&gpCyZ`$PxN-Ig z;1tGM6V``NMVV6;Ze3_*7y1xE{!YrW6kU7&+uP)|lz%Qmxkvk9v=@8Hq2#K8t$Nn*^}J-g@_YMDUds?BreS}2~^cpBXq%jjFwy7Nv3hDo*cRFDd5 z2z*blOo8G0qR`|L*sX0zlLI_bxak~d({dg=>};&Z#~PQu4ut`@jpWx7ecQq?Qs6tg zClM3UM@lNP)1*oZIbNRkR$@}*ZRCihR1PTks<%Jy>?bVauz@gDoSZ*soXmQL1Vb(wBGEm&|${F_v(7`mRo2LOW~Z*_pomxRu6_zdRH|F zpvI7ukW(Xg6)Y}k_Nj80)`u37PI9v7owyQ#Y)t2xqyjx$fSan-^1;Qyc+9X~Fjgx{ zNP=hz`lq(Jz77^XZyCGtUWEDx+O}9b2r}bRG+$n4h-L;T+5Bvd#N2Q08=gz#YOS!~ z|0Zw6p?P2X19cf#&z(ngd**C?CW9$$K}{ui#Oe^eL3f_ec3=k+bDT8z)^N=`-^pUj z;{iHDPx(1{Z2To^3W#GCbJaSPGj-RtZ&Z1t$lt9fR%N?+Z91n;T}sA*!8OT6{-ML4xJ7zsa_mJAWowLHVk?lkcQ+*dBdhW(V zWb@K+*6)&+Z{<~1+u8q53oG^XtUnm~KEuf51rL5_S!_r1HaGrN&Mkh=Hq}ybaF1q- z7+R&Ss5O4D1)c@M4lDsf?fs6Pv;z3(6qC>Vqc|XnEa)ZE{Y)oLpC;d5So{8N^PHdB zta!0?d^`!@|GRa(8GdRHCgwG8(XT5UBVwplB8=8Ztqf7zY;rCOPfTL6HnJKPu06U1 zs~xcC-#TAPkMxD+Lh%3!X~pvN{=!X^P@ExdP5T-pB@7lyCz{VOlby;RiShNzX>rwu zitsw`pIh0Oa!>$#e?RheQnu;F(%Ue~>G_$pjDUX%KR`%X*V~wy;_3IK{9OcBb8Pjs z)+cw`7cY?+MgOcY3J|A~Iv?TQuUzo{D30nU1wcy1#EXzcuYlFF;(!dv>bJI+wqW0@)115@v@u|&RKW#akeU}p zCX#Ne?6L_JC@Mlj6`J?Vb1~QR9JA>s-1}yv+fO0)aM@kgacqH@U>wy)oM;e@O>!id zr+7KnOrpu1GBM60V{l7`1^b2HUg24>(8c;wFo+Xz`(J3 z;W)fiSx|py1FTP=E=Y$dxl?!TW;UG9M~d2k_K!cHa>?|-epWV zdh$LT;W=C&ebp6bvia*WXJS7i#w<#0TLoVT7u8J22i2F_ju2pg-SMZX9WzMX40^?7r zU8+sEUIKbJ%IfYGiq4EAy$%+Y9Rw@QFfk8yXeNYgGnsy}ND2CVu%8U0ylXRq_dxM{ z<&EP?_26zwy)+ihRS5*vWnQ)Ic(q6VZYb}W*;0nH|Exy;vMP3-dgqq1i`{p2FmQ7` zt4Vpu!Qd&+goDIzVX9mj<)k~3D)QFA3ByUtA7|~RMs}_emuXG3Cf`8Yfyyi| zcBcw}L&H*PSn-NMV+;*dpF!gY3Y%G?Z837;I0C{WyN-1;yP)b{&wL+zHh0^dFa9n* z4cMjXOsYQCx@-WR&OzTF8R9-GfTb|M4gP$tMN82a68f4c8c3CTsP%@+JA40wV1R}U z+#9u60FGMdTIRkejy)fNQC(&$Rs8q{-POJ{rVN}V!VJP40amtazP>cviG=8 zG)@a^N&t!94Czw%?bf@ZH{-+2$&>CbBkh z$WsWt>ZUN}!kkS-ad=SfPI-mnswSw^335`hT;qfg$w&rH)45ap0sE&m8jjEjHluis z6i|L~qpt`e1NGamHT#Sduz%Ds2%`iT;f-74=qnSDx|DP!9wws^Is(ZOt`79C<0E(c zG#)I}1bto`MSa`Di=X`pzxmx96Qf%d=b^|g{w^Ir&C@L=dNDK-lO#5#8j%F+T{*Ym z>F$J$mWlBKazpjA2M3YqfiBmEoIKPrrd~S64J+o@FQRFux`TpVqMsGgS9?W|o~<8N zf8tzHd_us^q(tJ0T)z!Wa+p2Cjgj?$Rng^XvRLJ%b@OI2dv#r0AD~<&VdW=vvtSkI zDvJoAsdjVeRjsnHQQKbRLrM&eNjnnb>X`THwfI@@)%t9?nz4 zw3(Xu6oDIsQd~A07QXbk6zmF(G#c~uxX$<)@#(e_WOE|j?nS`S%zNZotHIPA40jbu zA!~L=Ql#L{l93Ys>a5U4%+PR*{`1Pby?z$v>RCs#hUv~#;`65UHw|P%C^PC?==QrVyS}&CAq;|P-5d&6ETGJ^=hW+FC z_WJhR^^dyms>ON2r*wy1?iQQ;mr{(Fyp6tjEdsav61V)5^fi>GvSRX>gXV4apue`W z#PmMzjS(ji8rRy^ZK!?W`YZnk*+s=c9x@PSpDXpTaEa z4UKe$sd<;NWIu)Jw~kjK+FD~y57IuXt`2Qp4W5Z(+X!G^n!oa;iw}J$$pkI~+s6AFKGd>OygC+B1zFivL9rptRx!g)jXm{Ev2EP+ItFrEMH1C-iH zoc(GS7^yI}#VWmp5_`lQ3I=vnK3F13VQrp8CCs(T9>-c0AH{~MlfyCPS5{rnn`r85 zj_@$+(RJW8HVQq4T<>{3ttD7xTq+RO7oexZrTCN4>fv|YM->-}I zIw!zVz1dNnv#%>PsTlV*S>W1lzs2J*f@CbG~VyOO1|0 zERk-$e3={3IG5an2rJg7t!>>;h0(*^^dw0=)gl{ND&H%`cw=+sX|21PwR?H2AjQQg zDB^-6sa|sijum;>&EuM1^hrwFT4Lyvr#y!vH#LrXQuW*1S)J{^m~g}TT3aO`QOmUg zanKTDN?bR!IMjl1exfL=)5${8W~)GtKgTwQJ3uNTs-W7gD}{1-Q&%$@tEQ5uRebw|x06Rq4u_zv>}dC9gGHcUJW9gDOewH%dJ z4Pd{=t?DbMOx0+iOc*d!c77E&8X|a1tfQu1ldZ38cr;l_DU)}8nl0@W;P)Jpge;Zs zNVdlI9StN@=odUC;X^z=^=-uz17z(GkxX9c>tUG~oqSuXoO^GpXa#HZiQl4rMraJC zzE_(72u+-hBQ`q&T?KbvGb4qV+9Y%WFJvni(Kf_QLZJQ!d)zg%6QyKHx9=qS=(8Io z>a{c;twb%naV?Lsb)ZY00T)+lT!v;%#-}&J_f^%j}}%{ z&TC|<@#_MO-4|}76L;P%2pNNSJ5f70qu#_ow42FxCp$`&x3IM#W&L%Ghbjpz=u0K4 znxLR4kb3gF*$Z5~-t^Dw67IM%vA2bkQPG0_{rny(kV;fjp>UOeZ-}v$BuWBswr~ex z>{3~r|NXc7fhk&nkXWh*qlU{;0&pv)_t3Z?3L`PulYmT~dD@;GUjrDx0(8T?a!pNx z&eTOS3xUl_CGoO2Zb%|B%$FH2xuA&|g%TBdn_sW89wwF~&D>9CDd0Rh+n43~~Hma|3rr zF(*}K2Dx1`xWT*=KOmJ^PR!YJ*%gH;d@QDOV$S!3^0X?m)B-E;J$6)lV;k5d76h_4 zM_({*ZgtH^av+L*g5GHntAKJ6-!US!3Fl#g1GU~RcE3wyQ{QEDLOoiq{s6)b2Na&= z7|ecx;BM{pPKB!JcRLk%L1S<(R_J;N|RWC+;?$R zk917{Gq!w3Jzyx0utf-g# zCH>#Fz7whlBxeT{xDw2Ry)0Qe;h9Vf-F$c+KsFO;iK@18VyBV)NdP8Z<_wY-QgkwC znLh8Yp4s%?5%Ci_rhX)AE=`E}_l(at*8Qo#N+v+^7f&b=P_qk$$(vYvWC{DiWkNlw z!->(0FuEy?(l1|GmZH&!_x!b@;FED%Um>IyuyGoX?XG!c1!A;4))gt0MB|1|U#aQ> zuSkLn6#_Ytpipbk?I#RCNTBb}c9xF}KNlzNZzJoCYrPRmHC=OgH#}Gj)rs=^4EZL| zPsNdxKJYXwh?Qc+lV$PF)MtCSQKcYGTo_0yr80k+J=RHUSbq>I)>gbtH8SFJXi+0k z-s1e)R*8r-DR@@fv0-1RdyW#2m7jL)taw!X%?Mk{&27u?CFO5`)rXn8j-T&Y46<&| z^^&t)q;f8nlK&V8)}Q?`)I~EN^t8S<7;Jvk{(FRZe&O-S_vvQlwq48UJ_CnZY(PT6 zwy3jQ=4oW9=M|I6PoU(5)A1ru!5Z5v0=H$c=7DD@r)DGnLh-VF-N&~{QBD$u1dys1 zIH*qL^&!Wq{S?JM)R)a(kf|wB7pGW;g&H5a+O&5#8he_5R)TebZK(~2aN-hdH~~Kn z?HM#CkAdp!#V*+F{wM!VsG2Ulc4^6C*fXJtKfTj^+!Z@&z=TU5y`H9hLndE6q>Vf` zdyc62>6vHf1B52F=)O3vt;(zm-EWM0DSeEp6iy2mp`~6DD^5dvgn3Yo1=(G2Fy!2v zDGxNTymSb7%cS%2JM-^*{Y;qmZafs9t#UwZVc#TtOGisVpO<^x3u$TDI&4fVEeyn# zo5AnuVR_0WL>b^uQwt6`T1`-9kr5E@sd#HHhbfn~H?uia8~)LL`dUM)*U$FF#mE<# zgfk5Yu$~zDuyu9NqhQxQ{=?bpvz2g|lUXm*_v0CA&CQa#FOzh1q`rAdARD!{(A6I| zs{{GBI@Qf1Q$ZB#5WD->&R@w*Gt@O-O2WlJT_890>YtYmAtilGh>p6ZQ2t2g{FcfQ z9q!PI76?Jsl~d2X_~Vi?-pO@c`zM3~(Rqv&d^i*!<%dxDHI z97!=(H(m%+M7P{D??pSQ$T;lJN;1ZAs$y-UNdge8BJD^|E9G1LQ`-_d4|Wxz8TSYyuB)^C@_M?2w1FPEU%gw`x6SBN z6lDSrO}_lmdb576IX1=KN`n*JF|=DS&OD**vzyrVgO#ZNZslqF-vHZUQq-h>?ouVt z15cNu(MkL~&+xl#{Jj24u`4vlUuu>q-l6Zi*C)*-vcV6^y`DpQOyn~DTh~=yp@T_g z7wx`I;mGtv=QQCYe649{Pvexj7K=29==tISCOI&d7C9(;>(umeu-K zF%h9VZPkkJgAM^e3ZJ3yaXO#!GW}zwCva3w2(N?&UJ_*$iiG+za`Z&7z%y~?-%1A{ zGqW!{;qPO;)!s&)MMRf+hO`Bp>E16P9QNJJ;4cNIvt`aUKig6H(`ebE=~iT(!!>J4 z)E3}>m{pF!=%d8He7D-8HGqMqtNHn(T-{p^ue zZq}Fn(7T~nCEp$fe3Xp3r*leVp5vnhb#1C|CQdPoL3XFx)Ug$>7`W(Vlj&otX|Qi8 zN46>p;Vxao1)Jh63N|OcCH9e3(USfiRAU($|Ixxmbh_ewDO*)r8J}OLjx=41u_?oU z7e61=aOA^2U#Cz}43dKxUJImWat|?o^Mw-oB2c;6P4BRjRwslaEpjDws(1*ef%*MW zRpn%y#WAbVTu6+Vm)5<1M;};-ba|Vl+ZLAIGhhnD@El!QE`M!3E*({LVm_MpI`!=F z!}&l`SEt7@gxUxv%?lN7w(F$LkDB)yN@4I#$`QZE2NMkEdLjH^YrvE z*{(KuIV6~*eD2OTy!Vwd*Fv$!&6zJbn32DY8C5P13Jtiq9h=xA*pRWfon}=UP11~q zOny<23!pZ?gZuV4$*j;8T~(KXD7MnzGc}M!y;WE!ZGz$BEcUhw9W|U!PhVlWEPg~m zzuc0j*W3SBHLH?$%u&UwFnSKNhu)%k+F2Jj#1vVvJ!|`29QgfW_{)ScUQ$$EA=;Q; zRK#{hf2{E3HybE=A+yB%`#L#Nvx}l&+X5-c^bC2SU+mgZd3%%H#04&Wi>pCgSV!5M z%>2RA>B?#Hf<7sgOdjLQoDaHm>vNk&0mi!vVa-9v{vfN{{@#**G1Li~gbH@Q<0a?) z_R5=J%!WIRy5Z5cjmcD6A}11$^V>mI8%Z10L)C42t#9gsPFL$|jC|$BOhf`Wk(u_+ zzT!t{(d2Xl)NTnhrBO{}C&%auU%NQgb(J1VVJD11xS7^^5og<>xg0l@BXQ{Tn7xYQ zt5y>oq0sW9GAWa|cPcnYB$3YtsKurj`g|C@V!~I^OafYW<$74ExLIww3dBWslUEj} zrXq8OEH^uE2~CvUoM%u5T<9cPn&0v_Z4ZXb7xPe{-43>RPs@&SLYho|CWW|YYql1f z@?XXGx1IsK?T~{i^*fK9o~d`DSvgsl6^qYw9RMWr^K*}eR);%gFk$MwzEWdz7?MKM ziEP#5>ZlS+qNZ>${;WKJo&?urFDXAr(de9Xjbq9JHNCTEBAL=r0{R8dFhgVGAfW zXO}vRF=t^fBJrWl?G1aGDG^!+iZK>U=fdRa=k8^zRq?Ev#eY0Zgr|wRs_~RAsG-vm> z+_qZH$_|6sEL!!6e?-dNvspgHT>wL^0AFJ;JpfySI?&DP-nIf?DM?9-Y(P4p%z;J- z@p^8%;1A`)h=1c7%%$5qf0IHCW^Cxwh3|$3^`Y{y6J)`L(s(p4AhS<0=+XlZoJm2W z+j3Eyl8i6rrggJBDtz_gbFA;w+*_F23+6FDBFaT_Zc1R@nC!L6?S zK1X~lo2dUtc^1hx9WWG*2wUOR;C`zY&Ya3RM*4$$xUjgWG_bs4MkBy%5ni~jG$2-q z>Lj^;m+VOdmBy}j4mx+15iYmpBfSl<#g2JXT)bVWAgh!%w9d|6qThZ5LZMGq-4VKY zhgbV5Pos7=V*eO%VJ|C1mxt?Z>8vq3sycozptH2saa|xLUjk%nv9{j$IOrX9rRRj< zMqL?-mGHmyU;iH^V!vLHyEmjuk8n?h@Q(gTn@Qm*DOM77y+c+~NQJTXmoA!+q#E zRWnsxeI90}PWOpbRhB_VAwhwHf-1f1d8WSP^S+CznBD8nT25|0|z;M%iS@SGMxPWBDcMG2@iT`{na#V%2aG!ntdlm4k zK}HjSr;eXW!v0m38YqFn3}^lSV&pd3|Jnb)sD*g4gQFP+qW`>$;$eFG{PBVD-#Hc4 zzAG=qKju@jKIXnf*yIFL4(PhDH0)-1qKsyBku?}qGVw}6Gmzp#rsKQ{MrKB&W#eDz zYxi7&(DKm}Mr4`Tel@=1IK)w@M*4sF$WJfeWcOO6WIb#qg775WkPPyO)GtUpflz)Q zOy^|pj*8S~)8Z{WaO$`$hF35uMQ8YY-`bT2=5mW9^|punO@@{wR2(DHHsHQA5L8k` zo=R1jFMUy!nCS?RL{XhE&t=P%`s7+f+))%mvOG*uJuHaGqztp0#)eYr7|2B&I^{~V z(Z;JEenRsg^TBYCimu`7PrUC_b_`t%5dD*BEw11gR^C|x$k#@iNyAAe`TWs80@_5i z-px{F2!>67UI3+J|G@d6xoL_!@_T+AT5phK@Pt!!#DN9DtbEt?!c3I2EZ2k@9 zcY7GQmlW8VC{7aQPF!e#YJqoXn)D8HI`&ibh$2dPBV|VKC3ex8P9!cazChs=rSRs- zifnae5i=HRNGoB)eW&`F)#fLMG+i!EK`m}_)V2r%dkws*)u;*PWr&a;BMqGbH!-%J zy4z@3u4kE-5=_$c;slmVizx&Dz`>Ntt`8qt)EK>Q_ZVQm*igU)2}D@wm^-Y)>f4#PY5%WwGiV{I&I$Gm1t z7)y_@5_MZOc;c2f6&X?3#)wT<33IO>1lU>?a_l5w8gBRqJp=pUs+b#LW9P7U>gq1? z6@n0q4yx(JKRislKQXNr{ju%+qmF*np|ktBg{LtSmQE36!n=PmViUhH*!JG#E~~%7tq03A_`5v6T^dTuFdg#4o zOqyl?3YS&_^e1Xy6-+i-*x{B6mEWC$MWuyRQA|4987RA24ztjFhIakYYG}qsfOobt zV%vbv1VyT^evG00%uqJ|9WJI>OSV;$Am~$9b3q+b9sclJ@ehfQk8ek1bFEu2hKrTz zYC?j2x^U&txAUaQ*)R0aO<(%VH|~oh!v5YoO>G|2aOnJjrxf8$5|Dk_fL-+!I!utm z(_;^5djAn4m8OL__ksu(Y4rKER^t54<3$w4${wmOJ!HSv#f?J<0WnMJkSWih424du+ImGjFXkHA9A+Txu*3CnmSNmqWt@DMs50Z1SY`VZ(^>y8MM^=6_EKub#| zATV5mz1cJeZc2bw^q#aJl(~cAl|q>HeG{E?58P+Fg3#qk`sdGyi`iz($hs-B>r1{WPf5KOi|ncpQAFATsN?pJK&)$Q3+7SyzWDC()8v4mvO zcXaVHA`lHHq|ozF=6OF@j(8E%q_dFjQg#A0*|V=j3GWZp;;@Ia6|C zZ$<6WfQS=az5a0^=Y{-FtnpVBF@))HlsbIv-2fP7v0dcC3y!d$Wx^t6)HA{`9<0Wb zU>20F58~?`=T}B^`2@m4vME`__yG}P^zJ06*zs=5% z?`U13f?~#ozRV@KHcs**nLL}?CUe`=MsNJo|G*!xZtdJ?6784Evs@fG#019^%P9+g;1rQ8m9Q7usd55f)^FT+2MNegYSBNL4J%eitETG{q>b=IOt zv2ArY5?1gPv;LJv*LN|OCiRKl`3{W%$}4k|<+Sgx;t(fjBBxd!EQf>(+A2u`0z)-W zZX!4E(xZ(MVz^kEHyc|FkcHgd@pr)kqW27vUHMngWuq3FtE6n5#;X97lE-ht|F9)_ zUXRmlbaMbK;nMN4jOXs&RGBu$eDD>$jU{+FHm#4wlI^5PEG&fCEPqX`w#L1BQGi#7 zF+3)2{$+~ms_9EzYV5CTrBu4I9)@rt=7?^Fb-TCteE@g+)gElb#Qns9Rc{{S*`1HaMKr<>q{m%~IdAP~dTS)v_QuZqj(8?)>n}x&2RoKFKZ!MxXoOy9vD0)Dzofx7g}^{BmM0{%In?D8ZVW$ChsEO79QAE{ zSR&7T^M$e`%bLn92yk$z(kD%E1CCbyy zITsv^bU3K})te2gOozAqJSSYR8H=Xw+4i`gg#e4BPn?DU&c_HH401!}-9&Oi3CCb)M2kP91FgTFDoOcD^F`pp zZF^Q~PS5J1x%>!=JHi{gXWWz|Fp{X3P)f#{F($Qr7PXeI-megb_)4cXqd2DFSoG0gOIOQ)U zIZX)oH2v>x0E6n!^|_bYZ>2lw=0lp_OQ;7(RnIT`++b4P=`+c&H>eoW z8h9OOXLOIcH;^*6PIr2xyG^%K9?W^F3HTGX=g4P&q}h%}ub^e_8?xVFktpl?Ys^&* z4TE7b^H85tNqrX~`KKS+EiNXtz&r4BofG||w>>&U0WjgI-em+s>stA*Cu^vMTx~Sy zMYP{JLzPZt?%&ls;h&y7Xd>+B$C6JyIU6=|(*mUHJ>=?;lUd6o9 z;IvOV?zQ5HeD`3T0szAi6*E}Q+Mo!kQ@Gy!5HF1wqnCk;_;s>bf1@#HRufudVR(pz zEFL%gc(dqH6cU(279^ZE{9u8{acqN5l`#3`9B&^?5$Sgv{I#H$lEoeFSEH3kcVQae z-yEgyu>&?i{PoutF)jJD>ol_B&q7j=&}$|^&RXgt3AnPK^ixy?5~i=(DaSruCT`Y- zEq<;YbPA43cqzo9+2gy9Jh~eSA#WN&NkIz;R^x^@O^#ns37LatLQqM^$e(b`WJG16 z>?JJZXimnf?_j>-wj8w3=~yN6-}>t$ol6D{{-tibW}AB}u)vn}TjbXnUo5iB$9tBU z)QUg$%a9T(D+rO;)`Y=HJ%s_arc=W+g~qG(1*?=_YrH%U8c>v!uWXdctBAY@8JXkF zIw{}SYZZi!V~oC~3D9!=)8a;Lm7C4*3_BC~R=*`1(pp6RMC7&_1k`sT814QGRVHX_ z;l-0T%b5Iy<#Z!!m($E${tCMZMfS4V*2Pbdz9eWj^)GqO$WIO3^T}B8WV)VJ8vWvi z&ly~Zh(N~v#>9=m*{FlgS=HN?K0Ig1&-@qJve2km-nG!Dxlif*_FBJ@*V3*zV=R|3 zT;N5&bNXT8zLOcb-UAi+6^14sQBS8;|9Ey0yWqjcok%Y?Z^9>N!X#o#cEODA%&gzw z0+hm#QEbgW5*Q>OaidPuOB!2Z%wXbGT^|xoTMKrjd2dT=^x((&!f~%Fha;{{IulaH zhnnNF`r!qw4Cee=e8YR9(a$8shp3#j&SjE#;Py1ohu6!KKZ4gYUsz!S764#U_2~CQ zZAuarTzB}lB|TQpaQWW!c>SyqxqRdh^OtGn$C5@ zIa641E)-aM$Jc>BL0dEk?@CxC(pKnT4LO}f*+Iwp%xP|MQ{fWZ>-^OViA$eBNtN{d z1O*jHM)?L1mmu!>LD+l0^dNWEfAFxfwy+4q;}RIo_CO5(t9ifOyfR;o1UpTbn7G?$ zD6t~wT=<1XPb_cp?t$s838T}j`mpQ}(>YC?*SdhteM&Uv{-n)&^l3EqT^5RtgI&DX7|H+F=cEIyq zid^^6HXMq<4)%syS&5A2r}Jw4O(=NkM%?r;ExJG)i#BJU-*bXQYe&g6ytq zE-<6{n)ESguv|&y*KW+?mHr!|vQ&%|EIikFL5F5lcqIbJ$Ry}tjL3<`5wyxiT+kF? zDDc?>Xs}5OZk-0}7KE*l_5F&cJ({>n5-w&x9*0sU%%&6-ip-3;`}c%IQ*O|32p<%_ zDCa|GaSxiQVUwS4R!D0y+q1HNE99pRW*#U zPbr50;eDu_lwr9Uy>&}HXgmvd6PkETx5Bx__I3B_J`||I$tX$RgA+T9ldY%m9+sB( zvHYrmSM2 zqLq7rjtPvM4wlsF4u|r!)aL2LMfTPWMBAYwq?$yy@Z|$l7$aa~&cK4_-|bWi?~4Q!VLCxJYkjfNmg|KjiA3ucLa;n#y}>G?fS97vE<%3>jD1GxV46h zam(%h%DSR!>$;WJ5byaozL{>r3|R#+cIoSU#4AZVEyJi9yEh!Y2KZJ!*=57KQS851 z;_n}@_nJ^AE{Di=yYJ8!*lHzu%7n$Zh6b+)gq2vBs8q7TmNOXU04CmVT7f~mfovZ^ z5(0?jXS;vGI!)I!F>)3^Q@Ys_4j_XD&7Z}{Szq^t$zJ@4jQ2oI!zVZI5|mMqOqVDcI<&YljlY`JFNmY-l0^PMR?SKBh$P=+mTBPv!es zWijYb8%8wLfP1v{I?8kMW*qoxDvP|g_58sRNvtEc?p;G+>rF|wL3#AkTG;ZrxM!gh zX=Nd&&>&Q&ab8hA;AE(6O`r6bBy9P=`aeIqTJLx94IM@B2fbLJCd{E&mIJxm^2EME zWeg9s$J%x@sSX{T2&L5uv~9!@3D3Ze58+KDbN4i%9TBAcR$Pfy+MR*9!O_A4)#@)4 zMSgDYxYjoR`#q_rM@_!XsfyUuss7cI8L$lT6BTxvyij(x$mUe6d|2bO?OJpp&geb z`wSmYo-aYb9N4+>;~HV#M%5uxX}zLykee$YxL$GS9ECdO%LYEA=J(mPjNZ7uyeZPf%!NFFc1s(rki@w zS!rGz%;scmslJo)t4oF1y;t1ZQmrgRMK22#EY7+!*&Xt;uDB(k%C^R$Ml8mYm4I57 zby=lHKo6K-y|B>Z_spSZ&iM`{wN-q^lG>`PO}-=H1Y+d~s;?l3X>bVi{-F;o3jkM9A-Pr093WD zb}zZKXk2A|{F=Lhz^PG|4t!g-FiYuxW?#7Nagn?DED|J?^HrYhr~Si172pN9IM#A<_?8)t;4y8Pf|?=>&yVM9}mk`rLcCh ztnhTKs%s+k&Ms01u(yKeibuZB{pyJxUXFM#tZHA9ERH==H z{51uCQ;Ng;u_YIqHKHPJHgGl?JMSgK;n7eU#H@mA8@1qF1E*-&E@`rjC-fuS-@5Tl zmg7Y4g?X;>LF$j0p46PdVogga3#yb&j(yVe`0CZJ{RE6o6-oAngQUUj+(is}kOs;6 zd6{0dB8h0?$l<(}R zh|bh0O$}4^{E*`tSAp?7iKywS&WuK0v@w9?UY#(>20cmyfw=SD zWdm`5xdj1cDQb2L`Ev+!@g6)gY+`lnd~rkLCRcY+7cpTo9|y5@i>oc+`ounFFl;O= zC4I1z8+0?hxdyG3Fzi{nH%;a-8b48)*>?JGO8KK?u$cP94J7JImhQL5!-&M&Ty?Vq zm=zyFRoEPWlMpb@cxqn|D`$7PnBxMmsgE+}{Pp%k9IU3C=pk zEV@=A4rFX_T@~aG>pv#oczYuy(}?fsXr&OgxPl9;enPYd6UPA*`B$SCdHya8m*iQv+s~=#0nQ`HKb+13T25<5=mq zy62vb&j1%R*nMTolQGr(Ey+7C#)wiM-_K%1o>PauWgwjHV&EYPu96? zSHsvktZbI6NZlAOiOm}|6``Bcv4!4AP-46q*~EdMwW(F<0mWHd^&eLf-$>0=fp>@Z zBZ{Nn`Psv><&E9_p~jZ@x;4K1TZyq~wYq5|59J6!=dY)BT9V}cnd}aU8|a?f7(jZbG82axnaQyv;?KvU^p%EV(SBh)r*1aHUL(^C^;>U z$oZtRx-Td1(-S4Fi;!rrl<6f@b%TFl(g&ki4tPw4B1JywLc$YUY9F8YcC6qUn{I6; ztDmMyUmqCaOxVS(W=X6$_kB2}Rvd>}*n?rWVD9mtnde}yqnlL)0`Z%-C zsWDa}NOD{ACqxbd+5Pb~8PsD8#k~N?HxQHG8oRSt&kk$2?umIcWM53t{(ao?nOeJ% zpgXxMeXh>AZFhRHmf9Zxg;63lZOQ4hR$BU8*Ia+S(hge+cS*y68$1mzN8-0v8k7fc zt0bLHWCY2!qV`SIbz#pZI1{X9%X_9f-UkxI8O+7oW}vZcP2?qJMagnb%;h^!&$Yrh zT>ARqJRB-^pnQa+c~}1^^;yXcPRamI5OcZ*3Q+mI2!DC!s~V&xCAw;L=mN}Qtj9!@ z6F_EFNch6}zoiPv8dw9JpMa%<5Vak$Mey_ODGfh#+LY>kZoG5n{9<;C9}RpMEVwIq z39E+|vhD$j3&^lt|IrI!jDO*wSnPEa`g+XhzxJD|#2SDzpn2_GdE5=iR^TLW!AxB^F>0 z&_bdBL?WI4-H~N`VNJGv+v3BEA@feUWtWw8%Y#_V?iRz{?H4sSNQCzL0Fg}5}SR8vhl^4WeTbBt^tsgllpg~(e-jy6&6CYXavBdHG|Y0(2%51GJCv=nMgzgr zq4z^e2;=DZ_p6{GlQe3jK>u%}ndvd8I=&&P?ZFw!RLkoi(zVPBC*0v7qP8iCNZE|THlX=Ip`3xA^g z2~;tlkFS1emk}GKd;Zh_ujcn7cR`tY{j)_-5u)K&ug&$s{I>A@NmNN>>HjjL;$=tw z3imSB9_BJ!h(Jn4bcaW_r|c4$C^CX9hFvL5xl;xaNAJ5{Wn0G8($)st=VsFAXe&C& ze|3ssorB_w@qCy!%Qkg(}9yRBlwdxoW5d;if ziqCwT;S7LH@-KGh5&lrF-3#y?^^3>o`O3<8yRcyOIN=#=`)h z3oP;rYw2RC!yQ!d17L7lEw1ptg#jKZk6TL1gE%o6@ZhS|Cc+wkfrA*IiRCh7 z&x(Eayl6mR&0ij%rMH1#P%V8J>|pex${T%K6sBT*v?u)vr-dJ$(|C(ylu^YH_OD}P zbs_^fBS|Q3F5r)ywICH6A2e$V`S;ghRfs{DO{Ft3(~@2Vrmmn1w;5t=x!npGq=Cl~ zX+|4o0`JX<|3?)>NaSQn#f)@pC_24%@6+L8`0o|@KoUdK#vOiEPjX_G?_O>tF;k9J zK5ZK0-VptX2wFqyJweQqhq-3eFlOq@*k*C2bch3xRC)5&=lXlk0hy$xHg_GRDguf! z1jfUQCCWL`T6MyX%Z1LS-@6<&dxCI|pcb`MB06Q3c>b;)M)HD#WVi>|l6iEe_?=w`KAUt$XJ zTYw!!R}+JkE*gDcoj(V5Ct_w(Z^n6cosDxJt8iX2T@KLZh!S&MGt*_?tW(-CJE9T= z#15X!Loj++Q9GYpFYPFy>u}H9pCJ?&{&(+q=CkjYyk5`rp54Bi;z03w)I`*#+ry9y zi9T;F-Efp2Y2c?|V<1UOcEZ+!XQSf28O{__dN1}AR1vt*c0|yBn{uWp7}ZWp zGyw%^o4wopM=Z-<*&XFf&eue1PkvQ354^$Bp2mC9<9-{^&#D!q8p&DhAN+>}q4c${ zUNvvC$#$bV7>iIe0M1**dS1>76{tPGyf``s*E_RU@UwGw(y4+k*0ba*9YbepoOh@ z+O6I4^ERW#I{R9qN^e_n(N?5VrDfpYPLAjAs|Wc_Eu4z4nCV zB`NN*<6!d=48?cyoVe;G+h$1BHIfvC!;O5&5vkjFgkp|UN%i;M!0YEiR@$lQH@pDl z>=-T1hY$$0RF;dFw}hr)8`BmtL+Zni4r3hrr`Bkp)*M; zSGu%=zG_K+OUn>u5}`K>3!DPtTq%Fvfh5~<@kYHuWGTG7`Yc{`9r^RXhwa}DUAome z2^=a?6aa0i-{oEKd1fq_Q*8JJ4iY+PHOTfw8-=w@mX8i~>?SNe*^1&?31LdKzl~9S!vMgN~r?!gkPi9BCoba5;-7 zaexK;(`u&A-V3wX1SMp74cpl##P>dJkciP^cD61Fx%}8AfO?YQMdAX|?Fm2?oh+qWQi?DVH8d|ZGu2+tj1OS^q9Zm- zoy2+o8y6}(EkN}2FN)t_p3S1xj+?JzBXu%ufAjfYky?POPa+{;Q5%b=ul6SmuaSIt z3CB|CiOo_!vX6qv>~=0#I$3oIfBY&J0GXcB)b^sg?nnPAg1Yc(ScNVxos=T|5h}6Q z9m2+g+wm~r789C$?{iw(AKcr6Nq(LE+m?or71&eQaWKazD$4mIF{YI!M{WNB31Uc@ z_S;Wi5<}1z+|8AZAB%1TGoj1vA6Od<)0R{&SeQL*O20(3=|8qG_*BCK*)A4J5Y*vw zVb=_Ac73mfesd5~kWXwiE0f;K5a_G&69H4lwbeQHqpp((%5Fx7fwi8{G#{Z=MVRq# z;U=yUmG@X_-B$|Q<`hSPSzX%gyNU)moPYqEKvX9Kh}PoAZ6zFIec$w<4K9a&F{Qs7 z!DC6C$E^W-Zfiu^)te?9B)RUH9!~vx>Il6;@dSL8|Akw~@eHL7n(Tv9FhjKPsP*;F z2HyN)fBA_iWib+)|7IAtoS&IPSt`z#_Z{r=NHbFV6f#rvzN@(5`_PTP4`r0374pr~ z`WQ!Jq~;_>3#okydK$ng>dOZ4)L7PBfrK_3T7lW0UJoEKGBZk)R=vq z2TXnvLqyQg6vzV))m~Dt|#`YbIM|!{^L`-nZF#P~;y;5uU9z+!;SbHJ6v%J{Z z!F+B3oT#Dz!4!UzW64I?ayLnz;=Z+6i0qoJG>>R}opebHO$gS5#0lJc-ayU_pDUPM zxb=VoWC4LDWS?FhB*Zx>y3PiFT9_158izX>{&rU2&N@0)?n(m~1%dDYLc5Q1n!k5S z(Ifw&1xuXTf033AwOfV)V64(+?biTZ738D0BDV33U<^ zNLlslheAd#?K9gCh+WYsbs$k$o-H?z%3dbRc)%>DmC$E2(I5*L?-Z5%mJrK+ycQ^R zNW}2r_ynMJq1za;6!N*co)~3wS1LMUPXdZ3ka+_>ZT=zac71nWl^qpDx%hYdnggctAJO9(StsX30o^w|}L4%GGJWuGMyk{|@ zSzmn}GJD#SDVPE6%EGZ4jYd)s?=};K5>$Cj!=idDkm%fQg6F?E4-(-Kt7~H(!8<|# zMN?XOuhT~?xZ?Q|k;qU&l(gV^TQ|pvAiv*Y;s%>eAyMwxoI=!7~a3o4|+<_#t^#qxV&bSV8#!#Scs zdPj60BX<<8RV5(Yf!u#@cy~si;R>3i`_rC7ruVTA@aL%M?yo6l4%Vt$d794M<#xC_ zxO2DNNNFk*4zFzjASd|_Q~ka@;HmcKls*_I+F}XB;h?;`F|xn=H2?2Ow4=WRYFsQy z(b__f0mJ%sCCyZ8-EAeWi8I?8w6qgq399S+$_NCJa*QWhl~)gGMtX19(94JmP|V|I%@h9|Fh#l$w?_o J)_yYy`yUONfA|0Z diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/ExportOptions.plist b/plugins/deep-link/examples/app/src-tauri/gen/apple/ExportOptions.plist index b69cf1de8..0428a171b 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/ExportOptions.plist +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/ExportOptions.plist @@ -3,6 +3,6 @@ method - development + debugging diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/LaunchScreen.storyboard b/plugins/deep-link/examples/app/src-tauri/gen/apple/LaunchScreen.storyboard new file mode 100644 index 000000000..dd79351ec --- /dev/null +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/LaunchScreen.storyboard @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/assets/.gitkeep b/plugins/deep-link/examples/app/src-tauri/gen/apple/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/project.pbxproj b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/project.pbxproj index c2e4090ce..450bd8470 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/project.pbxproj +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 56; objects = { /* Begin PBXBuildFile section */ @@ -17,26 +17,28 @@ D01EC573029B7BEC701F6012 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BDF5DBBA740DA7D86791DEC /* WebKit.framework */; }; D4D232DBB85C5C1594FACC3D /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D99665C1C3247732C6BF25F4 /* main.mm */; }; D7A9EBD47413746EDE96BDF8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B18865218362A4BE07527DBD /* CoreGraphics.framework */; }; - FBB3FE3EDDEAF717E61F2AD4 /* libdeep_link_example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DCAEEC42BAB5E4A4757C89C2 /* libdeep_link_example.a */; }; + E26F7FA923DA1EABEE42B63A /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 403FB4BAE59F74EE98EF1EC6 /* libapp.a */; }; + E6992F2651B864B15ED14925 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1846ADCEDC2C208E1037ADC6 /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 1846ADCEDC2C208E1037ADC6 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 1C21C8B4A18EC7D0B5808C10 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; - 1CAAFA750FD735A285DC1238 /* deep-link-example_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "deep-link-example_iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CAAFA750FD735A285DC1238 /* deep-link-example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "deep-link-example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2F316D1CD78DD2E070DA5C17 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 3DD32303BEC377C10162CF69 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; }; + 403FB4BAE59F74EE98EF1EC6 /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = ""; }; 486CAFD81CB14F9A2DF72FDF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 4A33212233BFAA738F6A46FC /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = ""; }; + 4A33212233BFAA738F6A46FC /* lib.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = lib.rs; sourceTree = ""; }; 4BDECB1ED2EEEB5A6A8B8372 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 6BDF5DBBA740DA7D86791DEC /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 8AB0099573FE8BF1DC82CDBA /* deep-link-example_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "deep-link-example_iOS.entitlements"; sourceTree = ""; }; 9435FC7E183EA6260CE76637 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - AEA78299D25FEC31E2988090 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = ""; }; + AEA78299D25FEC31E2988090 /* main.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.rs; sourceTree = ""; }; B005488D1B56B657AB52E28C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; B18865218362A4BE07527DBD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; BF7ECB9AB55B71692A21D5F7 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; D99665C1C3247732C6BF25F4 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; - DCAEEC42BAB5E4A4757C89C2 /* libdeep_link_example.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libdeep_link_example.a; sourceTree = ""; }; ED2B1BC06DFE0498ECDEEE51 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -45,7 +47,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FBB3FE3EDDEAF717E61F2AD4 /* libdeep_link_example.a in Frameworks */, + E26F7FA923DA1EABEE42B63A /* libapp.a in Frameworks */, D7A9EBD47413746EDE96BDF8 /* CoreGraphics.framework in Frameworks */, 017AE826151E36372534A964 /* Metal.framework in Frameworks */, BC36958BBBA7FE61066213D7 /* MetalKit.framework in Frameworks */, @@ -81,6 +83,7 @@ children = ( BF7ECB9AB55B71692A21D5F7 /* assets */, 486CAFD81CB14F9A2DF72FDF /* Assets.xcassets */, + 1846ADCEDC2C208E1037ADC6 /* LaunchScreen.storyboard */, 7D12035C470ED9DAF55A709E /* deep-link-example_iOS */, 84EADC52DA26583ACE816A6D /* Externals */, 146BAF1D709F8A0FE5B07709 /* Sources */, @@ -94,7 +97,7 @@ isa = PBXGroup; children = ( B18865218362A4BE07527DBD /* CoreGraphics.framework */, - DCAEEC42BAB5E4A4757C89C2 /* libdeep_link_example.a */, + 403FB4BAE59F74EE98EF1EC6 /* libapp.a */, ED2B1BC06DFE0498ECDEEE51 /* Metal.framework */, 1C21C8B4A18EC7D0B5808C10 /* MetalKit.framework */, 9435FC7E183EA6260CE76637 /* QuartzCore.framework */, @@ -142,7 +145,7 @@ F9EEBB3248B74B1D6CDA4D84 /* Products */ = { isa = PBXGroup; children = ( - 1CAAFA750FD735A285DC1238 /* deep-link-example_iOS.app */, + 1CAAFA750FD735A285DC1238 /* deep-link-example.app */, ); name = Products; sourceTree = ""; @@ -165,7 +168,7 @@ ); name = "deep-link-example_iOS"; productName = "deep-link-example_iOS"; - productReference = 1CAAFA750FD735A285DC1238 /* deep-link-example_iOS.app */; + productReference = 1CAAFA750FD735A285DC1238 /* deep-link-example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -174,15 +177,11 @@ BCB4BA6E81088C5B470E3436 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; - TargetAttributes = { - A1C635908C823A89928264CD = { - DevelopmentTeam = Q93MBH6S2F; - }; - }; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; }; buildConfigurationList = 8FCB58B8ADB9F9CB9ECE01FA /* Build configuration list for PBXProject "deep-link-example" */; - compatibilityVersion = "Xcode 11.0"; + compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -204,6 +203,7 @@ buildActionMask = 2147483647; files = ( 65A8D948440EDAA7F62BA1F4 /* Assets.xcassets in Resources */, + E6992F2651B864B15ED14925 /* LaunchScreen.storyboard in Resources */, C384FB77F116B05F8E642CA8 /* assets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -225,8 +225,9 @@ outputFileListPaths = ( ); outputPaths = ( - "$(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libdeep_link_example.a", - "$(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libdeep_link_example.a", + "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a", + "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a", + "$(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -320,8 +321,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = "deep-link-example_iOS/deep-link-example_iOS.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Q93MBH6S2F; ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\".\"", @@ -331,10 +335,28 @@ "$(inherited)", "@executable_path/Frameworks", ); - "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - PRODUCT_BUNDLE_IDENTIFIER = "com.tauri.deep-link-example"; + "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = ( + "$(inherited)", + "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)", + "$(SDKROOT)/usr/lib/swift", + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)", + ); + "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.deep-link-example; PRODUCT_NAME = "deep-link-example"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -409,8 +431,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = "deep-link-example_iOS/deep-link-example_iOS.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Q93MBH6S2F; ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\".\"", @@ -420,10 +445,28 @@ "$(inherited)", "@executable_path/Frameworks", ); - "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - PRODUCT_BUNDLE_IDENTIFIER = "com.tauri.deep-link-example"; + "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = ( + "$(inherited)", + "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)", + "$(SDKROOT)/usr/lib/swift", + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)", + ); + "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.deep-link-example; PRODUCT_NAME = "deep-link-example"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/xcshareddata/xcschemes/deep-link-example_iOS.xcscheme b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/xcshareddata/xcschemes/deep-link-example_iOS.xcscheme index 7c19e9331..a8fbc97e0 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/xcshareddata/xcschemes/deep-link-example_iOS.xcscheme +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example.xcodeproj/xcshareddata/xcschemes/deep-link-example_iOS.xcscheme @@ -1,6 +1,6 @@ UIInterfaceOrientationLandscapeRight - + \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements index 3216c743b..72f5d991b 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements @@ -6,6 +6,7 @@ applinks:fabianlars.de applinks:tauri.app + applinks:91f4-177-23-156-161.ngrok-free.app \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml b/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml index d369b8dc8..68eb0f4c5 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml @@ -4,7 +4,7 @@ name: deep-link-example options: - bundleIdPrefix: com.tauri + bundleIdPrefix: com.tauri.deep-link-example deploymentTarget: iOS: 13.0 fileGroups: [../../src] @@ -40,6 +40,7 @@ targets: - path: assets buildPhase: resources type: folder + - path: LaunchScreen.storyboard info: path: deep-link-example_iOS/Info.plist properties: @@ -67,14 +68,16 @@ targets: base: ENABLE_BITCODE: false ARCHS: [arm64, arm64-sim] - VALID_ARCHS: arm64 arm64-sim - LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) - LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) - LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) + VALID_ARCHS: arm64 arm64-sim + LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) + LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) + LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true + EXCLUDED_ARCHS[sdk=iphonesimulator*]: arm64 + EXCLUDED_ARCHS[sdk=iphoneos*]: arm64-sim x86_64 groups: [app] dependencies: - - framework: libdeep_link_example.a + - framework: libapp.a embed: false - sdk: CoreGraphics.framework - sdk: Metal.framework @@ -88,5 +91,6 @@ targets: name: Build Rust Code basedOnDependencyAnalysis: false outputFiles: - - $(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libdeep_link_example.a - - $(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libdeep_link_example.a + - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a + - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a + - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/src/lib.rs b/plugins/deep-link/examples/app/src-tauri/src/lib.rs index 32dc98536..c3948d907 100644 --- a/plugins/deep-link/examples/app/src-tauri/src/lib.rs +++ b/plugins/deep-link/examples/app/src-tauri/src/lib.rs @@ -14,6 +14,11 @@ fn greet(name: &str) -> String { pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_deep_link::init()) + .plugin( + tauri_plugin_log::Builder::default() + .level(log::LevelFilter::Info) + .build(), + ) .setup(|app| { app.listen("deep-link://new-url", |url| { dbg!(url); diff --git a/plugins/deep-link/examples/app/src-tauri/tauri.conf.json b/plugins/deep-link/examples/app/src-tauri/tauri.conf.json index fab85cb7d..8ce12b266 100644 --- a/plugins/deep-link/examples/app/src-tauri/tauri.conf.json +++ b/plugins/deep-link/examples/app/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "productName": "deep-link-example", - "version": "0.0.0", + "version": "0.1.0", "identifier": "com.tauri.deep-link-example", "build": { "devUrl": "http://localhost:1420", diff --git a/plugins/shell/guest-js/index.ts b/plugins/shell/guest-js/index.ts index 4cad60ca4..ad90aeb6c 100644 --- a/plugins/shell/guest-js/index.ts +++ b/plugins/shell/guest-js/index.ts @@ -22,7 +22,7 @@ * Each CLI is a configuration object `{ name: string, cmd: string, sidecar?: bool, args?: boolean | Arg[] }`. * * - `name`: the unique identifier of the command, passed to the {@link Command.create | Command.create function}. - * If it's a sidecar, this must be the value defined on `tauri.conf.json > tauri > bundle > externalBin`. + * If it's a sidecar, this must be the value defined on `tauri.conf.json > bundle > externalBin`. * - `cmd`: the program that is executed on this configuration. If it's a sidecar, this value is ignored. * - `sidecar`: whether the object configures a sidecar or a system program. * - `args`: the arguments that can be passed to the program. By default no arguments are allowed. diff --git a/plugins/shell/src/error.rs b/plugins/shell/src/error.rs index dfed22a15..652421b8f 100644 --- a/plugins/shell/src/error.rs +++ b/plugins/shell/src/error.rs @@ -20,7 +20,7 @@ pub enum Error { #[error(transparent)] Scope(#[from] crate::scope::Error), /// Sidecar not allowed by the configuration. - #[error("sidecar not configured under `tauri.conf.json > tauri > bundle > externalBin`: {0}")] + #[error("sidecar not configured under `tauri.conf.json > bundle > externalBin`: {0}")] SidecarNotAllowed(PathBuf), /// Program not allowed by the scope. #[error("program not allowed on the configured shell scope: {0}")] From cf4d7d4e6cc52bdfa26d1287976c06b6ec152c4e Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Wed, 4 Sep 2024 14:54:23 +0300 Subject: [PATCH 520/643] chore: adjust prettier config, .gitignore and use taplo to format toml files (#1728) * chore: adjust prettier config, .gitignore and use taplo to format toml files This brings the plugins-workspace repository to the same code style of the main tauri repo * format toml * ignore examples gen dir * add .vscode/extensions.json * remove packageManager field * fmt * fix audit * taplo ignore permissions autogenerated files * remove create dummy dist * fix prettier workflow * install fmt in prettier workflow --------- Co-authored-by: Lucas Nogueira --- .cargo/audit.toml | 4 +- .github/workflows/audit-javascript.yml | 16 +- .github/workflows/audit-rust.yml | 14 +- .github/workflows/check-generated-files.yml | 6 +- .../workflows/covector-comment-on-fork.yml | 2 +- .github/workflows/covector-status.yml | 4 +- .../workflows/covector-version-or-publish.yml | 14 +- .github/workflows/fmt.yml | 59 ++ .github/workflows/integration-tests.yml | 8 +- .github/workflows/lint-javascript.yml | 46 +- .github/workflows/lint-rust.yml | 34 +- .github/workflows/sync.yml | 2 +- .github/workflows/test-rust.yml | 44 +- .gitignore | 60 +- .prettierignore | 26 +- .prettierrc | 5 + .scripts/ci/check-license-header.js | 118 ++-- .vscode/extensions.json | 8 + README.md | 58 +- SECURITY.md | 2 +- eslint.config.js | 46 +- examples/api/.gitignore | 6 +- examples/api/dist/.gitkeep | 0 examples/api/isolation-dist/index.js | 4 +- examples/api/jsconfig.json | 10 +- examples/api/package.json | 2 +- examples/api/src-tauri/gen/apple/project.yml | 4 +- examples/api/src/app.css | 2 +- examples/api/src/lib/utils.js | 14 +- examples/api/src/main.js | 12 +- examples/api/unocss.config.js | 90 +-- examples/api/vite.config.js | 30 +- package.json | 9 +- plugins/autostart/.gitignore | 1 - plugins/autostart/Cargo.toml | 6 +- plugins/autostart/README.md | 8 +- plugins/autostart/SECURITY.md | 2 +- plugins/autostart/guest-js/index.ts | 8 +- plugins/autostart/permissions/default.toml | 6 +- plugins/autostart/rollup.config.js | 4 +- plugins/barcode-scanner/.gitignore | 1 - plugins/barcode-scanner/Cargo.toml | 8 +- plugins/barcode-scanner/README.md | 4 +- plugins/barcode-scanner/SECURITY.md | 1 - plugins/barcode-scanner/guest-js/index.ts | 58 +- plugins/barcode-scanner/rollup.config.js | 4 +- plugins/biometric/.gitignore | 1 - plugins/biometric/Cargo.toml | 8 +- plugins/biometric/README.md | 4 +- plugins/biometric/SECURITY.md | 2 +- plugins/biometric/guest-js/index.ts | 56 +- plugins/biometric/permissions/default.toml | 5 +- plugins/biometric/rollup.config.js | 4 +- plugins/cli/Cargo.toml | 6 +- plugins/cli/README.md | 12 +- plugins/cli/SECURITY.md | 2 +- plugins/cli/guest-js/index.ts | 20 +- plugins/cli/rollup.config.js | 4 +- plugins/clipboard-manager/.gitignore | 1 - plugins/clipboard-manager/Cargo.toml | 8 +- plugins/clipboard-manager/README.md | 12 +- plugins/clipboard-manager/SECURITY.md | 2 +- plugins/clipboard-manager/guest-js/index.ts | 38 +- plugins/clipboard-manager/rollup.config.js | 4 +- plugins/deep-link/.gitignore | 1 - plugins/deep-link/.test-server/server.js | 30 +- plugins/deep-link/Cargo.toml | 6 +- plugins/deep-link/README.md | 6 +- plugins/deep-link/SECURITY.md | 2 +- .../app/src-tauri/gen/apple/project.yml | 4 +- .../examples/app/src-tauri/server.js | 32 +- plugins/deep-link/examples/app/src/main.ts | 34 +- plugins/deep-link/examples/app/vite.config.ts | 22 +- plugins/deep-link/guest-js/index.ts | 24 +- plugins/deep-link/rollup.config.js | 4 +- plugins/dialog/.gitignore | 1 - plugins/dialog/Cargo.toml | 8 +- plugins/dialog/SECURITY.md | 2 +- plugins/dialog/guest-js/index.ts | 104 ++-- plugins/dialog/guest-js/init.ts | 18 +- plugins/dialog/permissions/default.toml | 10 +- plugins/dialog/rollup.config.js | 22 +- plugins/fs/.gitignore | 1 - plugins/fs/Cargo.toml | 6 +- plugins/fs/README.md | 4 +- plugins/fs/SECURITY.md | 2 - plugins/fs/guest-js/index.ts | 536 +++++++++--------- .../permissions/create-app-specific-dirs.toml | 2 +- plugins/fs/permissions/default.toml | 6 +- plugins/fs/permissions/read-all.toml | 28 +- .../read-app-specific-dirs-recursive.toml | 14 +- plugins/fs/permissions/read-files.toml | 22 +- plugins/fs/permissions/write-all.toml | 20 +- plugins/fs/permissions/write-files.toml | 18 +- plugins/fs/rollup.config.js | 4 +- plugins/geolocation/.gitignore | 1 - plugins/geolocation/Cargo.toml | 8 +- plugins/geolocation/README.md | 8 +- plugins/geolocation/SECURITY.md | 2 +- plugins/geolocation/guest-js/bindings.ts | 176 +++--- plugins/geolocation/guest-js/index.ts | 22 +- plugins/geolocation/rollup.config.js | 4 +- plugins/global-shortcut/Cargo.toml | 6 +- plugins/global-shortcut/README.md | 10 +- plugins/global-shortcut/SECURITY.md | 2 +- plugins/global-shortcut/guest-js/index.ts | 38 +- plugins/global-shortcut/rollup.config.js | 4 +- plugins/haptics/.gitignore | 1 - plugins/haptics/Cargo.toml | 8 +- plugins/haptics/README.md | 12 +- plugins/haptics/SECURITY.md | 2 +- plugins/haptics/guest-js/bindings.ts | 120 ++-- plugins/haptics/guest-js/index.ts | 8 +- plugins/haptics/rollup.config.js | 4 +- plugins/http/Cargo.toml | 6 +- plugins/http/README.md | 10 +- plugins/http/SECURITY.md | 2 +- plugins/http/guest-js/index.ts | 122 ++-- plugins/http/rollup.config.js | 4 +- plugins/localhost/Cargo.toml | 4 +- plugins/localhost/SECURITY.md | 2 +- plugins/log/.gitignore | 2 - plugins/log/Cargo.toml | 6 +- plugins/log/README.md | 12 +- plugins/log/SECURITY.md | 1 + plugins/log/guest-js/index.ts | 98 ++-- plugins/log/rollup.config.js | 4 +- plugins/nfc/.gitignore | 1 - plugins/nfc/Cargo.toml | 8 +- plugins/nfc/README.md | 6 +- plugins/nfc/SECURITY.md | 2 +- plugins/nfc/guest-js/index.ts | 212 ++++--- plugins/nfc/permissions/default.toml | 5 +- plugins/nfc/rollup.config.js | 4 +- plugins/notification/.gitignore | 1 - plugins/notification/Cargo.toml | 6 +- plugins/notification/README.md | 15 +- plugins/notification/SECURITY.md | 2 +- plugins/notification/guest-js/index.ts | 258 ++++----- plugins/notification/guest-js/init.ts | 85 ++- plugins/notification/permissions/default.toml | 2 +- plugins/notification/rollup.config.js | 22 +- plugins/os/Cargo.toml | 6 +- plugins/os/README.md | 4 +- plugins/os/SECURITY.md | 2 +- plugins/os/guest-js/index.ts | 88 +-- plugins/os/permissions/default.toml | 16 +- plugins/os/rollup.config.js | 4 +- plugins/os/src/init.js | 8 +- plugins/persisted-scope/Cargo.toml | 4 +- plugins/persisted-scope/SECURITY.md | 2 +- plugins/positioner/.gitignore | 1 - plugins/positioner/Cargo.toml | 6 +- plugins/positioner/README.md | 4 +- plugins/positioner/SECURITY.md | 2 +- plugins/positioner/guest-js/index.ts | 10 +- plugins/positioner/rollup.config.js | 4 +- plugins/process/Cargo.toml | 6 +- plugins/process/README.md | 6 +- plugins/process/SECURITY.md | 2 +- plugins/process/guest-js/index.ts | 8 +- plugins/process/permissions/default.toml | 5 +- plugins/process/rollup.config.js | 4 +- plugins/shell/.gitignore | 1 - plugins/shell/Cargo.toml | 6 +- plugins/shell/README.md | 4 +- plugins/shell/SECURITY.md | 2 +- plugins/shell/guest-js/index.ts | 256 ++++----- plugins/shell/guest-js/init.ts | 40 +- plugins/shell/permissions/default.toml | 4 +- plugins/shell/rollup.config.js | 22 +- plugins/single-instance/Cargo.toml | 4 +- plugins/single-instance/SECURITY.md | 2 +- plugins/sql/.gitignore | 1 - plugins/sql/Cargo.toml | 6 +- plugins/sql/README.md | 38 +- plugins/sql/SECURITY.md | 2 +- plugins/sql/guest-js/index.ts | 48 +- plugins/sql/permissions/default.toml | 6 +- plugins/sql/rollup.config.js | 4 +- plugins/store/.gitignore | 1 - plugins/store/Cargo.toml | 6 +- plugins/store/README.md | 18 +- plugins/store/SECURITY.md | 2 +- .../examples/AppSettingsManager/src/main.ts | 10 +- .../AppSettingsManager/vite.config.ts | 8 +- plugins/store/guest-js/index.ts | 102 ++-- plugins/store/rollup.config.js | 4 +- plugins/stronghold/.gitignore | 1 - plugins/stronghold/Cargo.toml | 6 +- plugins/stronghold/SECURITY.md | 2 +- plugins/stronghold/guest-js/index.ts | 286 +++++----- plugins/stronghold/rollup.config.js | 4 +- plugins/updater/Cargo.toml | 8 +- plugins/updater/README.md | 10 +- plugins/updater/SECURITY.md | 2 +- plugins/updater/guest-js/index.ts | 108 ++-- plugins/updater/permissions/default.toml | 8 +- plugins/updater/rollup.config.js | 4 +- plugins/upload/.gitignore | 1 - plugins/upload/Cargo.toml | 6 +- plugins/upload/README.md | 20 +- plugins/upload/SECURITY.md | 2 +- plugins/upload/guest-js/index.ts | 46 +- plugins/upload/permissions/default.toml | 5 +- plugins/upload/rollup.config.js | 4 +- plugins/websocket/.gitignore | 2 - plugins/websocket/Cargo.toml | 6 +- plugins/websocket/README.md | 8 +- plugins/websocket/SECURITY.md | 2 +- .../websocket/examples/tauri-app/src/main.ts | 48 +- .../examples/tauri-app/src/style.css | 4 +- plugins/websocket/guest-js/index.ts | 96 ++-- plugins/websocket/rollup.config.js | 4 +- plugins/window-state/.gitignore | 1 - plugins/window-state/Cargo.toml | 6 +- plugins/window-state/README.md | 10 +- plugins/window-state/SECURITY.md | 2 +- plugins/window-state/guest-js/index.ts | 18 +- plugins/window-state/rollup.config.js | 4 +- pnpm-lock.yaml | 54 +- shared/rollup.config.js | 58 +- shared/template/.gitignore | 1 - shared/template/Cargo.toml | 6 +- shared/template/SECURITY.md | 2 +- shared/template/rollup.config.js | 4 +- taplo.toml | 1 + 227 files changed, 2534 insertions(+), 2505 deletions(-) create mode 100644 .github/workflows/fmt.yml create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 examples/api/dist/.gitkeep delete mode 100644 plugins/autostart/.gitignore delete mode 100644 plugins/barcode-scanner/.gitignore delete mode 100644 plugins/biometric/.gitignore delete mode 100644 plugins/clipboard-manager/.gitignore delete mode 100644 plugins/deep-link/.gitignore delete mode 100644 plugins/dialog/.gitignore delete mode 100644 plugins/fs/.gitignore delete mode 100644 plugins/geolocation/.gitignore delete mode 100644 plugins/haptics/.gitignore delete mode 100644 plugins/log/.gitignore delete mode 100644 plugins/nfc/.gitignore delete mode 100644 plugins/notification/.gitignore delete mode 100644 plugins/positioner/.gitignore delete mode 100644 plugins/shell/.gitignore delete mode 100644 plugins/sql/.gitignore delete mode 100644 plugins/store/.gitignore delete mode 100644 plugins/stronghold/.gitignore delete mode 100644 plugins/upload/.gitignore delete mode 100644 plugins/websocket/.gitignore delete mode 100644 plugins/window-state/.gitignore delete mode 100644 shared/template/.gitignore create mode 100644 taplo.toml diff --git a/.cargo/audit.toml b/.cargo/audit.toml index 23c3852b7..268d3716b 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -7,5 +7,5 @@ ignore = [ # wry needs kuchiki on Android "RUSTSEC-2023-0019", # atty is only used when the `colored` feature is enabled on tauri-plugin-log - "RUSTSEC-2021-0145" -] \ No newline at end of file + "RUSTSEC-2021-0145", +] diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml index ac6f6af13..702811c24 100644 --- a/.github/workflows/audit-javascript.yml +++ b/.github/workflows/audit-javascript.yml @@ -7,23 +7,23 @@ name: Audit JavaScript on: workflow_dispatch: schedule: - - cron: "0 0 * * *" + - cron: '0 0 * * *' push: branches: - v1 - v2 paths: - - ".github/workflows/audit-javascript.yml" - - "**/pnpm-lock.yaml" - - "**/package.json" + - '.github/workflows/audit-javascript.yml' + - '**/pnpm-lock.yaml' + - '**/package.json' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/audit-javascript.yml" - - "**/pnpm-lock.yaml" - - "**/package.json" + - '.github/workflows/audit-javascript.yml' + - '**/pnpm-lock.yaml' + - '**/package.json' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -43,7 +43,7 @@ jobs: ${{ runner.os }}- - uses: actions/setup-node@v4 with: - node-version: "lts/*" + node-version: 'lts/*' - uses: pnpm/action-setup@v4 with: version: 9.x.x diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index 70674c1cb..e0c72a899 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -7,23 +7,23 @@ name: Audit Rust on: workflow_dispatch: schedule: - - cron: "0 0 * * *" + - cron: '0 0 * * *' push: branches: - v1 - v2 paths: - - ".github/workflows/audit-rust.yml" - - "**/Cargo.lock" - - "**/Cargo.toml" + - '.github/workflows/audit-rust.yml' + - '**/Cargo.lock' + - '**/Cargo.toml' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/audit-rust.yml" - - "**/Cargo.lock" - - "**/Cargo.toml" + - '.github/workflows/audit-rust.yml' + - '**/Cargo.lock' + - '**/Cargo.toml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/check-generated-files.yml b/.github/workflows/check-generated-files.yml index e59198961..96bbdd05a 100644 --- a/.github/workflows/check-generated-files.yml +++ b/.github/workflows/check-generated-files.yml @@ -7,8 +7,8 @@ name: check generated files on: pull_request: paths: - - ".github/workflows/check-generated-files.yml" - - "**/guest-js/**" + - '.github/workflows/check-generated-files.yml' + - '**/guest-js/**' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -136,7 +136,7 @@ jobs: ${{ runner.os }}- - uses: actions/setup-node@v4 with: - node-version: "lts/*" + node-version: 'lts/*' - uses: pnpm/action-setup@v4 with: version: 9.x.x diff --git a/.github/workflows/covector-comment-on-fork.yml b/.github/workflows/covector-comment-on-fork.yml index 69c85857b..494a53488 100644 --- a/.github/workflows/covector-comment-on-fork.yml +++ b/.github/workflows/covector-comment-on-fork.yml @@ -27,4 +27,4 @@ jobs: uses: jbolda/covector/packages/action@covector-v0 with: token: ${{ secrets.GITHUB_TOKEN }} - command: "status" + command: 'status' diff --git a/.github/workflows/covector-status.yml b/.github/workflows/covector-status.yml index 8087bc71a..7eeda427b 100644 --- a/.github/workflows/covector-status.yml +++ b/.github/workflows/covector-status.yml @@ -17,6 +17,6 @@ jobs: uses: jbolda/covector/packages/action@covector-v0 id: covector with: - command: "status" + command: 'status' token: ${{ secrets.GITHUB_TOKEN }} - comment: true \ No newline at end of file + comment: true diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index c2af8a678..22e945afd 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -34,8 +34,8 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: "lts/*" - registry-url: "https://registry.npmjs.org" + node-version: 'lts/*' + registry-url: 'https://registry.npmjs.org' - uses: pnpm/action-setup@v4 with: @@ -65,7 +65,7 @@ jobs: NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }} with: token: ${{ secrets.GITHUB_TOKEN }} - command: "version-or-publish" + command: 'version-or-publish' createRelease: true recognizeContributors: true @@ -78,8 +78,8 @@ jobs: uses: tauri-apps/create-pull-request@v3 if: steps.covector.outputs.commandRan == 'version' with: - title: "Publish New Versions (${{ github.ref_name }})" - commit-message: "publish new versions" - labels: "version updates" - branch: "ci/release-${{ github.ref_name }}" + title: 'Publish New Versions (${{ github.ref_name }})' + commit-message: 'publish new versions' + labels: 'version updates' + branch: 'ci/release-${{ github.ref_name }}' body: ${{ steps.covector.outputs.change }} diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml new file mode 100644 index 000000000..bd378799e --- /dev/null +++ b/.github/workflows/fmt.yml @@ -0,0 +1,59 @@ +# Copyright 2019-2023 Tauri Programme within The Commons Conservancy +# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: MIT + +name: check formatting + +on: + pull_request: + +jobs: + rustfmt: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: install Rust stable and rustfmt + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + + - name: run cargo fmt + run: cargo fmt --all -- --check + + prettier: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Cache pnpm modules + uses: actions/cache@v4 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + - uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - uses: pnpm/action-setup@v4 + with: + version: 9.x.x + run_install: true + - run: pnpm format:check + + taplo: + name: taplo (.toml files) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + + - name: install taplo-cli + uses: taiki-e/install-action@v2 + with: + tool: taplo-cli + + - run: taplo fmt --check --diff diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 5ded783b1..fbbca96ab 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -10,15 +10,15 @@ on: - v1 - v2 paths: - - ".github/workflows/integration-tests.yml" - - "plugins/updater/src/**" + - '.github/workflows/integration-tests.yml' + - 'plugins/updater/src/**' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/integration-tests.yml" - - "plugins/updater/src/**" + - '.github/workflows/integration-tests.yml' + - 'plugins/updater/src/**' jobs: run-integration-tests: diff --git a/.github/workflows/lint-javascript.yml b/.github/workflows/lint-javascript.yml index 82cc7e54b..df6b17d9b 100644 --- a/.github/workflows/lint-javascript.yml +++ b/.github/workflows/lint-javascript.yml @@ -10,23 +10,23 @@ on: - v1 - v2 paths: - - ".github/workflows/lint-javascript.yml" - - "plugins/*/guest-js/**" - - ".eslintignore" - - ".eslintrc.json" - - ".prettierignore" - - "**/package.json" + - '.github/workflows/lint-javascript.yml' + - 'plugins/*/guest-js/**' + - '.eslintignore' + - '.eslintrc.json' + - '.prettierignore' + - '**/package.json' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/lint-javascript.yml" - - "plugins/*/guest-js/**" - - ".eslintignore" - - ".eslintrc.json" - - ".prettierignore" - - "**/package.json" + - '.github/workflows/lint-javascript.yml' + - 'plugins/*/guest-js/**' + - '.eslintignore' + - '.eslintrc.json' + - '.prettierignore' + - '**/package.json' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -46,30 +46,10 @@ jobs: ${{ runner.os }}- - uses: actions/setup-node@v4 with: - node-version: "lts/*" + node-version: 'lts/*' - uses: pnpm/action-setup@v4 with: version: 9.x.x run_install: true - name: eslint run: pnpm lint - prettier: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Cache pnpm modules - uses: actions/cache@v4 - with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- - - uses: actions/setup-node@v4 - with: - node-version: "lts/*" - - uses: pnpm/action-setup@v4 - with: - version: 9.x.x - run_install: true - - name: prettier check - run: pnpm format-check diff --git a/.github/workflows/lint-rust.yml b/.github/workflows/lint-rust.yml index abfcbf6cd..74d9d7666 100644 --- a/.github/workflows/lint-rust.yml +++ b/.github/workflows/lint-rust.yml @@ -10,19 +10,19 @@ on: - v1 - v2 paths: - - ".github/workflows/lint-rust.yml" - - "plugins/*/src/**" - - "!plugins/*/src/api-iife.js" - - "**/Cargo.toml" + - '.github/workflows/lint-rust.yml' + - 'plugins/*/src/**' + - '!plugins/*/src/api-iife.js' + - '**/Cargo.toml' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/lint-rust.yml" - - "plugins/*/src/**" - - "!plugins/*/src/api-iife.js" - - "**/Cargo.toml" + - '.github/workflows/lint-rust.yml' + - 'plugins/*/src/**' + - '!plugins/*/src/api-iife.js' + - '**/Cargo.toml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -147,10 +147,6 @@ jobs: - uses: Swatinem/rust-cache@v2 - - name: create dummy dist - working-directory: examples/api - run: mkdir dist - - name: clippy ${{ matrix.package }} if: matrix.package != 'tauri-plugin-sql' run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings @@ -162,17 +158,3 @@ jobs: - name: clippy ${{ matrix.package }} postgres if: matrix.package == 'tauri-plugin-sql' run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features postgres -- -D warnings - - fmt: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Install rustfmt with nightly toolchain - uses: dtolnay/rust-toolchain@nightly - with: - components: rustfmt - - - name: Check formatting - run: cargo fmt --all -- --check diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 702c62f17..3b8e70db4 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -34,7 +34,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: "lts/*" + node-version: 'lts/*' - uses: pnpm/action-setup@v4 with: diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 7a76cab2f..75b1e55fc 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -10,21 +10,21 @@ on: - v1 - v2 paths: - - ".github/workflows/test-rust.yml" - - "plugins/*/src/**" - - "!plugins/*/src/api-iife.js" - - "**/Cargo.toml" - - "**/Cargo.lock" + - '.github/workflows/test-rust.yml' + - 'plugins/*/src/**' + - '!plugins/*/src/api-iife.js' + - '**/Cargo.toml' + - '**/Cargo.lock' pull_request: branches: - v1 - v2 paths: - - ".github/workflows/test-rust.yml" - - "plugins/*/src/**" - - "!plugins/*/src/api-iife.js" - - "**/Cargo.toml" - - "**/Cargo.lock" + - '.github/workflows/test-rust.yml' + - 'plugins/*/src/**' + - '!plugins/*/src/api-iife.js' + - '**/Cargo.toml' + - '**/Cargo.lock' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -163,32 +163,32 @@ jobs: - { target: x86_64-pc-windows-msvc, os: windows-latest, - runner: "cargo", - command: "test", + runner: 'cargo', + command: 'test' } - { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, - runner: "cargo", - command: "test", + runner: 'cargo', + command: 'test' } - { target: aarch64-apple-darwin, os: macos-latest, - runner: "cargo", - command: "test", + runner: 'cargo', + command: 'test' } - { target: aarch64-apple-ios, os: macos-latest, - runner: "cargo", - command: "build", + runner: 'cargo', + command: 'build' } - { target: aarch64-linux-android, os: ubuntu-latest, - runner: "cross", - command: "build", + runner: 'cross', + command: 'build' } runs-on: ${{ matrix.platform.os }} @@ -210,10 +210,6 @@ jobs: with: key: cache-${{ matrix.package }}-${{ matrix.platform.target }} - - name: create dummy dist - working-directory: examples/api - run: mkdir dist - - name: install cross if: ${{ matrix.platform.runner == 'cross' }} run: cargo +stable install cross --git https://github.com/cross-rs/cross diff --git a/.gitignore b/.gitignore index dc9385b7f..f9d6a360f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,52 @@ -target -node_modules -dist-js -dist +# dependency directories +node_modules/ +target/ + +# Optional npm and yarn cache directory +.npm/ +.yarn/ + +# Output of 'npm pack' +*.tgz + +# dotenv environment variables file +.env + +# .vscode workspace settings file +.vscode/settings.json + +# npm, yarn and bun lock files +package-lock.json +yarn.lock +bun.lockb + +# rust compiled folders +target/ + +# compiled plugins +dist-js/ + +# plugins .tauri director +/plugins/*/.tauri + +# 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 -.vscode -.gradle -**/capabilities/schemas -.build -.tauri \ No newline at end of file +debug.log +TODO.md \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index c5d0524a8..82c1a32ef 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,12 +1,22 @@ -target -node_modules -dist -dist-js +/.changes +/.vscode + +# dependcies and artifacts directories +node_modules/ +target/ +dist-js/ +dist/ + +# lock files pnpm-lock.yaml -Cargo.lock -.build -build + +# examples gen directory +examples/*/src-tauri/gen/ +plugins/examples/*/src-tauri/gen/ + +# autogenerated files +**/autogenerated/**/*.md api-iife.js init-iife.js -intermediates/ +CHANGELOG.md *schema.json \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..299b9e14e --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "semi": false, + "trailingComma": "none" +} diff --git a/.scripts/ci/check-license-header.js b/.scripts/ci/check-license-header.js index 7c69bb33b..ed6538097 100644 --- a/.scripts/ci/check-license-header.js +++ b/.scripts/ci/check-license-header.js @@ -2,129 +2,129 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import fs from "fs"; -import path from "path"; -import readline from "readline"; +import fs from 'fs' +import path from 'path' +import readline from 'readline' const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy SPDX-License-Identifier: Apache-2.0 -SPDX-License-Identifier: MIT`; +SPDX-License-Identifier: MIT` const ignoredLicenses = [ - "// Copyright 2021 Flavio Oliveira", - "// Copyright 2021 Jonas Kruckenberg", - "// Copyright 2018-2023 the Deno authors.", -]; + '// Copyright 2021 Flavio Oliveira', + '// Copyright 2021 Jonas Kruckenberg', + '// Copyright 2018-2023 the Deno authors.' +] -const extensions = [".rs", ".js", ".ts", ".yml", ".swift", ".kt"]; +const extensions = ['.rs', '.js', '.ts', '.yml', '.swift', '.kt'] const ignore = [ - "target", - "templates", - "node_modules", - "gen", - "dist", - "dist-js", - ".svelte-kit", - "api-iife.js", - "init-iife.js", - ".build", - "notify_rust", -]; + 'target', + 'templates', + 'node_modules', + 'gen', + 'dist', + 'dist-js', + '.svelte-kit', + 'api-iife.js', + 'init-iife.js', + '.build', + 'notify_rust' +] async function checkFile(file) { if ( extensions.some((e) => file.endsWith(e)) && !ignore.some((i) => file.includes(`${path.sep}${i}`)) ) { - const fileStream = fs.createReadStream(file); + const fileStream = fs.createReadStream(file) const rl = readline.createInterface({ input: fileStream, - crlfDelay: Infinity, - }); + crlfDelay: Infinity + }) - let contents = ``; - let i = 0; + let contents = `` + let i = 0 for await (let line of rl) { // ignore empty lines, allow shebang, swift-tools-version and bundler license if ( line.length === 0 || - line.startsWith("#!") || - line.startsWith("// swift-tools-version:") || + line.startsWith('#!') || + line.startsWith('// swift-tools-version:') || ignoredLicenses.includes(line) ) { - continue; + continue } // strip comment marker - if (line.startsWith("// ")) { - line = line.substring(3); - } else if (line.startsWith("# ")) { - line = line.substring(2); + if (line.startsWith('// ')) { + line = line.substring(3) + } else if (line.startsWith('# ')) { + line = line.substring(2) } - contents += line; + contents += line if (++i === 3) { - break; + break } - contents += "\n"; + contents += '\n' } if (contents !== header) { - return true; + return true } } - return false; + return false } async function check(src) { - const missingHeader = []; + const missingHeader = [] 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)) { - continue; + continue } if (entry.isDirectory()) { - const missing = await check(p); - missingHeader.push(...missing); + const missing = await check(p) + missingHeader.push(...missing) } else { - const isMissing = await checkFile(p); + const isMissing = await checkFile(p) 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) { async function run() { - const missing = []; + const missing = [] for (const f of files) { - const isMissing = await checkFile(f); + const isMissing = await checkFile(f) if (isMissing) { - missing.push(f); + missing.push(f) } } if (missing.length > 0) { - console.log(missing.join("\n")); - process.exit(1); + console.log(missing.join('\n')) + process.exit(1) } } - run(); + run() } else { - check(path.resolve(new URL(import.meta.url).pathname, "../../..")).then( + check(path.resolve(new URL(import.meta.url).pathname, '../../..')).then( (missing) => { if (missing.length > 0) { - console.log(missing.join("\n")); - process.exit(1); + console.log(missing.join('\n')) + process.exit(1) } - }, - ); + } + ) } diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..68acfc90a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "rust-lang.rust-analyzer", + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode", + "tamasfe.even-better-toml" + ] +} diff --git a/README.md b/README.md index c511aa671..9597af5af 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,34 @@ ## Plugins Found Here -| | | Win | Mac | Lin | iOS | And | -| ----------------------------------------------- | ------------------------------------------------------ | --- | --- | --- | --- | --- | -| [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ? | ? | -| [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ | -| [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ | -| [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? | -| [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? | -| [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? | -| [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? | -| [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ | -| [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? | -| [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? | -| [process](plugins/process) | This plugin provides APIs to access the current process. To spawn child processes, see the [`shell`](https://github.com/tauri-apps/tauri-plugin-shell) plugin. | ✅ | ✅ | ✅ | ? | ? | -| [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? | -| [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? | -| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? | -| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | ✅ | -| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? | -| [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? | -| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? | -| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | -| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? | +| | | Win | Mac | Lin | iOS | And | +| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- | --- | --- | --- | +| [autostart](plugins/autostart) | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ? | ? | +| [barcode-scanner](plugins/barcode-scanner) | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ | +| [biometric](plugins/biometric) | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ | +| [cli](plugins/cli) | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ? | ? | +| [clipboard-manager](plugins/clipboard-manager) | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [deep-link](plugins/deep-link) | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [dialog](plugins/dialog) | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [fs](plugins/fs) | Access the file system. | ✅ | ✅ | ✅ | ? | ? | +| [global-shortcut](plugins/global-shortcut) | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? | +| [http](plugins/http) | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [localhost](plugins/localhost) | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? | +| [log](plugins/log) | Configurable logging. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [nfc](plugins/nfc) | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ | +| [notification](plugins/notification) | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [os](plugins/os) | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [persisted-scope](plugins/persisted-scope) | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? | +| [positioner](plugins/positioner) | Move windows to common locations. | ✅ | ✅ | ✅ | ? | ? | +| [process](plugins/process) | This plugin provides APIs to access the current process. To spawn child processes, see the [`shell`](https://github.com/tauri-apps/tauri-plugin-shell) plugin. | ✅ | ✅ | ✅ | ? | ? | +| [shell](plugins/shell) | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? | +| [single-instance](plugins/single-instance) | Ensure a single instance of your tauri app is running. | ✅ | ? | ✅ | ? | ? | +| [sql](plugins/sql) | Interface with SQL databases. | ✅ | ✅ | ✅ | ? | ? | +| [store](plugins/store) | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | ✅ | +| [stronghold](plugins/stronghold) | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? | +| [updater](plugins/updater) | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ? | ? | +| [upload](plugins/upload) | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ? | ? | +| [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | +| [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? | _This repo and all plugins require a Rust version of at least **1.75**_ diff --git a/SECURITY.md b/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/eslint.config.js b/eslint.config.js index 862fd2c29..f34103ee4 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,29 +2,29 @@ // 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"; +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", - ], + '**/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, @@ -32,7 +32,7 @@ export default tseslint.config( ...tseslint.configs.recommendedTypeChecked, { languageOptions: { - parserOptions: { project: true, tsconfigRootDir: import.meta.dirname }, - }, - }, -); + parserOptions: { project: true, tsconfigRootDir: import.meta.dirname } + } + } +) diff --git a/examples/api/.gitignore b/examples/api/.gitignore index ac9643a2b..fb4eb33ac 100644 --- a/examples/api/.gitignore +++ b/examples/api/.gitignore @@ -1,4 +1,2 @@ -/node_modules/ -/.vscode/ -.DS_Store -.cargo +/dist/* +!/dist/.gitkeep diff --git a/examples/api/dist/.gitkeep b/examples/api/dist/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/examples/api/isolation-dist/index.js b/examples/api/isolation-dist/index.js index 83f35e0dd..7e2df30de 100644 --- a/examples/api/isolation-dist/index.js +++ b/examples/api/isolation-dist/index.js @@ -3,5 +3,5 @@ // SPDX-License-Identifier: MIT window.__TAURI_ISOLATION_HOOK__ = (payload) => { - return payload; -}; + return payload +} diff --git a/examples/api/jsconfig.json b/examples/api/jsconfig.json index 42585941e..5696a2de7 100644 --- a/examples/api/jsconfig.json +++ b/examples/api/jsconfig.json @@ -1,14 +1,14 @@ { "compilerOptions": { - "moduleResolution": "node", - "target": "esnext", - "module": "esnext", + "moduleResolution": "bundler", + "target": "ESNext", + "module": "ESNext", /** * svelte-preprocess cannot figure out whether you have * a value or a type, so tell TypeScript to enforce using * `import type` instead of `import` for Types. */ - "importsNotUsedAsValues": "error", + "verbatimModuleSyntax": true, "isolatedModules": true, "resolveJsonModule": true, /** @@ -18,8 +18,6 @@ "sourceMap": true, "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "baseUrl": ".", /** * Typecheck JS in `.svelte` and `.js` files by default. * Disable this if you'd like to use dynamic types. diff --git a/examples/api/package.json b/examples/api/package.json index cea2e4b57..10232316c 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -33,7 +33,7 @@ "@sveltejs/vite-plugin-svelte": "^3.0.1", "@tauri-apps/cli": "2.0.0-rc.10", "@unocss/extractor-svelte": "^0.62.0", - "svelte": "^4.2.8", + "svelte": "^4.2.19", "unocss": "^0.62.0", "vite": "^5.0.13" } diff --git a/examples/api/src-tauri/gen/apple/project.yml b/examples/api/src-tauri/gen/apple/project.yml index 265d9eb71..dad7b6192 100644 --- a/examples/api/src-tauri/gen/apple/project.yml +++ b/examples/api/src-tauri/gen/apple/project.yml @@ -64,7 +64,7 @@ targets: base: ENABLE_BITCODE: false ARCHS: [arm64, arm64-sim] - VALID_ARCHS: arm64 arm64-sim + VALID_ARCHS: arm64 arm64-sim LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) @@ -89,4 +89,4 @@ targets: outputFiles: - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a - - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a \ No newline at end of file + - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a diff --git a/examples/api/src/app.css b/examples/api/src/app.css index 6987e423e..6e8ae62da 100644 --- a/examples/api/src/app.css +++ b/examples/api/src/app.css @@ -5,7 +5,7 @@ * { box-sizing: border-box; - font-family: "Rubik", sans-serif; + font-family: 'Rubik', sans-serif; } ::-webkit-scrollbar { diff --git a/examples/api/src/lib/utils.js b/examples/api/src/lib/utils.js index 442052c2c..a5ddc0584 100644 --- a/examples/api/src/lib/utils.js +++ b/examples/api/src/lib/utils.js @@ -4,12 +4,12 @@ export function arrayBufferToBase64(buffer, callback) { const blob = new Blob([buffer], { - type: "application/octet-binary", - }); - const reader = new FileReader(); + type: 'application/octet-binary' + }) + const reader = new FileReader() reader.onload = function (evt) { - const dataurl = evt.target.result; - callback(dataurl.substr(dataurl.indexOf(",") + 1)); - }; - reader.readAsDataURL(blob); + const dataurl = evt.target.result + callback(dataurl.substr(dataurl.indexOf(',') + 1)) + } + reader.readAsDataURL(blob) } diff --git a/examples/api/src/main.js b/examples/api/src/main.js index f9785b74b..f31a3eb83 100644 --- a/examples/api/src/main.js +++ b/examples/api/src/main.js @@ -2,12 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import "uno.css"; -import "./app.css"; -import App from "./App.svelte"; +import 'uno.css' +import './app.css' +import App from './App.svelte' const app = new App({ - target: document.querySelector("#app"), -}); + target: document.querySelector('#app') +}) -export default app; +export default app diff --git a/examples/api/unocss.config.js b/examples/api/unocss.config.js index 44d926cd8..d2069a49e 100644 --- a/examples/api/unocss.config.js +++ b/examples/api/unocss.config.js @@ -2,43 +2,43 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { defineConfig, presetIcons, presetUno, presetWebFonts } from "unocss"; -import extractorSvelte from "@unocss/extractor-svelte"; +import { defineConfig, presetIcons, presetUno, presetWebFonts } from 'unocss' +import extractorSvelte from '@unocss/extractor-svelte' export default defineConfig({ theme: { colors: { - primary: "#FFFFFF", - primaryLighter: "#e9ecef", - darkPrimary: "#1B1B1D", - darkPrimaryLighter: "#242526", - primaryText: "#1C1E21", - darkPrimaryText: "#E3E3E3", - secondaryText: "#858A91", - darkSecondaryText: "#C2C5CA", - accent: "#3578E5", - accentDark: "#306cce", - accentDarker: "#2d66c3", - accentDarkest: "#2554a0", - accentLight: "#538ce9", - accentLighter: "#72a1ed", - accentLightest: "#9abcf2", - accentText: "#FFFFFF", - darkAccent: "#67d6ed", - darkAccentDark: "#49cee9", - darkAccentDarker: "#39cae8", - darkAccentDarkest: "#19b5d5", - darkAccentLight: "#85def1", - darkAccentLighter: "#95e2f2", - darkAccentLightest: "#c2eff8", - darkAccentText: "#1C1E21", - code: "#d6d8da", - codeDark: "#282a2e", - hoverOverlay: "rgba(0,0,0,.05)", - hoverOverlayDarker: "rgba(0,0,0,.1)", - darkHoverOverlay: "hsla(0,0%,100%,.05)", - darkHoverOverlayDarker: "hsla(0,0%,100%,.1)", - }, + primary: '#FFFFFF', + primaryLighter: '#e9ecef', + darkPrimary: '#1B1B1D', + darkPrimaryLighter: '#242526', + primaryText: '#1C1E21', + darkPrimaryText: '#E3E3E3', + secondaryText: '#858A91', + darkSecondaryText: '#C2C5CA', + accent: '#3578E5', + accentDark: '#306cce', + accentDarker: '#2d66c3', + accentDarkest: '#2554a0', + accentLight: '#538ce9', + accentLighter: '#72a1ed', + accentLightest: '#9abcf2', + accentText: '#FFFFFF', + darkAccent: '#67d6ed', + darkAccentDark: '#49cee9', + darkAccentDarker: '#39cae8', + darkAccentDarkest: '#19b5d5', + darkAccentLight: '#85def1', + darkAccentLighter: '#95e2f2', + darkAccentLightest: '#c2eff8', + darkAccentText: '#1C1E21', + code: '#d6d8da', + codeDark: '#282a2e', + hoverOverlay: 'rgba(0,0,0,.05)', + hoverOverlayDarker: 'rgba(0,0,0,.1)', + darkHoverOverlay: 'hsla(0,0%,100%,.05)', + darkHoverOverlayDarker: 'hsla(0,0%,100%,.1)' + } }, preflights: [ { @@ -54,7 +54,7 @@ export default defineConfig({ code { font-size: ${theme.fontSize.xs[0]}; font-family: ${theme.fontFamily.mono}; - border-radius: ${theme.borderRadius["DEFAULT"]}; + border-radius: ${theme.borderRadius['DEFAULT']}; background-color: ${theme.colors.code}; } @@ -66,8 +66,8 @@ export default defineConfig({ .dark code { background-color: ${theme.colors.codeDark}; } - `, - }, + ` + } ], shortcuts: { btn: `select-none outline-none shadow-md p-2 rd-1 text-primaryText border-none font-400 dark:font-600 @@ -81,20 +81,20 @@ export default defineConfig({ note: `decoration-none flex-inline items-center relative p-2 rd-1 border-l-4 border-accent dark:border-darkAccent bg-accent/10 dark:bg-darkAccent/10`, - "note-red": - "note bg-red-700/10 dark:bg-red-700/10 after:bg-red-700 dark:after:bg-red-700", + 'note-red': + 'note bg-red-700/10 dark:bg-red-700/10 after:bg-red-700 dark:after:bg-red-700', input: - "h-10 flex items-center outline-none border-none p-2 rd-1 shadow-md bg-primaryLighter dark:bg-darkPrimaryLighter text-primaryText dark:text-darkPrimaryText", + 'h-10 flex items-center outline-none border-none p-2 rd-1 shadow-md bg-primaryLighter dark:bg-darkPrimaryLighter text-primaryText dark:text-darkPrimaryText' }, presets: [ presetUno(), presetIcons(), presetWebFonts({ fonts: { - sans: "Rubik", - mono: ["Fira Code", "Fira Mono:400,700"], - }, - }), + sans: 'Rubik', + mono: ['Fira Code', 'Fira Mono:400,700'] + } + }) ], - extractors: [extractorSvelte], -}); + extractors: [extractorSvelte] +}) diff --git a/examples/api/vite.config.js b/examples/api/vite.config.js index 508238eb2..3b34cccd4 100644 --- a/examples/api/vite.config.js +++ b/examples/api/vite.config.js @@ -2,12 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { defineConfig } from "vite"; -import Unocss from "unocss/vite"; -import { svelte } from "@sveltejs/vite-plugin-svelte"; -import process from "process"; +import { defineConfig } from 'vite' +import Unocss from 'unocss/vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' +import process from 'process' -const host = process.env.TAURI_DEV_HOST; +const host = process.env.TAURI_DEV_HOST // https://vitejs.dev/config/ export default defineConfig(async () => { @@ -18,9 +18,9 @@ export default defineConfig(async () => { output: { entryFileNames: `assets/[name].js`, chunkFileNames: `assets/[name].js`, - assetFileNames: `assets/[name].[ext]`, - }, - }, + assetFileNames: `assets/[name].[ext]` + } + } }, server: { host: host || false, @@ -28,14 +28,14 @@ export default defineConfig(async () => { strictPort: true, hmr: host ? { - protocol: "ws", + protocol: 'ws', host, - port: 5183, + port: 5183 } : undefined, fs: { - allow: [".", "../../tooling/api/dist"], - }, - }, - }; -}); + allow: ['.', '../../tooling/api/dist'] + } + } + } +}) diff --git a/package.json b/package.json index 2187ce4f1..6ab87008a 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "scripts": { "build": "pnpm run -r --parallel --filter !plugins-workspace --filter !\"./plugins/*/examples/**\" --filter !\"./examples/*\" build", "lint": "eslint .", - "format": "prettier --write \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore", - "format-check": "prettier --check \"./**/*.{cjs,mjs,js,jsx,mts,ts,tsx,html,css,json}\" --ignore-path .prettierignore" + "format": "prettier --write .", + "format:check": "prettier --check ." }, "devDependencies": { "@eslint/js": "9.9.1", @@ -31,10 +31,5 @@ }, "engines": { "pnpm": "^9.0.0" - }, - "pnpm": { - "overrides": { - "micromatch@<4.0.8": ">=4.0.8" - } } } diff --git a/plugins/autostart/.gitignore b/plugins/autostart/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/autostart/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index f86fbd3db..5dd503e48 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-autostart" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/autostart/README.md b/plugins/autostart/README.md index 58caac0f3..5855c9892 100644 --- a/plugins/autostart/README.md +++ b/plugins/autostart/README.md @@ -62,13 +62,13 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { enable, isEnabled, disable } from "@tauri-apps/plugin-autostart"; +import { enable, isEnabled, disable } from '@tauri-apps/plugin-autostart' -await enable(); +await enable() -console.log(`registered for autostart? ${await isEnabled()}`); +console.log(`registered for autostart? ${await isEnabled()}`) -disable(); +disable() ``` ## Contributing diff --git a/plugins/autostart/SECURITY.md b/plugins/autostart/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/autostart/SECURITY.md +++ b/plugins/autostart/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/autostart/guest-js/index.ts b/plugins/autostart/guest-js/index.ts index 81471b74d..fca8344ff 100644 --- a/plugins/autostart/guest-js/index.ts +++ b/plugins/autostart/guest-js/index.ts @@ -2,16 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' export async function isEnabled(): Promise { - return await invoke("plugin:autostart|is_enabled"); + return await invoke('plugin:autostart|is_enabled') } export async function enable(): Promise { - await invoke("plugin:autostart|enable"); + await invoke('plugin:autostart|enable') } export async function disable(): Promise { - await invoke("plugin:autostart|disable"); + await invoke('plugin:autostart|disable') } diff --git a/plugins/autostart/permissions/default.toml b/plugins/autostart/permissions/default.toml index e2f71212e..a2ac766fd 100644 --- a/plugins/autostart/permissions/default.toml +++ b/plugins/autostart/permissions/default.toml @@ -12,8 +12,4 @@ disable the automatic start on boot. """ -permissions = [ - "allow-enable", - "allow-disable", - "allow-is-enabled", -] +permissions = ["allow-enable", "allow-disable", "allow-is-enabled"] diff --git a/plugins/autostart/rollup.config.js b/plugins/autostart/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/autostart/rollup.config.js +++ b/plugins/autostart/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/barcode-scanner/.gitignore b/plugins/barcode-scanner/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/barcode-scanner/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 8cab6ba65..fde3a2f76 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -10,12 +10,12 @@ repository = { workspace = true } links = "tauri-plugin-barcode-scanner" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/barcode-scanner/README.md b/plugins/barcode-scanner/README.md index 57621f282..ee9831301 100644 --- a/plugins/barcode-scanner/README.md +++ b/plugins/barcode-scanner/README.md @@ -60,12 +60,12 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { scan } from "@tauri-apps/plugin-barcode-scanner"; +import { scan } from '@tauri-apps/plugin-barcode-scanner' // `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 -scan({ windowed: true, formats: [""] }) +scan({ windowed: true, formats: [''] }) ``` ## Contributing diff --git a/plugins/barcode-scanner/SECURITY.md b/plugins/barcode-scanner/SECURITY.md index 36a863c68..135504ec5 100644 --- a/plugins/barcode-scanner/SECURITY.md +++ b/plugins/barcode-scanner/SECURITY.md @@ -54,7 +54,6 @@ The camera has two modes. The first one is where the user can see the background The second mode allows the developer to assist the user and add a transparent overlay to the image, providing hints or additional information (like a link preview). The overlay could be made non-transparent by the application frontend and as long as the app is open (and in some cases) it could read QR codes in range of the camera lense. - #### Out Of Scope - Exploits in the operating system QR code parsing functionality diff --git a/plugins/barcode-scanner/guest-js/index.ts b/plugins/barcode-scanner/guest-js/index.ts index bf0edf8a5..e8637d111 100644 --- a/plugins/barcode-scanner/guest-js/index.ts +++ b/plugins/barcode-scanner/guest-js/index.ts @@ -5,37 +5,37 @@ import { invoke, requestPermissions as checkPermissions_, - checkPermissions as requestPermissions_, -} from "@tauri-apps/api/core"; + checkPermissions as requestPermissions_ +} from '@tauri-apps/api/core' -export type { PermissionState } from "@tauri-apps/api/core"; +export type { PermissionState } from '@tauri-apps/api/core' export enum Format { - QRCode = "QR_CODE", - UPC_A = "UPC_A", - UPC_E = "UPC_E", - EAN8 = "EAN_8", - EAN13 = "EAN_13", - Code39 = "CODE_39", - Code93 = "CODE_93", - Code128 = "CODE_128", - Codabar = "CODABAR", - ITF = "ITF", - Aztec = "AZTEC", - DataMatrix = "DATA_MATRIX", - PDF417 = "PDF_417", + QRCode = 'QR_CODE', + UPC_A = 'UPC_A', + UPC_E = 'UPC_E', + EAN8 = 'EAN_8', + EAN13 = 'EAN_13', + Code39 = 'CODE_39', + Code93 = 'CODE_93', + Code128 = 'CODE_128', + Codabar = 'CODABAR', + ITF = 'ITF', + Aztec = 'AZTEC', + DataMatrix = 'DATA_MATRIX', + PDF417 = 'PDF_417' } export interface ScanOptions { - cameraDirection?: "back" | "front"; - formats?: Format[]; - windowed?: boolean; + cameraDirection?: 'back' | 'front' + formats?: Format[] + windowed?: boolean } export interface Scanned { - content: string; - format: Format; - bounds: unknown; + content: string + format: Format + bounds: unknown } /** @@ -43,14 +43,14 @@ export interface Scanned { * @param options */ export async function scan(options?: ScanOptions): Promise { - return await invoke("plugin:barcode-scanner|scan", { ...options }); + return await invoke('plugin:barcode-scanner|scan', { ...options }) } /** * Cancel the current scan process. */ export async function cancel(): Promise { - await invoke("plugin:barcode-scanner|cancel"); + await invoke('plugin:barcode-scanner|cancel') } /** @@ -58,8 +58,8 @@ export async function cancel(): Promise { */ export async function checkPermissions(): Promise { return await checkPermissions_<{ camera: PermissionState }>( - "barcode-scanner", - ).then((r) => r.camera); + 'barcode-scanner' + ).then((r) => r.camera) } /** @@ -67,13 +67,13 @@ export async function checkPermissions(): Promise { */ export async function requestPermissions(): Promise { return await requestPermissions_<{ camera: PermissionState }>( - "barcode-scanner", - ).then((r) => r.camera); + 'barcode-scanner' + ).then((r) => r.camera) } /** * Open application settings. Useful if permission was denied and the user must manually enable it. */ export async function openAppSettings(): Promise { - await invoke("plugin:barcode-scanner|open_app_settings"); + await invoke('plugin:barcode-scanner|open_app_settings') } diff --git a/plugins/barcode-scanner/rollup.config.js b/plugins/barcode-scanner/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/barcode-scanner/rollup.config.js +++ b/plugins/barcode-scanner/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/biometric/.gitignore b/plugins/biometric/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/biometric/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index 23f72eb0d..3135d86b7 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -9,12 +9,12 @@ repository = { workspace = true } links = "tauri-plugin-biometric" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/biometric/README.md b/plugins/biometric/README.md index a7ce11390..bc4708c31 100644 --- a/plugins/biometric/README.md +++ b/plugins/biometric/README.md @@ -62,8 +62,8 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { authenticate } from "@tauri-apps/plugin-biometric"; -await authenticate('Open your wallet'); +import { authenticate } from '@tauri-apps/plugin-biometric' +await authenticate('Open your wallet') ``` ## Contributing diff --git a/plugins/biometric/SECURITY.md b/plugins/biometric/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/biometric/SECURITY.md +++ b/plugins/biometric/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/biometric/guest-js/index.ts b/plugins/biometric/guest-js/index.ts index 3ff26d0ba..5c3eb8df2 100644 --- a/plugins/biometric/guest-js/index.ts +++ b/plugins/biometric/guest-js/index.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' export enum BiometryType { None = 0, @@ -11,39 +11,39 @@ export enum BiometryType { // Apple FaceID or Android face authentication FaceID = 2, // Android iris authentication - Iris = 3, + Iris = 3 } export interface Status { - isAvailable: boolean; - biometryType: BiometryType; - error?: string; + isAvailable: boolean + biometryType: BiometryType + error?: string errorCode?: - | "appCancel" - | "authenticationFailed" - | "invalidContext" - | "notInteractive" - | "passcodeNotSet" - | "systemCancel" - | "userCancel" - | "userFallback" - | "biometryLockout" - | "biometryNotAvailable" - | "biometryNotEnrolled"; + | 'appCancel' + | 'authenticationFailed' + | 'invalidContext' + | 'notInteractive' + | 'passcodeNotSet' + | 'systemCancel' + | 'userCancel' + | 'userFallback' + | 'biometryLockout' + | 'biometryNotAvailable' + | 'biometryNotEnrolled' } export interface AuthOptions { - allowDeviceCredential?: boolean; - cancelTitle?: string; + allowDeviceCredential?: boolean + cancelTitle?: string // iOS options - fallbackTitle?: string; + fallbackTitle?: string // android options - title?: string; - subtitle?: string; - confirmationRequired?: boolean; - maxAttemps?: number; + title?: string + subtitle?: string + confirmationRequired?: boolean + maxAttemps?: number } /** @@ -51,7 +51,7 @@ export interface AuthOptions { * @returns a promise resolving to an object containing all the information about the status of the biometry. */ export async function checkStatus(): Promise { - return await invoke("plugin:biometric|status"); + return await invoke('plugin:biometric|status') } /** @@ -68,10 +68,10 @@ export async function checkStatus(): Promise { */ export async function authenticate( reason: string, - options?: AuthOptions, + options?: AuthOptions ): Promise { - await invoke("plugin:biometric|authenticate", { + await invoke('plugin:biometric|authenticate', { reason, - ...options, - }); + ...options + }) } diff --git a/plugins/biometric/permissions/default.toml b/plugins/biometric/permissions/default.toml index f50061b73..651990efe 100644 --- a/plugins/biometric/permissions/default.toml +++ b/plugins/biometric/permissions/default.toml @@ -10,7 +10,4 @@ It allows acccess to all biometric commands. """ -permissions = [ - "allow-authenticate", - "allow-status", -] +permissions = ["allow-authenticate", "allow-status"] diff --git a/plugins/biometric/rollup.config.js b/plugins/biometric/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/biometric/rollup.config.js +++ b/plugins/biometric/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index 3e493b9c1..eff2b6f26 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-cli" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/cli/README.md b/plugins/cli/README.md index b186f3590..362597b50 100644 --- a/plugins/cli/README.md +++ b/plugins/cli/README.md @@ -67,16 +67,16 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { getMatches } from "@tauri-apps/plugin-cli"; -const matches = await getMatches(); -if (matches.subcommand?.name === "run") { +import { getMatches } from '@tauri-apps/plugin-cli' +const matches = await getMatches() +if (matches.subcommand?.name === 'run') { // `./your-app run $ARGS` was executed - const args = matches.subcommand?.matches.args; - if ("debug" in args) { + const args = matches.subcommand?.matches.args + if ('debug' in args) { // `./your-app run --debug` was executed } } else { - const args = matches.args; + const args = matches.args // `./your-app $ARGS` was executed } ``` diff --git a/plugins/cli/SECURITY.md b/plugins/cli/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/cli/SECURITY.md +++ b/plugins/cli/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/cli/guest-js/index.ts b/plugins/cli/guest-js/index.ts index 0ab7868e5..7a7f4acf3 100644 --- a/plugins/cli/guest-js/index.ts +++ b/plugins/cli/guest-js/index.ts @@ -8,7 +8,7 @@ * @module */ -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** * @since 2.0.0 @@ -19,27 +19,27 @@ interface ArgMatch { * boolean if flag * string[] or null if takes multiple values */ - value: string | boolean | string[] | null; + value: string | boolean | string[] | null /** * Number of occurrences */ - occurrences: number; + occurrences: number } /** * @since 2.0.0 */ interface SubcommandMatch { - name: string; - matches: CliMatches; + name: string + matches: CliMatches } /** * @since 2.0.0 */ interface CliMatches { - args: Record; - subcommand: SubcommandMatch | null; + args: Record + subcommand: SubcommandMatch | null } /** @@ -64,9 +64,9 @@ interface CliMatches { * @since 2.0.0 */ async function getMatches(): Promise { - return await invoke("plugin:cli|cli_matches"); + return await invoke('plugin:cli|cli_matches') } -export type { ArgMatch, SubcommandMatch, CliMatches }; +export type { ArgMatch, SubcommandMatch, CliMatches } -export { getMatches }; +export { getMatches } diff --git a/plugins/cli/rollup.config.js b/plugins/cli/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/cli/rollup.config.js +++ b/plugins/cli/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/clipboard-manager/.gitignore b/plugins/clipboard-manager/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/clipboard-manager/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index 96ee1d229..36dc67943 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -10,12 +10,12 @@ repository = { workspace = true } links = "tauri-plugin-clipboard-manager" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-unknown-linux-gnu", "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/clipboard-manager/README.md b/plugins/clipboard-manager/README.md index f1b3d327d..98ee2da0b 100644 --- a/plugins/clipboard-manager/README.md +++ b/plugins/clipboard-manager/README.md @@ -60,9 +60,15 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { writeText, readText, writeHtml, readHtml, clear } from "@tauri-apps/plugin-clipboard-manager"; -await writeText("Tauri is awesome!"); -assert(await readText(), "Tauri is awesome!"); +import { + writeText, + readText, + writeHtml, + readHtml, + clear +} from '@tauri-apps/plugin-clipboard-manager' +await writeText('Tauri is awesome!') +assert(await readText(), 'Tauri is awesome!') ``` ## Contributing diff --git a/plugins/clipboard-manager/SECURITY.md b/plugins/clipboard-manager/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/clipboard-manager/SECURITY.md +++ b/plugins/clipboard-manager/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/clipboard-manager/guest-js/index.ts b/plugins/clipboard-manager/guest-js/index.ts index ad261cbe6..f09754e65 100644 --- a/plugins/clipboard-manager/guest-js/index.ts +++ b/plugins/clipboard-manager/guest-js/index.ts @@ -8,8 +8,8 @@ * @module */ -import { invoke } from "@tauri-apps/api/core"; -import { Image, transformImage } from "@tauri-apps/api/image"; +import { invoke } from '@tauri-apps/api/core' +import { Image, transformImage } from '@tauri-apps/api/image' /** * Writes plain text to the clipboard. @@ -26,12 +26,12 @@ import { Image, transformImage } from "@tauri-apps/api/image"; */ async function writeText( text: string, - opts?: { label?: string }, + opts?: { label?: string } ): Promise { - await invoke("plugin:clipboard-manager|write_text", { + await invoke('plugin:clipboard-manager|write_text', { label: opts?.label, - text, - }); + text + }) } /** @@ -44,7 +44,7 @@ async function writeText( * @since 2.0.0 */ async function readText(): Promise { - return await invoke("plugin:clipboard-manager|read_text"); + return await invoke('plugin:clipboard-manager|read_text') } /** @@ -66,11 +66,11 @@ async function readText(): Promise { * @since 2.0.0 */ async function writeImage( - image: string | Image | Uint8Array | ArrayBuffer | number[], + image: string | Image | Uint8Array | ArrayBuffer | number[] ): Promise { - await invoke("plugin:clipboard-manager|write_image", { - image: transformImage(image), - }); + await invoke('plugin:clipboard-manager|write_image', { + image: transformImage(image) + }) } /** @@ -86,9 +86,9 @@ async function writeImage( * @since 2.0.0 */ async function readImage(): Promise { - return await invoke("plugin:clipboard-manager|read_image").then( - (rid) => new Image(rid), - ); + return await invoke('plugin:clipboard-manager|read_image').then( + (rid) => new Image(rid) + ) } /** @@ -106,10 +106,10 @@ async function readImage(): Promise { * @since 2.0.0 */ async function writeHtml(html: string, altHtml?: string): Promise { - await invoke("plugin:clipboard-manager|write_html", { + await invoke('plugin:clipboard-manager|write_html', { html, - altHtml, - }); + altHtml + }) } /** @@ -122,7 +122,7 @@ async function writeHtml(html: string, altHtml?: string): Promise { * @since 2.0.0 */ async function clear(): Promise { - await invoke("plugin:clipboard-manager|clear"); + await invoke('plugin:clipboard-manager|clear') } -export { writeText, readText, writeHtml, clear, readImage, writeImage }; +export { writeText, readText, writeHtml, clear, readImage, writeImage } diff --git a/plugins/clipboard-manager/rollup.config.js b/plugins/clipboard-manager/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/clipboard-manager/rollup.config.js +++ b/plugins/clipboard-manager/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/deep-link/.gitignore b/plugins/deep-link/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/deep-link/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/deep-link/.test-server/server.js b/plugins/deep-link/.test-server/server.js index 6eee44e49..0e2fec507 100644 --- a/plugins/deep-link/.test-server/server.js +++ b/plugins/deep-link/.test-server/server.js @@ -2,26 +2,26 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import http from "http"; -import fs from "fs"; +import http from 'http' +import fs from 'fs' -const hostname = "localhost"; -const port = 8080; +const hostname = 'localhost' +const port = 8080 const server = http.createServer(function (req, res) { - console.log(req.url); - if (req.url == "/.well-known/apple-app-site-association") { + console.log(req.url) + if (req.url == '/.well-known/apple-app-site-association') { const association = fs.readFileSync( - ".well-known/apple-app-site-association", - ); - res.writeHead(200, { "Content-Type": "application/json" }); - res.end(association); + '.well-known/apple-app-site-association' + ) + res.writeHead(200, { 'Content-Type': 'application/json' }) + res.end(association) } else { - res.writeHead(404); - res.end("404 NOT FOUND"); + res.writeHead(404) + res.end('404 NOT FOUND') } -}); +}) server.listen(port, hostname, () => { - console.log("Server started on port", port); -}); + console.log('Server started on port', port) +}) diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 2413c14b5..8f4162fba 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -10,15 +10,15 @@ repository = { workspace = true } links = "tauri-plugin-deep-link" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] [build-dependencies] serde = { workspace = true } serde_json = { workspace = true } tauri-utils = { workspace = true } -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index 6080405cb..394f4ece7 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -139,10 +139,10 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { onOpenUrl } from "@tauri-apps/plugin-deep-link"; +import { onOpenUrl } from '@tauri-apps/plugin-deep-link' await onOpenUrl((urls) => { - console.log("deep link:", urls); -}); + console.log('deep link:', urls) +}) ``` Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin. diff --git a/plugins/deep-link/SECURITY.md b/plugins/deep-link/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/deep-link/SECURITY.md +++ b/plugins/deep-link/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml b/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml index 68eb0f4c5..c924ca77b 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/project.yml @@ -68,7 +68,7 @@ targets: base: ENABLE_BITCODE: false ARCHS: [arm64, arm64-sim] - VALID_ARCHS: arm64 arm64-sim + VALID_ARCHS: arm64 arm64-sim LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) @@ -93,4 +93,4 @@ targets: outputFiles: - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a - - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a \ No newline at end of file + - $(SRCROOT)/Externals/arm64-sim/${CONFIGURATION}/libapp.a diff --git a/plugins/deep-link/examples/app/src-tauri/server.js b/plugins/deep-link/examples/app/src-tauri/server.js index c86866313..24a6ac6f8 100644 --- a/plugins/deep-link/examples/app/src-tauri/server.js +++ b/plugins/deep-link/examples/app/src-tauri/server.js @@ -2,30 +2,30 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import http from "http"; -import fs from "fs"; -import path from "path"; -import * as url from "url"; -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +import http from 'http' +import fs from 'fs' +import path from 'path' +import * as url from 'url' +const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) -const port = 8125; +const port = 8125 http .createServer(function (request, response) { - if (request.url === "/.well-known/apple-app-site-association") { + if (request.url === '/.well-known/apple-app-site-association') { // eslint-disable-next-line fs.readFile( - path.resolve(__dirname, "apple-app-site-association"), + path.resolve(__dirname, 'apple-app-site-association'), function (_error, content) { - response.writeHead(200); - response.end(content, "utf-8"); - }, - ); + response.writeHead(200) + response.end(content, 'utf-8') + } + ) } else { - response.writeHead(404); - response.end(); + response.writeHead(404) + response.end() } }) - .listen(port); + .listen(port) -console.log(`Server running at http://127.0.0.1:${port}/`); +console.log(`Server running at http://127.0.0.1:${port}/`) diff --git a/plugins/deep-link/examples/app/src/main.ts b/plugins/deep-link/examples/app/src/main.ts index f87a6afd6..550e0aaa1 100644 --- a/plugins/deep-link/examples/app/src/main.ts +++ b/plugins/deep-link/examples/app/src/main.ts @@ -4,35 +4,35 @@ import { onOpenUrl, - getCurrent as getCurrentDeepLinkUrls, -} from "@tauri-apps/plugin-deep-link"; + getCurrent as getCurrentDeepLinkUrls +} from '@tauri-apps/plugin-deep-link' function handler(urls: string[]) { - console.log(urls); + console.log(urls) // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const updateIntentEl = document.querySelector("#event-intent")!; - updateIntentEl.textContent = JSON.stringify(urls); + const updateIntentEl = document.querySelector('#event-intent')! + updateIntentEl.textContent = JSON.stringify(urls) } -window.addEventListener("DOMContentLoaded", () => { - onOpenUrl(handler); +window.addEventListener('DOMContentLoaded', () => { + onOpenUrl(handler) - document.querySelector("#intent-form")?.addEventListener("submit", (e) => { - e.preventDefault(); + document.querySelector('#intent-form')?.addEventListener('submit', (e) => { + e.preventDefault() getCurrentDeepLinkUrls() .then((res) => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const updateIntentEl = document.querySelector("#update-intent")!; - updateIntentEl.textContent = res ? JSON.stringify(res) : "none"; + const updateIntentEl = document.querySelector('#update-intent')! + updateIntentEl.textContent = res ? JSON.stringify(res) : 'none' }) - .catch(console.error); - }); + .catch(console.error) + }) getCurrentDeepLinkUrls() .then((res) => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const initialIntentEl = document.querySelector("#initial-intent")!; - initialIntentEl.textContent = res ? JSON.stringify(res) : "none"; + const initialIntentEl = document.querySelector('#initial-intent')! + initialIntentEl.textContent = res ? JSON.stringify(res) : 'none' }) - .catch(console.error); -}); + .catch(console.error) +}) diff --git a/plugins/deep-link/examples/app/vite.config.ts b/plugins/deep-link/examples/app/vite.config.ts index 82cc08858..b54dc99a7 100644 --- a/plugins/deep-link/examples/app/vite.config.ts +++ b/plugins/deep-link/examples/app/vite.config.ts @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { defineConfig } from "vite"; +import { defineConfig } from 'vite' -const host = process.env.TAURI_DEV_HOST; +const host = process.env.TAURI_DEV_HOST // https://vitejs.dev/config/ export default defineConfig({ @@ -17,22 +17,22 @@ export default defineConfig({ port: 1420, hmr: host ? { - protocol: "ws", + protocol: 'ws', host, - port: 1421, + port: 1421 } : undefined, - strictPort: true, + strictPort: true }, // to make use of `TAURI_DEBUG` and other env variables // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand - envPrefix: ["VITE_", "TAURI_"], + envPrefix: ['VITE_', 'TAURI_'], build: { // Tauri supports es2021 - target: process.env.TAURI_PLATFORM == "windows" ? "chrome105" : "safari13", + target: process.env.TAURI_PLATFORM == 'windows' ? 'chrome105' : 'safari13', // don't minify for debug builds - minify: !process.env.TAURI_DEBUG ? "esbuild" : false, + minify: !process.env.TAURI_DEBUG ? 'esbuild' : false, // produce sourcemaps for debug builds - sourcemap: !!process.env.TAURI_DEBUG, - }, -}); + sourcemap: !!process.env.TAURI_DEBUG + } +}) diff --git a/plugins/deep-link/guest-js/index.ts b/plugins/deep-link/guest-js/index.ts index 8e78a66e9..e75c9d76c 100644 --- a/plugins/deep-link/guest-js/index.ts +++ b/plugins/deep-link/guest-js/index.ts @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; -import { type UnlistenFn, listen } from "@tauri-apps/api/event"; +import { invoke } from '@tauri-apps/api/core' +import { type UnlistenFn, listen } from '@tauri-apps/api/event' /** * Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link. @@ -19,7 +19,7 @@ import { type UnlistenFn, listen } from "@tauri-apps/api/event"; * @since 2.0.0 */ export async function getCurrent(): Promise { - return await invoke("plugin:deep-link|get_current"); + return await invoke('plugin:deep-link|get_current') } /** @@ -38,7 +38,7 @@ export async function getCurrent(): Promise { * @since 2.0.0 */ export async function register(protocol: string): Promise { - return await invoke("plugin:deep-link|register", { protocol }); + return await invoke('plugin:deep-link|register', { protocol }) } /** @@ -57,7 +57,7 @@ export async function register(protocol: string): Promise { * @since 2.0.0 */ export async function unregister(protocol: string): Promise { - return await invoke("plugin:deep-link|unregister", { protocol }); + return await invoke('plugin:deep-link|unregister', { protocol }) } /** @@ -76,7 +76,7 @@ export async function unregister(protocol: string): Promise { * @since 2.0.0 */ export async function isRegistered(protocol: string): Promise { - return await invoke("plugin:deep-link|is_registered", { protocol }); + return await invoke('plugin:deep-link|is_registered', { protocol }) } /** @@ -95,14 +95,14 @@ export async function isRegistered(protocol: string): Promise { * @since 2.0.0 */ export async function onOpenUrl( - handler: (urls: string[]) => void, + handler: (urls: string[]) => void ): Promise { - const current = await getCurrent(); + const current = await getCurrent() if (current) { - handler(current); + handler(current) } - return await listen("deep-link://new-url", (event) => { - handler(event.payload); - }); + return await listen('deep-link://new-url', (event) => { + handler(event.payload) + }) } diff --git a/plugins/deep-link/rollup.config.js b/plugins/deep-link/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/deep-link/rollup.config.js +++ b/plugins/deep-link/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/dialog/.gitignore b/plugins/dialog/.gitignore deleted file mode 100644 index 24ae12805..000000000 --- a/plugins/dialog/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.tauri diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index e08c88c00..378b66da8 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -10,15 +10,15 @@ repository = { workspace = true } links = "tauri-plugin-dialog" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dev-dependencies] -tauri = { workspace = true, features = [ "wry" ] } +tauri = { workspace = true, features = ["wry"] } [dependencies] serde = { workspace = true } diff --git a/plugins/dialog/SECURITY.md b/plugins/dialog/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/dialog/SECURITY.md +++ b/plugins/dialog/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/dialog/guest-js/index.ts b/plugins/dialog/guest-js/index.ts index 9624718d6..a6301ebee 100644 --- a/plugins/dialog/guest-js/index.ts +++ b/plugins/dialog/guest-js/index.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** * Extension filters for the file dialog. @@ -11,7 +11,7 @@ import { invoke } from "@tauri-apps/api/core"; */ interface DialogFilter { /** Filter name. */ - name: string; + name: string /** * Extensions to filter, without a `.` prefix. * @example @@ -19,7 +19,7 @@ interface DialogFilter { * extensions: ['svg', 'png'] * ``` */ - extensions: string[]; + extensions: string[] } /** @@ -29,9 +29,9 @@ interface DialogFilter { */ interface OpenDialogOptions { /** The title of the dialog window (desktop only). */ - title?: string; + title?: string /** The filters of the dialog. */ - filters?: DialogFilter[]; + filters?: DialogFilter[] /** * Initial directory or file path. * If it's a directory path, the dialog interface will change to that folder. @@ -40,18 +40,18 @@ interface OpenDialogOptions { * On mobile the file name is always used on the dialog's file name input. * If not provided, Android uses `(invalid).txt` as default file name. */ - defaultPath?: string; + defaultPath?: string /** Whether the dialog allows multiple selection or not. */ - multiple?: boolean; + multiple?: boolean /** Whether the dialog is a directory selection or not. */ - directory?: boolean; + directory?: boolean /** * If `directory` is true, indicates that it will be read recursively later. * Defines whether subdirectories will be allowed on the scope or not. */ - recursive?: boolean; + recursive?: boolean /** Whether to allow creating directories in the dialog. Enabled by default. **macOS Only** */ - canCreateDirectories?: boolean; + canCreateDirectories?: boolean } /** @@ -61,9 +61,9 @@ interface OpenDialogOptions { */ interface SaveDialogOptions { /** The title of the dialog window (desktop only). */ - title?: string; + title?: string /** The filters of the dialog. */ - filters?: DialogFilter[]; + filters?: DialogFilter[] /** * Initial directory or file path. * If it's a directory path, the dialog interface will change to that folder. @@ -72,9 +72,9 @@ interface SaveDialogOptions { * On mobile the file name is always used on the dialog's file name input. * If not provided, Android uses `(invalid).txt` as default file name. */ - defaultPath?: string; + defaultPath?: string /** Whether to allow creating directories in the dialog. Enabled by default. **macOS Only** */ - canCreateDirectories?: boolean; + canCreateDirectories?: boolean } /** @@ -82,31 +82,31 @@ interface SaveDialogOptions { */ interface MessageDialogOptions { /** The title of the dialog. Defaults to the app name. */ - title?: string; + title?: string /** The kind of the dialog. Defaults to `info`. */ - kind?: "info" | "warning" | "error"; + kind?: 'info' | 'warning' | 'error' /** The label of the confirm button. */ - okLabel?: string; + okLabel?: string } interface ConfirmDialogOptions { /** The title of the dialog. Defaults to the app name. */ - title?: string; + title?: string /** The kind of the dialog. Defaults to `info`. */ - kind?: "info" | "warning" | "error"; + kind?: 'info' | 'warning' | 'error' /** The label of the confirm button. */ - okLabel?: string; + okLabel?: string /** The label of the cancel button. */ - cancelLabel?: string; + cancelLabel?: string } -type OpenDialogReturn = T["directory"] extends true - ? T["multiple"] extends true +type OpenDialogReturn = T['directory'] extends true + ? T['multiple'] extends true ? string[] | null : string | null - : T["multiple"] extends true + : T['multiple'] extends true ? string[] | null - : string | null; + : string | null /** * Open a file/directory selection dialog. @@ -161,13 +161,13 @@ type OpenDialogReturn = T["directory"] extends true * @since 2.0.0 */ async function open( - options: T = {} as T, + options: T = {} as T ): Promise> { - if (typeof options === "object") { - Object.freeze(options); + if (typeof options === 'object') { + Object.freeze(options) } - return await invoke("plugin:dialog|open", { options }); + return await invoke('plugin:dialog|open', { options }) } /** @@ -195,11 +195,11 @@ async function open( * @since 2.0.0 */ async function save(options: SaveDialogOptions = {}): Promise { - if (typeof options === "object") { - Object.freeze(options); + if (typeof options === 'object') { + Object.freeze(options) } - return await invoke("plugin:dialog|save", { options }); + return await invoke('plugin:dialog|save', { options }) } /** @@ -221,15 +221,15 @@ async function save(options: SaveDialogOptions = {}): Promise { */ async function message( message: string, - options?: string | MessageDialogOptions, + options?: string | MessageDialogOptions ): Promise { - const opts = typeof options === "string" ? { title: options } : options; - await invoke("plugin:dialog|message", { + const opts = typeof options === 'string' ? { title: options } : options + await invoke('plugin:dialog|message', { message: message.toString(), title: opts?.title?.toString(), kind: opts?.kind, - okButtonLabel: opts?.okLabel?.toString(), - }); + okButtonLabel: opts?.okLabel?.toString() + }) } /** @@ -250,16 +250,16 @@ async function message( */ async function ask( message: string, - options?: string | ConfirmDialogOptions, + options?: string | ConfirmDialogOptions ): Promise { - const opts = typeof options === "string" ? { title: options } : options; - return await invoke("plugin:dialog|ask", { + const opts = typeof options === 'string' ? { title: options } : options + return await invoke('plugin:dialog|ask', { message: message.toString(), title: opts?.title?.toString(), kind: opts?.kind, - okButtonLabel: opts?.okLabel?.toString() ?? "Yes", - cancelButtonLabel: opts?.cancelLabel?.toString() ?? "No", - }); + okButtonLabel: opts?.okLabel?.toString() ?? 'Yes', + cancelButtonLabel: opts?.cancelLabel?.toString() ?? 'No' + }) } /** @@ -280,16 +280,16 @@ async function ask( */ async function confirm( message: string, - options?: string | ConfirmDialogOptions, + options?: string | ConfirmDialogOptions ): Promise { - const opts = typeof options === "string" ? { title: options } : options; - return await invoke("plugin:dialog|confirm", { + const opts = typeof options === 'string' ? { title: options } : options + return await invoke('plugin:dialog|confirm', { message: message.toString(), title: opts?.title?.toString(), kind: opts?.kind, - okButtonLabel: opts?.okLabel?.toString() ?? "Ok", - cancelButtonLabel: opts?.cancelLabel?.toString() ?? "Cancel", - }); + okButtonLabel: opts?.okLabel?.toString() ?? 'Ok', + cancelButtonLabel: opts?.cancelLabel?.toString() ?? 'Cancel' + }) } export type { @@ -298,7 +298,7 @@ export type { OpenDialogReturn, SaveDialogOptions, MessageDialogOptions, - ConfirmDialogOptions, -}; + ConfirmDialogOptions +} -export { open, save, message, ask, confirm }; +export { open, save, message, ask, confirm } diff --git a/plugins/dialog/guest-js/init.ts b/plugins/dialog/guest-js/init.ts index 7936d2cd6..520a469a7 100644 --- a/plugins/dialog/guest-js/init.ts +++ b/plugins/dialog/guest-js/init.ts @@ -2,17 +2,17 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' window.alert = function (message: string) { - void invoke("plugin:dialog|message", { - message: message.toString(), - }); -}; + void invoke('plugin:dialog|message', { + message: message.toString() + }) +} // @ts-expect-error tauri does not have sync IPC :( window.confirm = async function (message: string) { - return await invoke("plugin:dialog|confirm", { - message: message.toString(), - }); -}; + return await invoke('plugin:dialog|confirm', { + message: message.toString() + }) +} diff --git a/plugins/dialog/permissions/default.toml b/plugins/dialog/permissions/default.toml index 59265f546..cc936d901 100644 --- a/plugins/dialog/permissions/default.toml +++ b/plugins/dialog/permissions/default.toml @@ -12,9 +12,9 @@ All dialog types are enabled. """ permissions = [ - "allow-ask", - "allow-confirm", - "allow-message", - "allow-save", - "allow-open", + "allow-ask", + "allow-confirm", + "allow-message", + "allow-save", + "allow-open", ] diff --git a/plugins/dialog/rollup.config.js b/plugins/dialog/rollup.config.js index 0aed70d64..a7dbd4f69 100644 --- a/plugins/dialog/rollup.config.js +++ b/plugins/dialog/rollup.config.js @@ -2,21 +2,21 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import typescript from "@rollup/plugin-typescript"; -import terser from "@rollup/plugin-terser"; +import { createConfig } from '../../shared/rollup.config.js' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import typescript from '@rollup/plugin-typescript' +import terser from '@rollup/plugin-terser' export default createConfig({ additionalConfigs: { - input: "guest-js/init.ts", + input: 'guest-js/init.ts', output: { - file: "src/init-iife.js", - format: "iife", + file: 'src/init-iife.js', + format: 'iife' }, plugins: [typescript(), terser(), nodeResolve()], onwarn: (warning) => { - throw Object.assign(new Error(), warning); - }, - }, -}); + throw Object.assign(new Error(), warning) + } + } +}) diff --git a/plugins/fs/.gitignore b/plugins/fs/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/fs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 07aa09ae7..b5ca8988c 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-fs" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } serde = { workspace = true } diff --git a/plugins/fs/README.md b/plugins/fs/README.md index 70084bfdd..8ced39c46 100644 --- a/plugins/fs/README.md +++ b/plugins/fs/README.md @@ -60,9 +60,9 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { metadata } from "@tauri-apps/plugin-fs"; +import { metadata } from '@tauri-apps/plugin-fs' -await metadata("/path/to/file"); +await metadata('/path/to/file') ``` ## Contributing diff --git a/plugins/fs/SECURITY.md b/plugins/fs/SECURITY.md index 1adc7ebb2..838ed6705 100644 --- a/plugins/fs/SECURITY.md +++ b/plugins/fs/SECURITY.md @@ -36,7 +36,6 @@ the restrictions imposed by the scope. The scope is defined at compile time in the used permissions but the user or application developer can grant or revoke access to specific files or folders at runtime by modifying the scope state through the runtime authority, if configured during plugin initialization. - ### Security Assumptions - The filesystem access is limited by user permissions @@ -44,7 +43,6 @@ The scope is defined at compile time in the used permissions but the user or app - The scoping mechanism of the Tauri `fs` commands work as intended and has no bypasses - The user or application developer can grant or revoke access to specific files at runtime by modifying the scope - #### Out Of Scope - Exploits in underlying filesystems diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index 718a30cab..bfc018afb 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -61,13 +61,13 @@ * @module */ -import { BaseDirectory } from "@tauri-apps/api/path"; -import { Channel, invoke, Resource } from "@tauri-apps/api/core"; +import { BaseDirectory } from '@tauri-apps/api/path' +import { Channel, invoke, Resource } from '@tauri-apps/api/core' enum SeekMode { Start = 0, Current = 1, - End = 2, + End = 2 } /** @@ -80,41 +80,41 @@ interface FileInfo { * True if this is info for a regular file. Mutually exclusive to * `FileInfo.isDirectory` and `FileInfo.isSymlink`. */ - isFile: boolean; + isFile: boolean /** * True if this is info for a regular directory. Mutually exclusive to * `FileInfo.isFile` and `FileInfo.isSymlink`. */ - isDirectory: boolean; + isDirectory: boolean /** * True if this is info for a symlink. Mutually exclusive to * `FileInfo.isFile` and `FileInfo.isDirectory`. */ - isSymlink: boolean; + isSymlink: boolean /** * The size of the file, in bytes. */ - size: number; + size: number /** * The last modification time of the file. This corresponds to the `mtime` * field from `stat` on Linux/Mac OS and `ftLastWriteTime` on Windows. This * may not be available on all platforms. */ - mtime: Date | null; + mtime: Date | null /** * The last access time of the file. This corresponds to the `atime` * field from `stat` on Unix and `ftLastAccessTime` on Windows. This may not * be available on all platforms. */ - atime: Date | null; + atime: Date | null /** * The creation time of the file. This corresponds to the `birthtime` * field from `stat` on Mac/BSD and `ftCreationTime` on Windows. This may * not be available on all platforms. */ - birthtime: Date | null; + birthtime: Date | null /** Whether this is a readonly (unwritable) file. */ - readonly: boolean; + readonly: boolean /** * This field contains the file system attribute information for a file * or directory. For possible values and their descriptions, see @@ -124,7 +124,7 @@ interface FileInfo { * * - **macOS / Linux / Android / iOS:** Unsupported. */ - fileAttributes: number | null; + fileAttributes: number | null /** * ID of the device containing the file. * @@ -132,7 +132,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - dev: number | null; + dev: number | null /** * Inode number. * @@ -140,7 +140,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - ino: number | null; + ino: number | null /** * The underlying raw `st_mode` bits that contain the standard Unix * permissions for this file/directory. @@ -149,7 +149,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - mode: number | null; + mode: number | null /** * Number of hard links pointing to this file. * @@ -157,7 +157,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - nlink: number | null; + nlink: number | null /** * User ID of the owner of this file. * @@ -165,7 +165,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - uid: number | null; + uid: number | null /** * Group ID of the owner of this file. * @@ -173,7 +173,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - gid: number | null; + gid: number | null /** * Device ID of this file. * @@ -181,7 +181,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - rdev: number | null; + rdev: number | null /** * Blocksize for filesystem I/O. * @@ -189,7 +189,7 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - blksize: number | null; + blksize: number | null /** * Number of blocks allocated to the file, in 512-byte units. * @@ -197,28 +197,28 @@ interface FileInfo { * * - **Windows:** Unsupported. */ - blocks: number | null; + blocks: number | null } interface UnparsedFileInfo { - isFile: boolean; - isDirectory: boolean; - isSymlink: boolean; - size: number; - mtime: number | null; - atime: number | null; - birthtime: number | null; - readonly: boolean; - fileAttributes: number; - dev: number | null; - ino: number | null; - mode: number | null; - nlink: number | null; - uid: number | null; - gid: number | null; - rdev: number | null; - blksize: number | null; - blocks: number | null; + isFile: boolean + isDirectory: boolean + isSymlink: boolean + size: number + mtime: number | null + atime: number | null + birthtime: number | null + readonly: boolean + fileAttributes: number + dev: number | null + ino: number | null + mode: number | null + nlink: number | null + uid: number | null + gid: number | null + rdev: number | null + blksize: number | null + blocks: number | null } function parseFileInfo(r: UnparsedFileInfo): FileInfo { return { @@ -239,8 +239,8 @@ function parseFileInfo(r: UnparsedFileInfo): FileInfo { gid: r.gid, rdev: r.rdev, blksize: r.blksize, - blocks: r.blocks, - }; + blocks: r.blocks + } } /** @@ -282,17 +282,17 @@ class FileHandle extends Resource { */ async read(buffer: Uint8Array): Promise { if (buffer.byteLength === 0) { - return 0; + return 0 } - const [data, nread] = await invoke<[number[], number]>("plugin:fs|read", { + const [data, nread] = await invoke<[number[], number]>('plugin:fs|read', { rid: this.rid, - len: buffer.byteLength, - }); + len: buffer.byteLength + }) - buffer.set(data); + buffer.set(data) - return nread === 0 ? null : nread; + return nread === 0 ? null : nread } /** @@ -328,11 +328,11 @@ class FileHandle extends Resource { * @since 2.0.0 */ async seek(offset: number, whence: SeekMode): Promise { - return await invoke("plugin:fs|seek", { + return await invoke('plugin:fs|seek', { rid: this.rid, offset, - whence, - }); + whence + }) } /** @@ -350,11 +350,11 @@ class FileHandle extends Resource { * @since 2.0.0 */ async stat(): Promise { - const res = await invoke("plugin:fs|fstat", { - rid: this.rid, - }); + const res = await invoke('plugin:fs|fstat', { + rid: this.rid + }) - return parseFileInfo(res); + return parseFileInfo(res) } /** @@ -382,10 +382,10 @@ class FileHandle extends Resource { * @since 2.0.0 */ async truncate(len?: number): Promise { - await invoke("plugin:fs|ftruncate", { + await invoke('plugin:fs|ftruncate', { rid: this.rid, - len, - }); + len + }) } /** @@ -409,10 +409,10 @@ class FileHandle extends Resource { * @since 2.0.0 */ async write(data: Uint8Array): Promise { - return await invoke("plugin:fs|write", { + return await invoke('plugin:fs|write', { rid: this.rid, - data, - }); + data + }) } } @@ -421,7 +421,7 @@ class FileHandle extends Resource { */ interface CreateOptions { /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -440,18 +440,18 @@ interface CreateOptions { */ async function create( path: string | URL, - options?: CreateOptions, + options?: CreateOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - const rid = await invoke("plugin:fs|create", { + const rid = await invoke('plugin:fs|create', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) - return new FileHandle(rid); + return new FileHandle(rid) } /** @@ -462,49 +462,49 @@ interface OpenOptions { * Sets the option for read access. This option, when `true`, means that the * file should be read-able if opened. */ - read?: boolean; + read?: boolean /** * Sets the option for write access. This option, when `true`, means that * the file should be write-able if opened. If the file already exists, * any write calls on it will overwrite its contents, by default without * truncating it. */ - write?: boolean; + write?: boolean /** * Sets the option for the append mode. This option, when `true`, means that * writes will append to a file instead of overwriting previous contents. * Note that setting `{ write: true, append: true }` has the same effect as * setting only `{ append: true }`. */ - append?: boolean; + append?: boolean /** * Sets the option for truncating a previous file. If a file is * successfully opened with this option set it will truncate the file to `0` * size if it already exists. The file must be opened with write access * for truncate to work. */ - truncate?: boolean; + truncate?: boolean /** * Sets the option to allow creating a new file, if one doesn't already * exist at the specified path. Requires write or append access to be * used. */ - create?: boolean; + create?: boolean /** * Defaults to `false`. If set to `true`, no file, directory, or symlink is * allowed to exist at the target location. Requires write or append * access to be used. When createNew is set to `true`, create and truncate * are ignored. */ - createNew?: boolean; + createNew?: boolean /** * Permissions to use if creating the file (defaults to `0o666`, before * the process's umask). * Ignored on Windows. */ - mode?: number; + mode?: number /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -525,18 +525,18 @@ interface OpenOptions { */ async function open( path: string | URL, - options?: OpenOptions, + options?: OpenOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - const rid = await invoke("plugin:fs|open", { + const rid = await invoke('plugin:fs|open', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) - return new FileHandle(rid); + return new FileHandle(rid) } /** @@ -544,9 +544,9 @@ async function open( */ interface CopyFileOptions { /** Base directory for `fromPath`. */ - fromPathBaseDir?: BaseDirectory; + fromPathBaseDir?: BaseDirectory /** Base directory for `toPath`. */ - toPathBaseDir?: BaseDirectory; + toPathBaseDir?: BaseDirectory } /** @@ -562,20 +562,20 @@ interface CopyFileOptions { async function copyFile( fromPath: string | URL, toPath: string | URL, - options?: CopyFileOptions, + options?: CopyFileOptions ): Promise { if ( - (fromPath instanceof URL && fromPath.protocol !== "file:") || - (toPath instanceof URL && toPath.protocol !== "file:") + (fromPath instanceof URL && fromPath.protocol !== 'file:') || + (toPath instanceof URL && toPath.protocol !== 'file:') ) { - throw new TypeError("Must be a file URL."); + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|copy_file", { + await invoke('plugin:fs|copy_file', { fromPath: fromPath instanceof URL ? fromPath.toString() : fromPath, toPath: toPath instanceof URL ? toPath.toString() : toPath, - options, - }); + options + }) } /** @@ -583,13 +583,13 @@ async function copyFile( */ interface MkdirOptions { /** Permissions to use when creating the directory (defaults to `0o777`, before the process's umask). Ignored on Windows. */ - mode?: number; + mode?: number /** * Defaults to `false`. If set to `true`, means that any intermediate directories will also be created (as with the shell command `mkdir -p`). * */ - recursive?: boolean; + recursive?: boolean /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -604,16 +604,16 @@ interface MkdirOptions { */ async function mkdir( path: string | URL, - options?: MkdirOptions, + options?: MkdirOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|mkdir", { + await invoke('plugin:fs|mkdir', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) } /** @@ -621,7 +621,7 @@ async function mkdir( */ interface ReadDirOptions { /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -633,13 +633,13 @@ interface ReadDirOptions { */ interface DirEntry { /** The name of the entry (file name with extension or directory name). */ - name: string; + name: string /** Specifies whether this entry is a directory or not. */ - isDirectory: boolean; + isDirectory: boolean /** Specifies whether this entry is a file or not. */ - isFile: boolean; + isFile: boolean /** Specifies whether this entry is a symlink or not. */ - isSymlink: boolean; + isSymlink: boolean } /** @@ -666,16 +666,16 @@ interface DirEntry { */ async function readDir( path: string | URL, - options?: ReadDirOptions, + options?: ReadDirOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - return await invoke("plugin:fs|read_dir", { + return await invoke('plugin:fs|read_dir', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) } /** @@ -683,7 +683,7 @@ async function readDir( */ interface ReadFileOptions { /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -699,20 +699,18 @@ interface ReadFileOptions { */ async function readFile( path: string | URL, - options?: ReadFileOptions, + options?: ReadFileOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - const arr = await invoke("plugin:fs|read_file", { + const arr = await invoke('plugin:fs|read_file', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) - return arr instanceof ArrayBuffer - ? new Uint8Array(arr) - : Uint8Array.from(arr); + return arr instanceof ArrayBuffer ? new Uint8Array(arr) : Uint8Array.from(arr) } /** @@ -727,16 +725,16 @@ async function readFile( */ async function readTextFile( path: string | URL, - options?: ReadFileOptions, + options?: ReadFileOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - return await invoke("plugin:fs|read_text_file", { + return await invoke('plugin:fs|read_text_file', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) } /** @@ -756,42 +754,42 @@ async function readTextFile( */ async function readTextFileLines( path: string | URL, - options?: ReadFileOptions, + options?: ReadFileOptions ): Promise> { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - const pathStr = path instanceof URL ? path.toString() : path; + const pathStr = path instanceof URL ? path.toString() : path return await Promise.resolve({ path: pathStr, rid: null as number | null, async next(): Promise> { if (this.rid === null) { - this.rid = await invoke("plugin:fs|read_text_file_lines", { + this.rid = await invoke('plugin:fs|read_text_file_lines', { path: pathStr, - options, - }); + options + }) } const [line, done] = await invoke<[string | null, boolean]>( - "plugin:fs|read_text_file_lines_next", - { rid: this.rid }, - ); + 'plugin:fs|read_text_file_lines_next', + { rid: this.rid } + ) // an iteration is over, reset rid for next iteration - if (done) this.rid = null; + if (done) this.rid = null return { - value: done ? "" : line!, - done, - }; + value: done ? '' : line!, + done + } }, [Symbol.asyncIterator](): AsyncIterableIterator { - return this; - }, - }); + return this + } + }) } /** @@ -799,9 +797,9 @@ async function readTextFileLines( */ interface RemoveOptions { /** Defaults to `false`. If set to `true`, path will be removed even if it's a non-empty directory. */ - recursive?: boolean; + recursive?: boolean /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -818,16 +816,16 @@ interface RemoveOptions { */ async function remove( path: string | URL, - options?: RemoveOptions, + options?: RemoveOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|remove", { + await invoke('plugin:fs|remove', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) } /** @@ -835,9 +833,9 @@ async function remove( */ interface RenameOptions { /** Base directory for `oldPath`. */ - oldPathBaseDir?: BaseDirectory; + oldPathBaseDir?: BaseDirectory /** Base directory for `newPath`. */ - newPathBaseDir?: BaseDirectory; + newPathBaseDir?: BaseDirectory } /** @@ -858,20 +856,20 @@ interface RenameOptions { async function rename( oldPath: string | URL, newPath: string | URL, - options?: RenameOptions, + options?: RenameOptions ): Promise { if ( - (oldPath instanceof URL && oldPath.protocol !== "file:") || - (newPath instanceof URL && newPath.protocol !== "file:") + (oldPath instanceof URL && oldPath.protocol !== 'file:') || + (newPath instanceof URL && newPath.protocol !== 'file:') ) { - throw new TypeError("Must be a file URL."); + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|rename", { + await invoke('plugin:fs|rename', { oldPath: oldPath instanceof URL ? oldPath.toString() : oldPath, newPath: newPath instanceof URL ? newPath.toString() : newPath, - options, - }); + options + }) } /** @@ -879,7 +877,7 @@ async function rename( */ interface StatOptions { /** Base directory for `path`. */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -897,14 +895,14 @@ interface StatOptions { */ async function stat( path: string | URL, - options?: StatOptions, + options?: StatOptions ): Promise { - const res = await invoke("plugin:fs|stat", { + const res = await invoke('plugin:fs|stat', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) - return parseFileInfo(res); + return parseFileInfo(res) } /** @@ -923,14 +921,14 @@ async function stat( */ async function lstat( path: string | URL, - options?: StatOptions, + options?: StatOptions ): Promise { - const res = await invoke("plugin:fs|lstat", { + const res = await invoke('plugin:fs|lstat', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) - return parseFileInfo(res); + return parseFileInfo(res) } /** @@ -938,7 +936,7 @@ async function lstat( */ interface TruncateOptions { /** Base directory for `path`. */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -964,17 +962,17 @@ interface TruncateOptions { async function truncate( path: string | URL, len?: number, - options?: TruncateOptions, + options?: TruncateOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|truncate", { + await invoke('plugin:fs|truncate', { path: path instanceof URL ? path.toString() : path, len, - options, - }); + options + }) } /** @@ -982,15 +980,15 @@ async function truncate( */ interface WriteFileOptions { /** Defaults to `false`. If set to `true`, will append to a file instead of overwriting previous contents. */ - append?: boolean; + append?: boolean /** Sets the option to allow creating a new file, if one doesn't already exist at the specified path (defaults to `true`). */ - create?: boolean; + create?: boolean /** Sets the option to create a new file, failing if it already exists. */ - createNew?: boolean; + createNew?: boolean /** File permissions. Ignored on Windows. */ - mode?: number; + mode?: number /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -1009,18 +1007,18 @@ interface WriteFileOptions { async function writeFile( path: string | URL, data: Uint8Array, - options?: WriteFileOptions, + options?: WriteFileOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|write_file", data, { + await invoke('plugin:fs|write_file', data, { headers: { path: path instanceof URL ? path.toString() : path, - options: JSON.stringify(options), - }, - }); + options: JSON.stringify(options) + } + }) } /** @@ -1037,17 +1035,17 @@ async function writeFile( async function writeTextFile( path: string | URL, data: string, - options?: WriteFileOptions, + options?: WriteFileOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - await invoke("plugin:fs|write_text_file", { + await invoke('plugin:fs|write_text_file', { path: path instanceof URL ? path.toString() : path, data, - options, - }); + options + }) } /** @@ -1055,7 +1053,7 @@ async function writeTextFile( */ interface ExistsOptions { /** Base directory for `path`. */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -1071,16 +1069,16 @@ interface ExistsOptions { */ async function exists( path: string | URL, - options?: ExistsOptions, + options?: ExistsOptions ): Promise { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } - return await invoke("plugin:fs|exists", { + return await invoke('plugin:fs|exists', { path: path instanceof URL ? path.toString() : path, - options, - }); + options + }) } /** @@ -1088,9 +1086,9 @@ async function exists( */ interface WatchOptions { /** Watch a directory recursively */ - recursive?: boolean; + recursive?: boolean /** Base directory for `path` */ - baseDir?: BaseDirectory; + baseDir?: BaseDirectory } /** @@ -1098,83 +1096,83 @@ interface WatchOptions { */ interface DebouncedWatchOptions extends WatchOptions { /** Debounce delay */ - delayMs?: number; + delayMs?: number } /** * @since 2.0.0 */ interface WatchEvent { - type: WatchEventKind; - paths: string[]; - attrs: unknown; + type: WatchEventKind + paths: string[] + attrs: unknown } /** * @since 2.0.0 */ type WatchEventKind = - | "any" + | 'any' | { access: WatchEventKindAccess } | { create: WatchEventKindCreate } | { modify: WatchEventKindModify } | { remove: WatchEventKindRemove } - | "other"; + | 'other' /** * @since 2.0.0 */ type WatchEventKindAccess = - | { kind: "any" } - | { kind: "close"; mode: "any" | "execute" | "read" | "write" | "other" } - | { kind: "open"; mode: "any" | "execute" | "read" | "write" | "other" } - | { kind: "other" }; + | { kind: 'any' } + | { kind: 'close'; mode: 'any' | 'execute' | 'read' | 'write' | 'other' } + | { kind: 'open'; mode: 'any' | 'execute' | 'read' | 'write' | 'other' } + | { kind: 'other' } /** * @since 2.0.0 */ type WatchEventKindCreate = - | { kind: "any" } - | { kind: "file" } - | { kind: "folder" } - | { kind: "other" }; + | { kind: 'any' } + | { kind: 'file' } + | { kind: 'folder' } + | { kind: 'other' } /** * @since 2.0.0 */ type WatchEventKindModify = - | { kind: "any" } - | { kind: "data"; mode: "any" | "size" | "content" | "other" } + | { kind: 'any' } + | { kind: 'data'; mode: 'any' | 'size' | 'content' | 'other' } | { - kind: "metadata"; + kind: 'metadata' mode: - | "any" - | "access-time" - | "write-time" - | "permissions" - | "ownership" - | "extended" - | "other"; + | 'any' + | 'access-time' + | 'write-time' + | 'permissions' + | 'ownership' + | 'extended' + | 'other' } - | { kind: "rename"; mode: "any" | "to" | "from" | "both" | "other" } - | { kind: "other" }; + | { kind: 'rename'; mode: 'any' | 'to' | 'from' | 'both' | 'other' } + | { kind: 'other' } /** * @since 2.0.0 */ type WatchEventKindRemove = - | { kind: "any" } - | { kind: "file" } - | { kind: "folder" } - | { kind: "other" }; + | { kind: 'any' } + | { kind: 'file' } + | { kind: 'folder' } + | { kind: 'other' } /** * @since 2.0.0 */ -type UnwatchFn = () => void; +type UnwatchFn = () => void async function unwatch(rid: number): Promise { - await invoke("plugin:fs|unwatch", { rid }); + await invoke('plugin:fs|unwatch', { rid }) } /** @@ -1185,34 +1183,34 @@ async function unwatch(rid: number): Promise { async function watch( paths: string | string[] | URL | URL[], cb: (event: WatchEvent) => void, - options?: DebouncedWatchOptions, + options?: DebouncedWatchOptions ): Promise { const opts = { recursive: false, delayMs: 2000, - ...options, - }; + ...options + } - const watchPaths = Array.isArray(paths) ? paths : [paths]; + const watchPaths = Array.isArray(paths) ? paths : [paths] for (const path of watchPaths) { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } } - const onEvent = new Channel(); - onEvent.onmessage = cb; + const onEvent = new Channel() + onEvent.onmessage = cb - const rid: number = await invoke("plugin:fs|watch", { + const rid: number = await invoke('plugin:fs|watch', { paths: watchPaths.map((p) => (p instanceof URL ? p.toString() : p)), options: opts, - onEvent, - }); + onEvent + }) return () => { - void unwatch(rid); - }; + void unwatch(rid) + } } /** @@ -1223,34 +1221,34 @@ async function watch( async function watchImmediate( paths: string | string[] | URL | URL[], cb: (event: WatchEvent) => void, - options?: WatchOptions, + options?: WatchOptions ): Promise { const opts = { recursive: false, ...options, - delayMs: null, - }; + delayMs: null + } - const watchPaths = Array.isArray(paths) ? paths : [paths]; + const watchPaths = Array.isArray(paths) ? paths : [paths] for (const path of watchPaths) { - if (path instanceof URL && path.protocol !== "file:") { - throw new TypeError("Must be a file URL."); + if (path instanceof URL && path.protocol !== 'file:') { + throw new TypeError('Must be a file URL.') } } - const onEvent = new Channel(); - onEvent.onmessage = cb; + const onEvent = new Channel() + onEvent.onmessage = cb - const rid: number = await invoke("plugin:fs|watch", { + const rid: number = await invoke('plugin:fs|watch', { paths: watchPaths.map((p) => (p instanceof URL ? p.toString() : p)), options: opts, - onEvent, - }); + onEvent + }) return () => { - void unwatch(rid); - }; + void unwatch(rid) + } } export type { @@ -1276,8 +1274,8 @@ export type { WatchEventKindCreate, WatchEventKindModify, WatchEventKindRemove, - UnwatchFn, -}; + UnwatchFn +} export { BaseDirectory, @@ -1300,5 +1298,5 @@ export { writeTextFile, exists, watch, - watchImmediate, -}; + watchImmediate +} diff --git a/plugins/fs/permissions/create-app-specific-dirs.toml b/plugins/fs/permissions/create-app-specific-dirs.toml index 45fa632e1..68a849219 100644 --- a/plugins/fs/permissions/create-app-specific-dirs.toml +++ b/plugins/fs/permissions/create-app-specific-dirs.toml @@ -20,4 +20,4 @@ path = "$APPLOCALDATA" path = "$APPCACHE" [[permission.scope.allow]] -path = "$APPLOG" \ No newline at end of file +path = "$APPLOG" diff --git a/plugins/fs/permissions/default.toml b/plugins/fs/permissions/default.toml index 279fca79e..d519d7583 100644 --- a/plugins/fs/permissions/default.toml +++ b/plugins/fs/permissions/default.toml @@ -28,7 +28,7 @@ On Windows the webview data folder access is denied. """ permissions = [ - "create-app-specific-dirs", - "read-app-specific-dirs-recursive", - "deny-default", + "create-app-specific-dirs", + "read-app-specific-dirs-recursive", + "deny-default", ] diff --git a/plugins/fs/permissions/read-all.toml b/plugins/fs/permissions/read-all.toml index 99cbadf39..d43af5e09 100644 --- a/plugins/fs/permissions/read-all.toml +++ b/plugins/fs/permissions/read-all.toml @@ -4,18 +4,18 @@ identifier = "read-all" description = "This enables all read related commands without any pre-configured accessible paths." commands.allow = [ - "read_dir", - "read_file", - "read", - "open", - "read_text_file", - "read_text_file_lines", - "read_text_file_lines_next", - "seek", - "stat", - "lstat", - "fstat", - "exists", - "watch", - "unwatch", + "read_dir", + "read_file", + "read", + "open", + "read_text_file", + "read_text_file_lines", + "read_text_file_lines_next", + "seek", + "stat", + "lstat", + "fstat", + "exists", + "watch", + "unwatch", ] diff --git a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml index 409f24fcd..af1d0fce9 100644 --- a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml +++ b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml @@ -7,12 +7,12 @@ This permission allows recursive read functionality on the application specific base directories. """ commands.allow = [ - "read_dir", - "read_file", - "read_text_file", - "read_text_file_lines", - "read_text_file_lines_next", - "exists", + "read_dir", + "read_file", + "read_text_file", + "read_text_file_lines", + "read_text_file_lines_next", + "exists", ] [[permission.scope.allow]] @@ -28,4 +28,4 @@ path = "$APPLOCALDATA/**" path = "$APPCACHE/**" [[permission.scope.allow]] -path = "$APPLOG/**" \ No newline at end of file +path = "$APPLOG/**" diff --git a/plugins/fs/permissions/read-files.toml b/plugins/fs/permissions/read-files.toml index a0691b44f..f2685108b 100644 --- a/plugins/fs/permissions/read-files.toml +++ b/plugins/fs/permissions/read-files.toml @@ -4,16 +4,16 @@ identifier = "read-files" description = "This enables file read related commands without any pre-configured accessible paths." commands.allow = [ - "read_file", - "read", - "open", - "read_text_file", - "read_text_file_lines", - "read_text_file_lines_next", - "seek", - "stat", - "lstat", - "fstat", - "exists", + "read_file", + "read", + "open", + "read_text_file", + "read_text_file_lines", + "read_text_file_lines_next", + "seek", + "stat", + "lstat", + "fstat", + "exists", ] diff --git a/plugins/fs/permissions/write-all.toml b/plugins/fs/permissions/write-all.toml index 55a512ded..c18027825 100644 --- a/plugins/fs/permissions/write-all.toml +++ b/plugins/fs/permissions/write-all.toml @@ -4,14 +4,14 @@ identifier = "write-all" description = "This enables all write related commands without any pre-configured accessible paths." commands.allow = [ - "mkdir", - "create", - "copy_file", - "remove", - "rename", - "truncate", - "ftruncate", - "write", - "write_file", - "write_text_file", + "mkdir", + "create", + "copy_file", + "remove", + "rename", + "truncate", + "ftruncate", + "write", + "write_file", + "write_text_file", ] diff --git a/plugins/fs/permissions/write-files.toml b/plugins/fs/permissions/write-files.toml index 239bc60d7..2d6aeffb1 100644 --- a/plugins/fs/permissions/write-files.toml +++ b/plugins/fs/permissions/write-files.toml @@ -4,13 +4,13 @@ identifier = "write-files" description = "This enables all file write related commands without any pre-configured accessible paths." commands.allow = [ - "create", - "copy_file", - "remove", - "rename", - "truncate", - "ftruncate", - "write", - "write_file", - "write_text_file", + "create", + "copy_file", + "remove", + "rename", + "truncate", + "ftruncate", + "write", + "write_file", + "write_text_file", ] diff --git a/plugins/fs/rollup.config.js b/plugins/fs/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/fs/rollup.config.js +++ b/plugins/fs/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/geolocation/.gitignore b/plugins/geolocation/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/geolocation/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index f89a69ff7..9b13a7fc5 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -9,12 +9,12 @@ repository = { workspace = true } links = "tauri-plugin-geolocation" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/geolocation/README.md b/plugins/geolocation/README.md index 972542dd3..d6f2baded 100644 --- a/plugins/geolocation/README.md +++ b/plugins/geolocation/README.md @@ -87,16 +87,16 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { getCurrentPosition, watchPosition } from "@tauri-apps/plugin-log"; +import { getCurrentPosition, watchPosition } from '@tauri-apps/plugin-log' -const pos = await getCurrentPosition(); +const pos = await getCurrentPosition() await watchPosition( { enableHighAccuracy: true, timeout: 10000, maximumAge: 0 }, (pos) => { - console.log(pos); + console.log(pos) } -); +) ``` ## Contributing diff --git a/plugins/geolocation/SECURITY.md b/plugins/geolocation/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/geolocation/SECURITY.md +++ b/plugins/geolocation/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/geolocation/guest-js/bindings.ts b/plugins/geolocation/guest-js/bindings.ts index 6bff7b548..f68ecbc32 100644 --- a/plugins/geolocation/guest-js/bindings.ts +++ b/plugins/geolocation/guest-js/bindings.ts @@ -9,77 +9,77 @@ export const commands = { async getCurrentPosition( - options: PositionOptions | null, + options: PositionOptions | null ): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:geolocation|get_current_position", { - options, - }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:geolocation|get_current_position', { + options + }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async watchPosition( options: PositionOptions, - channel: any, + channel: any ): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:geolocation|watch_position", { + status: 'ok', + data: await TAURI_INVOKE('plugin:geolocation|watch_position', { options, - channel, - }), - }; + channel + }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async clearWatch(channelId: number): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:geolocation|clear_watch", { - channelId, - }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:geolocation|clear_watch', { + channelId + }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async checkPermissions(): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:geolocation|check_permissions"), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:geolocation|check_permissions') + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async requestPermissions( - permissions: PermissionType[] | null, + permissions: PermissionType[] | null ): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:geolocation|request_permissions", { - permissions, - }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:geolocation|request_permissions', { + permissions + }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } - }, -}; + } +} /** user-defined events **/ @@ -97,31 +97,31 @@ export type Coordinates = { /** * Latitude in decimal degrees. */ - latitude: number; + latitude: number /** * Longitude in decimal degrees. */ - longitude: number; + longitude: number /** * Accuracy level of the latitude and longitude coordinates in meters. */ - accuracy: number; + accuracy: number /** * Accuracy level of the altitude coordinate in meters, if available. * Available on all iOS versions and on Android 8 and above. */ - altitudeAccuracy: number | null; + altitudeAccuracy: number | null /** * The altitude the user is at, if available. */ - altitude: number | null; - speed: number | null; + altitude: number | null + speed: number | null /** * The heading the user is facing, if available. */ - heading: number | null; -}; -export type Error = never; + heading: number | null +} +export type Error = never /** * Permission state. */ @@ -129,15 +129,15 @@ export type PermissionState = /** * Permission access has been granted. */ - | "granted" + | 'granted' /** * Permission access has been denied. */ - | "denied" + | 'denied' /** * The end user should be prompted for permission. */ - | "prompt"; + | 'prompt' export type PermissionStatus = { /** * Permission state for the location alias. @@ -146,7 +146,7 @@ export type PermissionStatus = { * * On iOS it requests/checks location permissions. */ - location: PermissionState; + location: PermissionState /** * Permissions state for the coarseLoaction alias. * @@ -156,93 +156,93 @@ export type PermissionStatus = { * * On iOS it will have the same value as the `location` alias. */ - coarseLocation: PermissionState; -}; -export type PermissionType = "location" | "coarseLocation"; + coarseLocation: PermissionState +} +export type PermissionType = 'location' | 'coarseLocation' export type Position = { /** * Creation time for these coordinates. */ - timestamp: number; + timestamp: number /** * The GPD coordinates along with the accuracy of the data. */ - coords: Coordinates; -}; + coords: Coordinates +} export type PositionOptions = { /** * High accuracy mode (such as GPS, if available) * Will be ignored on Android 12+ if users didn't grant the ACCESS_FINE_LOCATION permission. */ - enableHighAccuracy: boolean; + enableHighAccuracy: boolean /** * The maximum wait time in milliseconds for location updates. * On Android the timeout gets ignored for getCurrentPosition. * Ignored on iOS */ - timeout: number; + timeout: number /** * The maximum age in milliseconds of a possible cached position that is acceptable to return. * Default: 0 * Ignored on iOS */ - maximumAge: number; -}; + maximumAge: number +} //export type RandomNumber = number; /** tauri-specta globals **/ -import { invoke as TAURI_INVOKE } from "@tauri-apps/api/core"; -import * as TAURI_API_EVENT from "@tauri-apps/api/event"; -import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow"; +import { invoke as TAURI_INVOKE } from '@tauri-apps/api/core' +import * as TAURI_API_EVENT from '@tauri-apps/api/event' +import { type WebviewWindow as __WebviewWindow__ } from '@tauri-apps/api/webviewWindow' type __EventObj__ = { listen: ( - cb: TAURI_API_EVENT.EventCallback, - ) => ReturnType>; + cb: TAURI_API_EVENT.EventCallback + ) => ReturnType> once: ( - cb: TAURI_API_EVENT.EventCallback, - ) => ReturnType>; + cb: TAURI_API_EVENT.EventCallback + ) => ReturnType> emit: T extends null ? (payload?: T) => ReturnType - : (payload: T) => ReturnType; -}; + : (payload: T) => ReturnType +} export type Result = - | { status: "ok"; data: T } - | { status: "error"; error: E }; + | { status: 'ok'; data: T } + | { status: 'error'; error: E } function __makeEvents__>( - mappings: Record, + mappings: Record ) { return new Proxy( {} as unknown as { [K in keyof T]: __EventObj__ & { - (handle: __WebviewWindow__): __EventObj__; - }; + (handle: __WebviewWindow__): __EventObj__ + } }, { get: (_, event) => { - const name = mappings[event as keyof T]; + const name = mappings[event as keyof T] return new Proxy((() => {}) as any, { apply: (_, __, [window]: [__WebviewWindow__]) => ({ listen: (arg: any) => window.listen(name, arg), once: (arg: any) => window.once(name, arg), - emit: (arg: any) => window.emit(name, arg), + emit: (arg: any) => window.emit(name, arg) }), get: (_, command: keyof __EventObj__) => { switch (command) { - case "listen": - return (arg: any) => TAURI_API_EVENT.listen(name, arg); - case "once": - return (arg: any) => TAURI_API_EVENT.once(name, arg); - case "emit": - return (arg: any) => TAURI_API_EVENT.emit(name, arg); + case 'listen': + return (arg: any) => TAURI_API_EVENT.listen(name, arg) + case 'once': + return (arg: any) => TAURI_API_EVENT.once(name, arg) + case 'emit': + return (arg: any) => TAURI_API_EVENT.emit(name, arg) } - }, - }); - }, - }, - ); + } + }) + } + } + ) } diff --git a/plugins/geolocation/guest-js/index.ts b/plugins/geolocation/guest-js/index.ts index a7b89ccb3..ffda74837 100644 --- a/plugins/geolocation/guest-js/index.ts +++ b/plugins/geolocation/guest-js/index.ts @@ -4,26 +4,26 @@ /* eslint-disable @typescript-eslint/unbound-method */ -import { Channel } from "@tauri-apps/api/core"; -import { commands, type PositionOptions, type Position } from "./bindings"; +import { Channel } from '@tauri-apps/api/core' +import { commands, type PositionOptions, type Position } from './bindings' export async function watchPosition( options: PositionOptions, // TODO: This can receive errors too - cb: (location: Position | string) => void, + cb: (location: Position | string) => void ): Promise { - const channel = new Channel(); - channel.onmessage = cb; - await commands.watchPosition(options, channel); - return channel.id; + const channel = new Channel() + channel.onmessage = cb + await commands.watchPosition(options, channel) + return channel.id } export const { getCurrentPosition, clearWatch, checkPermissions, - requestPermissions, -} = commands; + requestPermissions +} = commands export type { PermissionState, @@ -31,7 +31,7 @@ export type { PermissionType, Position, PositionOptions, - Coordinates, -} from "./bindings"; + Coordinates +} from './bindings' // export { events }; diff --git a/plugins/geolocation/rollup.config.js b/plugins/geolocation/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/geolocation/rollup.config.js +++ b/plugins/geolocation/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 57da0e012..9da8e7ee8 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-global-shortcut" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/global-shortcut/README.md b/plugins/global-shortcut/README.md index 18b370826..68ee4b53e 100644 --- a/plugins/global-shortcut/README.md +++ b/plugins/global-shortcut/README.md @@ -87,12 +87,12 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript bindings: ```javascript -import { register } from "@tauri-apps/plugin-global-shortcut"; -await register("CommandOrControl+Shift+C", (event) => { - if (event.state === "Pressed") { - console.log("Shortcut triggered"); +import { register } from '@tauri-apps/plugin-global-shortcut' +await register('CommandOrControl+Shift+C', (event) => { + if (event.state === 'Pressed') { + console.log('Shortcut triggered') } -}); +}) ``` ## Contributing diff --git a/plugins/global-shortcut/SECURITY.md b/plugins/global-shortcut/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/global-shortcut/SECURITY.md +++ b/plugins/global-shortcut/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/global-shortcut/guest-js/index.ts b/plugins/global-shortcut/guest-js/index.ts index 4ec9b538b..13e8e50e8 100644 --- a/plugins/global-shortcut/guest-js/index.ts +++ b/plugins/global-shortcut/guest-js/index.ts @@ -8,15 +8,15 @@ * @module */ -import { invoke, Channel } from "@tauri-apps/api/core"; +import { invoke, Channel } from '@tauri-apps/api/core' export interface ShortcutEvent { - shortcut: string; - id: number; - state: "Released" | "Pressed"; + shortcut: string + id: number + state: 'Released' | 'Pressed' } -export type ShortcutHandler = (event: ShortcutEvent) => void; +export type ShortcutHandler = (event: ShortcutEvent) => void /** * Register a global shortcut or a list of shortcuts. @@ -50,15 +50,15 @@ export type ShortcutHandler = (event: ShortcutEvent) => void; */ async function register( shortcuts: string | string[], - handler: ShortcutHandler, + handler: ShortcutHandler ): Promise { - const h = new Channel(); - h.onmessage = handler; + const h = new Channel() + h.onmessage = handler - return await invoke("plugin:global-shortcut|register", { + return await invoke('plugin:global-shortcut|register', { shortcuts: Array.isArray(shortcuts) ? shortcuts : [shortcuts], - handler: h, - }); + handler: h + }) } /** @@ -80,9 +80,9 @@ async function register( * @since 2.0.0 */ async function unregister(shortcuts: string | string[]): Promise { - return await invoke("plugin:global-shortcut|unregister", { - shortcuts: Array.isArray(shortcuts) ? shortcuts : [shortcuts], - }); + return await invoke('plugin:global-shortcut|unregister', { + shortcuts: Array.isArray(shortcuts) ? shortcuts : [shortcuts] + }) } /** @@ -96,7 +96,7 @@ async function unregister(shortcuts: string | string[]): Promise { * @since 2.0.0 */ async function unregisterAll(): Promise { - return await invoke("plugin:global-shortcut|unregister_all", {}); + return await invoke('plugin:global-shortcut|unregister_all', {}) } /** @@ -115,9 +115,9 @@ async function unregisterAll(): Promise { * @since 2.0.0 */ async function isRegistered(shortcut: string): Promise { - return await invoke("plugin:global-shortcut|is_registered", { - shortcut, - }); + return await invoke('plugin:global-shortcut|is_registered', { + shortcut + }) } -export { register, unregister, unregisterAll, isRegistered }; +export { register, unregister, unregisterAll, isRegistered } diff --git a/plugins/global-shortcut/rollup.config.js b/plugins/global-shortcut/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/global-shortcut/rollup.config.js +++ b/plugins/global-shortcut/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/haptics/.gitignore b/plugins/haptics/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/haptics/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index be3a055bf..97ab3e248 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -9,12 +9,12 @@ repository = { workspace = true } links = "tauri-plugin-haptics" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/haptics/README.md b/plugins/haptics/README.md index dc86d99a1..f29c8c32b 100644 --- a/plugins/haptics/README.md +++ b/plugins/haptics/README.md @@ -68,13 +68,13 @@ import { vibrate, impactFeedback, notificationFeedback, - selectionFeedback, -} from "@tauri-apps/plugin-haptics"; + selectionFeedback +} from '@tauri-apps/plugin-haptics' -await vibrate(1); -await impactFeedback("medium"); -await notificationFeedback("warning"); -await selectionFeedback(); +await vibrate(1) +await impactFeedback('medium') +await notificationFeedback('warning') +await selectionFeedback() ``` ## Contributing diff --git a/plugins/haptics/SECURITY.md b/plugins/haptics/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/haptics/SECURITY.md +++ b/plugins/haptics/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/haptics/guest-js/bindings.ts b/plugins/haptics/guest-js/bindings.ts index 73623de26..d12920d85 100644 --- a/plugins/haptics/guest-js/bindings.ts +++ b/plugins/haptics/guest-js/bindings.ts @@ -11,54 +11,54 @@ export const commands = { async vibrate(duration: number): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:haptics|vibrate", { duration }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:haptics|vibrate', { duration }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async impactFeedback( - style: ImpactFeedbackStyle, + style: ImpactFeedbackStyle ): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:haptics|impact_feedback", { style }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:haptics|impact_feedback', { style }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async notificationFeedback( - type: NotificationFeedbackType, + type: NotificationFeedbackType ): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:haptics|notification_feedback", { - type, - }), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:haptics|notification_feedback', { + type + }) + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } }, async selectionFeedback(): Promise> { try { return { - status: "ok", - data: await TAURI_INVOKE("plugin:haptics|selection_feedback"), - }; + status: 'ok', + data: await TAURI_INVOKE('plugin:haptics|selection_feedback') + } } catch (e) { - if (e instanceof Error) throw e; - else return { status: "error", error: e as any }; + if (e instanceof Error) throw e + else return { status: 'error', error: e as any } } - }, -}; + } +} /** user-defined events **/ @@ -72,69 +72,69 @@ export const commands = { /** user-defined types **/ -export type Error = never; +export type Error = never export type ImpactFeedbackStyle = - | "light" - | "medium" - | "heavy" - | "soft" - | "rigid"; -export type NotificationFeedbackType = "success" | "warning" | "error"; + | 'light' + | 'medium' + | 'heavy' + | 'soft' + | 'rigid' +export type NotificationFeedbackType = 'success' | 'warning' | 'error' //export type RandomNumber = number; /** tauri-specta globals **/ -import { invoke as TAURI_INVOKE } from "@tauri-apps/api/core"; -import * as TAURI_API_EVENT from "@tauri-apps/api/event"; -import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow"; +import { invoke as TAURI_INVOKE } from '@tauri-apps/api/core' +import * as TAURI_API_EVENT from '@tauri-apps/api/event' +import { type WebviewWindow as __WebviewWindow__ } from '@tauri-apps/api/webviewWindow' type __EventObj__ = { listen: ( - cb: TAURI_API_EVENT.EventCallback, - ) => ReturnType>; + cb: TAURI_API_EVENT.EventCallback + ) => ReturnType> once: ( - cb: TAURI_API_EVENT.EventCallback, - ) => ReturnType>; + cb: TAURI_API_EVENT.EventCallback + ) => ReturnType> emit: T extends null ? (payload?: T) => ReturnType - : (payload: T) => ReturnType; -}; + : (payload: T) => ReturnType +} export type Result = - | { status: "ok"; data: T } - | { status: "error"; error: E }; + | { status: 'ok'; data: T } + | { status: 'error'; error: E } function __makeEvents__>( - mappings: Record, + mappings: Record ) { return new Proxy( {} as unknown as { [K in keyof T]: __EventObj__ & { - (handle: __WebviewWindow__): __EventObj__; - }; + (handle: __WebviewWindow__): __EventObj__ + } }, { get: (_, event) => { - const name = mappings[event as keyof T]; + const name = mappings[event as keyof T] return new Proxy((() => {}) as any, { apply: (_, __, [window]: [__WebviewWindow__]) => ({ listen: (arg: any) => window.listen(name, arg), once: (arg: any) => window.once(name, arg), - emit: (arg: any) => window.emit(name, arg), + emit: (arg: any) => window.emit(name, arg) }), get: (_, command: keyof __EventObj__) => { switch (command) { - case "listen": - return (arg: any) => TAURI_API_EVENT.listen(name, arg); - case "once": - return (arg: any) => TAURI_API_EVENT.once(name, arg); - case "emit": - return (arg: any) => TAURI_API_EVENT.emit(name, arg); + case 'listen': + return (arg: any) => TAURI_API_EVENT.listen(name, arg) + case 'once': + return (arg: any) => TAURI_API_EVENT.once(name, arg) + case 'emit': + return (arg: any) => TAURI_API_EVENT.emit(name, arg) } - }, - }); - }, - }, - ); + } + }) + } + } + ) } diff --git a/plugins/haptics/guest-js/index.ts b/plugins/haptics/guest-js/index.ts index 0354ce845..23485bdfb 100644 --- a/plugins/haptics/guest-js/index.ts +++ b/plugins/haptics/guest-js/index.ts @@ -4,15 +4,15 @@ /* eslint-disable @typescript-eslint/unbound-method */ -import { commands } from "./bindings"; +import { commands } from './bindings' export const { vibrate, impactFeedback, notificationFeedback, - selectionFeedback, -} = commands; + selectionFeedback +} = commands -export { ImpactFeedbackStyle, NotificationFeedbackType } from "./bindings"; +export { ImpactFeedbackStyle, NotificationFeedbackType } from './bindings' // export { events }; diff --git a/plugins/haptics/rollup.config.js b/plugins/haptics/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/haptics/rollup.config.js +++ b/plugins/haptics/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index e1e2eb386..925bddd7c 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-http" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } serde = { workspace = true } url = { workspace = true } diff --git a/plugins/http/README.md b/plugins/http/README.md index b4e7c2b72..d6c6a9800 100644 --- a/plugins/http/README.md +++ b/plugins/http/README.md @@ -60,11 +60,11 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { fetch } from "@tauri-apps/plugin-http"; -const response = await fetch("http://localhost:3003/users/2", { - method: "GET", - timeout: 30, -}); +import { fetch } from '@tauri-apps/plugin-http' +const response = await fetch('http://localhost:3003/users/2', { + method: 'GET', + timeout: 30 +}) ``` ## Contributing diff --git a/plugins/http/SECURITY.md b/plugins/http/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/http/SECURITY.md +++ b/plugins/http/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/http/guest-js/index.ts b/plugins/http/guest-js/index.ts index 3eb597c0c..4362e893a 100644 --- a/plugins/http/guest-js/index.ts +++ b/plugins/http/guest-js/index.ts @@ -26,7 +26,7 @@ * @module */ -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** * Configuration of a proxy that a Client should pass requests to. @@ -37,34 +37,34 @@ export interface Proxy { /** * Proxy all traffic to the passed URL. */ - all?: string | ProxyConfig; + all?: string | ProxyConfig /** * Proxy all HTTP traffic to the passed URL. */ - http?: string | ProxyConfig; + http?: string | ProxyConfig /** * Proxy all HTTPS traffic to the passed URL. */ - https?: string | ProxyConfig; + https?: string | ProxyConfig } export interface ProxyConfig { /** * The URL of the proxy server. */ - url: string; + url: string /** * Set the `Proxy-Authorization` header using Basic auth. */ basicAuth?: { - username: string; - password: string; - }; + username: string + password: string + } /** * A configuration for filtering out requests that shouldn't be proxied. * Entries are expected to be comma-separated (whitespace between entries is ignored) */ - noProxy?: string; + noProxy?: string } /** @@ -77,16 +77,16 @@ export interface ClientOptions { * Defines the maximum number of redirects the client should follow. * If set to 0, no redirects will be followed. */ - maxRedirections?: number; + maxRedirections?: number /** Timeout in milliseconds */ - connectTimeout?: number; + connectTimeout?: number /** * Configuration of a proxy that a Client should pass requests to. */ - proxy?: Proxy; + proxy?: Proxy } -const ERROR_REQUEST_CANCELLED = "Request canceled"; +const ERROR_REQUEST_CANCELLED = 'Request canceled' /** * Fetch a resource from the network. It returns a `Promise` that resolves to the @@ -104,41 +104,41 @@ const ERROR_REQUEST_CANCELLED = "Request canceled"; */ export async function fetch( input: URL | Request | string, - init?: RequestInit & ClientOptions, + init?: RequestInit & ClientOptions ): Promise { // abort early here if needed - const signal = init?.signal; + const signal = init?.signal if (signal?.aborted) { - throw new Error(ERROR_REQUEST_CANCELLED); + throw new Error(ERROR_REQUEST_CANCELLED) } - const maxRedirections = init?.maxRedirections; - const connectTimeout = init?.connectTimeout; - const proxy = init?.proxy; + const maxRedirections = init?.maxRedirections + const connectTimeout = init?.connectTimeout + const proxy = init?.proxy // Remove these fields before creating the request if (init) { - delete init.maxRedirections; - delete init.connectTimeout; - delete init.proxy; + delete init.maxRedirections + delete init.connectTimeout + delete init.proxy } const headers = init?.headers ? init.headers instanceof Headers ? init.headers : new Headers(init.headers) - : new Headers(); + : new Headers() - const req = new Request(input, init); - const buffer = await req.arrayBuffer(); + const req = new Request(input, init) + const buffer = await req.arrayBuffer() const data = - buffer.byteLength !== 0 ? Array.from(new Uint8Array(buffer)) : null; + buffer.byteLength !== 0 ? Array.from(new Uint8Array(buffer)) : null // append new headers created by the browser `Request` implementation, // if not already declared by the caller of this function for (const [key, value] of req.headers) { if (!headers.get(key)) { - headers.set(key, value); + headers.set(key, value) } } @@ -147,7 +147,7 @@ export async function fetch( ? Array.from(headers.entries()) : Array.isArray(headers) ? headers - : Object.entries(headers); + : Object.entries(headers) // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const mappedHeaders: Array<[string, string]> = headersArray.map( @@ -155,16 +155,16 @@ export async function fetch( name, // we need to ensure we have all header values as strings // eslint-disable-next-line - typeof val === "string" ? val : (val as any).toString(), - ], - ); + typeof val === 'string' ? val : (val as any).toString() + ] + ) // abort early here if needed if (signal?.aborted) { - throw new Error(ERROR_REQUEST_CANCELLED); + throw new Error(ERROR_REQUEST_CANCELLED) } - const rid = await invoke("plugin:http|fetch", { + const rid = await invoke('plugin:http|fetch', { clientConfig: { method: req.method, url: req.url, @@ -172,28 +172,28 @@ export async function fetch( data, maxRedirections, connectTimeout, - proxy, - }, - }); + proxy + } + }) - const abort = () => invoke("plugin:http|fetch_cancel", { rid }); + const abort = () => invoke('plugin:http|fetch_cancel', { rid }) // abort early here if needed if (signal?.aborted) { // we don't care about the result of this proimse // eslint-disable-next-line @typescript-eslint/no-floating-promises - abort(); - throw new Error(ERROR_REQUEST_CANCELLED); + abort() + throw new Error(ERROR_REQUEST_CANCELLED) } - signal?.addEventListener("abort", () => void abort()); + signal?.addEventListener('abort', () => void abort()) interface FetchSendResponse { - status: number; - statusText: string; - headers: [[string, string]]; - url: string; - rid: number; + status: number + statusText: string + headers: [[string, string]] + url: string + rid: number } const { @@ -201,17 +201,17 @@ export async function fetch( statusText, url, headers: responseHeaders, - rid: responseRid, - } = await invoke("plugin:http|fetch_send", { - rid, - }); + rid: responseRid + } = await invoke('plugin:http|fetch_send', { + rid + }) const body = await invoke( - "plugin:http|fetch_read_body", + 'plugin:http|fetch_read_body', { - rid: responseRid, - }, - ); + rid: responseRid + } + ) const res = new Response( body instanceof ArrayBuffer && body.byteLength !== 0 @@ -221,9 +221,9 @@ export async function fetch( : null, { status, - statusText, - }, - ); + statusText + } + ) // url and headers are read only properties // but seems like we can set them like this @@ -231,10 +231,10 @@ export async function fetch( // we define theme like this, because using `Response` // constructor, it removes url and some headers // like `set-cookie` headers - Object.defineProperty(res, "url", { value: url }); - Object.defineProperty(res, "headers", { - value: new Headers(responseHeaders), - }); + Object.defineProperty(res, 'url', { value: url }) + Object.defineProperty(res, 'headers', { + value: new Headers(responseHeaders) + }) - return res; + return res } diff --git a/plugins/http/rollup.config.js b/plugins/http/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/http/rollup.config.js +++ b/plugins/http/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index f1ac6faa4..075cd5c36 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -9,8 +9,8 @@ rust-version = { workspace = true } repository = { workspace = true } [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [dependencies] serde = { workspace = true } diff --git a/plugins/localhost/SECURITY.md b/plugins/localhost/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/localhost/SECURITY.md +++ b/plugins/localhost/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/log/.gitignore b/plugins/log/.gitignore deleted file mode 100644 index 28fd5eff9..000000000 --- a/plugins/log/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -/.tauri diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index c18da0b9d..dbb146d89 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-log" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/log/README.md b/plugins/log/README.md index 437277fc3..e1410ecf6 100644 --- a/plugins/log/README.md +++ b/plugins/log/README.md @@ -68,17 +68,17 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { trace, info, error, attachConsole } from "@tauri-apps/plugin-log"; +import { trace, info, error, attachConsole } from '@tauri-apps/plugin-log' // with TargetKind::Webview enabled this function will print logs to the browser console -const detach = await attachConsole(); +const detach = await attachConsole() -trace("Trace"); -info("Info"); -error("Error"); +trace('Trace') +info('Info') +error('Error') // detach the browser console from the log stream -detach(); +detach() ``` To log from rust code, add the log crate to your `Cargo.toml`: diff --git a/plugins/log/SECURITY.md b/plugins/log/SECURITY.md index 072f2f09e..d013f6a60 100644 --- a/plugins/log/SECURITY.md +++ b/plugins/log/SECURITY.md @@ -39,6 +39,7 @@ One possible threat you need to consider when using this plugin is that secrets in logs can theoretically be leaked when the application's frontend gets compromised. For this threat to be possible all of the following requirements need to be fulfilled: + - `TargetKind::Webview` enabled OR secrets stem from frontend logs - Frontend application is compromised via something like XSS (cross-site-scripting) OR logs are directly exposed - Logs contain secrets or sensitive information diff --git a/plugins/log/guest-js/index.ts b/plugins/log/guest-js/index.ts index 6fa316e46..bf9d7f980 100644 --- a/plugins/log/guest-js/index.ts +++ b/plugins/log/guest-js/index.ts @@ -2,13 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; -import { listen, type UnlistenFn, type Event } from "@tauri-apps/api/event"; +import { invoke } from '@tauri-apps/api/core' +import { listen, type UnlistenFn, type Event } from '@tauri-apps/api/event' export interface LogOptions { - file?: string; - line?: number; - keyValues?: Record; + file?: string + line?: number + keyValues?: Record } enum LogLevel { @@ -41,35 +41,35 @@ enum LogLevel { * * Designates very serious errors. */ - Error, + Error } async function log( level: LogLevel, message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - const traces = new Error().stack?.split("\n").map((line) => line.split("@")); + const traces = new Error().stack?.split('\n').map((line) => line.split('@')) const filtered = traces?.filter(([name, location]) => { - return name.length > 0 && location !== "[native code]"; - }); + return name.length > 0 && location !== '[native code]' + }) - const { file, line, keyValues } = options ?? {}; + const { file, line, keyValues } = options ?? {} - let location = filtered?.[0]?.filter((v) => v.length > 0).join("@"); - if (location === "Error") { - location = "webview::unknown"; + let location = filtered?.[0]?.filter((v) => v.length > 0).join('@') + if (location === 'Error') { + location = 'webview::unknown' } - await invoke("plugin:log|log", { + await invoke('plugin:log|log', { level, message, location, file, line, - keyValues, - }); + keyValues + }) } /** @@ -90,9 +90,9 @@ async function log( */ export async function error( message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - await log(LogLevel.Error, message, options); + await log(LogLevel.Error, message, options) } /** @@ -112,9 +112,9 @@ export async function error( */ export async function warn( message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - await log(LogLevel.Warn, message, options); + await log(LogLevel.Warn, message, options) } /** @@ -134,9 +134,9 @@ export async function warn( */ export async function info( message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - await log(LogLevel.Info, message, options); + await log(LogLevel.Info, message, options) } /** @@ -156,9 +156,9 @@ export async function info( */ export async function debug( message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - await log(LogLevel.Debug, message, options); + await log(LogLevel.Debug, message, options) } /** @@ -178,17 +178,17 @@ export async function debug( */ export async function trace( message: string, - options?: LogOptions, + options?: LogOptions ): Promise { - await log(LogLevel.Trace, message, options); + await log(LogLevel.Trace, message, options) } interface RecordPayload { - level: LogLevel; - message: string; + level: LogLevel + message: string } -type LoggerFn = (fn: RecordPayload) => void; +type LoggerFn = (fn: RecordPayload) => void /** * Attaches a listener for the log, and calls the passed function for each log entry. @@ -197,19 +197,19 @@ type LoggerFn = (fn: RecordPayload) => void; * @returns a function to cancel the listener. */ export async function attachLogger(fn: LoggerFn): Promise { - return await listen("log://log", (event: Event) => { - const { level } = event.payload; - let { message } = event.payload; + return await listen('log://log', (event: Event) => { + const { level } = event.payload + let { message } = event.payload // Strip ANSI escape codes message = message.replace( // TODO: Investigate security/detect-unsafe-regex // eslint-disable-next-line no-control-regex, security/detect-unsafe-regex /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, - "", - ); - fn({ message, level }); - }); + '' + ) + fn({ message, level }) + }) } /** @@ -221,23 +221,23 @@ export async function attachConsole(): Promise { return await attachLogger(({ level, message }: RecordPayload) => { switch (level) { case LogLevel.Trace: - console.log(message); - break; + console.log(message) + break case LogLevel.Debug: - console.debug(message); - break; + console.debug(message) + break case LogLevel.Info: - console.info(message); - break; + console.info(message) + break case LogLevel.Warn: - console.warn(message); - break; + console.warn(message) + break case LogLevel.Error: - console.error(message); - break; + console.error(message) + break default: // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - throw new Error(`unknown log level ${level}`); + throw new Error(`unknown log level ${level}`) } - }); + }) } diff --git a/plugins/log/rollup.config.js b/plugins/log/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/log/rollup.config.js +++ b/plugins/log/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/nfc/.gitignore b/plugins/nfc/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/nfc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index 983f366ea..852862733 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -9,12 +9,12 @@ repository = { workspace = true } links = "tauri-plugin-nfc" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -targets = [ "x86_64-linux-android" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/nfc/README.md b/plugins/nfc/README.md index 9a679cca8..7ad2213df 100644 --- a/plugins/nfc/README.md +++ b/plugins/nfc/README.md @@ -62,9 +62,9 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { scan, textRecord, write } from "@tauri-apps/plugin-nfc"; -await scan({ type: "tag", keepSessionAlive: true }); -await write([textRecord("Tauri is awesome!")]); +import { scan, textRecord, write } from '@tauri-apps/plugin-nfc' +await scan({ type: 'tag', keepSessionAlive: true }) +await write([textRecord('Tauri is awesome!')]) ``` ## Contributing diff --git a/plugins/nfc/SECURITY.md b/plugins/nfc/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/nfc/SECURITY.md +++ b/plugins/nfc/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/nfc/guest-js/index.ts b/plugins/nfc/guest-js/index.ts index 447e0c0d0..96f7a72dc 100644 --- a/plugins/nfc/guest-js/index.ts +++ b/plugins/nfc/guest-js/index.ts @@ -2,15 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' -export const RTD_TEXT = [0x54]; // "T" -export const RTD_URI = [0x55]; // "U" +export const RTD_TEXT = [0x54] // "T" +export const RTD_URI = [0x55] // "U" export interface UriFilter { - scheme?: string; - host?: string; - pathPrefix?: string; + scheme?: string + host?: string + pathPrefix?: string } export enum TechKind { @@ -23,19 +23,19 @@ export enum TechKind { NfcB, NfcBarcode, NfcF, - NfcV, + NfcV } export type ScanKind = | { - type: "tag"; - uri?: UriFilter; - mimeType?: string; + type: 'tag' + uri?: UriFilter + mimeType?: string } | { - type: "ndef"; - uri?: UriFilter; - mimeType?: string; + type: 'ndef' + uri?: UriFilter + mimeType?: string /** * Each of the tech-lists is considered independently and the activity is considered a match if * any single tech-list matches the tag that was discovered. @@ -56,25 +56,25 @@ export type ScanKind = * ] * ``` */ - techLists?: TechKind[][]; - }; + techLists?: TechKind[][] + } export interface ScanOptions { - keepSessionAlive?: boolean; + keepSessionAlive?: boolean /** Message displayed in the UI. iOS only. */ - message?: string; + message?: string /** Message displayed in the UI when the message has been read. iOS only. */ - successMessage?: string; + successMessage?: string } export interface WriteOptions { - kind?: ScanKind; + kind?: ScanKind /** Message displayed in the UI when reading the tag. iOS only. */ - message?: string; + message?: string /** Message displayed in the UI when the tag has been read. iOS only. */ - successfulReadMessage?: string; + successfulReadMessage?: string /** Message displayed in the UI when the message has been written. iOS only. */ - successMessage?: string; + successMessage?: string } export enum NFCTypeNameFormat { @@ -84,122 +84,120 @@ export enum NFCTypeNameFormat { AbsoluteURI = 3, NfcExternal = 4, Unknown = 5, - Unchanged = 6, + Unchanged = 6 } export interface TagRecord { - tnf: NFCTypeNameFormat; - kind: number[]; - id: number[]; - payload: number[]; + tnf: NFCTypeNameFormat + kind: number[] + id: number[] + payload: number[] } export interface Tag { - id: number[]; - kind: string[]; - records: TagRecord[]; + id: number[] + kind: string[] + records: TagRecord[] } export interface NFCRecord { - format: NFCTypeNameFormat; - kind: number[]; - id: number[]; - payload: number[]; + format: NFCTypeNameFormat + kind: number[] + id: number[] + payload: number[] } export function record( format: NFCTypeNameFormat, kind: string | number[], id: string | number[], - payload: string | number[], + payload: string | number[] ): NFCRecord { return { format, kind: - typeof kind === "string" + typeof kind === 'string' ? Array.from(new TextEncoder().encode(kind)) : kind, - id: typeof id === "string" ? Array.from(new TextEncoder().encode(id)) : id, + id: typeof id === 'string' ? Array.from(new TextEncoder().encode(id)) : id, payload: - typeof payload === "string" + typeof payload === 'string' ? Array.from(new TextEncoder().encode(payload)) - : payload, - }; + : payload + } } export function textRecord( text: string, id?: string | number[], - language: string = "en", + language: string = 'en' ): NFCRecord { - const payload = Array.from(new TextEncoder().encode(language + text)); - payload.unshift(language.length); - return record(NFCTypeNameFormat.NfcWellKnown, RTD_TEXT, id ?? [], payload); + const payload = Array.from(new TextEncoder().encode(language + text)) + payload.unshift(language.length) + return record(NFCTypeNameFormat.NfcWellKnown, RTD_TEXT, id ?? [], payload) } const protocols = [ - "", - "http://www.", - "https://www.", - "http://", - "https://", - "tel:", - "mailto:", - "ftp://anonymous:anonymous@", - "ftp://ftp.", - "ftps://", - "sftp://", - "smb://", - "nfs://", - "ftp://", - "dav://", - "news:", - "telnet://", - "imap:", - "rtsp://", - "urn:", - "pop:", - "sip:", - "sips:", - "tftp:", - "btspp://", - "btl2cap://", - "btgoep://", - "tcpobex://", - "irdaobex://", - "file://", - "urn:epc:id:", - "urn:epc:tag:", - "urn:epc:pat:", - "urn:epc:raw:", - "urn:epc:", - "urn:nfc:", -]; + '', + 'http://www.', + 'https://www.', + 'http://', + 'https://', + 'tel:', + 'mailto:', + 'ftp://anonymous:anonymous@', + 'ftp://ftp.', + 'ftps://', + 'sftp://', + 'smb://', + 'nfs://', + 'ftp://', + 'dav://', + 'news:', + 'telnet://', + 'imap:', + 'rtsp://', + 'urn:', + 'pop:', + 'sip:', + 'sips:', + 'tftp:', + 'btspp://', + 'btl2cap://', + 'btgoep://', + 'tcpobex://', + 'irdaobex://', + 'file://', + 'urn:epc:id:', + 'urn:epc:tag:', + 'urn:epc:pat:', + 'urn:epc:raw:', + 'urn:epc:', + 'urn:nfc:' +] function encodeURI(uri: string): number[] { - let prefix = ""; + let prefix = '' protocols.slice(1).forEach(function (protocol) { if ( - (prefix.length === 0 || prefix === "urn:") && + (prefix.length === 0 || prefix === 'urn:') && uri.indexOf(protocol) === 0 ) { - prefix = protocol; + prefix = protocol } - }); + }) if (prefix.length === 0) { - prefix = ""; + prefix = '' } - const encoded = Array.from( - new TextEncoder().encode(uri.slice(prefix.length)), - ); - const protocolCode = protocols.indexOf(prefix); + const encoded = Array.from(new TextEncoder().encode(uri.slice(prefix.length))) + const protocolCode = protocols.indexOf(prefix) // prepend protocol code - encoded.unshift(protocolCode); + encoded.unshift(protocolCode) - return encoded; + return encoded } export function uriRecord(uri: string, id?: string | number[]): NFCRecord { @@ -207,13 +205,13 @@ export function uriRecord(uri: string, id?: string | number[]): NFCRecord { NFCTypeNameFormat.NfcWellKnown, RTD_URI, id ?? [], - encodeURI(uri), - ); + encodeURI(uri) + ) } function mapScanKind(kind: ScanKind): Record { - const { type: scanKind, ...kindOptions } = kind; - return { [scanKind]: kindOptions }; + const { type: scanKind, ...kindOptions } = kind + return { [scanKind]: kindOptions } } /** @@ -232,12 +230,12 @@ function mapScanKind(kind: ScanKind): Record { */ export async function scan( kind: ScanKind, - options?: ScanOptions, + options?: ScanOptions ): Promise { - return await invoke("plugin:nfc|scan", { + return await invoke('plugin:nfc|scan', { kind: mapScanKind(kind), - ...options, - }); + ...options + }) } /** @@ -257,19 +255,19 @@ export async function scan( */ export async function write( records: NFCRecord[], - options?: WriteOptions, + options?: WriteOptions ): Promise { - const { kind, ...opts } = options ?? {}; + const { kind, ...opts } = options ?? {} if (kind) { // @ts-expect-error map the property - opts.kind = mapScanKind(kind); + opts.kind = mapScanKind(kind) } - await invoke("plugin:nfc|write", { + await invoke('plugin:nfc|write', { records, - ...opts, - }); + ...opts + }) } export async function isAvailable(): Promise { - return await invoke("plugin:nfc|is_available"); + return await invoke('plugin:nfc|is_available') } diff --git a/plugins/nfc/permissions/default.toml b/plugins/nfc/permissions/default.toml index 3be65b192..d69c7f1bd 100644 --- a/plugins/nfc/permissions/default.toml +++ b/plugins/nfc/permissions/default.toml @@ -12,7 +12,4 @@ and scanning nearby tags is allowed. Writing to tags needs to be manually enabled. """ -permissions = [ - "allow-is-available", - "allow-scan", -] +permissions = ["allow-is-available", "allow-scan"] diff --git a/plugins/nfc/rollup.config.js b/plugins/nfc/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/nfc/rollup.config.js +++ b/plugins/nfc/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/notification/.gitignore b/plugins/notification/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/notification/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index 6a5d1f466..0ab0b76c0 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -10,12 +10,12 @@ repository = { workspace = true } links = "tauri-plugin-notification" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/notification/README.md b/plugins/notification/README.md index 4085cd021..65fd4852d 100644 --- a/plugins/notification/README.md +++ b/plugins/notification/README.md @@ -72,24 +72,27 @@ Then you need to add the permissions to your capabilities file: } ``` - Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { isPermissionGranted, requestPermission, sendNotification } from '@tauri-apps/plugin-notification'; +import { + isPermissionGranted, + requestPermission, + sendNotification +} from '@tauri-apps/plugin-notification' async function checkPermission() { if (!(await isPermissionGranted())) { - return (await requestPermission()) === 'granted'; + return (await requestPermission()) === 'granted' } - return true; + return true } export async function enqueueNotification(title, body) { if (!(await checkPermission())) { - return; + return } - sendNotification({ title, body }); + sendNotification({ title, body }) } ``` diff --git a/plugins/notification/SECURITY.md b/plugins/notification/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/notification/SECURITY.md +++ b/plugins/notification/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/notification/guest-js/index.ts b/plugins/notification/guest-js/index.ts index efc466a22..9f81a1e18 100644 --- a/plugins/notification/guest-js/index.ts +++ b/plugins/notification/guest-js/index.ts @@ -12,10 +12,10 @@ import { invoke, type PluginListener, - addPluginListener, -} from "@tauri-apps/api/core"; + addPluginListener +} from '@tauri-apps/api/core' -export type { PermissionState } from "@tauri-apps/api/core"; +export type { PermissionState } from '@tauri-apps/api/core' /** * Options to send a notification. @@ -26,54 +26,54 @@ interface Options { /** * The notification identifier to reference this object later. Must be a 32-bit integer. */ - id?: number; + id?: number /** * Identifier of the {@link Channel} that deliveres this notification. * * If the channel does not exist, the notification won't fire. * Make sure the channel exists with {@link listChannels} and {@link createChannel}. */ - channelId?: string; + channelId?: string /** * Notification title. */ - title: string; + title: string /** * Optional notification body. * */ - body?: string; + body?: string /** * Schedule this notification to fire on a later time or a fixed interval. */ - schedule?: Schedule; + schedule?: Schedule /** * Multiline text. * Changes the notification style to big text. * Cannot be used with `inboxLines`. */ - largeBody?: string; + largeBody?: string /** * Detail text for the notification with `largeBody`, `inboxLines` or `groupSummary`. */ - summary?: string; + summary?: string /** * Defines an action type for this notification. */ - actionTypeId?: string; + actionTypeId?: string /** * Identifier used to group multiple notifications. * * https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent/1649872-threadidentifier */ - group?: string; + group?: string /** * Instructs the system that this notification is the summary of a group on Android. */ - groupSummary?: boolean; + groupSummary?: boolean /** * The sound resource name. Only available on mobile. */ - sound?: string; + sound?: string /** * List of lines to add to the notification. * Changes the notification style to inbox. @@ -81,31 +81,31 @@ interface Options { * * Only supports up to 5 lines. */ - inboxLines?: string[]; + inboxLines?: string[] /** * Notification icon. * * On Android the icon must be placed in the app's `res/drawable` folder. */ - icon?: string; + icon?: string /** * Notification large icon (Android). * * The icon must be placed in the app's `res/drawable` folder. */ - largeIcon?: string; + largeIcon?: string /** * Icon color on Android. */ - iconColor?: string; + iconColor?: string /** * Notification attachments. */ - attachments?: Attachment[]; + attachments?: Attachment[] /** * Extra payload to store in the notification. */ - extra?: Record; + extra?: Record /** * If true, the notification cannot be dismissed by the user on Android. * @@ -113,29 +113,29 @@ interface Options { * It is typically used to indicate a background task that is pending (e.g. a file download) * or the user is engaged with (e.g. playing music). */ - ongoing?: boolean; + ongoing?: boolean /** * Automatically cancel the notification when the user clicks on it. */ - autoCancel?: boolean; + autoCancel?: boolean /** * Changes the notification presentation to be silent on iOS (no badge, no sound, not listed). */ - silent?: boolean; + silent?: boolean /** * Notification visibility. */ - visibility?: Visibility; + visibility?: Visibility /** * Sets the number of items this notification represents on Android. */ - number?: number; + number?: number } interface ScheduleInterval { - year?: number; - month?: number; - day?: number; + year?: number + month?: number + day?: number /** * 1 - Sunday * 2 - Monday @@ -145,79 +145,79 @@ interface ScheduleInterval { * 6 - Friday * 7 - Saturday */ - weekday?: number; - hour?: number; - minute?: number; - second?: number; + weekday?: number + hour?: number + minute?: number + second?: number } enum ScheduleEvery { - Year = "year", - Month = "month", - TwoWeeks = "twoWeeks", - Week = "week", - Day = "day", - Hour = "hour", - Minute = "minute", + Year = 'year', + Month = 'month', + TwoWeeks = 'twoWeeks', + Week = 'week', + Day = 'day', + Hour = 'hour', + Minute = 'minute', /** * Not supported on iOS. */ - Second = "second", + Second = 'second' } class Schedule { at: | { - date: Date; - repeating: boolean; - allowWhileIdle: boolean; + date: Date + repeating: boolean + allowWhileIdle: boolean } - | undefined; + | undefined interval: | { - interval: ScheduleInterval; - allowWhileIdle: boolean; + interval: ScheduleInterval + allowWhileIdle: boolean } - | undefined; + | undefined every: | { - interval: ScheduleEvery; - count: number; - allowWhileIdle: boolean; + interval: ScheduleEvery + count: number + allowWhileIdle: boolean } - | undefined; + | undefined static at(date: Date, repeating = false, allowWhileIdle = false): Schedule { return { at: { date, repeating, allowWhileIdle }, interval: undefined, - every: undefined, - }; + every: undefined + } } static interval( interval: ScheduleInterval, - allowWhileIdle = false, + allowWhileIdle = false ): Schedule { return { at: undefined, interval: { interval, allowWhileIdle }, - every: undefined, - }; + every: undefined + } } static every( kind: ScheduleEvery, count: number, - allowWhileIdle = false, + allowWhileIdle = false ): Schedule { return { at: undefined, interval: undefined, - every: { interval: kind, count, allowWhileIdle }, - }; + every: { interval: kind, count, allowWhileIdle } + } } } @@ -226,58 +226,58 @@ class Schedule { */ interface Attachment { /** Attachment identifier. */ - id: string; + id: string /** Attachment URL. Accepts the `asset` and `file` protocols. */ - url: string; + url: string } interface Action { - id: string; - title: string; - requiresAuthentication?: boolean; - foreground?: boolean; - destructive?: boolean; - input?: boolean; - inputButtonTitle?: string; - inputPlaceholder?: string; + id: string + title: string + requiresAuthentication?: boolean + foreground?: boolean + destructive?: boolean + input?: boolean + inputButtonTitle?: string + inputPlaceholder?: string } interface ActionType { /** * The identifier of this action type */ - id: string; + id: string /** * The list of associated actions */ - actions: Action[]; - hiddenPreviewsBodyPlaceholder?: string; - customDismissAction?: boolean; - allowInCarPlay?: boolean; - hiddenPreviewsShowTitle?: boolean; - hiddenPreviewsShowSubtitle?: boolean; + actions: Action[] + hiddenPreviewsBodyPlaceholder?: string + customDismissAction?: boolean + allowInCarPlay?: boolean + hiddenPreviewsShowTitle?: boolean + hiddenPreviewsShowSubtitle?: boolean } interface PendingNotification { - id: number; - title?: string; - body?: string; - schedule: Schedule; + id: number + title?: string + body?: string + schedule: Schedule } interface ActiveNotification { - id: number; - tag?: string; - title?: string; - body?: string; - group?: string; - groupSummary: boolean; - data: Record; - extra: Record; - attachments: Attachment[]; - actionTypeId?: string; - schedule?: Schedule; - sound?: string; + id: number + tag?: string + title?: string + body?: string + group?: string + groupSummary: boolean + data: Record + extra: Record + attachments: Attachment[] + actionTypeId?: string + schedule?: Schedule + sound?: string } enum Importance { @@ -285,25 +285,25 @@ enum Importance { Min, Low, Default, - High, + High } enum Visibility { Secret = -1, Private, - Public, + Public } interface Channel { - id: string; - name: string; - description?: string; - sound?: string; - lights?: boolean; - lightColor?: string; - vibration?: boolean; - importance?: Importance; - visibility?: Visibility; + id: string + name: string + description?: string + sound?: string + lights?: boolean + lightColor?: string + vibration?: boolean + importance?: Importance + visibility?: Visibility } /** @@ -317,10 +317,10 @@ interface Channel { * @since 2.0.0 */ async function isPermissionGranted(): Promise { - if (window.Notification.permission !== "default") { - return await Promise.resolve(window.Notification.permission === "granted"); + if (window.Notification.permission !== 'default') { + return await Promise.resolve(window.Notification.permission === 'granted') } - return await invoke("plugin:notification|is_permission_granted"); + return await invoke('plugin:notification|is_permission_granted') } /** @@ -340,7 +340,7 @@ async function isPermissionGranted(): Promise { * @since 2.0.0 */ async function requestPermission(): Promise { - return await window.Notification.requestPermission(); + return await window.Notification.requestPermission() } /** @@ -362,10 +362,10 @@ async function requestPermission(): Promise { * @since 2.0.0 */ function sendNotification(options: Options | string): void { - if (typeof options === "string") { - new window.Notification(options); + if (typeof options === 'string') { + new window.Notification(options) } else { - new window.Notification(options.title, options); + new window.Notification(options.title, options) } } @@ -389,7 +389,7 @@ function sendNotification(options: Options | string): void { * @since 2.0.0 */ async function registerActionTypes(types: ActionType[]): Promise { - await invoke("plugin:notification|register_action_types", { types }); + await invoke('plugin:notification|register_action_types', { types }) } /** @@ -406,7 +406,7 @@ async function registerActionTypes(types: ActionType[]): Promise { * @since 2.0.0 */ async function pending(): Promise { - return await invoke("plugin:notification|get_pending"); + return await invoke('plugin:notification|get_pending') } /** @@ -423,7 +423,7 @@ async function pending(): Promise { * @since 2.0.0 */ async function cancel(notifications: number[]): Promise { - await invoke("plugin:notification|cancel", { notifications }); + await invoke('plugin:notification|cancel', { notifications }) } /** @@ -440,7 +440,7 @@ async function cancel(notifications: number[]): Promise { * @since 2.0.0 */ async function cancelAll(): Promise { - await invoke("plugin:notification|cancel"); + await invoke('plugin:notification|cancel') } /** @@ -457,7 +457,7 @@ async function cancelAll(): Promise { * @since 2.0.0 */ async function active(): Promise { - return await invoke("plugin:notification|get_active"); + return await invoke('plugin:notification|get_active') } /** @@ -474,9 +474,9 @@ async function active(): Promise { * @since 2.0.0 */ async function removeActive( - notifications: Array<{ id: number; tag?: string }>, + notifications: Array<{ id: number; tag?: string }> ): Promise { - await invoke("plugin:notification|remove_active", { notifications }); + await invoke('plugin:notification|remove_active', { notifications }) } /** @@ -493,7 +493,7 @@ async function removeActive( * @since 2.0.0 */ async function removeAllActive(): Promise { - await invoke("plugin:notification|remove_active"); + await invoke('plugin:notification|remove_active') } /** @@ -517,7 +517,7 @@ async function removeAllActive(): Promise { * @since 2.0.0 */ async function createChannel(channel: Channel): Promise { - await invoke("plugin:notification|create_channel", { ...channel }); + await invoke('plugin:notification|create_channel', { ...channel }) } /** @@ -534,7 +534,7 @@ async function createChannel(channel: Channel): Promise { * @since 2.0.0 */ async function removeChannel(id: string): Promise { - await invoke("plugin:notification|delete_channel", { id }); + await invoke('plugin:notification|delete_channel', { id }) } /** @@ -551,19 +551,19 @@ async function removeChannel(id: string): Promise { * @since 2.0.0 */ async function channels(): Promise { - return await invoke("plugin:notification|listChannels"); + return await invoke('plugin:notification|listChannels') } async function onNotificationReceived( - cb: (notification: Options) => void, + cb: (notification: Options) => void ): Promise { - return await addPluginListener("notification", "notification", cb); + return await addPluginListener('notification', 'notification', cb) } async function onAction( - cb: (notification: Options) => void, + cb: (notification: Options) => void ): Promise { - return await addPluginListener("notification", "actionPerformed", cb); + return await addPluginListener('notification', 'actionPerformed', cb) } export type { @@ -574,8 +574,8 @@ export type { PendingNotification, ActiveNotification, Channel, - ScheduleInterval, -}; + ScheduleInterval +} export { Importance, @@ -596,5 +596,5 @@ export { onNotificationReceived, onAction, Schedule, - ScheduleEvery, -}; + ScheduleEvery +} diff --git a/plugins/notification/guest-js/init.ts b/plugins/notification/guest-js/init.ts index ec98403d4..42d65fd99 100644 --- a/plugins/notification/guest-js/init.ts +++ b/plugins/notification/guest-js/init.ts @@ -2,92 +2,89 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; -import type { PermissionState } from "@tauri-apps/api/core"; -import type { Options } from "./index"; - -(function () { - let permissionSettable = false; - let permissionValue = "default"; +import { invoke } from '@tauri-apps/api/core' +import type { PermissionState } from '@tauri-apps/api/core' +import type { Options } from './index' +;(function () { + let permissionSettable = false + let permissionValue = 'default' async function isPermissionGranted(): Promise { // @ts-expect-error __TEMPLATE_windows__ will be replaced in rust before it's injected. - if (window.Notification.permission !== "default" || __TEMPLATE_windows__) { - return await Promise.resolve( - window.Notification.permission === "granted", - ); + if (window.Notification.permission !== 'default' || __TEMPLATE_windows__) { + return await Promise.resolve(window.Notification.permission === 'granted') } - return await invoke("plugin:notification|is_permission_granted"); + return await invoke('plugin:notification|is_permission_granted') } function setNotificationPermission(value: NotificationPermission): void { - permissionSettable = true; + permissionSettable = true // @ts-expect-error we can actually set this value on the webview - window.Notification.permission = value; - permissionSettable = false; + window.Notification.permission = value + permissionSettable = false } async function requestPermission(): Promise { return await invoke( - "plugin:notification|request_permission", + 'plugin:notification|request_permission' ).then((permission) => { setNotificationPermission( - permission === "prompt" || permission === "prompt-with-rationale" - ? "default" - : permission, - ); - return permission; - }); + permission === 'prompt' || permission === 'prompt-with-rationale' + ? 'default' + : permission + ) + return permission + }) } async function sendNotification(options: string | Options): Promise { - if (typeof options === "object") { - Object.freeze(options); + if (typeof options === 'object') { + Object.freeze(options) } - await invoke("plugin:notification|notify", { + await invoke('plugin:notification|notify', { options: - typeof options === "string" + typeof options === 'string' ? { - title: options, + title: options } - : options, - }); + : options + }) } // @ts-expect-error unfortunately we can't implement the whole type, so we overwrite it with our own version window.Notification = function (title, options) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const opts = options || {}; + const opts = options || {} void sendNotification( // eslint-disable-next-line @typescript-eslint/no-unsafe-argument Object.assign(opts, { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - title, - }), - ); - }; + title + }) + ) + } // @ts-expect-error tauri does not have sync IPC :( - window.Notification.requestPermission = requestPermission; + window.Notification.requestPermission = requestPermission - Object.defineProperty(window.Notification, "permission", { + Object.defineProperty(window.Notification, 'permission', { enumerable: true, get: () => permissionValue, set: (v) => { if (!permissionSettable) { - throw new Error("Readonly property"); + throw new Error('Readonly property') } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - permissionValue = v; - }, - }); + permissionValue = v + } + }) void isPermissionGranted().then(function (response) { if (response === null) { - setNotificationPermission("default"); + setNotificationPermission('default') } else { - setNotificationPermission(response ? "granted" : "denied"); + setNotificationPermission(response ? 'granted' : 'denied') } - }); -})(); + }) +})() diff --git a/plugins/notification/permissions/default.toml b/plugins/notification/permissions/default.toml index e59d206aa..00b4e1d0c 100644 --- a/plugins/notification/permissions/default.toml +++ b/plugins/notification/permissions/default.toml @@ -26,5 +26,5 @@ permissions = [ "allow-list-channels", "allow-delete-channel", "allow-create-channel", - "allow-permission-state" + "allow-permission-state", ] diff --git a/plugins/notification/rollup.config.js b/plugins/notification/rollup.config.js index 0aed70d64..a7dbd4f69 100644 --- a/plugins/notification/rollup.config.js +++ b/plugins/notification/rollup.config.js @@ -2,21 +2,21 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import typescript from "@rollup/plugin-typescript"; -import terser from "@rollup/plugin-terser"; +import { createConfig } from '../../shared/rollup.config.js' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import typescript from '@rollup/plugin-typescript' +import terser from '@rollup/plugin-terser' export default createConfig({ additionalConfigs: { - input: "guest-js/init.ts", + input: 'guest-js/init.ts', output: { - file: "src/init-iife.js", - format: "iife", + file: 'src/init-iife.js', + format: 'iife' }, plugins: [typescript(), terser(), nodeResolve()], onwarn: (warning) => { - throw Object.assign(new Error(), warning); - }, - }, -}); + throw Object.assign(new Error(), warning) + } + } +}) diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index b7152ea71..017ad0dee 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-os" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/os/README.md b/plugins/os/README.md index 8fbce2acf..5d82e9972 100644 --- a/plugins/os/README.md +++ b/plugins/os/README.md @@ -60,8 +60,8 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { version } from "@tauri-apps/plugin-os"; -const osVersion = await version(); +import { version } from '@tauri-apps/plugin-os' +const osVersion = await version() ``` ## Contributing diff --git a/plugins/os/SECURITY.md b/plugins/os/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/os/SECURITY.md +++ b/plugins/os/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/os/guest-js/index.ts b/plugins/os/guest-js/index.ts index ebdf9820d..697ae8ed3 100644 --- a/plugins/os/guest-js/index.ts +++ b/plugins/os/guest-js/index.ts @@ -8,49 +8,49 @@ * @module */ -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** @ignore */ declare global { interface Window { __TAURI_OS_PLUGIN_INTERNALS__: { - eol: string; - os_type: OsType; - platform: Platform; - family: Family; - version: string; - arch: Arch; - exe_extension: string; - }; + eol: string + os_type: OsType + platform: Platform + family: Family + version: string + arch: Arch + exe_extension: string + } } } type Platform = - | "linux" - | "macos" - | "ios" - | "freebsd" - | "dragonfly" - | "netbsd" - | "openbsd" - | "solaris" - | "android" - | "windows"; + | 'linux' + | 'macos' + | 'ios' + | 'freebsd' + | 'dragonfly' + | 'netbsd' + | 'openbsd' + | 'solaris' + | 'android' + | 'windows' -type OsType = "linux" | "windows" | "macos" | "ios" | "android"; +type OsType = 'linux' | 'windows' | 'macos' | 'ios' | 'android' type Arch = - | "x86" - | "x86_64" - | "arm" - | "aarch64" - | "mips" - | "mips64" - | "powerpc" - | "powerpc64" - | "riscv64" - | "s390x" - | "sparc64"; + | 'x86' + | 'x86_64' + | 'arm' + | 'aarch64' + | 'mips' + | 'mips64' + | 'powerpc' + | 'powerpc64' + | 'riscv64' + | 's390x' + | 'sparc64' /** * Returns the operating system-specific end-of-line marker. @@ -60,7 +60,7 @@ type Arch = * @since 2.0.0 * */ function eol(): string { - return window.__TAURI_OS_PLUGIN_INTERNALS__.eol; + return window.__TAURI_OS_PLUGIN_INTERNALS__.eol } /** @@ -77,7 +77,7 @@ function eol(): string { * */ function platform(): Platform { - return window.__TAURI_OS_PLUGIN_INTERNALS__.platform; + return window.__TAURI_OS_PLUGIN_INTERNALS__.platform } /** @@ -91,10 +91,10 @@ function platform(): Platform { * @since 2.0.0 */ function version(): string { - return window.__TAURI_OS_PLUGIN_INTERNALS__.version; + return window.__TAURI_OS_PLUGIN_INTERNALS__.version } -type Family = "unix" | "windows"; +type Family = 'unix' | 'windows' /** * Returns the current operating system family. Possible values are `'unix'`, `'windows'`. @@ -107,7 +107,7 @@ type Family = "unix" | "windows"; * @since 2.0.0 */ function family(): Family { - return window.__TAURI_OS_PLUGIN_INTERNALS__.family; + return window.__TAURI_OS_PLUGIN_INTERNALS__.family } /** @@ -121,7 +121,7 @@ function family(): Family { * @since 2.0.0 */ function type(): OsType { - return window.__TAURI_OS_PLUGIN_INTERNALS__.os_type; + return window.__TAURI_OS_PLUGIN_INTERNALS__.os_type } /** @@ -136,7 +136,7 @@ function type(): OsType { * @since 2.0.0 */ function arch(): Arch { - return window.__TAURI_OS_PLUGIN_INTERNALS__.arch; + return window.__TAURI_OS_PLUGIN_INTERNALS__.arch } /** @@ -150,7 +150,7 @@ function arch(): Arch { * @since 2.0.0 */ function exeExtension(): string { - return window.__TAURI_OS_PLUGIN_INTERNALS__.exe_extension; + return window.__TAURI_OS_PLUGIN_INTERNALS__.exe_extension } /** @@ -167,7 +167,7 @@ function exeExtension(): string { * @since 2.0.0 */ async function locale(): Promise { - return await invoke("plugin:os|locale"); + return await invoke('plugin:os|locale') } /** @@ -179,7 +179,7 @@ async function locale(): Promise { * ``` */ async function hostname(): Promise { - return await invoke("plugin:os|hostname"); + return await invoke('plugin:os|hostname') } export { @@ -191,6 +191,6 @@ export { arch, locale, exeExtension, - hostname, -}; -export type { Platform, OsType, Arch, Family }; + hostname +} +export type { Platform, OsType, Arch, Family } diff --git a/plugins/os/permissions/default.toml b/plugins/os/permissions/default.toml index f14e97fb9..217b389cd 100644 --- a/plugins/os/permissions/default.toml +++ b/plugins/os/permissions/default.toml @@ -13,11 +13,11 @@ All information except the host name are available. """ permissions = [ - "allow-arch", - "allow-exe-extension", - "allow-family", - "allow-locale", - "allow-os-type", - "allow-platform", - "allow-version", -] \ No newline at end of file + "allow-arch", + "allow-exe-extension", + "allow-family", + "allow-locale", + "allow-os-type", + "allow-platform", + "allow-version", +] diff --git a/plugins/os/rollup.config.js b/plugins/os/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/os/rollup.config.js +++ b/plugins/os/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/os/src/init.js b/plugins/os/src/init.js index f3e2d4aa2..97eeab3a7 100644 --- a/plugins/os/src/init.js +++ b/plugins/os/src/init.js @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // eslint-disable-next-line -Object.defineProperty(window, "__TAURI_OS_PLUGIN_INTERNALS__", { +Object.defineProperty(window, '__TAURI_OS_PLUGIN_INTERNALS__', { value: { eol: __TEMPLATE_eol__, os_type: __TEMPLATE_os_type__, @@ -11,6 +11,6 @@ Object.defineProperty(window, "__TAURI_OS_PLUGIN_INTERNALS__", { family: __TEMPLATE_family__, version: __TEMPLATE_version__, arch: __TEMPLATE_arch__, - exe_extension: __TEMPLATE_exe_extension__, - }, -}); + exe_extension: __TEMPLATE_exe_extension__ + } +}) diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index aea4ce842..3d3cb53f4 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -9,8 +9,8 @@ rust-version = { workspace = true } repository = { workspace = true } [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [dependencies] serde = { workspace = true } diff --git a/plugins/persisted-scope/SECURITY.md b/plugins/persisted-scope/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/persisted-scope/SECURITY.md +++ b/plugins/persisted-scope/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/positioner/.gitignore b/plugins/positioner/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/positioner/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index e0a6a309d..4a3f5b0b5 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-positioner" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 0162a6ad9..db9bab5ab 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -73,9 +73,9 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { moveWindow, Position } from "@tauri-apps/plugin-positioner"; +import { moveWindow, Position } from '@tauri-apps/plugin-positioner' -moveWindow(Position.TopRight); +moveWindow(Position.TopRight) ``` If you only intend on moving the window from rust code, you can import the Window trait extension instead of registering the plugin: diff --git a/plugins/positioner/SECURITY.md b/plugins/positioner/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/positioner/SECURITY.md +++ b/plugins/positioner/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/positioner/guest-js/index.ts b/plugins/positioner/guest-js/index.ts index aba398312..449e3298b 100644 --- a/plugins/positioner/guest-js/index.ts +++ b/plugins/positioner/guest-js/index.ts @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** * Well known window positions. @@ -23,7 +23,7 @@ export enum Position { TrayRight, TrayBottomRight, TrayCenter, - TrayBottomCenter, + TrayBottomCenter } /** @@ -33,7 +33,7 @@ export enum Position { * @param to The {@link Position} to move to. */ export async function moveWindow(to: Position): Promise { - await invoke("plugin:positioner|move_window", { - position: to, - }); + await invoke('plugin:positioner|move_window', { + position: to + }) } diff --git a/plugins/positioner/rollup.config.js b/plugins/positioner/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/positioner/rollup.config.js +++ b/plugins/positioner/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index f51438640..d9b7ecf30 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-process" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] tauri = { workspace = true } diff --git a/plugins/process/README.md b/plugins/process/README.md index 6b8c65077..89c04d5a0 100644 --- a/plugins/process/README.md +++ b/plugins/process/README.md @@ -60,11 +60,11 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { exit, relaunch } from "@tauri-apps/plugin-process"; +import { exit, relaunch } from '@tauri-apps/plugin-process' // exit the app with the given status code -await exit(0); +await exit(0) // restart the app -await relaunch(); +await relaunch() ``` ## Contributing diff --git a/plugins/process/SECURITY.md b/plugins/process/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/process/SECURITY.md +++ b/plugins/process/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/process/guest-js/index.ts b/plugins/process/guest-js/index.ts index e3c35eb4a..da15831a2 100644 --- a/plugins/process/guest-js/index.ts +++ b/plugins/process/guest-js/index.ts @@ -7,7 +7,7 @@ * @module */ -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' /** * Exits immediately with the given `exitCode`. @@ -23,7 +23,7 @@ import { invoke } from "@tauri-apps/api/core"; * @since 2.0.0 */ async function exit(code = 0): Promise { - await invoke("plugin:process|exit", { code }); + await invoke('plugin:process|exit', { code }) } /** @@ -39,7 +39,7 @@ async function exit(code = 0): Promise { * @since 2.0.0 */ async function relaunch(): Promise { - await invoke("plugin:process|restart"); + await invoke('plugin:process|restart') } -export { exit, relaunch }; +export { exit, relaunch } diff --git a/plugins/process/permissions/default.toml b/plugins/process/permissions/default.toml index e492c55aa..619eb9d81 100644 --- a/plugins/process/permissions/default.toml +++ b/plugins/process/permissions/default.toml @@ -11,7 +11,4 @@ This enables to quit via `allow-exit` and restart via `allow-restart` the application. """ -permissions = [ - "allow-exit", - "allow-restart", -] \ No newline at end of file +permissions = ["allow-exit", "allow-restart"] diff --git a/plugins/process/rollup.config.js b/plugins/process/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/process/rollup.config.js +++ b/plugins/process/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/shell/.gitignore b/plugins/shell/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/plugins/shell/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index bd5d1bdb2..d226fa4e3 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-shell" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } serde = { workspace = true } diff --git a/plugins/shell/README.md b/plugins/shell/README.md index 2881f2cf3..25137648e 100644 --- a/plugins/shell/README.md +++ b/plugins/shell/README.md @@ -60,8 +60,8 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { Command } from "@tauri-apps/plugin-shell"; -Command.create("git", ["commit", "-m", "the commit message"]); +import { Command } from '@tauri-apps/plugin-shell' +Command.create('git', ['commit', '-m', 'the commit message']) ``` ## Contributing diff --git a/plugins/shell/SECURITY.md b/plugins/shell/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/shell/SECURITY.md +++ b/plugins/shell/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/shell/guest-js/index.ts b/plugins/shell/guest-js/index.ts index ad90aeb6c..1ed2ac5d7 100644 --- a/plugins/shell/guest-js/index.ts +++ b/plugins/shell/guest-js/index.ts @@ -63,27 +63,27 @@ * @module */ -import { invoke, Channel } from "@tauri-apps/api/core"; +import { invoke, Channel } from '@tauri-apps/api/core' /** * @since 2.0.0 */ interface SpawnOptions { /** Current working directory. */ - cwd?: string; + cwd?: string /** Environment variables. set to `null` to clear the process env. */ - env?: Record; + env?: Record /** * Character encoding for stdout/stderr * * @since 2.0.0 * */ - encoding?: string; + encoding?: string } /** @ignore */ interface InternalSpawnOptions extends SpawnOptions { - sidecar?: boolean; + sidecar?: boolean } /** @@ -91,13 +91,13 @@ interface InternalSpawnOptions extends SpawnOptions { */ interface ChildProcess { /** Exit code of the process. `null` if the process was terminated by a signal on Unix. */ - code: number | null; + code: number | null /** If the process was terminated by a signal, represents that signal. */ - signal: number | null; + signal: number | null /** The data that the process wrote to `stdout`. */ - stdout: O; + stdout: O /** The data that the process wrote to `stderr`. */ - stderr: O; + stderr: O } /** @@ -108,7 +108,7 @@ class EventEmitter> { /** @ignore */ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any private eventListeners: Record void>> = - Object.create(null); + Object.create(null) /** * Alias for `emitter.on(eventName, listener)`. @@ -117,9 +117,9 @@ class EventEmitter> { */ addListener( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { - return this.on(eventName, listener); + return this.on(eventName, listener) } /** @@ -129,9 +129,9 @@ class EventEmitter> { */ removeListener( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { - return this.off(eventName, listener); + return this.off(eventName, listener) } /** @@ -146,16 +146,16 @@ class EventEmitter> { */ on( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { if (eventName in this.eventListeners) { // eslint-disable-next-line security/detect-object-injection - this.eventListeners[eventName].push(listener); + this.eventListeners[eventName].push(listener) } else { // eslint-disable-next-line security/detect-object-injection - this.eventListeners[eventName] = [listener]; + this.eventListeners[eventName] = [listener] } - return this; + return this } /** @@ -168,13 +168,13 @@ class EventEmitter> { */ once( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { const wrapper = (arg: E[typeof eventName]): void => { - this.removeListener(eventName, wrapper); - listener(arg); - }; - return this.addListener(eventName, wrapper); + this.removeListener(eventName, wrapper) + listener(arg) + } + return this.addListener(eventName, wrapper) } /** @@ -185,15 +185,15 @@ class EventEmitter> { */ off( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { if (eventName in this.eventListeners) { // eslint-disable-next-line security/detect-object-injection this.eventListeners[eventName] = this.eventListeners[eventName].filter( - (l) => l !== listener, - ); + (l) => l !== listener + ) } - return this; + return this } /** @@ -206,12 +206,12 @@ class EventEmitter> { removeAllListeners(event?: N): this { if (event) { // eslint-disable-next-line security/detect-object-injection - delete this.eventListeners[event]; + delete this.eventListeners[event] } else { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - this.eventListeners = Object.create(null); + this.eventListeners = Object.create(null) } - return this; + return this } /** @@ -226,11 +226,11 @@ class EventEmitter> { emit(eventName: N, arg: E[typeof eventName]): boolean { if (eventName in this.eventListeners) { // eslint-disable-next-line security/detect-object-injection - const listeners = this.eventListeners[eventName]; - for (const listener of listeners) listener(arg); - return true; + const listeners = this.eventListeners[eventName] + for (const listener of listeners) listener(arg) + return true } - return false; + return false } /** @@ -241,8 +241,8 @@ class EventEmitter> { listenerCount(eventName: N): number { if (eventName in this.eventListeners) // eslint-disable-next-line security/detect-object-injection - return this.eventListeners[eventName].length; - return 0; + return this.eventListeners[eventName].length + return 0 } /** @@ -257,16 +257,16 @@ class EventEmitter> { */ prependListener( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { if (eventName in this.eventListeners) { // eslint-disable-next-line security/detect-object-injection - this.eventListeners[eventName].unshift(listener); + this.eventListeners[eventName].unshift(listener) } else { // eslint-disable-next-line security/detect-object-injection - this.eventListeners[eventName] = [listener]; + this.eventListeners[eventName] = [listener] } - return this; + return this } /** @@ -279,15 +279,15 @@ class EventEmitter> { */ prependOnceListener( eventName: N, - listener: (arg: E[typeof eventName]) => void, + listener: (arg: E[typeof eventName]) => void ): this { // eslint-disable-next-line @typescript-eslint/no-explicit-any const wrapper = (arg: any): void => { - this.removeListener(eventName, wrapper); + this.removeListener(eventName, wrapper) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - listener(arg); - }; - return this.prependListener(eventName, wrapper); + listener(arg) + } + return this.prependListener(eventName, wrapper) } } @@ -296,10 +296,10 @@ class EventEmitter> { */ class Child { /** The child process `pid`. */ - pid: number; + pid: number constructor(pid: number) { - this.pid = pid; + this.pid = pid } /** @@ -320,10 +320,10 @@ class Child { * @since 2.0.0 */ async write(data: IOPayload | number[]): Promise { - await invoke("plugin:shell|stdin_write", { + await invoke('plugin:shell|stdin_write', { pid: this.pid, - buffer: data, - }); + buffer: data + }) } /** @@ -334,20 +334,20 @@ class Child { * @since 2.0.0 */ async kill(): Promise { - await invoke("plugin:shell|kill", { - cmd: "killChild", - pid: this.pid, - }); + await invoke('plugin:shell|kill', { + cmd: 'killChild', + pid: this.pid + }) } } interface CommandEvents { - close: TerminatedPayload; - error: string; + close: TerminatedPayload + error: string } interface OutputEvents { - data: O; + data: O } /** @@ -373,15 +373,15 @@ interface OutputEvents { */ class Command extends EventEmitter { /** @ignore Program to execute. */ - private readonly program: string; + private readonly program: string /** @ignore Program arguments */ - private readonly args: string[]; + private readonly args: string[] /** @ignore Spawn options. */ - private readonly options: InternalSpawnOptions; + private readonly options: InternalSpawnOptions /** Event emitter for the `stdout`. Emits the `data` event. */ - readonly stdout = new EventEmitter>(); + readonly stdout = new EventEmitter>() /** Event emitter for the `stderr`. Emits the `data` event. */ - readonly stderr = new EventEmitter>(); + readonly stderr = new EventEmitter>() /** * @ignore @@ -395,25 +395,25 @@ class Command extends EventEmitter { private constructor( program: string, args: string | string[] = [], - options?: SpawnOptions, + options?: SpawnOptions ) { - super(); - this.program = program; - this.args = typeof args === "string" ? [args] : args; - this.options = options ?? {}; + super() + this.program = program + this.args = typeof args === 'string' ? [args] : args + this.options = options ?? {} } - static create(program: string, args?: string | string[]): Command; + static create(program: string, args?: string | string[]): Command static create( program: string, args?: string | string[], - options?: SpawnOptions & { encoding: "raw" }, - ): Command; + options?: SpawnOptions & { encoding: 'raw' } + ): Command static create( program: string, args?: string | string[], - options?: SpawnOptions, - ): Command; + options?: SpawnOptions + ): Command /** * Creates a command to execute the given program. @@ -430,22 +430,22 @@ class Command extends EventEmitter { static create( program: string, args: string | string[] = [], - options?: SpawnOptions, + options?: SpawnOptions ): Command { - return new Command(program, args, options); + return new Command(program, args, options) } - static sidecar(program: string, args?: string | string[]): Command; + static sidecar(program: string, args?: string | string[]): Command static sidecar( program: string, args?: string | string[], - options?: SpawnOptions & { encoding: "raw" }, - ): Command; + options?: SpawnOptions & { encoding: 'raw' } + ): Command static sidecar( program: string, args?: string | string[], - options?: SpawnOptions, - ): Command; + options?: SpawnOptions + ): Command /** * Creates a command to execute the given sidecar program. @@ -462,11 +462,11 @@ class Command extends EventEmitter { static sidecar( program: string, args: string | string[] = [], - options?: SpawnOptions, + options?: SpawnOptions ): Command { - const instance = new Command(program, args, options); - instance.options.sidecar = true; - return instance; + const instance = new Command(program, args, options) + instance.options.sidecar = true + return instance } /** @@ -477,38 +477,38 @@ class Command extends EventEmitter { * @since 2.0.0 */ async spawn(): Promise { - const program = this.program; - const args = this.args; - const options = this.options; + const program = this.program + const args = this.args + const options = this.options - if (typeof args === "object") { - Object.freeze(args); + if (typeof args === 'object') { + Object.freeze(args) } - const onEvent = new Channel>(); + const onEvent = new Channel>() onEvent.onmessage = (event) => { switch (event.event) { - case "Error": - this.emit("error", event.payload); - break; - case "Terminated": - this.emit("close", event.payload); - break; - case "Stdout": - this.stdout.emit("data", event.payload); - break; - case "Stderr": - this.stderr.emit("data", event.payload); - break; + case 'Error': + this.emit('error', event.payload) + break + case 'Terminated': + this.emit('close', event.payload) + break + case 'Stdout': + this.stdout.emit('data', event.payload) + break + case 'Stderr': + this.stderr.emit('data', event.payload) + break } - }; + } - return await invoke("plugin:shell|spawn", { + return await invoke('plugin:shell|spawn', { program, args, options, - onEvent, - }).then((pid) => new Child(pid)); + onEvent + }).then((pid) => new Child(pid)) } /** @@ -528,19 +528,19 @@ class Command extends EventEmitter { * @since 2.0.0 */ async execute(): Promise> { - const program = this.program; - const args = this.args; - const options = this.options; + const program = this.program + const args = this.args + const options = this.options - if (typeof args === "object") { - Object.freeze(args); + if (typeof args === 'object') { + Object.freeze(args) } - return await invoke>("plugin:shell|execute", { + return await invoke>('plugin:shell|execute', { program, args, - options, - }); + options + }) } } @@ -548,8 +548,8 @@ class Command extends EventEmitter { * Describes the event message received from the command. */ interface Event { - event: T; - payload: V; + event: T + payload: V } /** @@ -557,20 +557,20 @@ interface Event { */ interface TerminatedPayload { /** Exit code of the process. `null` if the process was terminated by a signal on Unix. */ - code: number | null; + code: number | null /** If the process was terminated by a signal, represents that signal. */ - signal: number | null; + signal: number | null } /** Event payload type */ -type IOPayload = string | Uint8Array; +type IOPayload = string | Uint8Array /** Events emitted by the child process. */ type CommandEvent = - | Event<"Stdout", O> - | Event<"Stderr", O> - | Event<"Terminated", TerminatedPayload> - | Event<"Error", string>; + | Event<'Stdout', O> + | Event<'Stderr', O> + | Event<'Terminated', TerminatedPayload> + | Event<'Error', string> /** * Opens a path or URL with the system's default app, @@ -599,18 +599,18 @@ type CommandEvent = * @since 2.0.0 */ async function open(path: string, openWith?: string): Promise { - await invoke("plugin:shell|open", { + await invoke('plugin:shell|open', { path, - with: openWith, - }); + with: openWith + }) } -export { Command, Child, EventEmitter, open }; +export { Command, Child, EventEmitter, open } export type { IOPayload, CommandEvents, TerminatedPayload, OutputEvents, ChildProcess, - SpawnOptions, -}; + SpawnOptions +} diff --git a/plugins/shell/guest-js/init.ts b/plugins/shell/guest-js/init.ts index 895d58648..58d0001ef 100644 --- a/plugins/shell/guest-js/init.ts +++ b/plugins/shell/guest-js/init.ts @@ -2,39 +2,39 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' // open links with the API function openLinks(): void { - document.querySelector("body")?.addEventListener("click", function (e) { - let target: HTMLElement | null = e.target as HTMLElement; + document.querySelector('body')?.addEventListener('click', function (e) { + let target: HTMLElement | null = e.target as HTMLElement while (target) { - if (target.matches("a")) { - const t = target as HTMLAnchorElement; + if (target.matches('a')) { + const t = target as HTMLAnchorElement if ( - t.href !== "" && - ["http://", "https://", "mailto:", "tel:"].some((v) => - t.href.startsWith(v), + t.href !== '' && + ['http://', 'https://', 'mailto:', 'tel:'].some((v) => + t.href.startsWith(v) ) && - t.target === "_blank" + t.target === '_blank' ) { - void invoke("plugin:shell|open", { - path: t.href, - }); - e.preventDefault(); + void invoke('plugin:shell|open', { + path: t.href + }) + e.preventDefault() } - break; + break } - target = target.parentElement; + target = target.parentElement } - }); + }) } if ( - document.readyState === "complete" || - document.readyState === "interactive" + document.readyState === 'complete' || + document.readyState === 'interactive' ) { - openLinks(); + openLinks() } else { - window.addEventListener("DOMContentLoaded", openLinks, true); + window.addEventListener('DOMContentLoaded', openLinks, true) } diff --git a/plugins/shell/permissions/default.toml b/plugins/shell/permissions/default.toml index 4f17daa49..4569b0528 100644 --- a/plugins/shell/permissions/default.toml +++ b/plugins/shell/permissions/default.toml @@ -12,6 +12,4 @@ scope pre-configured. It will allow opening `http(s)://`, `tel:` and `mailto:` links. """ -permissions = [ - "allow-open", -] +permissions = ["allow-open"] diff --git a/plugins/shell/rollup.config.js b/plugins/shell/rollup.config.js index 0aed70d64..a7dbd4f69 100644 --- a/plugins/shell/rollup.config.js +++ b/plugins/shell/rollup.config.js @@ -2,21 +2,21 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import typescript from "@rollup/plugin-typescript"; -import terser from "@rollup/plugin-terser"; +import { createConfig } from '../../shared/rollup.config.js' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import typescript from '@rollup/plugin-typescript' +import terser from '@rollup/plugin-terser' export default createConfig({ additionalConfigs: { - input: "guest-js/init.ts", + input: 'guest-js/init.ts', output: { - file: "src/init-iife.js", - format: "iife", + file: 'src/init-iife.js', + format: 'iife' }, plugins: [typescript(), terser(), nodeResolve()], onwarn: (warning) => { - throw Object.assign(new Error(), warning); - }, - }, -}); + throw Object.assign(new Error(), warning) + } + } +}) diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 0a1ef1728..5ccd95983 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -10,8 +10,8 @@ repository = { workspace = true } exclude = ["/examples"] [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [dependencies] serde = { workspace = true } diff --git a/plugins/single-instance/SECURITY.md b/plugins/single-instance/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/single-instance/SECURITY.md +++ b/plugins/single-instance/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/sql/.gitignore b/plugins/sql/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/sql/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index fcd8aeecf..5c9f6b95d 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -11,11 +11,11 @@ links = "tauri-plugin-sql" [package.metadata.docs.rs] features = ["sqlite"] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/sql/README.md b/plugins/sql/README.md index 123527ddf..24ba1bdff 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -62,16 +62,16 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import Database from "@tauri-apps/plugin-sql"; +import Database from '@tauri-apps/plugin-sql' // sqlite. The path is relative to `tauri::api::path::BaseDirectory::AppConfig`. -const db = await Database.load("sqlite:test.db"); +const db = await Database.load('sqlite:test.db') // mysql -const db = await Database.load("mysql://user:pass@host/database"); +const db = await Database.load('mysql://user:pass@host/database') // postgres -const db = await Database.load("postgres://postgres:password@localhost/test"); +const db = await Database.load('postgres://postgres:password@localhost/test') -await db.execute("INSERT INTO ..."); +await db.execute('INSERT INTO ...') ``` ## Syntax @@ -84,25 +84,25 @@ We use sqlx as our underlying library, adopting their query syntax: ```javascript // INSERT and UPDATE examples for sqlite and postgres const result = await db.execute( - "INSERT into todos (id, title, status) VALUES ($1, $2, $3)", - [todos.id, todos.title, todos.status], -); + 'INSERT into todos (id, title, status) VALUES ($1, $2, $3)', + [todos.id, todos.title, todos.status] +) const result = await db.execute( - "UPDATE todos SET title = $1, status = $2 WHERE id = $3", - [todos.title, todos.status, todos.id], -); + 'UPDATE todos SET title = $1, status = $2 WHERE id = $3', + [todos.title, todos.status, todos.id] +) // INSERT and UPDATE examples for mysql const result = await db.execute( - "INSERT into todos (id, title, status) VALUES (?, ?, ?)", - [todos.id, todos.title, todos.status], -); + 'INSERT into todos (id, title, status) VALUES (?, ?, ?)', + [todos.id, todos.title, todos.status] +) const result = await db.execute( - "UPDATE todos SET title = ?, status = ? WHERE id = ?", - [todos.title, todos.status, todos.id], -); + 'UPDATE todos SET title = ?, status = ? WHERE id = ?', + [todos.title, todos.status, todos.id] +) ``` ## Migrations @@ -173,8 +173,8 @@ To apply the migrations when the plugin is initialized, add the connection strin Alternatively, the client side `load()` also runs the migrations for a given connection string: ```ts -import Database from "@tauri-apps/plugin-sql"; -const db = await Database.load("sqlite:mydatabase.db"); +import Database from '@tauri-apps/plugin-sql' +const db = await Database.load('sqlite:mydatabase.db') ``` Ensure that the migrations are defined in the correct order and are safe to run multiple times. diff --git a/plugins/sql/SECURITY.md b/plugins/sql/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/sql/SECURITY.md +++ b/plugins/sql/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/sql/guest-js/index.ts b/plugins/sql/guest-js/index.ts index 6cb475847..05eed0e3a 100644 --- a/plugins/sql/guest-js/index.ts +++ b/plugins/sql/guest-js/index.ts @@ -2,11 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' export interface QueryResult { /** The number of rows affected by the query. */ - rowsAffected: number; + rowsAffected: number /** * The last inserted `id`. * @@ -15,7 +15,7 @@ export interface QueryResult { * must be used, with a `RETURNING` clause * (`INSERT INTO todos (title) VALUES ($1) RETURNING id`). */ - lastInsertId: number; + lastInsertId: number } /** @@ -25,9 +25,9 @@ export interface QueryResult { * communicating with the rust side of the sql plugin. */ export default class Database { - path: string; + path: string constructor(path: string) { - this.path = path; + this.path = path } /** @@ -46,11 +46,11 @@ export default class Database { * ``` */ static async load(path: string): Promise { - const _path = await invoke("plugin:sql|load", { - db: path, - }); + const _path = await invoke('plugin:sql|load', { + db: path + }) - return new Database(_path); + return new Database(_path) } /** @@ -70,7 +70,7 @@ export default class Database { * ``` */ static get(path: string): Database { - return new Database(path); + return new Database(path) } /** @@ -107,17 +107,17 @@ export default class Database { */ async execute(query: string, bindValues?: unknown[]): Promise { const [rowsAffected, lastInsertId] = await invoke<[number, number]>( - "plugin:sql|execute", + 'plugin:sql|execute', { db: this.path, query, - values: bindValues ?? [], - }, - ); + values: bindValues ?? [] + } + ) return { lastInsertId, - rowsAffected, - }; + rowsAffected + } } /** @@ -139,13 +139,13 @@ export default class Database { * ``` */ async select(query: string, bindValues?: unknown[]): Promise { - const result = await invoke("plugin:sql|select", { + const result = await invoke('plugin:sql|select', { db: this.path, query, - values: bindValues ?? [], - }); + values: bindValues ?? [] + }) - return result; + return result } /** @@ -160,9 +160,9 @@ export default class Database { * @param db - Optionally state the name of a database if you are managing more than one. Otherwise, all database pools will be in scope. */ async close(db?: string): Promise { - const success = await invoke("plugin:sql|close", { - db, - }); - return success; + const success = await invoke('plugin:sql|close', { + db + }) + return success } } diff --git a/plugins/sql/permissions/default.toml b/plugins/sql/permissions/default.toml index dbea84f4d..efac54331 100644 --- a/plugins/sql/permissions/default.toml +++ b/plugins/sql/permissions/default.toml @@ -13,8 +13,4 @@ All reading related operations are enabled. Also allows to load or close a connection. """ -permissions = [ - "allow-close", - "allow-load", - "allow-select", -] +permissions = ["allow-close", "allow-load", "allow-select"] diff --git a/plugins/sql/rollup.config.js b/plugins/sql/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/sql/rollup.config.js +++ b/plugins/sql/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/store/.gitignore b/plugins/store/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/store/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index cf5b31858..9ef49952c 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-store" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/store/README.md b/plugins/store/README.md index aabfbf8e4..be6fdfaee 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -60,22 +60,22 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```typescript -import { Store } from "@tauri-apps/plugin-store"; +import { Store } from '@tauri-apps/plugin-store' -const store = new Store(".settings.dat"); +const store = new Store('.settings.dat') -await store.set("some-key", { value: 5 }); +await store.set('some-key', { value: 5 }) -const val = await store.get<{ value: number }>("some-key"); +const val = await store.get<{ value: number }>('some-key') if (val) { - console.log(val); + console.log(val) } else { - console.log("val is null"); + console.log('val is null') } // This manually saves the store. -await store.save(); +await store.save() ``` ### Persisting Values @@ -85,14 +85,14 @@ As seen above, values added to the store are not persisted between application l You can manually save a store with: ```javascript -await store.save(); +await store.save() ``` Stores are loaded automatically when used from the JavaScript bindings. However, you can also load them manually later like so: ```javascript -await store.load(); +await store.load() ``` ## Usage from Rust diff --git a/plugins/store/SECURITY.md b/plugins/store/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/store/SECURITY.md +++ b/plugins/store/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/store/examples/AppSettingsManager/src/main.ts b/plugins/store/examples/AppSettingsManager/src/main.ts index eb240e99c..57cbe4b72 100644 --- a/plugins/store/examples/AppSettingsManager/src/main.ts +++ b/plugins/store/examples/AppSettingsManager/src/main.ts @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -window.addEventListener("DOMContentLoaded", () => { - document.querySelector("#greet-form")?.addEventListener("submit", (e) => { - e.preventDefault(); - }); -}); +window.addEventListener('DOMContentLoaded', () => { + document.querySelector('#greet-form')?.addEventListener('submit', (e) => { + e.preventDefault() + }) +}) diff --git a/plugins/store/examples/AppSettingsManager/vite.config.ts b/plugins/store/examples/AppSettingsManager/vite.config.ts index 03f44f566..661eb2333 100644 --- a/plugins/store/examples/AppSettingsManager/vite.config.ts +++ b/plugins/store/examples/AppSettingsManager/vite.config.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { defineConfig } from "vite"; +import { defineConfig } from 'vite' // https://vitejs.dev/config/ export default defineConfig(async () => ({ @@ -13,9 +13,9 @@ export default defineConfig(async () => ({ // 2. tauri expects a fixed port, fail if that port is not available server: { port: 1420, - strictPort: true, + strictPort: true }, // 3. to make use of `TAURI_DEBUG` and other env variables // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand - envPrefix: ["VITE_", "TAURI_"], -})); + envPrefix: ['VITE_', 'TAURI_'] +})) diff --git a/plugins/store/guest-js/index.ts b/plugins/store/guest-js/index.ts index 043047396..dce545ac1 100644 --- a/plugins/store/guest-js/index.ts +++ b/plugins/store/guest-js/index.ts @@ -2,23 +2,23 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { listen, type UnlistenFn } from "@tauri-apps/api/event"; +import { listen, type UnlistenFn } from '@tauri-apps/api/event' -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' interface ChangePayload { - path: string; - key: string; - value: T | null; + path: string + key: string + value: T | null } /** * A key-value store persisted by the backend layer. */ export class Store { - path: string; + path: string constructor(path: string) { - this.path = path; + this.path = path } /** @@ -29,11 +29,11 @@ export class Store { * @returns */ async set(key: string, value: unknown): Promise { - await invoke("plugin:store|set", { + await invoke('plugin:store|set', { path: this.path, key, - value, - }); + value + }) } /** @@ -43,10 +43,10 @@ export class Store { * @returns */ async get(key: string): Promise { - return await invoke("plugin:store|get", { + return await invoke('plugin:store|get', { path: this.path, - key, - }); + key + }) } /** @@ -56,10 +56,10 @@ export class Store { * @returns */ async has(key: string): Promise { - return await invoke("plugin:store|has", { + return await invoke('plugin:store|has', { path: this.path, - key, - }); + key + }) } /** @@ -69,10 +69,10 @@ export class Store { * @returns */ async delete(key: string): Promise { - return await invoke("plugin:store|delete", { + return await invoke('plugin:store|delete', { path: this.path, - key, - }); + key + }) } /** @@ -82,9 +82,9 @@ export class Store { * @returns */ async clear(): Promise { - await invoke("plugin:store|clear", { - path: this.path, - }); + await invoke('plugin:store|clear', { + path: this.path + }) } /** @@ -94,9 +94,9 @@ export class Store { * @returns */ async reset(): Promise { - await invoke("plugin:store|reset", { - path: this.path, - }); + await invoke('plugin:store|reset', { + path: this.path + }) } /** @@ -105,9 +105,9 @@ export class Store { * @returns */ async keys(): Promise { - return await invoke("plugin:store|keys", { - path: this.path, - }); + return await invoke('plugin:store|keys', { + path: this.path + }) } /** @@ -116,9 +116,9 @@ export class Store { * @returns */ async values(): Promise { - return await invoke("plugin:store|values", { - path: this.path, - }); + return await invoke('plugin:store|values', { + path: this.path + }) } /** @@ -127,9 +127,9 @@ export class Store { * @returns */ async entries(): Promise> { - return await invoke("plugin:store|entries", { - path: this.path, - }); + return await invoke('plugin:store|entries', { + path: this.path + }) } /** @@ -138,9 +138,9 @@ export class Store { * @returns */ async length(): Promise { - return await invoke("plugin:store|length", { - path: this.path, - }); + return await invoke('plugin:store|length', { + path: this.path + }) } /** @@ -152,9 +152,9 @@ export class Store { * @returns */ async load(): Promise { - await invoke("plugin:store|load", { - path: this.path, - }); + await invoke('plugin:store|load', { + path: this.path + }) } /** @@ -165,9 +165,9 @@ export class Store { * @returns */ async save(): Promise { - await invoke("plugin:store|save", { - path: this.path, - }); + await invoke('plugin:store|save', { + path: this.path + }) } /** @@ -180,13 +180,13 @@ export class Store { */ async onKeyChange( key: string, - cb: (value: T | null) => void, + cb: (value: T | null) => void ): Promise { - return await listen>("store://change", (event) => { + return await listen>('store://change', (event) => { if (event.payload.path === this.path && event.payload.key === key) { - cb(event.payload.value); + cb(event.payload.value) } - }); + }) } /** @@ -197,12 +197,12 @@ export class Store { * @since 2.0.0 */ async onChange( - cb: (key: string, value: T | null) => void, + cb: (key: string, value: T | null) => void ): Promise { - return await listen>("store://change", (event) => { + return await listen>('store://change', (event) => { if (event.payload.path === this.path) { - cb(event.payload.key, event.payload.value); + cb(event.payload.key, event.payload.value) } - }); + }) } } diff --git a/plugins/store/rollup.config.js b/plugins/store/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/store/rollup.config.js +++ b/plugins/store/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/stronghold/.gitignore b/plugins/stronghold/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/stronghold/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 1544af5e2..f13e51769 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-stronghold" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/stronghold/SECURITY.md b/plugins/stronghold/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/stronghold/SECURITY.md +++ b/plugins/stronghold/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/stronghold/guest-js/index.ts b/plugins/stronghold/guest-js/index.ts index f539b7190..c1945a210 100644 --- a/plugins/stronghold/guest-js/index.ts +++ b/plugins/stronghold/guest-js/index.ts @@ -2,112 +2,112 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; +import { invoke } from '@tauri-apps/api/core' export type ClientPath = | string | Iterable | ArrayLike - | ArrayBuffer; + | ArrayBuffer export type VaultPath = | string | Iterable | ArrayLike - | ArrayBuffer; + | ArrayBuffer export type RecordPath = | string | Iterable | ArrayLike - | ArrayBuffer; + | ArrayBuffer export type StoreKey = | string | Iterable | ArrayLike - | ArrayBuffer; + | ArrayBuffer export interface ConnectionLimits { - maxPendingIncoming?: number; - maxPendingOutgoing?: number; - maxEstablishedIncoming?: number; - maxEstablishedOutgoing?: number; - maxEstablishedPerPeer?: number; - maxEstablishedTotal?: number; + maxPendingIncoming?: number + maxPendingOutgoing?: number + maxEstablishedIncoming?: number + maxEstablishedOutgoing?: number + maxEstablishedPerPeer?: number + maxEstablishedTotal?: number } export interface PeerAddress { - known: string[]; // multiaddr - use_relay_fallback: boolean; + known: string[] // multiaddr + use_relay_fallback: boolean } export interface AddressInfo { - peers: Map; - relays: string[]; // peers + peers: Map + relays: string[] // peers } export interface ClientAccess { - useVaultDefault?: boolean; - useVaultExceptions?: Map; - writeVaultDefault?: boolean; - writeVaultExceptions?: Map; - cloneVaultDefault?: boolean; - cloneVaultExceptions?: Map; - readStore?: boolean; - writeStore?: boolean; + useVaultDefault?: boolean + useVaultExceptions?: Map + writeVaultDefault?: boolean + writeVaultExceptions?: Map + cloneVaultDefault?: boolean + cloneVaultExceptions?: Map + readStore?: boolean + writeStore?: boolean } export interface Permissions { - default?: ClientAccess; - exceptions?: Map; + default?: ClientAccess + exceptions?: Map } export interface NetworkConfig { - requestTimeout?: Duration; - connectionTimeout?: Duration; - connectionsLimit?: ConnectionLimits; - enableMdns?: boolean; - enableRelay?: boolean; - addresses?: AddressInfo; - peerPermissions?: Map; - permissionsDefault?: Permissions; + requestTimeout?: Duration + connectionTimeout?: Duration + connectionsLimit?: ConnectionLimits + enableMdns?: boolean + enableRelay?: boolean + addresses?: AddressInfo + peerPermissions?: Map + permissionsDefault?: Permissions } /** A duration definition. */ export interface Duration { /** The number of whole seconds contained by this Duration. */ - secs: number; + secs: number /** The fractional part of this Duration, in nanoseconds. Must be greater or equal to 0 and smaller than 1e+9 (the max number of nanoseoncds in a second) */ - nanos: number; + nanos: number } export class Location { - type: string; - payload: Record; + type: string + payload: Record constructor(type: string, payload: Record) { - this.type = type; - this.payload = payload; + this.type = type + this.payload = payload } static generic(vault: VaultPath, record: RecordPath): Location { - return new Location("Generic", { + return new Location('Generic', { vault, - record, - }); + record + }) } static counter(vault: VaultPath, counter: number): Location { - return new Location("Counter", { + return new Location('Counter', { vault, - counter, - }); + counter + }) } } class ProcedureExecutor { - procedureArgs: Record; + procedureArgs: Record constructor(procedureArgs: Record) { - this.procedureArgs = procedureArgs; + this.procedureArgs = procedureArgs } /** @@ -119,18 +119,18 @@ class ProcedureExecutor { */ async generateSLIP10Seed( outputLocation: Location, - sizeBytes?: number, + sizeBytes?: number ): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "SLIP10Generate", + type: 'SLIP10Generate', payload: { output: outputLocation, - sizeBytes, - }, - }, - }).then((n) => Uint8Array.from(n)); + sizeBytes + } + } + }).then((n) => Uint8Array.from(n)) } /** @@ -144,24 +144,24 @@ class ProcedureExecutor { */ async deriveSLIP10( chain: number[], - source: "Seed" | "Key", + source: 'Seed' | 'Key', sourceLocation: Location, - outputLocation: Location, + outputLocation: Location ): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "SLIP10Derive", + type: 'SLIP10Derive', payload: { chain, input: { type: source, - payload: sourceLocation, + payload: sourceLocation }, - output: outputLocation, - }, - }, - }).then((n) => Uint8Array.from(n)); + output: outputLocation + } + } + }).then((n) => Uint8Array.from(n)) } /** @@ -175,19 +175,19 @@ class ProcedureExecutor { async recoverBIP39( mnemonic: string, outputLocation: Location, - passphrase?: string, + passphrase?: string ): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "BIP39Recover", + type: 'BIP39Recover', payload: { mnemonic, passphrase, - output: outputLocation, - }, - }, - }).then((n) => Uint8Array.from(n)); + output: outputLocation + } + } + }).then((n) => Uint8Array.from(n)) } /** @@ -199,18 +199,18 @@ class ProcedureExecutor { */ async generateBIP39( outputLocation: Location, - passphrase?: string, + passphrase?: string ): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "BIP39Generate", + type: 'BIP39Generate', payload: { output: outputLocation, - passphrase, - }, - }, - }).then((n) => Uint8Array.from(n)); + passphrase + } + } + }).then((n) => Uint8Array.from(n)) } /** @@ -221,16 +221,16 @@ class ProcedureExecutor { * @since 2.0.0 */ async getEd25519PublicKey(privateKeyLocation: Location): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "PublicKey", + type: 'PublicKey', payload: { - type: "Ed25519", - privateKey: privateKeyLocation, - }, - }, - }).then((n) => Uint8Array.from(n)); + type: 'Ed25519', + privateKey: privateKeyLocation + } + } + }).then((n) => Uint8Array.from(n)) } /** @@ -243,28 +243,28 @@ class ProcedureExecutor { */ async signEd25519( privateKeyLocation: Location, - msg: string, + msg: string ): Promise { - return await invoke("plugin:stronghold|execute_procedure", { + return await invoke('plugin:stronghold|execute_procedure', { ...this.procedureArgs, procedure: { - type: "Ed25519Sign", + type: 'Ed25519Sign', payload: { privateKey: privateKeyLocation, - msg, - }, - }, - }).then((n) => Uint8Array.from(n)); + msg + } + } + }).then((n) => Uint8Array.from(n)) } } export class Client { - path: string; - name: ClientPath; + path: string + name: ClientPath constructor(path: string, name: ClientPath) { - this.path = path; - this.name = name; + this.path = path + this.name = name } /** @@ -274,54 +274,54 @@ export class Client { * @returns */ getVault(name: VaultPath): Vault { - return new Vault(this.path, this.name, name); + return new Vault(this.path, this.name, name) } getStore(): Store { - return new Store(this.path, this.name); + return new Store(this.path, this.name) } } export class Store { - path: string; - client: ClientPath; + path: string + client: ClientPath constructor(path: string, client: ClientPath) { - this.path = path; - this.client = client; + this.path = path + this.client = client } async get(key: StoreKey): Promise { - return await invoke("plugin:stronghold|get_store_record", { + return await invoke('plugin:stronghold|get_store_record', { snapshotPath: this.path, client: this.client, - key, - }).then((v) => v && Uint8Array.from(v)); + key + }).then((v) => v && Uint8Array.from(v)) } async insert( key: StoreKey, value: number[], - lifetime?: Duration, + lifetime?: Duration ): Promise { - await invoke("plugin:stronghold|save_store_record", { + await invoke('plugin:stronghold|save_store_record', { snapshotPath: this.path, client: this.client, key, value, - lifetime, - }); + lifetime + }) } async remove(key: StoreKey): Promise { return await invoke( - "plugin:stronghold|remove_store_record", + 'plugin:stronghold|remove_store_record', { snapshotPath: this.path, client: this.client, - key, - }, - ).then((v) => v && Uint8Array.from(v)); + key + } + ).then((v) => v && Uint8Array.from(v)) } } @@ -332,20 +332,20 @@ export class Store { */ export class Vault extends ProcedureExecutor { /** The vault path. */ - path: string; - client: ClientPath; + path: string + client: ClientPath /** The vault name. */ - name: VaultPath; + name: VaultPath constructor(path: string, client: ClientPath, name: VaultPath) { super({ snapshotPath: path, client, - vault: name, - }); - this.path = path; - this.client = client; - this.name = name; + vault: name + }) + this.path = path + this.client = client + this.name = name } /** @@ -356,13 +356,13 @@ export class Vault extends ProcedureExecutor { * @returns */ async insert(recordPath: RecordPath, secret: number[]): Promise { - await invoke("plugin:stronghold|save_secret", { + await invoke('plugin:stronghold|save_secret', { snapshotPath: this.path, client: this.client, vault: this.name, recordPath, - secret, - }); + secret + }) } /** @@ -372,12 +372,12 @@ export class Vault extends ProcedureExecutor { * @returns */ async remove(location: Location): Promise { - await invoke("plugin:stronghold|remove_secret", { + await invoke('plugin:stronghold|remove_secret', { snapshotPath: this.path, client: this.client, vault: this.name, - recordPath: location.payload.record, - }); + recordPath: location.payload.record + }) } } @@ -385,7 +385,7 @@ export class Vault extends ProcedureExecutor { * A representation of an access to a stronghold. */ export class Stronghold { - path: string; + path: string /** * Initializes a stronghold. @@ -394,7 +394,7 @@ export class Stronghold { * @param password */ private constructor(path: string) { - this.path = path; + this.path = path } /** @@ -403,33 +403,33 @@ export class Stronghold { * @returns */ static async load(path: string, password: string): Promise { - return await invoke("plugin:stronghold|initialize", { + return await invoke('plugin:stronghold|initialize', { snapshotPath: path, - password, - }).then(() => new Stronghold(path)); + password + }).then(() => new Stronghold(path)) } /** * Remove this instance from the cache. */ async unload(): Promise { - await invoke("plugin:stronghold|destroy", { - snapshotPath: this.path, - }); + await invoke('plugin:stronghold|destroy', { + snapshotPath: this.path + }) } async loadClient(client: ClientPath): Promise { - return await invoke("plugin:stronghold|load_client", { + return await invoke('plugin:stronghold|load_client', { snapshotPath: this.path, - client, - }).then(() => new Client(this.path, client)); + client + }).then(() => new Client(this.path, client)) } async createClient(client: ClientPath): Promise { - return await invoke("plugin:stronghold|create_client", { + return await invoke('plugin:stronghold|create_client', { snapshotPath: this.path, - client, - }).then(() => new Client(this.path, client)); + client + }).then(() => new Client(this.path, client)) } /** @@ -437,8 +437,8 @@ export class Stronghold { * @returns */ async save(): Promise { - await invoke("plugin:stronghold|save", { - snapshotPath: this.path, - }); + await invoke('plugin:stronghold|save', { + snapshotPath: this.path + }) } } diff --git a/plugins/stronghold/rollup.config.js b/plugins/stronghold/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/stronghold/rollup.config.js +++ b/plugins/stronghold/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 0d5cc8be8..0a035eb28 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -10,13 +10,13 @@ repository = { workspace = true } links = "tauri-plugin-updater" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] no-default-features = true -features = [ "zip" ] +features = ["zip"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] tauri = { workspace = true } diff --git a/plugins/updater/README.md b/plugins/updater/README.md index e2309f197..836a63b12 100644 --- a/plugins/updater/README.md +++ b/plugins/updater/README.md @@ -67,12 +67,12 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { check } from "@tauri-apps/plugin-updater"; -import { relaunch } from "@tauri-apps/plugin-process"; -const update = await check(); +import { check } from '@tauri-apps/plugin-updater' +import { relaunch } from '@tauri-apps/plugin-process' +const update = await check() if (update?.available) { - await update.downloadAndInstall(); - await relaunch(); + await update.downloadAndInstall() + await relaunch() } ``` diff --git a/plugins/updater/SECURITY.md b/plugins/updater/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/updater/SECURITY.md +++ b/plugins/updater/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/updater/guest-js/index.ts b/plugins/updater/guest-js/index.ts index 42e69716e..54d1d1743 100644 --- a/plugins/updater/guest-js/index.ts +++ b/plugins/updater/guest-js/index.ts @@ -2,26 +2,26 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke, Channel, Resource } from "@tauri-apps/api/core"; +import { invoke, Channel, Resource } from '@tauri-apps/api/core' /** Options used when checking for updates */ interface CheckOptions { /** * Request headers */ - headers?: HeadersInit; + headers?: HeadersInit /** * Timeout in milliseconds */ - timeout?: number; + timeout?: number /** * A proxy url to be used when checking and downloading updates. */ - proxy?: string; + proxy?: string /** * Target identifier for the running application. This is sent to the backend. */ - target?: string; + target?: string } /** Options used when downloading an update */ @@ -29,109 +29,109 @@ interface DownloadOptions { /** * Request headers */ - headers?: HeadersInit; + headers?: HeadersInit /** * Timeout in milliseconds */ - timeout?: number; + timeout?: number } interface UpdateMetadata { - rid: number; - available: boolean; - currentVersion: string; - version: string; - date?: string; - body?: string; + rid: number + available: boolean + currentVersion: string + version: string + date?: string + body?: string } /** Updater download event */ type DownloadEvent = - | { event: "Started"; data: { contentLength?: number } } - | { event: "Progress"; data: { chunkLength: number } } - | { event: "Finished" }; + | { event: 'Started'; data: { contentLength?: number } } + | { event: 'Progress'; data: { chunkLength: number } } + | { event: 'Finished' } class Update extends Resource { - available: boolean; - currentVersion: string; - version: string; - date?: string; - body?: string; - private downloadedBytes?: Resource; + available: boolean + currentVersion: string + version: string + date?: string + body?: string + private downloadedBytes?: Resource constructor(metadata: UpdateMetadata) { - super(metadata.rid); - this.available = metadata.available; - this.currentVersion = metadata.currentVersion; - this.version = metadata.version; - this.date = metadata.date; - this.body = metadata.body; + super(metadata.rid) + this.available = metadata.available + this.currentVersion = metadata.currentVersion + this.version = metadata.version + this.date = metadata.date + this.body = metadata.body } /** Download the updater package */ async download( onEvent?: (progress: DownloadEvent) => void, - options?: DownloadOptions, + options?: DownloadOptions ): Promise { - const channel = new Channel(); + const channel = new Channel() if (onEvent) { - channel.onmessage = onEvent; + channel.onmessage = onEvent } - const downloadedBytesRid = await invoke("plugin:updater|download", { + const downloadedBytesRid = await invoke('plugin:updater|download', { onEvent: channel, rid: this.rid, - ...options, - }); - this.downloadedBytes = new Resource(downloadedBytesRid); + ...options + }) + this.downloadedBytes = new Resource(downloadedBytesRid) } /** Install downloaded updater package */ async install(): Promise { if (!this.downloadedBytes) { - throw new Error("Update.install called before Update.download"); + throw new Error('Update.install called before Update.download') } - await invoke("plugin:updater|install", { + await invoke('plugin:updater|install', { updateRid: this.rid, - bytesRid: this.downloadedBytes.rid, - }); + bytesRid: this.downloadedBytes.rid + }) // Don't need to call close, we did it in rust side already - this.downloadedBytes = undefined; + this.downloadedBytes = undefined } /** Downloads the updater package and installs it */ async downloadAndInstall( onEvent?: (progress: DownloadEvent) => void, - options?: DownloadOptions, + options?: DownloadOptions ): Promise { - const channel = new Channel(); + const channel = new Channel() if (onEvent) { - channel.onmessage = onEvent; + channel.onmessage = onEvent } - await invoke("plugin:updater|download_and_install", { + await invoke('plugin:updater|download_and_install', { onEvent: channel, rid: this.rid, - ...options, - }); + ...options + }) } async close(): Promise { - await this.downloadedBytes?.close(); - await super.close(); + await this.downloadedBytes?.close() + await super.close() } } /** Check for updates, resolves to `null` if no updates are available */ async function check(options?: CheckOptions): Promise { if (options?.headers) { - options.headers = Array.from(new Headers(options.headers).entries()); + options.headers = Array.from(new Headers(options.headers).entries()) } - return await invoke("plugin:updater|check", { - ...options, - }).then((meta) => (meta.available ? new Update(meta) : null)); + return await invoke('plugin:updater|check', { + ...options + }).then((meta) => (meta.available ? new Update(meta) : null)) } -export type { CheckOptions, DownloadOptions, DownloadEvent }; -export { check, Update }; +export type { CheckOptions, DownloadOptions, DownloadEvent } +export { check, Update } diff --git a/plugins/updater/permissions/default.toml b/plugins/updater/permissions/default.toml index 6ae34b6b9..fcf08fa82 100644 --- a/plugins/updater/permissions/default.toml +++ b/plugins/updater/permissions/default.toml @@ -11,8 +11,8 @@ is enabled. """ permissions = [ - "allow-check", - "allow-download", - "allow-install", - "allow-download-and-install", + "allow-check", + "allow-download", + "allow-install", + "allow-download-and-install", ] diff --git a/plugins/updater/rollup.config.js b/plugins/updater/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/updater/rollup.config.js +++ b/plugins/updater/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/upload/.gitignore b/plugins/upload/.gitignore deleted file mode 100644 index b512c09d4..000000000 --- a/plugins/upload/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index f32dd3493..a80217553 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-upload" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/upload/README.md b/plugins/upload/README.md index 34e73d1ef..a675ad6a4 100644 --- a/plugins/upload/README.md +++ b/plugins/upload/README.md @@ -61,25 +61,25 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { upload } from "@tauri-apps/plugin-upload"; +import { upload } from '@tauri-apps/plugin-upload' upload( - "https://example.com/file-upload", - "./path/to/my/file.txt", + 'https://example.com/file-upload', + './path/to/my/file.txt', (progress, total) => console.log(`Uploaded ${progress} of ${total} bytes`), // a callback that will be called with the upload progress - { "Content-Type": "text/plain" }, // optional headers to send with the request -); + { 'Content-Type': 'text/plain' } // optional headers to send with the request +) ``` ```javascript -import { download } from "@tauri-apps/plugin-upload"; +import { download } from '@tauri-apps/plugin-upload' download( - "https://example.com/file-download-link", - "./path/to/save/my/file.txt", + 'https://example.com/file-download-link', + './path/to/save/my/file.txt', (progress, total) => console.log(`Downloaded ${progress} of ${total} bytes`), // a callback that will be called with the download progress - { "Content-Type": "text/plain" }, // optional headers to send with the request -); + { 'Content-Type': 'text/plain' } // optional headers to send with the request +) ``` ## Contributing diff --git a/plugins/upload/SECURITY.md b/plugins/upload/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/upload/SECURITY.md +++ b/plugins/upload/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/upload/guest-js/index.ts b/plugins/upload/guest-js/index.ts index 40e847f9a..9586a241a 100644 --- a/plugins/upload/guest-js/index.ts +++ b/plugins/upload/guest-js/index.ts @@ -2,37 +2,37 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke, Channel } from "@tauri-apps/api/core"; +import { invoke, Channel } from '@tauri-apps/api/core' interface ProgressPayload { - progress: number; - total: number; + progress: number + total: number } -type ProgressHandler = (progress: ProgressPayload) => void; +type ProgressHandler = (progress: ProgressPayload) => void async function upload( url: string, filePath: string, progressHandler?: ProgressHandler, - headers?: Map, + headers?: Map ): Promise { - const ids = new Uint32Array(1); - window.crypto.getRandomValues(ids); - const id = ids[0]; + const ids = new Uint32Array(1) + window.crypto.getRandomValues(ids) + const id = ids[0] - const onProgress = new Channel(); + const onProgress = new Channel() if (progressHandler) { - onProgress.onmessage = progressHandler; + onProgress.onmessage = progressHandler } - return await invoke("plugin:upload|upload", { + return await invoke('plugin:upload|upload', { id, url, filePath, headers: headers ?? {}, - onProgress, - }); + onProgress + }) } /// Download file from given url. @@ -43,24 +43,24 @@ async function download( url: string, filePath: string, progressHandler?: ProgressHandler, - headers?: Map, + headers?: Map ): Promise { - const ids = new Uint32Array(1); - window.crypto.getRandomValues(ids); - const id = ids[0]; + const ids = new Uint32Array(1) + window.crypto.getRandomValues(ids) + const id = ids[0] - const onProgress = new Channel(); + const onProgress = new Channel() if (progressHandler) { - onProgress.onmessage = progressHandler; + onProgress.onmessage = progressHandler } - await invoke("plugin:upload|download", { + await invoke('plugin:upload|download', { id, url, filePath, headers: headers ?? {}, - onProgress, - }); + onProgress + }) } -export { download, upload }; +export { download, upload } diff --git a/plugins/upload/permissions/default.toml b/plugins/upload/permissions/default.toml index 8ef4bfe21..74a2eb9fd 100644 --- a/plugins/upload/permissions/default.toml +++ b/plugins/upload/permissions/default.toml @@ -10,7 +10,4 @@ operations are available from the upload plugin. All operations are enabled by default. """ -permissions = [ - "allow-upload", - "allow-download" -] +permissions = ["allow-upload", "allow-download"] diff --git a/plugins/upload/rollup.config.js b/plugins/upload/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/upload/rollup.config.js +++ b/plugins/upload/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/websocket/.gitignore b/plugins/websocket/.gitignore deleted file mode 100644 index 24122248a..000000000 --- a/plugins/websocket/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -gen/schemas diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index a1a3c7751..a36b8761d 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -11,11 +11,11 @@ links = "tauri-plugin-websocket" exclude = ["/examples"] [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/websocket/README.md b/plugins/websocket/README.md index eeadc48a9..db4d1ada6 100644 --- a/plugins/websocket/README.md +++ b/plugins/websocket/README.md @@ -60,13 +60,13 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import WebSocket from "@tauri-apps/plugin-websocket"; +import WebSocket from '@tauri-apps/plugin-websocket' -const ws = await WebSocket.connect("wss://example.com"); +const ws = await WebSocket.connect('wss://example.com') -await ws.send("Hello World"); +await ws.send('Hello World') -await ws.disconnect(); +await ws.disconnect() ``` ## Contributing diff --git a/plugins/websocket/SECURITY.md b/plugins/websocket/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/websocket/SECURITY.md +++ b/plugins/websocket/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/websocket/examples/tauri-app/src/main.ts b/plugins/websocket/examples/tauri-app/src/main.ts index 834e39a9c..05fecfe8f 100644 --- a/plugins/websocket/examples/tauri-app/src/main.ts +++ b/plugins/websocket/examples/tauri-app/src/main.ts @@ -2,57 +2,57 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import WebSocket from "tauri-plugin-websocket-api"; -import "./style.css"; +import WebSocket from 'tauri-plugin-websocket-api' +import './style.css' -let ws: WebSocket; +let ws: WebSocket -document.addEventListener("DOMContentLoaded", async () => { - document.querySelector("#send")?.addEventListener("click", send); - document.querySelector("#disconnect")?.addEventListener("click", disconnect); - await connect(); -}); +document.addEventListener('DOMContentLoaded', async () => { + document.querySelector('#send')?.addEventListener('click', send) + document.querySelector('#disconnect')?.addEventListener('click', disconnect) + await connect() +}) function _updateResponse(returnValue: unknown) { - const msg = document.createElement("p"); + const msg = document.createElement('p') msg.textContent = - typeof returnValue === "string" ? returnValue : JSON.stringify(returnValue); - document.querySelector("#response-container")?.appendChild(msg); + typeof returnValue === 'string' ? returnValue : JSON.stringify(returnValue) + document.querySelector('#response-container')?.appendChild(msg) } async function connect() { try { - ws = await WebSocket.connect("ws://127.0.0.1:8080").then((r) => { - _updateResponse("Connected"); - return r; - }); + ws = await WebSocket.connect('ws://127.0.0.1:8080').then((r) => { + _updateResponse('Connected') + return r + }) } catch (e) { - _updateResponse(e); + _updateResponse(e) } - ws.addListener(_updateResponse); + ws.addListener(_updateResponse) } function send() { - ws.send(document.querySelector("#msg-input")?.textContent || "") + ws.send(document.querySelector('#msg-input')?.textContent || '') .then(() => { - _updateResponse("Message sent"); + _updateResponse('Message sent') }) - .catch(_updateResponse); + .catch(_updateResponse) } function disconnect() { ws.disconnect() .then(() => { - _updateResponse("Disconnected"); + _updateResponse('Disconnected') }) - .catch(_updateResponse); + .catch(_updateResponse) } -document.querySelector("#app")!.innerHTML = ` +document.querySelector('#app')!.innerHTML = `

-`; +` diff --git a/plugins/websocket/examples/tauri-app/src/style.css b/plugins/websocket/examples/tauri-app/src/style.css index 21d7637f3..915efaee9 100644 --- a/plugins/websocket/examples/tauri-app/src/style.css +++ b/plugins/websocket/examples/tauri-app/src/style.css @@ -10,8 +10,8 @@ body { margin: 0; padding: 8px; box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; } a { diff --git a/plugins/websocket/guest-js/index.ts b/plugins/websocket/guest-js/index.ts index 4f7de803a..8d787742a 100644 --- a/plugins/websocket/guest-js/index.ts +++ b/plugins/websocket/guest-js/index.ts @@ -2,97 +2,97 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke, Channel } from "@tauri-apps/api/core"; +import { invoke, Channel } from '@tauri-apps/api/core' export interface ConnectionConfig { - writeBufferSize?: number; - maxWriteBufferSize?: number; - maxMessageSize?: number; - maxFrameSize?: number; - acceptUnmaskedFrames?: boolean; - headers?: HeadersInit; + writeBufferSize?: number + maxWriteBufferSize?: number + maxMessageSize?: number + maxFrameSize?: number + acceptUnmaskedFrames?: boolean + headers?: HeadersInit } export interface MessageKind { - type: T; - data: D; + type: T + data: D } export interface CloseFrame { - code: number; - reason: string; + code: number + reason: string } export type Message = - | MessageKind<"Text", string> - | MessageKind<"Binary", number[]> - | MessageKind<"Ping", number[]> - | MessageKind<"Pong", number[]> - | MessageKind<"Close", CloseFrame | null>; + | MessageKind<'Text', string> + | MessageKind<'Binary', number[]> + | MessageKind<'Ping', number[]> + | MessageKind<'Pong', number[]> + | MessageKind<'Close', CloseFrame | null> export default class WebSocket { - id: number; - private readonly listeners: Array<(arg: Message) => void>; + id: number + private readonly listeners: Array<(arg: Message) => void> constructor(id: number, listeners: Array<(arg: Message) => void>) { - this.id = id; - this.listeners = listeners; + this.id = id + this.listeners = listeners } static async connect( url: string, - config?: ConnectionConfig, + config?: ConnectionConfig ): Promise { - const listeners: Array<(arg: Message) => void> = []; + const listeners: Array<(arg: Message) => void> = [] - const onMessage = new Channel(); + const onMessage = new Channel() onMessage.onmessage = (message: Message): void => { listeners.forEach((l) => { - l(message); - }); - }; - - if (config?.headers) { - config.headers = Array.from(new Headers(config.headers).entries()); + l(message) + }) } - return await invoke("plugin:websocket|connect", { + if (config?.headers) { + config.headers = Array.from(new Headers(config.headers).entries()) + } + + return await invoke('plugin:websocket|connect', { url, onMessage, - config, - }).then((id) => new WebSocket(id, listeners)); + config + }).then((id) => new WebSocket(id, listeners)) } addListener(cb: (arg: Message) => void): void { - this.listeners.push(cb); + this.listeners.push(cb) } async send(message: Message | string | number[]): Promise { - let m: Message; - if (typeof message === "string") { - m = { type: "Text", data: message }; - } else if (typeof message === "object" && "type" in message) { - m = message; + let m: Message + if (typeof message === 'string') { + m = { type: 'Text', data: message } + } else if (typeof message === 'object' && 'type' in message) { + m = message } else if (Array.isArray(message)) { - m = { type: "Binary", data: message }; + m = { type: 'Binary', data: message } } else { throw new Error( - "invalid `message` type, expected a `{ type: string, data: any }` object, a string or a numeric array", - ); + 'invalid `message` type, expected a `{ type: string, data: any }` object, a string or a numeric array' + ) } - await invoke("plugin:websocket|send", { + await invoke('plugin:websocket|send', { id: this.id, - message: m, - }); + message: m + }) } async disconnect(): Promise { await this.send({ - type: "Close", + type: 'Close', data: { code: 1000, - reason: "Disconnected by client", - }, - }); + reason: 'Disconnected by client' + } + }) } } diff --git a/plugins/websocket/rollup.config.js b/plugins/websocket/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/websocket/rollup.config.js +++ b/plugins/websocket/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/plugins/window-state/.gitignore b/plugins/window-state/.gitignore deleted file mode 100644 index 3c3629e64..000000000 --- a/plugins/window-state/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 6c276826a..ea0c9963f 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -10,11 +10,11 @@ repository = { workspace = true } links = "tauri-plugin-window-state" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } [dependencies] serde = { workspace = true } diff --git a/plugins/window-state/README.md b/plugins/window-state/README.md index 350ff5b6b..8781ea612 100644 --- a/plugins/window-state/README.md +++ b/plugins/window-state/README.md @@ -71,9 +71,9 @@ app.save_window_state(StateFlags::all()); // will save the state of all open win or through Javascript ```javascript -import { saveWindowState, StateFlags } from "@tauri-apps/plugin-window-state"; +import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state' -saveWindowState(StateFlags.ALL); +saveWindowState(StateFlags.ALL) ``` To manually restore a windows state from disk you can call the `restore_state()` method exposed by the `WindowExt` trait: @@ -90,10 +90,10 @@ or through Javascript ```javascript import { restoreStateCurrent, - StateFlags, -} from "@tauri-apps/plugin-window-state"; + StateFlags +} from '@tauri-apps/plugin-window-state' -restoreStateCurrent(StateFlags.ALL); +restoreStateCurrent(StateFlags.ALL) ``` ## Contributing diff --git a/plugins/window-state/SECURITY.md b/plugins/window-state/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/plugins/window-state/SECURITY.md +++ b/plugins/window-state/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/plugins/window-state/guest-js/index.ts b/plugins/window-state/guest-js/index.ts index c0de16f6d..f922f3f04 100644 --- a/plugins/window-state/guest-js/index.ts +++ b/plugins/window-state/guest-js/index.ts @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { invoke } from "@tauri-apps/api/core"; -import { type WindowLabel, getCurrentWindow } from "@tauri-apps/api/window"; +import { invoke } from '@tauri-apps/api/core' +import { type WindowLabel, getCurrentWindow } from '@tauri-apps/api/window' export enum StateFlags { SIZE = 1 << 0, @@ -12,14 +12,14 @@ export enum StateFlags { VISIBLE = 1 << 3, DECORATIONS = 1 << 4, FULLSCREEN = 1 << 5, - ALL = SIZE | POSITION | MAXIMIZED | VISIBLE | DECORATIONS | FULLSCREEN, + ALL = SIZE | POSITION | MAXIMIZED | VISIBLE | DECORATIONS | FULLSCREEN } /** * Save the state of all open windows to disk. */ async function saveWindowState(flags: StateFlags): Promise { - await invoke("plugin:window-state|save_window_state", { flags }); + await invoke('plugin:window-state|save_window_state', { flags }) } /** @@ -27,22 +27,22 @@ async function saveWindowState(flags: StateFlags): Promise { */ async function restoreState( label: WindowLabel, - flags: StateFlags, + flags: StateFlags ): Promise { - await invoke("plugin:window-state|restore_state", { label, flags }); + await invoke('plugin:window-state|restore_state', { label, flags }) } /** * Restore the state for the current window from disk. */ async function restoreStateCurrent(flags: StateFlags): Promise { - await restoreState(getCurrentWindow().label, flags); + await restoreState(getCurrentWindow().label, flags) } /** * Get the name of the file used to store window state. */ async function filename(): Promise { - return await invoke("plugin:window-state|filename"); + return await invoke('plugin:window-state|filename') } -export { restoreState, restoreStateCurrent, saveWindowState, filename }; +export { restoreState, restoreStateCurrent, saveWindowState, filename } diff --git a/plugins/window-state/rollup.config.js b/plugins/window-state/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/plugins/window-state/rollup.config.js +++ b/plugins/window-state/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4d7f65ac..c11248f86 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,6 @@ settings: overrides: semver: '>=7.5.2' optionator: '>=0.9.3' - micromatch@<4.0.8: '>=4.0.8' importers: @@ -108,7 +107,7 @@ importers: version: link:../../plugins/updater '@zerodevx/svelte-json-view': specifier: 1.0.10 - version: 1.0.10(svelte@4.2.18) + version: 1.0.10(svelte@4.2.19) devDependencies: '@iconify-json/codicon': specifier: ^1.1.37 @@ -118,7 +117,7 @@ importers: version: 1.1.14 '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.1(svelte@4.2.18)(vite@5.4.0(terser@5.31.5)) + version: 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) '@tauri-apps/cli': specifier: 2.0.0-rc.10 version: 2.0.0-rc.10 @@ -126,8 +125,8 @@ importers: specifier: ^0.62.0 version: 0.62.0 svelte: - specifier: ^4.2.8 - version: 4.2.18 + specifier: ^4.2.19 + version: 4.2.19 unocss: specifier: ^0.62.0 version: 0.62.0(postcss@8.4.41)(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)) @@ -2319,8 +2318,8 @@ packages: peerDependencies: svelte: ^3.19.0 || ^4.0.0 - svelte@4.2.18: - resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} + svelte@4.2.19: + resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} terser@5.31.5: @@ -2766,13 +2765,14 @@ snapshots: picocolors: 1.0.1 sisteransi: 1.0.5 - '@covector/apply@0.10.0': + '@covector/apply@0.10.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) semver: 7.6.3 transitivePeerDependencies: - encoding + - mocha '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: @@ -2790,7 +2790,7 @@ snapshots: - mocha - supports-color - '@covector/changelog@0.12.0': + '@covector/changelog@0.12.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2800,11 +2800,12 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color '@covector/command@0.8.0(mocha@10.7.3)': dependencies: - '@effection/process': 2.1.4 + '@effection/process': 2.1.4(mocha@10.7.3) effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding @@ -2855,10 +2856,8 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 - transitivePeerDependencies: - - encoding - '@effection/process@2.1.4': + '@effection/process@2.1.4(mocha@10.7.3)': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2866,6 +2865,7 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding + - mocha '@effection/stream@2.0.6': dependencies: @@ -3196,24 +3196,24 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.18)(vite@5.4.0(terser@5.31.5))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.19)(vite@5.4.0(terser@5.31.5))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.4.0(terser@5.31.5)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) debug: 4.3.6(supports-color@8.1.1) - svelte: 4.2.18 + svelte: 4.2.19 vite: 5.4.0(terser@5.31.5) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.0(terser@5.31.5))': + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.18)(vite@5.4.0(terser@5.31.5)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) debug: 4.3.6(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 - svelte: 4.2.18 - svelte-hmr: 0.16.0(svelte@4.2.18) + svelte: 4.2.19 + svelte-hmr: 0.16.0(svelte@4.2.19) vite: 5.4.0(terser@5.31.5) vitefu: 0.2.5(vite@5.4.0(terser@5.31.5)) transitivePeerDependencies: @@ -3528,9 +3528,9 @@ snapshots: - rollup - supports-color - '@zerodevx/svelte-json-view@1.0.10(svelte@4.2.18)': + '@zerodevx/svelte-json-view@1.0.10(svelte@4.2.19)': dependencies: - svelte: 4.2.18 + svelte: 4.2.19 abort-controller@3.0.0: dependencies: @@ -3706,9 +3706,9 @@ snapshots: covector@0.12.3(mocha@10.7.3): dependencies: '@clack/prompts': 0.7.0 - '@covector/apply': 0.10.0 + '@covector/apply': 0.10.0(mocha@10.7.3) '@covector/assemble': 0.12.0(mocha@10.7.3) - '@covector/changelog': 0.12.0 + '@covector/changelog': 0.12.0(mocha@10.7.3) '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -4604,11 +4604,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-hmr@0.16.0(svelte@4.2.18): + svelte-hmr@0.16.0(svelte@4.2.19): dependencies: - svelte: 4.2.18 + svelte: 4.2.19 - svelte@4.2.18: + svelte@4.2.19: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 diff --git a/shared/rollup.config.js b/shared/rollup.config.js index 4e36f4f48..09bfb889e 100644 --- a/shared/rollup.config.js +++ b/shared/rollup.config.js @@ -2,12 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { readFileSync } from "fs"; -import { join } from "path"; -import { cwd } from "process"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import typescript from "@rollup/plugin-typescript"; -import terser from "@rollup/plugin-terser"; +import { readFileSync } from 'fs' +import { join } from 'path' +import { cwd } from 'process' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import typescript from '@rollup/plugin-typescript' +import terser from '@rollup/plugin-terser' /** * Create a base rollup config @@ -21,21 +21,21 @@ import terser from "@rollup/plugin-terser"; */ export function createConfig(options = {}) { const { - input = "guest-js/index.ts", + input = 'guest-js/index.ts', external = [/^@tauri-apps\/api/], - additionalConfigs = [], - } = options; + additionalConfigs = [] + } = options // eslint-disable-next-line security/detect-non-literal-fs-filename - const pkg = JSON.parse(readFileSync(join(cwd(), "package.json"), "utf8")); + const pkg = JSON.parse(readFileSync(join(cwd(), 'package.json'), 'utf8')) const pluginJsName = pkg.name - .replace("@tauri-apps/plugin-", "") - .replace(/-./g, (x) => x[1].toUpperCase()); + .replace('@tauri-apps/plugin-', '') + .replace(/-./g, (x) => x[1].toUpperCase()) const iifeVarName = `__TAURI_PLUGIN_${pkg.name - .replace("@tauri-apps/plugin-", "") - .replace("-", (x) => "_") - .toUpperCase()}__`; + .replace('@tauri-apps/plugin-', '') + .replace('-', (x) => '_') + .toUpperCase()}__` return [ { @@ -43,50 +43,50 @@ export function createConfig(options = {}) { output: [ { file: pkg.exports.import, - format: "esm", + format: 'esm' }, { file: pkg.exports.require, - format: "cjs", - }, + format: 'cjs' + } ], plugins: [ typescript({ declaration: true, - declarationDir: `./${pkg.exports.import.split("/")[0]}`, - }), + declarationDir: `./${pkg.exports.import.split('/')[0]}` + }) ], external: [ ...external, ...Object.keys(pkg.dependencies || {}), - ...Object.keys(pkg.peerDependencies || {}), + ...Object.keys(pkg.peerDependencies || {}) ], onwarn: (warning) => { - throw Object.assign(new Error(), warning); - }, + throw Object.assign(new Error(), warning) + } }, { input, output: { - format: "iife", + format: 'iife', name: iifeVarName, // IIFE is in the format `var ${iifeVarName} = (() => {})()` // we check if __TAURI__ exists and inject the API object banner: "if ('__TAURI__' in window) {", // the last `}` closes the if in the banner footer: `Object.defineProperty(window.__TAURI__, '${pluginJsName}', { value: ${iifeVarName} }) }`, - file: "api-iife.js", + file: 'api-iife.js' }, // and var is not guaranteed to assign to the global `window` object so we make sure to assign it plugins: [typescript(), terser(), nodeResolve()], onwarn: (warning) => { - throw Object.assign(new Error(), warning); - }, + throw Object.assign(new Error(), warning) + } }, ...(Array.isArray(additionalConfigs) ? additionalConfigs - : [additionalConfigs]), - ]; + : [additionalConfigs]) + ] } diff --git a/shared/template/.gitignore b/shared/template/.gitignore deleted file mode 100644 index 1b0b469d0..000000000 --- a/shared/template/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/.tauri diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index 63391a80e..97bc04818 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -8,11 +8,11 @@ repository = { workspace = true } links = "tauri-plugin-PLUGIN_NAME" [package.metadata.docs.rs] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] +rustc-args = ["--cfg", "docsrs"] +rustdoc-args = ["--cfg", "docsrs"] [build-dependencies] -tauri-plugin = { workspace = true, features = [ "build" ] } +tauri-plugin = { workspace = true, features = ["build"] } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/shared/template/SECURITY.md b/shared/template/SECURITY.md index 67d831fc9..4f09bbacd 100644 --- a/shared/template/SECURITY.md +++ b/shared/template/SECURITY.md @@ -20,4 +20,4 @@ We prefer to receive reports in English. 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). \ No newline at end of file +Alternatively, you can also contact us by email via [security@tauri.app](mailto:security@tauri.app). diff --git a/shared/template/rollup.config.js b/shared/template/rollup.config.js index 977dfac83..1f349ec8a 100644 --- a/shared/template/rollup.config.js +++ b/shared/template/rollup.config.js @@ -2,6 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -import { createConfig } from "../../shared/rollup.config.js"; +import { createConfig } from '../../shared/rollup.config.js' -export default createConfig(); +export default createConfig() diff --git a/taplo.toml b/taplo.toml new file mode 100644 index 000000000..e628d2689 --- /dev/null +++ b/taplo.toml @@ -0,0 +1 @@ +exclude = ["plugins/*/permissions/autogenerated/**.toml"] From c565a08d09cbc9924b7740ed16bf3bb1c8f4d3e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 17:30:08 -0300 Subject: [PATCH 521/643] publish new versions (#1711) Co-authored-by: lucasfernog --- .changes/pre.json | 9 ++++++++- Cargo.lock | 14 +++++++------- examples/api/CHANGELOG.md | 6 ++++++ examples/api/package.json | 4 ++-- examples/api/src-tauri/CHANGELOG.md | 8 ++++++++ examples/api/src-tauri/Cargo.toml | 8 ++++---- plugins/deep-link/CHANGELOG.md | 4 ++++ plugins/deep-link/Cargo.toml | 2 +- plugins/dialog/CHANGELOG.md | 16 +++++++++++++++- plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 10 +++++++++- plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 8 +++++++- plugins/http/Cargo.toml | 4 ++-- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/updater/CHANGELOG.md | 4 ++++ plugins/updater/package.json | 2 +- plugins/window-state/CHANGELOG.md | 4 ++++ plugins/window-state/Cargo.toml | 2 +- pnpm-lock.yaml | 2 +- 21 files changed, 95 insertions(+), 28 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 72c638aff..eb5321f48 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -5,13 +5,19 @@ ".changes/consolidate-permission-state.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", + ".changes/fix-deep-link-config.md", + ".changes/fix-fs-write-file-android.md", ".changes/fix-http-plugin-abort.md", + ".changes/fix-ios-file-dialog-default-mode.md", ".changes/fix-linux-updater-permission-error.md", + ".changes/fix-restore-minimized-window-position.md", ".changes/fs-scope-recursive-allow-read-dir.md", + ".changes/fs-windows-path.md", ".changes/geolocation-release.md", ".changes/global-shortcut-0.6.md", ".changes/haptics-release.md", ".changes/iife-varname-spacing.md", + ".changes/ios-dialog-save.md", ".changes/notification-permission-type-change.md", ".changes/rc.md", ".changes/remove-target-sdk.md", @@ -23,6 +29,7 @@ ".changes/swift-build-older-versions.md", ".changes/tauri-rc-8.md", ".changes/update-fs-api-docs.md", - ".changes/update-tauri-rc-3.md" + ".changes/update-tauri-rc-3.md", + ".changes/updater-js-headers-download.md" ] } diff --git a/Cargo.lock b/Cargo.lock index 6b4b4cbbf..323d0f72b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -206,7 +206,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "api" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "log", "serde", @@ -6526,7 +6526,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "dunce", "log", @@ -6544,7 +6544,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "dunce", "log", @@ -6561,7 +6561,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "anyhow", "glob", @@ -6619,7 +6619,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "data-url", "http", @@ -6723,7 +6723,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "aho-corasick", "bincode", @@ -6903,7 +6903,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "bitflags 2.6.0", "log", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index b9a4d9270..e5cd6bf22 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.3] + +### Dependencies + +- Upgraded to `updater-js@2.0.0-rc.2` + ## \[2.0.0-rc.2] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index 10232316c..e01cdb8b7 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0-rc.2", + "version": "2.0.0-rc.3", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -24,7 +24,7 @@ "@tauri-apps/plugin-process": "2.0.0-rc.1", "@tauri-apps/plugin-shell": "2.0.0-rc.1", "@tauri-apps/plugin-store": "2.0.0-rc.1", - "@tauri-apps/plugin-updater": "2.0.0-rc.1", + "@tauri-apps/plugin-updater": "2.0.0-rc.2", "@zerodevx/svelte-json-view": "1.0.10" }, "devDependencies": { diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 6076e0549..311e78e1d 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 235f95ea7..2e121a0ba 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,14 +20,14 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.1", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.2", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.3" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.3" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.4" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.1" } +], version = "2.0.0-rc.2" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.3", features = [ "windows7-compat", ] } diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index e2bcf6557..ae6f68fac 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.3] + +- [`4654591d`](https://github.com/tauri-apps/plugins-workspace/commit/4654591d820403d6fa1a007fd55bb0d85947a6cc) ([#1732](https://github.com/tauri-apps/plugins-workspace/pull/1732) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Allow empty configuration values. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 8f4162fba..196ac3dc3 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index d73a83802..3a99323d2 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## \[2.0.0-rc.4] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.2` + +### breaking + +- [`0cb99bda`](https://github.com/tauri-apps/plugins-workspace/commit/0cb99bdaf11b5a9bb66b80bdf40b085d87c3066d) ([#1706](https://github.com/tauri-apps/plugins-workspace/pull/1706) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) If no filters are specified, the file picker dialog now defaults to a file selection instead of photos. + +### feat + +- [`feb1e93f`](https://github.com/tauri-apps/plugins-workspace/commit/feb1e93fcb9a913c002daa29e3b709f24b97c664) ([#1707](https://github.com/tauri-apps/plugins-workspace/pull/1707) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Implement `save` API on iOS. + ## \[2.0.0-rc.1] - [`448846b8`](https://github.com/tauri-apps/plugins-workspace/commit/448846b834d23df6e7c5dc66c5dd9aa0cb01846d) ([#1658](https://github.com/tauri-apps/plugins-workspace/pull/1658) by [@mikoto2000](https://github.com/tauri-apps/plugins-workspace/../../mikoto2000)) The `open` function now returns a string representing either the file path or URI instead of an object. @@ -203,7 +217,7 @@ pull/371)) First v2 alpha release! lpha release! pull/371)) First v2 alpha release! -v2 alpha release! + v2 alpha release! lpha release! pull/371)) First v2 alpha release! lpha release! diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 378b66da8..a05bf8e43 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -28,7 +28,7 @@ log = { workspace = true } thiserror = { workspace = true } dunce = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 5aae6c681..b5bb6841e 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -2,6 +2,14 @@ ## \[2.0.0-rc.2] +- [`f7280c88`](https://github.com/tauri-apps/plugins-workspace/commit/f7280c88309cdf1f2330574fec31e26e01e9cdbd) ([#1710](https://github.com/tauri-apps/plugins-workspace/pull/1710) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix can't use Windows paths like `C:/Users/UserName/file.txt` + +### bug + +- [`51819c60`](https://github.com/tauri-apps/plugins-workspace/commit/51819c601f863cbfbd11809a1c4cf9df5a20b1e0) ([#1708](https://github.com/tauri-apps/plugins-workspace/pull/1708) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Fixes `writeFile` command implementation on Android. + +## \[2.0.0-rc.2] + - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 ## \[2.0.0-rc.1] @@ -132,7 +140,7 @@ ac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! .com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -uri-apps/plugins-workspace/pull/371)) First v2 alpha release! + uri-apps/plugins-workspace/pull/371)) First v2 alpha release! .com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! kspace/pull/371)) First v2 alpha release! diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index b5ca8988c..f4719dc19 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index da00e2ef4..d5cd3402b 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -2,6 +2,12 @@ ## \[2.0.0-rc.2] +### Dependencies + +- Upgraded to `fs@2.0.0-rc.2` + +## \[2.0.0-rc.2] + - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 ## \[2.0.0-rc.1] @@ -237,6 +243,6 @@ lpha release! ! 371\)) First v2 alpha release! -ha release! + ha release! ! 371\)) First v2 alpha release! diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 925bddd7c..894ef1da8 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 5e017300b..a88819dd9 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.2] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.2` + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 3d3cb53f4..46bf559ee 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -20,7 +20,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index 2bbc22e9c..f2e4ebadf 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`f8255e1d`](https://github.com/tauri-apps/plugins-workspace/commit/f8255e1db5df6cf562b9334fbefe5e62f4a28e0a) ([#1661](https://github.com/tauri-apps/plugins-workspace/pull/1661) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add a second argument in `Update.download` and `Update.donloadAndInstall` JS APIs to modify headers and timeout when downloading the update. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/updater/package.json b/plugins/updater/package.json index f03456d28..acb384253 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-updater", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index d323b532c..ba1fb951b 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.3] + +- [`17e8014b`](https://github.com/tauri-apps/plugins-workspace/commit/17e8014b6993602ddad21e8f5dcb625de1eea2c0) ([#1702](https://github.com/tauri-apps/plugins-workspace/pull/1702) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix saving a minimized window's state changes its position to -32000 + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index ea0c9963f..6b450cf16 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c11248f86..e533af8bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -103,7 +103,7 @@ importers: specifier: 2.0.0-rc.1 version: link:../../plugins/store '@tauri-apps/plugin-updater': - specifier: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 version: link:../../plugins/updater '@zerodevx/svelte-json-view': specifier: 1.0.10 From 6995127778525080110d486648d6869d8e6e21a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 11:16:52 +0800 Subject: [PATCH 522/643] chore(deps): update tauri monorepo (#1734) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 40 +++--- Cargo.toml | 8 +- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 130 +++++++++--------- 8 files changed, 93 insertions(+), 95 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 323d0f72b..8e5dca326 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6253,9 +6253,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a97abbc7d6cfd0720da3e06fcb1cf2ac87cbfdb5bbbce103a1279a211c4d81" +checksum = "2a93f2c6b8fdaeb7f417bda89b5bc767999745c3052969664ae1fa65892deb7e" dependencies = [ "bitflags 2.6.0", "cocoa 0.26.0", @@ -6326,9 +6326,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8345ccc676ef16e26b61fc0f5340b4e770678b1e1f53f08c69ebdac5e56b422" +checksum = "0b805e6bf5f6a4df7d1a64b2952d33fca6d538746efe9c9cdae4157a1efc5b17" dependencies = [ "anyhow", "bytes", @@ -6379,9 +6379,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5ad5fcfaf02cf79aa6727f6c5df38567d8dce172b00b62690c6bc46c08b7ce" +checksum = "4acec578ff9de14da177722c8fb5e3d6c88af296696190c70b83bec91437248a" dependencies = [ "anyhow", "cargo_toml", @@ -6403,9 +6403,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809ef6316726fc72593d296cf6f4e7461326e310c313d6a6c42b6e7f1e2671cf" +checksum = "0744bec087358e5de9a078a1b19346ed9b775f578395975f5a74ccd0c717b22a" dependencies = [ "base64 0.22.1", "brotli", @@ -6430,9 +6430,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1359e8861d210d25731f8b1bfbb4d111dd06406cf73c59659366ef450364d811" +checksum = "b043cac341130f288044dca76fae8e62d7c18fdcd8012239a66af03868b7ca37" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6444,9 +6444,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dded420c86183f592d0fe925ef9447f41e26fa79f0bdfef8d3f17bfbcdbfb7" +checksum = "1c9bb31aad7296f85df545171023c72a263b54aac350197f923893fb5e6f90b4" dependencies = [ "anyhow", "glob", @@ -6916,9 +6916,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c72b844f387bfc3341c355f3e16b8cbf4161848fa4e348670effb222cd3ba5" +checksum = "d7c7a6530acc06640e8f07cfeb01ac694f1de2f4e565525a2199e0dca80ff9f7" dependencies = [ "dpi", "gtk", @@ -6935,9 +6935,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73accf936a7cd01d1382de7850726fdf6c1f6ab3b01ccb7a0950cb852e332596" +checksum = "5fcadbc24646c8d3362ed4e332cb42932e08c632220a20a61cb7e5fe36ddd85c" dependencies = [ "cocoa 0.26.0", "gtk", @@ -6959,9 +6959,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53d9fe87e985b273696ae22ce2b9f099a8f1b44bc8fb127467bda5fcb3e4371" +checksum = "201498c8281ab2597e344b4a4c923e8d491782305979d71e7cdf8fb79aab5948" dependencies = [ "aes-gcm", "brotli", @@ -8508,9 +8508,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b8049c8f239cdbfaaea4bacb9646f6b208938ceec0acd5b3e99cd05f70903f" +checksum = "f4d715cf5fe88e9647f3d17b207b6d060d4a88e7171d4ccb2d2c657dd1d44728" dependencies = [ "base64 0.22.1", "block", diff --git a/Cargo.toml b/Cargo.toml index 9b9763b49..07f696f2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.8", default-features = false } -tauri-build = "2.0.0-rc.7" -tauri-plugin = "2.0.0-rc.7" -tauri-utils = "2.0.0-rc.7" +tauri = { version = "2.0.0-rc.9", default-features = false } +tauri-build = "2.0.0-rc.8" +tauri-plugin = "2.0.0-rc.8" +tauri-utils = "2.0.0-rc.8" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index e01cdb8b7..8f528913c 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.10", + "@tauri-apps/cli": "2.0.0-rc.11", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 3c6281379..346e6da74 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0-rc.1" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.10", + "@tauri-apps/cli": "2.0.0-rc.11", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index ce0c0b1d7..4d5500f72 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.10" + "@tauri-apps/cli": "2.0.0-rc.11" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index b9ce9ba32..7b399115f 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.10", + "@tauri-apps/cli": "2.0.0-rc.11", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 4da6564dd..87ad4b810 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.10", + "@tauri-apps/cli": "2.0.0-rc.11", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e533af8bb..9a275e75f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -119,8 +119,8 @@ importers: specifier: ^3.0.1 version: 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) '@tauri-apps/cli': - specifier: 2.0.0-rc.10 - version: 2.0.0-rc.10 + specifier: 2.0.0-rc.11 + version: 2.0.0-rc.11 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.0 @@ -180,8 +180,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.10 - version: 2.0.0-rc.10 + specifier: 2.0.0-rc.11 + version: 2.0.0-rc.11 typescript: specifier: ^5.2.2 version: 5.5.4 @@ -270,8 +270,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.10 - version: 2.0.0-rc.10 + specifier: 2.0.0-rc.11 + version: 2.0.0-rc.11 plugins/sql: dependencies: @@ -288,8 +288,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.10 - version: 2.0.0-rc.10 + specifier: 2.0.0-rc.11 + version: 2.0.0-rc.11 typescript: specifier: ^5.3.3 version: 5.5.4 @@ -328,8 +328,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.10 - version: 2.0.0-rc.10 + specifier: 2.0.0-rc.11 + version: 2.0.0-rc.11 typescript: specifier: ^5.3.3 version: 5.5.4 @@ -1050,68 +1050,68 @@ packages: '@tauri-apps/api@2.0.0-rc.4': resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.10': - resolution: {integrity: sha512-oAuG3n/dIqK5ZedknF1QOgVDlpEepAaaIFHpUi+eIdG1MFp82jgyHqplveVZ95F16j7RhjIMaEhiTF6cGR/baA==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.11': + resolution: {integrity: sha512-nPPRF606X8mI6Psiu8+dQr1jiqXYuyS81ZpoyyXxkzz6YEVFLv2YKNLw3MwQIM2MQ3wEkUuFy5Lp4x5pHW5zGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.10': - resolution: {integrity: sha512-n4ul0XUBqrA7KbNY6Vo52EBNqTXogYuV2qi5RWR0bIJF/A/vYjZ3LcC1TXXo/X57sDN55LWORrBe4c4Ds8MZrA==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.11': + resolution: {integrity: sha512-l5DX3f7z3xSekN1Wei9glewiCnUw0dQ3OypY97kGgKBIwTdx+JKSTMduc2kB/rXWfLf+VLX1SM423FiC/52GiA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.10': - resolution: {integrity: sha512-RByz0zRbngps5QMQVsbgCD03TiCMxwAhaZhNtojXQ2AiJFkv1Mu68W/prbpWucw6Ep1nM3/yTIm0aL6ozdh/gw==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.11': + resolution: {integrity: sha512-m5Nqj1fBlBbiqX23z0sLr4Up2J92D1DKd59x7u1z6NQqePGEbEqbZdrJR9jI38evw0sSOgvSAPMRSVVfhlKsFQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.10': - resolution: {integrity: sha512-ZqpbDIMp5b0jz1ddutJH6S5geLaBEmsMG6eZix+MgcZZRyEfahTMGCq3xkvv+tnrNNq7drvwBISCVSSS0zu3wQ==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.11': + resolution: {integrity: sha512-1EvsQhKvYYVXn7PTHR8x7UTUuHAnFJ8ayVW77eTNLJPzXS2rk2/DDEaSPln+5tKBccWL2+FbB7bdyx2XbheLmA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.10': - resolution: {integrity: sha512-EVh1xPqs5bi0aBYbv6Iy1ooFClyK6/wIsNw9DyxWwhPz9I7UNpDAgHm6lOhkMH26Cp/eQPiEA8OdfOLTfCY81A==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.11': + resolution: {integrity: sha512-cCQXdck6LWDfCFMR780I4FLXy9OPvep0z6mJnhYfWBhiCkmFecgZNHDZD5fmh5NwcXWo3tlY6FBDMm2Cn1X3uw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.10': - resolution: {integrity: sha512-ZLcXJbRRMfgSkZdxBegP/4PlXkoVR1zpx2pE7mKkRgyvwJCx+A2f0+IZM+VVu/WRECxAdzVCbgxztTAOoLkdrg==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.11': + resolution: {integrity: sha512-6ziiEts2WVFOq4UUCtvSTi9Fwu+UGXEGycJ3OgRsBPgQgeoeMCamHnb3kcnI5SKE6LKVJbwigOTnIwC7mfBN4A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.10': - resolution: {integrity: sha512-IgzRemlQT+SHfb2x8kq32xKGnR3r7S69Ogv5pBKIDX1/G2qQofM6wfy0OHnAyS4Bj0y2lZPjiYQBwmLIkK/BNw==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.11': + resolution: {integrity: sha512-GBAr1N4m8+zxTSY+ls2uQi6XQ6DfGsgWA1kNy475+m0ZbFH0XBNyWSfQg/ztZ4Sn5qK9UYQO0uNBYY0oYEZsHw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.10': - resolution: {integrity: sha512-RmSh5omDiCEZgw1fOhdEFi6MzAQ1rQBmvTM13K2p8XUxxaYb/MHYYZbNEMqxqWvsg4fidZ8hNSqRkB7YCCWWgg==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.11': + resolution: {integrity: sha512-IxkXVDlJCFqif1gEil92ZqGAxapvim7I1ekQBndPaNKu3D/GUtyl4kFFkyHS5S3LvnDRzzHetD10BOM6UAZgHA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.10': - resolution: {integrity: sha512-6zxZ1KnKqflC5YpJmXZyNNVaRXMdOiRijimua8zLzfoAo+adb6gd8V4o03rZF3BPHtmd35rPkZHlgMlg/th2Bw==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.11': + resolution: {integrity: sha512-aNz5lItTDyHZjmSm5ZuzPj0c/uTSdZLlDDtAuUNuxaWFBUi1loLR85AY4X5qAr1Mo6RuaASUs4TJbEFkWcWmHA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.10': - resolution: {integrity: sha512-D7L9QnxUJcSykQ9S8AQ0CEdxaw3IMoyAwv2LR7x+w/j7Jg3UsEgnsX5ePkShBiqSmu/UXfSuQeGvAoA8kSLiUw==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.11': + resolution: {integrity: sha512-makFSAiYq0oF7o7lpimjmc2DDQrG7mfpjAE52cfMo5JiCYG1SZYK9wqzZC7gjHr6Zh1dgOOvEuIKdhAMKSBiGg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.10': - resolution: {integrity: sha512-mnoMyeD65DoVWzrLiLRW8Ns5Aktn9Ua7eKTOUEPq+r+1sQtWKxfnYTBEbEWnivduLhJCEDqGP5tyJaPcVXcEzA==} + '@tauri-apps/cli@2.0.0-rc.11': + resolution: {integrity: sha512-99ZuBF9AsB6dPa3je4wRLFAq9PJljHrlb5gcKqlklCpZP4F/GgQl8GaxtZurL/2Vwab7JBYRRyysV0bi7TlrOg==} engines: {node: '>= 10'} hasBin: true @@ -2774,9 +2774,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0(mocha@10.7.3)': + '@covector/assemble@0.12.0': dependencies: - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2787,10 +2787,9 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/changelog@0.12.0(mocha@10.7.3)': + '@covector/changelog@0.12.0': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2800,16 +2799,14 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/command@0.8.0(mocha@10.7.3)': + '@covector/command@0.8.0': dependencies: - '@effection/process': 2.1.4(mocha@10.7.3) + '@effection/process': 2.1.4 effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding - - mocha '@covector/files@0.8.0': dependencies: @@ -2856,8 +2853,10 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 + transitivePeerDependencies: + - encoding - '@effection/process@2.1.4(mocha@10.7.3)': + '@effection/process@2.1.4': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2865,7 +2864,6 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding - - mocha '@effection/stream@2.0.6': dependencies: @@ -3221,48 +3219,48 @@ snapshots: '@tauri-apps/api@2.0.0-rc.4': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.10': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.11': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.10': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.11': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.10': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.11': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.10': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.11': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.10': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.11': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.10': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.11': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.10': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.11': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.10': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.11': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.10': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.11': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.10': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.11': optional: true - '@tauri-apps/cli@2.0.0-rc.10': + '@tauri-apps/cli@2.0.0-rc.11': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.10 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.10 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.10 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.10 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.10 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.10 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.10 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.10 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.10 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.10 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.11 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.11 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.11 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.11 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.11 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.11 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.11 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.11 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.11 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.11 '@types/eslint@9.6.0': dependencies: @@ -3707,9 +3705,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0(mocha@10.7.3) - '@covector/changelog': 0.12.0(mocha@10.7.3) - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/assemble': 0.12.0 + '@covector/changelog': 0.12.0 + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From d00519e3e3a3234f9eb6c2ba82c92d4199f03e53 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 5 Sep 2024 13:10:04 +0200 Subject: [PATCH 523/643] chore: Add missing changefile for updater rust changes (#1735) --- .changes/updater-js-headers-download-crate.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/updater-js-headers-download-crate.md diff --git a/.changes/updater-js-headers-download-crate.md b/.changes/updater-js-headers-download-crate.md new file mode 100644 index 000000000..f19aaa54d --- /dev/null +++ b/.changes/updater-js-headers-download-crate.md @@ -0,0 +1,5 @@ +--- +"updater": "patch" +--- + +Add a second argument in `Update.download` and `Update.donloadAndInstall` JS APIs to modify headers and timeout when downloading the update. From a2fe55512f908dd11c814ce021d164f01677572a Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 5 Sep 2024 14:12:40 +0300 Subject: [PATCH 524/643] refactor: add methods and implement traits for `FilePath` and `SafeFilePath` (#1727) * refactor: add methods and implement traits for `FilePath` and `SafeFilePath` closes #1726 * clippy * path -> as_path * fix prettierignore * Discard changes to Cargo.lock * Discard changes to Cargo.toml * update tauri deps --- .changes/fs-dialog-file-path-methods.md | 10 + .changes/fs-dialog-file-path-traits.md | 6 + .changes/fs-dialog-non-exhaustive-error.md | 6 + .changes/fs-dialog-safe-file-path.md | 6 + .prettierignore | 2 +- Cargo.lock | 2 +- plugins/dialog/Cargo.toml | 1 - plugins/dialog/src/commands.rs | 10 +- plugins/dialog/src/error.rs | 3 +- plugins/dialog/src/lib.rs | 54 +--- plugins/fs/Cargo.toml | 1 + plugins/fs/src/commands.rs | 79 +---- plugins/fs/src/error.rs | 5 + plugins/fs/src/file_path.rs | 314 +++++++++++++++++++ plugins/fs/src/lib.rs | 99 +----- plugins/fs/src/watcher.rs | 3 +- plugins/single-instance/src/semver_compat.rs | 2 - 17 files changed, 370 insertions(+), 233 deletions(-) create mode 100644 .changes/fs-dialog-file-path-methods.md create mode 100644 .changes/fs-dialog-file-path-traits.md create mode 100644 .changes/fs-dialog-non-exhaustive-error.md create mode 100644 .changes/fs-dialog-safe-file-path.md create mode 100644 plugins/fs/src/file_path.rs diff --git a/.changes/fs-dialog-file-path-methods.md b/.changes/fs-dialog-file-path-methods.md new file mode 100644 index 000000000..1adfbbf33 --- /dev/null +++ b/.changes/fs-dialog-file-path-methods.md @@ -0,0 +1,10 @@ +--- +"fs": patch +"dialog": patch +--- + +Add utility methods on `FilePath` and `SafeFilePath` enums which are: + +- `path` +- `simplified` +- `into_path` diff --git a/.changes/fs-dialog-file-path-traits.md b/.changes/fs-dialog-file-path-traits.md new file mode 100644 index 000000000..3dfa4ee9c --- /dev/null +++ b/.changes/fs-dialog-file-path-traits.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"dialog": patch +--- + +Implement `Serialize`, `Deserialize`, `From`, `TryFrom` and `FromStr` traits for `FilePath` and `SafeFilePath` enums. diff --git a/.changes/fs-dialog-non-exhaustive-error.md b/.changes/fs-dialog-non-exhaustive-error.md new file mode 100644 index 000000000..d17791935 --- /dev/null +++ b/.changes/fs-dialog-non-exhaustive-error.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"dialog": patch +--- + +Mark `Error` enum as `#[non_exhuastive]`. diff --git a/.changes/fs-dialog-safe-file-path.md b/.changes/fs-dialog-safe-file-path.md new file mode 100644 index 000000000..4e4606832 --- /dev/null +++ b/.changes/fs-dialog-safe-file-path.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"dialog": patch +--- + +Add `SafeFilePath` enum. diff --git a/.prettierignore b/.prettierignore index 82c1a32ef..ff5627141 100644 --- a/.prettierignore +++ b/.prettierignore @@ -12,7 +12,7 @@ pnpm-lock.yaml # examples gen directory examples/*/src-tauri/gen/ -plugins/examples/*/src-tauri/gen/ +plugins/*/examples/*/src-tauri/gen/ # autogenerated files **/autogenerated/**/*.md diff --git a/Cargo.lock b/Cargo.lock index 8e5dca326..2ed68deac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6546,7 +6546,6 @@ dependencies = [ name = "tauri-plugin-dialog" version = "2.0.0-rc.4" dependencies = [ - "dunce", "log", "raw-window-handle 0.6.2", "rfd", @@ -6564,6 +6563,7 @@ name = "tauri-plugin-fs" version = "2.0.0-rc.2" dependencies = [ "anyhow", + "dunce", "glob", "notify", "notify-debouncer-full", diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index a05bf8e43..681e6650e 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -26,7 +26,6 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -dunce = { workspace = true } url = { workspace = true } tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 2d884b6e0..76a92e098 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -136,7 +136,7 @@ pub(crate) async fn open( let folders = dialog_builder.blocking_pick_folders(); if let Some(folders) = &folders { for folder in folders { - if let Ok(path) = folder.path() { + if let Ok(path) = folder.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_directory(path, options.recursive); } @@ -149,7 +149,7 @@ pub(crate) async fn open( } else { let folder = dialog_builder.blocking_pick_folder(); if let Some(folder) = &folder { - if let Ok(path) = folder.path() { + if let Ok(path) = folder.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_directory(path, options.recursive); } @@ -164,7 +164,7 @@ pub(crate) async fn open( let files = dialog_builder.blocking_pick_files(); if let Some(files) = &files { for file in files { - if let Ok(path) = file.path() { + if let Ok(path) = file.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_file(&path); } @@ -178,7 +178,7 @@ pub(crate) async fn open( let file = dialog_builder.blocking_pick_file(); if let Some(file) = &file { - if let Ok(path) = file.path() { + if let Ok(path) = file.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_file(&path); } @@ -218,7 +218,7 @@ pub(crate) async fn save( let path = dialog_builder.blocking_save_file(); if let Some(p) = &path { - if let Ok(path) = p.path() { + if let Ok(path) = p.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_file(&path); } diff --git a/plugins/dialog/src/error.rs b/plugins/dialog/src/error.rs index cb70e714f..0c3ed5b86 100644 --- a/plugins/dialog/src/error.rs +++ b/plugins/dialog/src/error.rs @@ -7,6 +7,7 @@ use serde::{ser::Serializer, Serialize}; pub type Result = std::result::Result; #[derive(Debug, thiserror::Error)] +#[non_exhaustive] pub enum Error { #[error(transparent)] Tauri(#[from] tauri::Error), @@ -20,8 +21,6 @@ pub enum Error { FolderPickerNotImplemented, #[error(transparent)] Fs(#[from] tauri_plugin_fs::Error), - #[error("URL is not a valid path")] - InvalidPathUrl, } impl Serialize for Error { diff --git a/plugins/dialog/src/lib.rs b/plugins/dialog/src/lib.rs index 976878ccd..26048eca5 100644 --- a/plugins/dialog/src/lib.rs +++ b/plugins/dialog/src/lib.rs @@ -11,7 +11,7 @@ html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" )] -use serde::{Deserialize, Serialize}; +use serde::Serialize; use tauri::{ plugin::{Builder, TauriPlugin}, Manager, Runtime, @@ -24,6 +24,7 @@ use std::{ pub use models::*; +pub use tauri_plugin_fs::FilePath; #[cfg(desktop)] mod desktop; #[cfg(mobile)] @@ -294,57 +295,6 @@ impl MessageDialogBuilder { blocking_fn!(self, show) } } - -/// Represents either a filesystem path or a URI pointing to a file -/// such as `file://` URIs or Android `content://` URIs. -#[derive(Debug, Deserialize, Serialize)] -#[serde(untagged)] -pub enum FilePath { - Url(url::Url), - Path(PathBuf), -} - -impl From for FilePath { - fn from(value: PathBuf) -> Self { - Self::Path(value) - } -} - -impl From for FilePath { - fn from(value: url::Url) -> Self { - Self::Url(value) - } -} - -impl From for tauri_plugin_fs::FilePath { - fn from(value: FilePath) -> Self { - match value { - FilePath::Path(p) => tauri_plugin_fs::FilePath::Path(p), - FilePath::Url(url) => tauri_plugin_fs::FilePath::Url(url), - } - } -} - -impl FilePath { - fn simplified(self) -> Self { - match self { - Self::Url(url) => Self::Url(url), - Self::Path(p) => Self::Path(dunce::simplified(&p).to_path_buf()), - } - } - - #[inline] - fn path(&self) -> Result { - match self { - Self::Url(url) => url - .to_file_path() - .map(PathBuf::from) - .map_err(|_| Error::InvalidPathUrl), - Self::Path(p) => Ok(p.to_owned()), - } - } -} - #[derive(Debug, Serialize)] pub(crate) struct Filter { pub name: String, diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index f4719dc19..5d99eaead 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -30,6 +30,7 @@ uuid = { version = "1", features = ["v4"] } glob = "0.3" notify = { version = "6", optional = true, features = ["serde"] } notify-debouncer-full = { version = "0.3", optional = true } +dunce = { workspace = true } [features] watch = ["notify", "notify-debouncer-full"] diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index c59706e14..b72e3b3f5 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize, Serializer}; use serde_repr::{Deserialize_repr, Serialize_repr}; use tauri::{ ipc::{CommandScope, GlobalScope}, - path::{BaseDirectory, SafePathBuf}, + path::BaseDirectory, utils::config::FsScope, AppHandle, Manager, Resource, ResourceId, Runtime, Webview, }; @@ -22,80 +22,7 @@ use std::{ time::{SystemTime, UNIX_EPOCH}, }; -use crate::{scope::Entry, Error, FilePath, FsExt}; - -// TODO: Combine this with FilePath -#[derive(Debug)] -pub enum SafeFilePath { - Url(url::Url), - Path(SafePathBuf), -} - -impl<'de> serde::Deserialize<'de> for SafeFilePath { - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - struct SafeFilePathVisitor; - - impl<'de> serde::de::Visitor<'de> for SafeFilePathVisitor { - type Value = SafeFilePath; - - fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { - formatter.write_str("a string representing an file URL or a path") - } - - fn visit_str(self, s: &str) -> std::result::Result - where - E: serde::de::Error, - { - SafeFilePath::from_str(s).map_err(|e| { - serde::de::Error::invalid_value( - serde::de::Unexpected::Str(s), - &e.to_string().as_str(), - ) - }) - } - } - - deserializer.deserialize_str(SafeFilePathVisitor) - } -} - -impl From for FilePath { - fn from(value: SafeFilePath) -> Self { - match value { - SafeFilePath::Url(url) => FilePath::Url(url), - SafeFilePath::Path(p) => FilePath::Path(p.as_ref().to_owned()), - } - } -} - -impl FromStr for SafeFilePath { - type Err = CommandError; - fn from_str(s: &str) -> Result { - if let Ok(url) = url::Url::from_str(s) { - if url.scheme().len() != 1 { - return Ok(Self::Url(url)); - } - } - Ok(Self::Path(SafePathBuf::new(s.into())?)) - } -} - -impl SafeFilePath { - #[inline] - fn into_path(self) -> CommandResult { - match self { - Self::Url(url) => SafePathBuf::new( - url.to_file_path() - .map_err(|_| format!("failed to get path from {url}"))?, - ) - .map_err(Into::into), - Self::Path(p) => Ok(p), - } - } -} +use crate::{scope::Entry, Error, FsExt, SafeFilePath}; #[derive(Debug, thiserror::Error)] pub enum CommandError { @@ -1052,7 +979,7 @@ pub fn resolve_path( let path = if let Some(base_dir) = base_dir { webview.path().resolve(&path, base_dir)? } else { - path.as_ref().to_path_buf() + path }; let scope = tauri::scope::fs::Scope::new( diff --git a/plugins/fs/src/error.rs b/plugins/fs/src/error.rs index d62729a44..0c98e83fc 100644 --- a/plugins/fs/src/error.rs +++ b/plugins/fs/src/error.rs @@ -7,6 +7,7 @@ use std::path::PathBuf; use serde::{Serialize, Serializer}; #[derive(Debug, thiserror::Error)] +#[non_exhaustive] pub enum Error { #[error(transparent)] Json(#[from] serde_json::Error), @@ -26,6 +27,10 @@ pub enum Error { #[cfg(target_os = "android")] #[error(transparent)] PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError), + #[error("URL is not a valid path")] + InvalidPathUrl, + #[error("Unsafe PathBuf: {0}")] + UnsafePathBuf(&'static str), } impl Serialize for Error { diff --git a/plugins/fs/src/file_path.rs b/plugins/fs/src/file_path.rs new file mode 100644 index 000000000..967696b9a --- /dev/null +++ b/plugins/fs/src/file_path.rs @@ -0,0 +1,314 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use std::{ + convert::Infallible, + path::{Path, PathBuf}, + str::FromStr, +}; + +use serde::Serialize; +use tauri::path::SafePathBuf; + +use crate::{Error, Result}; + +/// Represents either a filesystem path or a URI pointing to a file +/// such as `file://` URIs or Android `content://` URIs. +#[derive(Debug, Serialize, Clone)] +#[serde(untagged)] +pub enum FilePath { + /// `file://` URIs or Android `content://` URIs. + Url(url::Url), + /// Regular [`PathBuf`] + Path(PathBuf), +} + +/// Represents either a safe filesystem path or a URI pointing to a file +/// such as `file://` URIs or Android `content://` URIs. +#[derive(Debug, Clone, Serialize)] +pub enum SafeFilePath { + /// `file://` URIs or Android `content://` URIs. + Url(url::Url), + /// Safe [`PathBuf`], see [`SafePathBuf``]. + Path(SafePathBuf), +} + +impl FilePath { + /// Get a reference to the contaiend [`Path`] if the variant is [`FilePath::Path`]. + /// + /// Use [`FilePath::into_path`] to try to convert the [`FilePath::Url`] variant as well. + #[inline] + pub fn as_path(&self) -> Option<&Path> { + match self { + Self::Url(_) => None, + Self::Path(p) => Some(p), + } + } + + /// Try to convert into [`PathBuf`] if possible. + /// + /// This calls [`Url::to_file_path`](url::Url::to_file_path) if the variant is [`FilePath::Url`], + /// otherwise returns the contained [PathBuf] as is. + #[inline] + pub fn into_path(self) -> Result { + match self { + Self::Url(url) => url + .to_file_path() + .map(PathBuf::from) + .map_err(|_| Error::InvalidPathUrl), + Self::Path(p) => Ok(p), + } + } + + /// Takes the contained [`PathBuf`] if the variant is [`FilePath::Path`], + /// and when possible, converts Windows UNC paths to regular paths. + #[inline] + pub fn simplified(self) -> Self { + match self { + Self::Url(url) => Self::Url(url), + Self::Path(p) => Self::Path(dunce::simplified(&p).to_path_buf()), + } + } +} + +impl SafeFilePath { + /// Get a reference to the contaiend [`Path`] if the variant is [`SafeFilePath::Path`]. + /// + /// Use [`SafeFilePath::into_path`] to try to convert the [`SafeFilePath::Url`] variant as well. + #[inline] + pub fn as_path(&self) -> Option<&Path> { + match self { + Self::Url(_) => None, + Self::Path(p) => Some(p.as_ref()), + } + } + + /// Try to convert into [`PathBuf`] if possible. + /// + /// This calls [`Url::to_file_path`](url::Url::to_file_path) if the variant is [`SafeFilePath::Url`], + /// otherwise returns the contained [PathBuf] as is. + #[inline] + pub fn into_path(self) -> Result { + match self { + Self::Url(url) => url + .to_file_path() + .map(PathBuf::from) + .map_err(|_| Error::InvalidPathUrl), + Self::Path(p) => Ok(p.as_ref().to_owned()), + } + } + + /// Takes the contained [`PathBuf`] if the variant is [`SafeFilePath::Path`], + /// and when possible, converts Windows UNC paths to regular paths. + #[inline] + pub fn simplified(self) -> Self { + match self { + Self::Url(url) => Self::Url(url), + Self::Path(p) => { + // Safe to unwrap since it was a safe file path already + Self::Path(SafePathBuf::new(dunce::simplified(p.as_ref()).to_path_buf()).unwrap()) + } + } + } +} + +impl std::fmt::Display for FilePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Url(u) => u.fmt(f), + Self::Path(p) => p.display().fmt(f), + } + } +} + +impl std::fmt::Display for SafeFilePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Url(u) => u.fmt(f), + Self::Path(p) => p.display().fmt(f), + } + } +} + +impl<'de> serde::Deserialize<'de> for FilePath { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct FilePathVisitor; + + impl<'de> serde::de::Visitor<'de> for FilePathVisitor { + type Value = FilePath; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + formatter.write_str("a string representing an file URL or a path") + } + + fn visit_str(self, s: &str) -> std::result::Result + where + E: serde::de::Error, + { + FilePath::from_str(s).map_err(|e| { + serde::de::Error::invalid_value( + serde::de::Unexpected::Str(s), + &e.to_string().as_str(), + ) + }) + } + } + + deserializer.deserialize_str(FilePathVisitor) + } +} + +impl<'de> serde::Deserialize<'de> for SafeFilePath { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct SafeFilePathVisitor; + + impl<'de> serde::de::Visitor<'de> for SafeFilePathVisitor { + type Value = SafeFilePath; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + formatter.write_str("a string representing an file URL or a path") + } + + fn visit_str(self, s: &str) -> std::result::Result + where + E: serde::de::Error, + { + SafeFilePath::from_str(s).map_err(|e| { + serde::de::Error::invalid_value( + serde::de::Unexpected::Str(s), + &e.to_string().as_str(), + ) + }) + } + } + + deserializer.deserialize_str(SafeFilePathVisitor) + } +} + +impl FromStr for FilePath { + type Err = Infallible; + fn from_str(s: &str) -> std::result::Result { + if let Ok(url) = url::Url::from_str(s) { + if url.scheme().len() != 1 { + return Ok(Self::Url(url)); + } + } + Ok(Self::Path(PathBuf::from(s))) + } +} + +impl FromStr for SafeFilePath { + type Err = Error; + fn from_str(s: &str) -> Result { + if let Ok(url) = url::Url::from_str(s) { + if url.scheme().len() != 1 { + return Ok(Self::Url(url)); + } + } + + SafePathBuf::new(s.into()) + .map(SafeFilePath::Path) + .map_err(Error::UnsafePathBuf) + } +} + +impl From for FilePath { + fn from(value: PathBuf) -> Self { + Self::Path(value) + } +} + +impl TryFrom for SafeFilePath { + type Error = Error; + fn try_from(value: PathBuf) -> Result { + SafePathBuf::new(value) + .map(SafeFilePath::Path) + .map_err(Error::UnsafePathBuf) + } +} + +impl From<&Path> for FilePath { + fn from(value: &Path) -> Self { + Self::Path(value.to_owned()) + } +} + +impl TryFrom<&Path> for SafeFilePath { + type Error = Error; + fn try_from(value: &Path) -> Result { + SafePathBuf::new(value.to_path_buf()) + .map(SafeFilePath::Path) + .map_err(Error::UnsafePathBuf) + } +} + +impl From<&PathBuf> for FilePath { + fn from(value: &PathBuf) -> Self { + Self::Path(value.to_owned()) + } +} + +impl TryFrom<&PathBuf> for SafeFilePath { + type Error = Error; + fn try_from(value: &PathBuf) -> Result { + SafePathBuf::new(value.to_owned()) + .map(SafeFilePath::Path) + .map_err(Error::UnsafePathBuf) + } +} + +impl From for FilePath { + fn from(value: url::Url) -> Self { + Self::Url(value) + } +} + +impl From for SafeFilePath { + fn from(value: url::Url) -> Self { + Self::Url(value) + } +} + +impl TryFrom for PathBuf { + type Error = Error; + fn try_from(value: FilePath) -> Result { + value.into_path() + } +} + +impl TryFrom for PathBuf { + type Error = Error; + fn try_from(value: SafeFilePath) -> Result { + value.into_path() + } +} + +impl From for FilePath { + fn from(value: SafeFilePath) -> Self { + match value { + SafeFilePath::Url(url) => FilePath::Url(url), + SafeFilePath::Path(p) => FilePath::Path(p.as_ref().to_owned()), + } + } +} + +impl TryFrom for SafeFilePath { + type Error = Error; + + fn try_from(value: FilePath) -> Result { + match value { + FilePath::Url(url) => Ok(SafeFilePath::Url(url)), + FilePath::Path(p) => SafePathBuf::new(p) + .map(SafeFilePath::Path) + .map_err(Error::UnsafePathBuf), + } + } +} diff --git a/plugins/fs/src/lib.rs b/plugins/fs/src/lib.rs index 975c12625..5cb903f8e 100644 --- a/plugins/fs/src/lib.rs +++ b/plugins/fs/src/lib.rs @@ -11,13 +11,7 @@ html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" )] -use std::{ - convert::Infallible, - fmt, - io::Read, - path::{Path, PathBuf}, - str::FromStr, -}; +use std::io::Read; use serde::Deserialize; use tauri::{ @@ -32,6 +26,7 @@ mod config; #[cfg(not(target_os = "android"))] mod desktop; mod error; +mod file_path; #[cfg(target_os = "android")] mod mobile; #[cfg(target_os = "android")] @@ -48,93 +43,11 @@ pub use mobile::Fs; pub use error::Error; pub use scope::{Event as ScopeEvent, Scope}; +pub use file_path::FilePath; +pub use file_path::SafeFilePath; + type Result = std::result::Result; -// TODO: Combine this with SafeFilePath -/// Represents either a filesystem path or a URI pointing to a file -/// such as `file://` URIs or Android `content://` URIs. -#[derive(Debug)] -pub enum FilePath { - Url(url::Url), - Path(PathBuf), -} - -impl<'de> serde::Deserialize<'de> for FilePath { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct FilePathVisitor; - - impl<'de> serde::de::Visitor<'de> for FilePathVisitor { - type Value = FilePath; - - fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { - formatter.write_str("a string representing an file URL or a path") - } - - fn visit_str(self, s: &str) -> std::result::Result - where - E: serde::de::Error, - { - FilePath::from_str(s).map_err(|e| { - serde::de::Error::invalid_value( - serde::de::Unexpected::Str(s), - &e.to_string().as_str(), - ) - }) - } - } - - deserializer.deserialize_str(FilePathVisitor) - } -} - -impl FromStr for FilePath { - type Err = Infallible; - fn from_str(s: &str) -> std::result::Result { - if let Ok(url) = url::Url::from_str(s) { - if url.scheme().len() != 1 { - return Ok(Self::Url(url)); - } - } - Ok(Self::Path(PathBuf::from(s))) - } -} - -impl From for FilePath { - fn from(value: PathBuf) -> Self { - Self::Path(value) - } -} - -impl From<&Path> for FilePath { - fn from(value: &Path) -> Self { - Self::Path(value.to_owned()) - } -} - -impl From<&PathBuf> for FilePath { - fn from(value: &PathBuf) -> Self { - Self::Path(value.to_owned()) - } -} - -impl From for FilePath { - fn from(value: url::Url) -> Self { - Self::Url(value) - } -} - -impl fmt::Display for FilePath { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Self::Url(u) => u.fmt(f), - Self::Path(p) => p.display().fmt(f), - } - } -} - #[derive(Debug, Default, Clone, Deserialize)] #[serde(rename_all = "camelCase")] pub struct OpenOptions { @@ -151,8 +64,10 @@ pub struct OpenOptions { #[serde(default)] create_new: bool, #[serde(default)] + #[allow(unused)] mode: Option, #[serde(default)] + #[allow(unused)] custom_flags: Option, } diff --git a/plugins/fs/src/watcher.rs b/plugins/fs/src/watcher.rs index 5849cdf82..cf2af5039 100644 --- a/plugins/fs/src/watcher.rs +++ b/plugins/fs/src/watcher.rs @@ -22,8 +22,9 @@ use std::{ }; use crate::{ - commands::{resolve_path, CommandResult, SafeFilePath}, + commands::{resolve_path, CommandResult}, scope::Entry, + SafeFilePath, }; struct InnerWatcher { diff --git a/plugins/single-instance/src/semver_compat.rs b/plugins/single-instance/src/semver_compat.rs index c613fdd7c..80487cae6 100644 --- a/plugins/single-instance/src/semver_compat.rs +++ b/plugins/single-instance/src/semver_compat.rs @@ -2,8 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -#![cfg(feature = "semver")] - /// Takes a version and spits out a String with trailing _x, thus only considering the digits /// relevant regarding semver compatibility pub fn semver_compat_string(version: semver::Version) -> String { From 12e80ffe00ed6a9da4677cb5a61395824e1abc10 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 13:26:57 +0200 Subject: [PATCH 525/643] Publish New Versions (v2) (#1736) Co-authored-by: amrbashir Co-authored-by: Fabian-Lars --- .changes/pre.json | 5 +++++ Cargo.lock | 12 ++++++------ examples/api/src-tauri/CHANGELOG.md | 9 +++++++++ examples/api/src-tauri/Cargo.toml | 10 +++++----- plugins/dialog/CHANGELOG.md | 15 +++++++++++++++ plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 11 +++++++++++ plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 6 ++++++ plugins/http/Cargo.toml | 4 ++-- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/updater/CHANGELOG.md | 4 ++++ plugins/updater/Cargo.toml | 2 +- 14 files changed, 75 insertions(+), 19 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index eb5321f48..8c502e0ad 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -11,6 +11,10 @@ ".changes/fix-ios-file-dialog-default-mode.md", ".changes/fix-linux-updater-permission-error.md", ".changes/fix-restore-minimized-window-position.md", + ".changes/fs-dialog-file-path-methods.md", + ".changes/fs-dialog-file-path-traits.md", + ".changes/fs-dialog-non-exhaustive-error.md", + ".changes/fs-dialog-safe-file-path.md", ".changes/fs-scope-recursive-allow-read-dir.md", ".changes/fs-windows-path.md", ".changes/geolocation-release.md", @@ -30,6 +34,7 @@ ".changes/tauri-rc-8.md", ".changes/update-fs-api-docs.md", ".changes/update-tauri-rc-3.md", + ".changes/updater-js-headers-download-crate.md", ".changes/updater-js-headers-download.md" ] } diff --git a/Cargo.lock b/Cargo.lock index 2ed68deac..3da35f651 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -206,7 +206,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "api" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "log", "serde", @@ -6544,7 +6544,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "log", "raw-window-handle 0.6.2", @@ -6560,7 +6560,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "anyhow", "dunce", @@ -6619,7 +6619,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "data-url", "http", @@ -6723,7 +6723,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "aho-corasick", "bincode", @@ -6842,7 +6842,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "base64 0.22.1", "dirs 5.0.1", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 311e78e1d..8e137128e 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 2e121a0ba..bed090391 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,14 +20,14 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.2", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.3", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.3" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.4" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.5" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.2" } +], version = "2.0.0-rc.3" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.3", features = [ "windows7-compat", ] } @@ -52,7 +52,7 @@ features = [ [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.1" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-rc.2" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.2" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.3" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.3" } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 3a99323d2..695d5cab1 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## \[2.0.0-rc.5] + +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add utility methods on `FilePath` and `SafeFilePath` enums which are: + + - `path` + - `simplified` + - `into_path` +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Implement `Serialize`, `Deserialize`, `From`, `TryFrom` and `FromStr` traits for `FilePath` and `SafeFilePath` enums. +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Mark `Error` enum as `#[non_exhuastive]`. +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add `SafeFilePath` enum. + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.3` + ## \[2.0.0-rc.4] ### Dependencies diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 681e6650e..813aa2a0d 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index b5bb6841e..0e0b0d382 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## \[2.0.0-rc.3] + +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add utility methods on `FilePath` and `SafeFilePath` enums which are: + + - `path` + - `simplified` + - `into_path` +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Implement `Serialize`, `Deserialize`, `From`, `TryFrom` and `FromStr` traits for `FilePath` and `SafeFilePath` enums. +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Mark `Error` enum as `#[non_exhuastive]`. +- [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add `SafeFilePath` enum. + ## \[2.0.0-rc.2] - [`f7280c88`](https://github.com/tauri-apps/plugins-workspace/commit/f7280c88309cdf1f2330574fec31e26e01e9cdbd) ([#1710](https://github.com/tauri-apps/plugins-workspace/pull/1710) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix can't use Windows paths like `C:/Users/UserName/file.txt` diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 5d99eaead..fcdeac80b 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index d5cd3402b..e5d168d26 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.3] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.3` + ## \[2.0.0-rc.2] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 894ef1da8..0635f20ca 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index a88819dd9..da8e79ceb 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.3] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.3` + ## \[2.0.0-rc.2] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 46bf559ee..688cbfc87 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -20,7 +20,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index f2e4ebadf..a714a4ecd 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.3] + +- [`d00519e3`](https://github.com/tauri-apps/plugins-workspace/commit/d00519e3e3a3234f9eb6c2ba82c92d4199f03e53) ([#1735](https://github.com/tauri-apps/plugins-workspace/pull/1735) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) This releases the changes from 2.0.0-rc.2 to crates.io. Please see the links below for the actual changes. + ## \[2.0.0-rc.2] - [`f8255e1d`](https://github.com/tauri-apps/plugins-workspace/commit/f8255e1db5df6cf562b9334fbefe5e62f4a28e0a) ([#1661](https://github.com/tauri-apps/plugins-workspace/pull/1661) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add a second argument in `Update.download` and `Update.donloadAndInstall` JS APIs to modify headers and timeout when downloading the update. diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 0a035eb28..000a7b348 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } From 3d301c654e6f5e7f343e0e0cbb57648002e98f04 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 5 Sep 2024 17:46:04 -0300 Subject: [PATCH 526/643] fix(notification): body should be optional on iOS (#1737) --- .changes/notification-body-optional-ios.md | 5 +++++ plugins/notification/ios/Sources/Notification.swift | 8 +++++--- plugins/notification/ios/Sources/NotificationPlugin.swift | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .changes/notification-body-optional-ios.md diff --git a/.changes/notification-body-optional-ios.md b/.changes/notification-body-optional-ios.md new file mode 100644 index 000000000..3bcdbc752 --- /dev/null +++ b/.changes/notification-body-optional-ios.md @@ -0,0 +1,5 @@ +--- +"notification": patch +--- + +The notification body is now optional on iOS to match the other platforms. diff --git a/plugins/notification/ios/Sources/Notification.swift b/plugins/notification/ios/Sources/Notification.swift index 0f572aa96..adba05ec2 100644 --- a/plugins/notification/ios/Sources/Notification.swift +++ b/plugins/notification/ios/Sources/Notification.swift @@ -32,9 +32,11 @@ func makeNotificationContent(_ notification: Notification) throws -> UNNotificat let content = UNMutableNotificationContent() content.title = NSString.localizedUserNotificationString( forKey: notification.title, arguments: nil) - content.body = NSString.localizedUserNotificationString( - forKey: notification.body, - arguments: nil) + if let body = notification.body { + content.body = NSString.localizedUserNotificationString( + forKey: body, + arguments: nil) + } content.userInfo = [ "__EXTRA__": notification.extra as Any, diff --git a/plugins/notification/ios/Sources/NotificationPlugin.swift b/plugins/notification/ios/Sources/NotificationPlugin.swift index c8974b369..9371e83d2 100644 --- a/plugins/notification/ios/Sources/NotificationPlugin.swift +++ b/plugins/notification/ios/Sources/NotificationPlugin.swift @@ -65,7 +65,7 @@ struct NotificationAttachment: Codable { struct Notification: Decodable { let id: Int var title: String - var body: String + var body: String? var extra: [String: String]? let schedule: NotificationSchedule? let attachments: [NotificationAttachment]? From d4a54157f03446b1e118bf1ce80d761d76f8163d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 09:19:57 +0800 Subject: [PATCH 527/643] chore(deps): update tauri monorepo (#1739) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 70 ++++-------- Cargo.toml | 8 +- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++--------- 8 files changed, 86 insertions(+), 108 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3da35f651..26d3c1f5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3006,15 +3006,6 @@ dependencies = [ "serde", ] -[[package]] -name = "infer" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" -dependencies = [ - "cfb", -] - [[package]] name = "infer" version = "0.16.0" @@ -6326,9 +6317,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b805e6bf5f6a4df7d1a64b2952d33fca6d538746efe9c9cdae4157a1efc5b17" +checksum = "a6327f79726c508efbbc3826b343fd7d39ebce786bdeff5881077b35d335d9e0" dependencies = [ "anyhow", "bytes", @@ -6343,7 +6334,7 @@ dependencies = [ "heck 0.5.0", "http", "http-range", - "image 0.24.9", + "image 0.25.2", "jni", "libc", "log", @@ -6369,7 +6360,7 @@ dependencies = [ "tokio", "tray-icon", "url", - "urlpattern 0.2.0", + "urlpattern", "uuid", "webkit2gtk", "webview2-com", @@ -6379,9 +6370,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acec578ff9de14da177722c8fb5e3d6c88af296696190c70b83bec91437248a" +checksum = "7938a610d1474435fa38dfba66c95ce9be7f17b500672b6e00072bca5e52fef3" dependencies = [ "anyhow", "cargo_toml", @@ -6403,9 +6394,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744bec087358e5de9a078a1b19346ed9b775f578395975f5a74ccd0c717b22a" +checksum = "467d3e95b57c860bea13b7c812820d9e7425e4b700e5e69b358d906f22022007" dependencies = [ "base64 0.22.1", "brotli", @@ -6430,9 +6421,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b043cac341130f288044dca76fae8e62d7c18fdcd8012239a66af03868b7ca37" +checksum = "c4585a906bd96bf57d063c3d60c52577ccc5de592d08f9d112e873ada79af9b9" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6444,9 +6435,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9bb31aad7296f85df545171023c72a263b54aac350197f923893fb5e6f90b4" +checksum = "b905ecef194245bb35baba0447703f9fe40e4c03e946c7aba54c21c23e3452c7" dependencies = [ "anyhow", "glob", @@ -6634,7 +6625,7 @@ dependencies = [ "thiserror", "tokio", "url", - "urlpattern 0.3.0", + "urlpattern", ] [[package]] @@ -6849,7 +6840,7 @@ dependencies = [ "flate2", "futures-util", "http", - "infer 0.16.0", + "infer", "minisign-verify", "reqwest", "semver", @@ -6916,9 +6907,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c7a6530acc06640e8f07cfeb01ac694f1de2f4e565525a2199e0dca80ff9f7" +checksum = "b72cd110a6699ef44963504d4fa4f6c535677bb0177da2d178f4f822a53058ed" dependencies = [ "dpi", "gtk", @@ -6935,9 +6926,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fcadbc24646c8d3362ed4e332cb42932e08c632220a20a61cb7e5fe36ddd85c" +checksum = "1eb325cca17496ccbb469e7e2fef7f3e31a1005ab0c658dc3331c7781a573401" dependencies = [ "cocoa 0.26.0", "gtk", @@ -6959,9 +6950,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201498c8281ab2597e344b4a4c923e8d491782305979d71e7cdf8fb79aab5948" +checksum = "6746b87c4755f493b94920622e245aef2d771f001ddeffc203e315872d323e1c" dependencies = [ "aes-gcm", "brotli", @@ -6971,7 +6962,7 @@ dependencies = [ "getrandom 0.2.15", "glob", "html5ever", - "infer 0.15.0", + "infer", "json-patch", "kuchikiki", "log", @@ -6991,7 +6982,7 @@ dependencies = [ "thiserror", "toml 0.8.2", "url", - "urlpattern 0.2.0", + "urlpattern", "walkdir", ] @@ -7420,9 +7411,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "131a65b2cef2081bc14dbcd414c906edbfa3bb5323dd7e748cc298614681196b" +checksum = "044d7738b3d50f288ddef035b793228740ad4d927f5466b0af55dc15e7e03cfe" dependencies = [ "core-graphics 0.24.0", "crossbeam-channel", @@ -7637,19 +7628,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlpattern" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" -dependencies = [ - "derive_more", - "regex", - "serde", - "unic-ucd-ident", - "url", -] - [[package]] name = "urlpattern" version = "0.3.0" diff --git a/Cargo.toml b/Cargo.toml index 07f696f2a..2e1ecc21d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.9", default-features = false } -tauri-build = "2.0.0-rc.8" -tauri-plugin = "2.0.0-rc.8" -tauri-utils = "2.0.0-rc.8" +tauri = { version = "2.0.0-rc.10", default-features = false } +tauri-build = "2.0.0-rc.9" +tauri-plugin = "2.0.0-rc.9" +tauri-utils = "2.0.0-rc.9" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index 8f528913c..055b9c2a6 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.11", + "@tauri-apps/cli": "2.0.0-rc.12", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 346e6da74..3367d189f 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0-rc.1" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.11", + "@tauri-apps/cli": "2.0.0-rc.12", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 4d5500f72..c12e3b8ea 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.11" + "@tauri-apps/cli": "2.0.0-rc.12" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 7b399115f..053f96481 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.11", + "@tauri-apps/cli": "2.0.0-rc.12", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 87ad4b810..15f7d2ea2 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.11", + "@tauri-apps/cli": "2.0.0-rc.12", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a275e75f..b28d2a5c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -119,8 +119,8 @@ importers: specifier: ^3.0.1 version: 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) '@tauri-apps/cli': - specifier: 2.0.0-rc.11 - version: 2.0.0-rc.11 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.0 @@ -180,8 +180,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.11 - version: 2.0.0-rc.11 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 typescript: specifier: ^5.2.2 version: 5.5.4 @@ -270,8 +270,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.11 - version: 2.0.0-rc.11 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 plugins/sql: dependencies: @@ -288,8 +288,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.11 - version: 2.0.0-rc.11 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 typescript: specifier: ^5.3.3 version: 5.5.4 @@ -328,8 +328,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.11 - version: 2.0.0-rc.11 + specifier: 2.0.0-rc.12 + version: 2.0.0-rc.12 typescript: specifier: ^5.3.3 version: 5.5.4 @@ -1050,68 +1050,68 @@ packages: '@tauri-apps/api@2.0.0-rc.4': resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.11': - resolution: {integrity: sha512-nPPRF606X8mI6Psiu8+dQr1jiqXYuyS81ZpoyyXxkzz6YEVFLv2YKNLw3MwQIM2MQ3wEkUuFy5Lp4x5pHW5zGQ==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.12': + resolution: {integrity: sha512-zYxcAH4reyqKkqCAybggszFWkBvC+ZyZPTWFKXXVQ20MZc1q+e/0UJYC8UKsaumrbi1uptgamvnM8yql56x5QQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.11': - resolution: {integrity: sha512-l5DX3f7z3xSekN1Wei9glewiCnUw0dQ3OypY97kGgKBIwTdx+JKSTMduc2kB/rXWfLf+VLX1SM423FiC/52GiA==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.12': + resolution: {integrity: sha512-eme7pQzEzeGCk13V3uxUNRnkVZJukqwHotqEb2RdovXqJWSyESrighBy4PBG5Xn6wNYTOyoquY9+In4TOfJAzw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.11': - resolution: {integrity: sha512-m5Nqj1fBlBbiqX23z0sLr4Up2J92D1DKd59x7u1z6NQqePGEbEqbZdrJR9jI38evw0sSOgvSAPMRSVVfhlKsFQ==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.12': + resolution: {integrity: sha512-113T2NsLeoy6GXsqc0yjMoozt+KXzkAtUB7DL9Kcvx9IMfA87cUVaTNjnb2GFsoQqpCWGfHei3nr9n1PGEbwMg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.11': - resolution: {integrity: sha512-1EvsQhKvYYVXn7PTHR8x7UTUuHAnFJ8ayVW77eTNLJPzXS2rk2/DDEaSPln+5tKBccWL2+FbB7bdyx2XbheLmA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.12': + resolution: {integrity: sha512-9TrUyNg0vmsYF7IbG+/sybEeiz6ikA1Kjd6JjC4iwfXjRff8fuTR7CIOb06imabxbLzGP79qSAnGAeTXz8E7qA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.11': - resolution: {integrity: sha512-cCQXdck6LWDfCFMR780I4FLXy9OPvep0z6mJnhYfWBhiCkmFecgZNHDZD5fmh5NwcXWo3tlY6FBDMm2Cn1X3uw==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.12': + resolution: {integrity: sha512-YvE40+wdkNcXhwUAJNPyhNzJ8YS3saJoxGj7mtNQeNeNrKhxyj6hA5T6gw9KtMkwBOp+HGtqn+eDXiu0X7BBHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.11': - resolution: {integrity: sha512-6ziiEts2WVFOq4UUCtvSTi9Fwu+UGXEGycJ3OgRsBPgQgeoeMCamHnb3kcnI5SKE6LKVJbwigOTnIwC7mfBN4A==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.12': + resolution: {integrity: sha512-q+MJp/lSA5WINs78dCFMlU0/jQeUkGr9GHbKeppcVcpkcY/1vog70b4KhneyvbuklKBn/V8kd0FtIKCn8VP+KQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.11': - resolution: {integrity: sha512-GBAr1N4m8+zxTSY+ls2uQi6XQ6DfGsgWA1kNy475+m0ZbFH0XBNyWSfQg/ztZ4Sn5qK9UYQO0uNBYY0oYEZsHw==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.12': + resolution: {integrity: sha512-5zodtleH2GFsB9lszDYrzPTLcr+MMqtpQpJWHATC1K03bLEA8ia8zSdBqRwm7u8NraMLl8TE7hc7hwq0uxGEcg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.11': - resolution: {integrity: sha512-IxkXVDlJCFqif1gEil92ZqGAxapvim7I1ekQBndPaNKu3D/GUtyl4kFFkyHS5S3LvnDRzzHetD10BOM6UAZgHA==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.12': + resolution: {integrity: sha512-nSu6VHpuq61DYM2YowLDLDwkK8im7dzYxIHXs+h8/rhkmadTujGhbyUhHPI1STA6hNyITUtSFpo6P2mEbfpAIg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.11': - resolution: {integrity: sha512-aNz5lItTDyHZjmSm5ZuzPj0c/uTSdZLlDDtAuUNuxaWFBUi1loLR85AY4X5qAr1Mo6RuaASUs4TJbEFkWcWmHA==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.12': + resolution: {integrity: sha512-d/4y57OisMuB+MUkTpZsryQRi9ZQXQ8SsMhrvEgu8sbX8/WRm0iZyGuIZ01RlZZHLIasXbKTkPX+hPQC5Juk8Q==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.11': - resolution: {integrity: sha512-makFSAiYq0oF7o7lpimjmc2DDQrG7mfpjAE52cfMo5JiCYG1SZYK9wqzZC7gjHr6Zh1dgOOvEuIKdhAMKSBiGg==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.12': + resolution: {integrity: sha512-RsPUvsbFza03ysh0nU2nM3P2CVWz9cu7CRHwOEdtXjWWNREHUYCaVpqQKz0tn2sG19yXiNIB40iqrIBUmb/IoA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.11': - resolution: {integrity: sha512-99ZuBF9AsB6dPa3je4wRLFAq9PJljHrlb5gcKqlklCpZP4F/GgQl8GaxtZurL/2Vwab7JBYRRyysV0bi7TlrOg==} + '@tauri-apps/cli@2.0.0-rc.12': + resolution: {integrity: sha512-rNcVSyGHGz8vNk542isYKPk5fEMAsgmzER+1s9YYbGZCH7m4e0rH89p/P9W40I/Z4AZk4ZqjpEeajeS5izDI4g==} engines: {node: '>= 10'} hasBin: true @@ -3219,48 +3219,48 @@ snapshots: '@tauri-apps/api@2.0.0-rc.4': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.11': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.12': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.11': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.12': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.11': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.12': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.11': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.12': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.11': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.12': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.11': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.12': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.11': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.12': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.11': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.12': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.11': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.12': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.11': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.12': optional: true - '@tauri-apps/cli@2.0.0-rc.11': + '@tauri-apps/cli@2.0.0-rc.12': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.11 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.11 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.11 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.11 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.11 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.11 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.11 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.11 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.11 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.11 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.12 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.12 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.12 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.12 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.12 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.12 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.12 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.12 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.12 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.12 '@types/eslint@9.6.0': dependencies: From 5906cf433555dc9d8358fefcd39d1aba7e64ab64 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 8 Sep 2024 18:12:08 +0200 Subject: [PATCH 528/643] chore(deps): update eslint monorepo to v9.10.0 (v2) (#1744) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 78 ++++++++++++++++++++++++++++---------------------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 6ab87008a..4444a3cb4 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ "format:check": "prettier --check ." }, "devDependencies": { - "@eslint/js": "9.9.1", + "@eslint/js": "9.10.0", "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", "covector": "^0.12.0", - "eslint": "9.9.1", + "eslint": "9.10.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b28d2a5c0..bce88c780 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.9.1 - version: 9.9.1 + specifier: 9.10.0 + version: 9.10.0 '@rollup/plugin-node-resolve': specifier: 15.2.3 version: 15.2.3(rollup@4.21.2) @@ -31,11 +31,11 @@ importers: specifier: ^0.12.0 version: 0.12.3(mocha@10.7.3) eslint: - specifier: 9.9.1 - version: 9.9.1(jiti@1.21.6) + specifier: 9.10.0 + version: 9.10.0(jiti@1.21.6) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.9.1(jiti@1.21.6)) + version: 9.1.0(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.5.4 typescript-eslint: specifier: 8.4.0 - version: 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + version: 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) examples/api: dependencies: @@ -848,14 +848,18 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.9.1': - resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.1.0': + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -1580,8 +1584,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.9.1: - resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3015,9 +3019,9 @@ snapshots: '@esbuild/win32-x64@0.23.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@1.21.6))': dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -3044,10 +3048,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.9.1': {} + '@eslint/js@9.10.0': {} '@eslint/object-schema@2.1.4': {} + '@eslint/plugin-kit@0.1.0': + dependencies: + levn: 0.4.1 + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.0': {} @@ -3283,15 +3291,15 @@ snapshots: '@types/unist@2.0.10': {} - '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.4.0 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -3301,14 +3309,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6(supports-color@8.1.1) - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -3319,10 +3327,10 @@ snapshots: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3348,13 +3356,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -3843,9 +3851,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.9.1(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-plugin-security@3.0.1: dependencies: @@ -3860,13 +3868,14 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.9.1(jiti@1.21.6): + eslint@9.10.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.9.1 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -3889,7 +3898,6 @@ snapshots: is-glob: 4.0.3 is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -4672,11 +4680,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: From c23d7c51f6b7712842d12001d09ef262eb8693fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:22:59 +0800 Subject: [PATCH 529/643] chore(deps): lock file maintenance (#1751) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 532 ++++++++++++------------- pnpm-lock.yaml | 1012 ++++++++++++++++++++++-------------------------- 2 files changed, 725 insertions(+), 819 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26d3c1f5b..4c8ec230f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ "gimli", ] @@ -23,6 +23,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "adler32" version = "1.2.0" @@ -200,9 +206,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "api" @@ -371,9 +377,9 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", @@ -451,7 +457,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -480,13 +486,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -546,17 +552,17 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.8.0", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -648,7 +654,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -717,7 +723,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", "syn_derive", ] @@ -783,9 +789,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -877,9 +883,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.13" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" dependencies = [ "shlex", ] @@ -985,18 +991,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" dependencies = [ "anstream", "anstyle", @@ -1165,9 +1171,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1288,9 +1294,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1415,7 +1421,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1425,7 +1431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1461,7 +1467,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1485,7 +1491,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1496,7 +1502,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1570,7 +1576,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1583,7 +1589,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1674,7 +1680,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1697,7 +1703,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1870,7 +1876,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -1957,7 +1963,7 @@ dependencies = [ "flume", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.7.4", "rayon-core", "smallvec", "zune-inflate", @@ -1965,9 +1971,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" @@ -2025,9 +2031,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -2037,12 +2043,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -2098,7 +2104,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -2227,7 +2233,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -2458,9 +2464,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" [[package]] name = "gio" @@ -2528,7 +2534,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -2549,15 +2555,14 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "global-hotkey" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298a7667d6011efe6b35673c6b29001b88677ae1b3d6b2feccfbff4b44892866" +checksum = "a4b86f7342b0e2abcf5e50ed8afd8bb9ffb6e30619d90f1e1a774b934a61f3e9" dependencies = [ - "bitflags 2.6.0", - "cocoa 0.26.0", "crossbeam-channel", "keyboard-types", - "objc", + "objc2", + "objc2-app-kit", "once_cell", "serde", "thiserror", @@ -2636,14 +2641,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] name = "h2" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", "bytes", @@ -2651,7 +2656,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2841,21 +2846,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http", "hyper", "hyper-util", - "rustls 0.23.12", - "rustls-native-certs", + "rustls", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", - "webpki-roots 0.26.3", + "webpki-roots", ] [[package]] @@ -2997,9 +3002,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3108,9 +3113,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is-docker" @@ -3350,9 +3355,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.157" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374af5f94e54fa97cf75e945cce8a6b201e88a1a07e688b47dfd2a59c66dbd86" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libflate" @@ -3402,7 +3407,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall", ] [[package]] @@ -3424,9 +3429,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.28.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "pkg-config", @@ -3600,9 +3605,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" +checksum = "a05b5d0594e0cb1ad8cee3373018d2b84e25905dc75b2468114cc9a8e86cfc20" [[package]] name = "miniz_oxide" @@ -3614,6 +3619,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" version = "0.8.11" @@ -3640,9 +3654,9 @@ dependencies = [ [[package]] name = "muda" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86c410a9d21523a819e84881603fbc00331c8001eb899964952046671deddb9c" +checksum = "ba8ac4080fb1e097c2c22acae467e46e4da72d941f02e82b67a87a2a89fa38b1" dependencies = [ "cocoa 0.26.0", "crossbeam-channel", @@ -3878,7 +3892,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -3980,7 +3994,6 @@ checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.6.0", "block2", - "dispatch", "libc", "objc2", ] @@ -4021,9 +4034,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -4074,7 +4087,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -4085,9 +4098,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.1+3.3.1" +version = "300.3.2+3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" dependencies = [ "cc", ] @@ -4185,9 +4198,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -4207,7 +4220,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] @@ -4353,7 +4366,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -4400,7 +4413,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -4460,7 +4473,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.4.0", + "indexmap 2.5.0", "quick-xml 0.32.0", "serde", "time", @@ -4476,7 +4489,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.7.4", ] [[package]] @@ -4668,16 +4681,16 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.12", + "rustls", "socket2", "thiserror", "tokio", @@ -4686,15 +4699,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand 0.8.5", "ring", "rustc-hash", - "rustls 0.23.12", + "rustls", "slab", "thiserror", "tinyvec", @@ -4703,22 +4716,22 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -4853,15 +4866,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.3" @@ -4873,9 +4877,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", @@ -4937,9 +4941,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "async-compression", "base64 0.22.1", @@ -4968,9 +4972,9 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.12", - "rustls-native-certs", - "rustls-pemfile 2.1.3", + "rustls", + "rustls-native-certs 0.7.3", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -4988,8 +4992,8 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.3", - "winreg 0.52.0", + "webpki-roots", + "windows-registry", ] [[package]] @@ -5043,9 +5047,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" dependencies = [ "bitvec", "bytecheck", @@ -5061,9 +5065,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.44" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ "proc-macro2", "quote", @@ -5116,7 +5120,7 @@ checksum = "9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8" dependencies = [ "base64 0.21.7", "blake2b_simd", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -5132,9 +5136,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.35.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" +checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" dependencies = [ "arrayvec", "borsh", @@ -5160,18 +5164,18 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" dependencies = [ "bitflags 2.6.0", "errno", @@ -5180,17 +5184,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "ring", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.23.12" @@ -5200,31 +5193,35 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] [[package]] -name = "rustls-pemfile" -version = "1.0.4" +name = "rustls-native-certs" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ - "base64 0.21.7", + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework", ] [[package]] @@ -5245,19 +5242,9 @@ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring", "rustls-pki-types", @@ -5308,11 +5295,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5338,7 +5325,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -5364,16 +5351,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "seahash" version = "4.1.0" @@ -5448,9 +5425,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -5468,13 +5445,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -5485,14 +5462,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa 1.0.11", "memchr", @@ -5508,7 +5485,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -5542,7 +5519,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -5559,7 +5536,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -5720,25 +5697,24 @@ dependencies = [ [[package]] name = "softbuffer" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ "bytemuck", "cfg_aliases 0.2.1", - "core-graphics 0.23.2", + "core-graphics 0.24.0", "foreign-types 0.5.0", "js-sys", "log", "objc2", - "objc2-app-kit", "objc2-foundation", "objc2-quartz-core", "raw-window-handle 0.6.2", - "redox_syscall 0.5.3", + "redox_syscall", "wasm-bindgen", "web-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5787,7 +5763,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -5811,9 +5787,9 @@ dependencies = [ [[package]] name = "sqlformat" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f895e3734318cc55f1fe66258926c9b910c124d47520339efecbb6c59cec7c1f" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" dependencies = [ "nom", "unicode_categories", @@ -5821,9 +5797,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" +checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" dependencies = [ "sqlx-core", "sqlx-macros", @@ -5834,9 +5810,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" +checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" dependencies = [ "atoi", "byteorder", @@ -5853,14 +5829,14 @@ dependencies = [ "hashbrown 0.14.5", "hashlink", "hex", - "indexmap 2.4.0", + "indexmap 2.5.0", "log", "memchr", "once_cell", "paste", "percent-encoding", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls", + "rustls-pemfile", "serde", "serde_json", "sha2", @@ -5872,27 +5848,27 @@ dependencies = [ "tokio-stream", "tracing", "url", - "webpki-roots 0.25.4", + "webpki-roots", ] [[package]] name = "sqlx-macros" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" +checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] name = "sqlx-macros-core" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" +checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" dependencies = [ "dotenvy", "either", @@ -5908,7 +5884,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.75", + "syn 2.0.77", "tempfile", "tokio", "url", @@ -5916,9 +5892,9 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" +checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" dependencies = [ "atoi", "base64 0.22.1", @@ -5959,9 +5935,9 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" +checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" dependencies = [ "atoi", "base64 0.22.1", @@ -5998,9 +5974,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" +checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" dependencies = [ "atoi", "flume", @@ -6172,9 +6148,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.75" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -6190,7 +6166,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -6198,6 +6174,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "sys-locale" @@ -6210,20 +6189,20 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation 0.9.4", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -6283,13 +6262,13 @@ dependencies = [ [[package]] name = "tao-macros" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] @@ -6410,7 +6389,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.75", + "syn 2.0.77", "tauri-utils", "thiserror", "time", @@ -6428,7 +6407,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", "tauri-codegen", "tauri-utils", ] @@ -6785,7 +6764,7 @@ name = "tauri-plugin-sql" version = "2.0.0-rc.1" dependencies = [ "futures-core", - "indexmap 2.4.0", + "indexmap 2.5.0", "log", "serde", "serde_json", @@ -7063,7 +7042,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -7158,9 +7137,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -7182,7 +7161,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -7201,7 +7180,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", ] @@ -7220,9 +7199,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -7238,21 +7217,21 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.12", - "rustls-native-certs", + "rustls", + "rustls-native-certs 0.7.3", "rustls-pki-types", "tokio", "tokio-native-tls", "tokio-rustls", "tungstenite", - "webpki-roots 0.26.3", + "webpki-roots", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -7300,7 +7279,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -7313,7 +7292,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -7367,7 +7346,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -7456,7 +7435,7 @@ dependencies = [ "log", "native-tls", "rand 0.8.5", - "rustls 0.23.12", + "rustls", "rustls-pki-types", "sha1", "thiserror", @@ -7559,9 +7538,9 @@ dependencies = [ [[package]] name = "unicode-properties" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" +checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" [[package]] name = "unicode-segmentation" @@ -7785,7 +7764,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", "wasm-bindgen-shared", ] @@ -7819,7 +7798,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7899,15 +7878,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" dependencies = [ "rustls-pki-types", ] @@ -7948,7 +7921,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -7970,11 +7943,11 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "whoami" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ - "redox_syscall 0.4.1", + "redox_syscall", "wasite", ] @@ -8006,11 +7979,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -8033,12 +8006,13 @@ dependencies = [ [[package]] name = "window-vibrancy" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8cdd6999298d969289d8078dae02ce798ad23452075985cccba8b6326711ecf" +checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" dependencies = [ - "cocoa 0.26.0", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "raw-window-handle 0.6.2", "windows-sys 0.59.0", "windows-version", @@ -8128,7 +8102,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -8139,7 +8113,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -8150,7 +8124,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -8161,7 +8135,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -8686,7 +8660,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] @@ -8707,21 +8681,21 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.77", ] [[package]] name = "zip" -version = "2.1.6" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e" +checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" dependencies = [ "arbitrary", "crc32fast", "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.4.0", + "indexmap 2.5.0", "memchr", "thiserror", "zopfli", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bce88c780..5b70d69ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,28 +111,28 @@ importers: devDependencies: '@iconify-json/codicon': specifier: ^1.1.37 - version: 1.1.51 + version: 1.2.0 '@iconify-json/ph': specifier: ^1.1.8 - version: 1.1.14 + version: 1.2.0 '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) '@tauri-apps/cli': specifier: 2.0.0-rc.12 version: 2.0.0-rc.12 '@unocss/extractor-svelte': specifier: ^0.62.0 - version: 0.62.0 + version: 0.62.3 svelte: specifier: ^4.2.19 version: 4.2.19 unocss: specifier: ^0.62.0 - version: 0.62.0(postcss@8.4.41)(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)) + version: 0.62.3(postcss@8.4.45)(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) vite: specifier: ^5.0.13 - version: 5.4.0(terser@5.31.5) + version: 5.4.3(terser@5.31.6) plugins/autostart: dependencies: @@ -187,7 +187,7 @@ importers: version: 5.5.4 vite: specifier: ^5.0.13 - version: 5.4.0(terser@5.31.5) + version: 5.4.3(terser@5.31.6) plugins/dialog: dependencies: @@ -295,7 +295,7 @@ importers: version: 5.5.4 vite: specifier: ^5.0.12 - version: 5.4.0(terser@5.31.5) + version: 5.4.3(terser@5.31.6) plugins/stronghold: dependencies: @@ -335,7 +335,7 @@ importers: version: 5.5.4 vite: specifier: ^5.0.13 - version: 5.4.0(terser@5.31.5) + version: 5.4.3(terser@5.31.6) plugins/window-state: dependencies: @@ -349,8 +349,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@0.1.1': - resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} @@ -359,16 +359,16 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.2': - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} '@babel/core@7.25.2': resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.0': - resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': @@ -379,8 +379,8 @@ packages: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.0': - resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -433,16 +433,16 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.0': - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -452,8 +452,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + '@babel/plugin-syntax-typescript@7.25.4': + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -480,12 +480,12 @@ packages: resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} '@chainsafe/abort-controller@3.0.1': @@ -554,8 +554,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.23.0': - resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -566,8 +566,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.23.0': - resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -578,8 +578,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.23.0': - resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -590,8 +590,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.23.0': - resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -602,8 +602,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.0': - resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -614,8 +614,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.23.0': - resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -626,8 +626,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.23.0': - resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -638,8 +638,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.0': - resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -650,8 +650,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.23.0': - resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -662,8 +662,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.0': - resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -674,8 +674,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.0': - resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -686,8 +686,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.23.0': - resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -698,8 +698,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.23.0': - resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -710,8 +710,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.23.0': - resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -722,8 +722,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.0': - resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -734,8 +734,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.0': - resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -746,8 +746,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.23.0': - resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -758,14 +758,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.0': - resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.0': - resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -776,8 +776,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.0': - resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -788,8 +788,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.23.0': - resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -800,8 +800,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.23.0': - resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -812,8 +812,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.23.0': - resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -824,8 +824,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.23.0': - resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -868,17 +868,17 @@ packages: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} - '@iconify-json/codicon@1.1.51': - resolution: {integrity: sha512-jNgy3mWL23r5uWdNIijlZvqXY7jARpPayNLl0qBDVfLiBbLHTFM8shPrb41z1usmSPxyKkZctsDmf5gCOzmEbw==} + '@iconify-json/codicon@1.2.0': + resolution: {integrity: sha512-KkqHpVq1guUqKgnhsG8xK+l3rX6sBc+CKB6icQKfabRpqCEpJWmG83IrZkCcD0A7CTghRRSwtrMPqpEvY8EwkA==} - '@iconify-json/ph@1.1.14': - resolution: {integrity: sha512-s1hZVaxIpl40qLEhjqPRMcZl4A3M4fZ+77Fi+VuOb/eKkIHIMutAoBHIR+0a3l7psUweZQGj9hSyL2P5CIj6qA==} + '@iconify-json/ph@1.2.0': + resolution: {integrity: sha512-013eLpgTmX1lACOuDnkuhC7gRHyYj9w/j8SyDmlyUYvsKQrwdRsv1otcXtwH3DevuDAzSkreeeRsCeez+gTyVA==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.1.30': - resolution: {integrity: sha512-bY0IO5xLOlbzJBnjWLxknp6Sss3yla03sVY9VeUz9nT6dbc+EGKlLfCt+6uytJnWm5CUvTF/BNotsLWF7kI61A==} + '@iconify/utils@2.1.32': + resolution: {integrity: sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ==} '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} @@ -1044,8 +1044,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte@3.1.1': - resolution: {integrity: sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==} + '@sveltejs/vite-plugin-svelte@3.1.2': + resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 @@ -1119,8 +1119,8 @@ packages: engines: {node: '>= 10'} hasBin: true - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/eslint__js@8.42.3': resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} @@ -1137,8 +1137,8 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@typescript-eslint/eslint-plugin@8.4.0': resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} @@ -1197,92 +1197,92 @@ packages: resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.62.0': - resolution: {integrity: sha512-Z2tUes6JbIvRNjbIXo6UM0mw9rlFYImIE6YwAGKJncf2GPUbp2hTO1d7T9I/y01KVKa/1Z5GU8LmkCmcn5c44g==} + '@unocss/astro@0.62.3': + resolution: {integrity: sha512-C6ZdyLbLDS0LebwmgwVItLNAOSkL/tvVWNRd1i3Jy5uj1vPxlrw+3lIYiHjEofn0GFpBiwlv5+OCvO1Xpq5MqA==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.62.0': - resolution: {integrity: sha512-XNRjMnYb0G/l1EwCc8CduESht+H0Xu0dh9abcsMJpOG5AlnzO8OWZKBsh4CPuMqSwFOcWtksv8WneObmzLukeA==} + '@unocss/cli@0.62.3': + resolution: {integrity: sha512-yEl1iNKkBVpo8+i8gzveM5/0/vOVe6m8+FmuSDuKeSPJnYMhI1mAn+OCKFb/I+qEeLbRPXebbJUUB1xZNzya+w==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.62.0': - resolution: {integrity: sha512-Mm6w2445+zF0tShf9DaXBpnLTQ1xjHurHjZfWicO78P4ZeVyJB6ZIukgwExJNFTuLQ32CIME2oWILBZMM5tF4Q==} + '@unocss/config@0.62.3': + resolution: {integrity: sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw==} engines: {node: '>=14'} - '@unocss/core@0.62.0': - resolution: {integrity: sha512-ion+7oHnaVaVMIKFonOPB1J8iune7xOU2uw6CdJK+Kbf+1f0ET8aNCZ9UxJ02+/DDd+6e6ax6+9XrAj4J+XDCA==} + '@unocss/core@0.62.3': + resolution: {integrity: sha512-Pfyrj8S7jq9K1QXD6Z5BCeiQavaHpbMN5q958/kmdbNGp57hOg1e346fMJAvgPjLBR+lE/hgZEsDrijtRiZXnw==} - '@unocss/extractor-arbitrary-variants@0.62.0': - resolution: {integrity: sha512-IAqDEuXfIiL2rtzdlZd07SgGENG+/R81ePQ5CvezEM1XV81L2EzvzQgYIq0xa5lnB0B254VrYgFP1B7AXdXjLA==} + '@unocss/extractor-arbitrary-variants@0.62.3': + resolution: {integrity: sha512-9ZscWyXEwDZif+b56xZyJFHwJOjdMXmj+6x96jOsnRNBzwT9eW7YcGCErP1ih/q1S6KmuRrHM/JOXMBQ6H4qlw==} - '@unocss/extractor-svelte@0.62.0': - resolution: {integrity: sha512-eO9iuR8hx2lxHkTtYfqmZGh4ukrPi/m+iNSQaYq6Q04Nv7+/nQopIq9cUJP5FxsbXJDqwlfRNiWKEX7UmSA3+g==} + '@unocss/extractor-svelte@0.62.3': + resolution: {integrity: sha512-0Ani/K5/2qdY5sbszkIVzbQMTfAVUi4bfpu2GCkdWTtedsl0zLyYIp+OjuXRswhslQQVKOh5WTrowbqTRp3EOQ==} - '@unocss/inspector@0.62.0': - resolution: {integrity: sha512-MEiPG8YI3LO96sNCDzXkpkDuiKzAEdtDAceOsWg69BzRrMYM+8aU4g7+dz2Z6Qjg29Z6QNb6dMhh3EPvl/S1Xg==} + '@unocss/inspector@0.62.3': + resolution: {integrity: sha512-nTSXOf7YimFPxEYJo5VfP5wlMgYOCjlv3c5Ub/0fynCJXZNb89SFeU05ABXkEgg/FfiobVBTscikLc6guW8eHQ==} - '@unocss/postcss@0.62.0': - resolution: {integrity: sha512-uUIwSQQ/4bN9R88e+bSJHn1uhhIuk3vF7IU+dm5GKGG+rEBf//rR9Nq4Sk+HsCOdcWACp0699kTlEMpjfbeZPA==} + '@unocss/postcss@0.62.3': + resolution: {integrity: sha512-CwL378ef0QazduXqlaGcWgKJAzemBUxdhapWWiRqI8sXC/eXht5xK6nS1JxqADDuxosgqsGdvcCGmP8ZFrEyiA==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.62.0': - resolution: {integrity: sha512-kFOMh5L5GVjD1hixUVNqgbYj9q4JIhCZnP8jQCiJYjqxbvv6zlTlUZNZwj8IqUyWkbQS+yxOCm92nthEuhNOug==} + '@unocss/preset-attributify@0.62.3': + resolution: {integrity: sha512-ORNwyLobGTwnn/tK5yHnMabdJU6Mr/C4LyFH7G8VSLit/aVS0fFa795kJXwxfbqQoQ7Gw0Zxs9oE5RXI0/0y7g==} - '@unocss/preset-icons@0.62.0': - resolution: {integrity: sha512-2toPJM0BJa7QLPZGPyib7aLOOGlih/CKGiujBpnOqxi3kwQL/SXzBOxQapjTT1u+ckyyFJpuTKlPz2ghV4eGPA==} + '@unocss/preset-icons@0.62.3': + resolution: {integrity: sha512-Ie+5RTyac1Q5CNB/s/4aB4VTHAQgQqsI5hshMNLkJ0Jj1lWxodUdEbCRKjXDalRjAXOS9vsLjfJ35ozJ1RSTIQ==} - '@unocss/preset-mini@0.62.0': - resolution: {integrity: sha512-TduvSebHp6jEVOUlFgbFCQdkBX3XPXEoSygkFHOt853f+XvXpDvpmj8SkBA29e7bO+4AZqAV0rIYlEAtHK8kMw==} + '@unocss/preset-mini@0.62.3': + resolution: {integrity: sha512-dn/8ubeW2ry/ZF3iKxdQHnS0l3EBibt0rIOE/XVwx24ub6pRzclU4r7xHnXeqvAFOO9PoiKDGgFR92m6R2MxyQ==} - '@unocss/preset-tagify@0.62.0': - resolution: {integrity: sha512-30fHOCxBbbi1zx4xpZQyqvQ1qTQia4A7nr+YH05y4i4+9DzGdSLB3xSUJ9/NvCFdH66O3fXjEOABJzqIhfoA4Q==} + '@unocss/preset-tagify@0.62.3': + resolution: {integrity: sha512-8BpUCZ5sjOZOzBKtu7ecfhRggwwPF78IqeqeNjI+XYRs8r7TBBcUVeF6zUkwhlX/TbtREkw2OZj0Iusa9CBO+A==} - '@unocss/preset-typography@0.62.0': - resolution: {integrity: sha512-Re8UcVKV4LRrnLLPOIJ8WEumSTo9hEpwd9YE7rYguJh0dCEGDU0leL7I6pJKZNVdqSS6zTpCFaZutYMExt3+TQ==} + '@unocss/preset-typography@0.62.3': + resolution: {integrity: sha512-GjtDgQ1Jec/5RNmnyGMWMgyPdStWcFG/S+NUfOuroRsGSI8PDxihVOwFu5CwvOB2J2r6mRNLeUYMluE05jW3sw==} - '@unocss/preset-uno@0.62.0': - resolution: {integrity: sha512-ySV2F3FN3JoE4LzlhEDII4Qj9LOscx/Zffw9EXUASpM+t3BU2s1ISuLWzBC9bHcJi2qJmGQKE3IGuD18fupS+A==} + '@unocss/preset-uno@0.62.3': + resolution: {integrity: sha512-RlsrMlpEzoZqB0lr5VvlkHGpEgr0Vp6z4Q/7DjW5t7mi20Z2i8olaLGWM0TO1wKoRi8bxc6HP0RHUS7pHtZxBA==} - '@unocss/preset-web-fonts@0.62.0': - resolution: {integrity: sha512-kS2MlHq07swnhjBYVG/jSHMk7Uo+mm4/Jceh/TYoO7IcAGFQq0f42TqS7eDktM5tQ6RJCZ0Ll1XSYVMarW3Pow==} + '@unocss/preset-web-fonts@0.62.3': + resolution: {integrity: sha512-rGEouncGFwcUY1cjkQ/ZoSmEzOeSi3Yk4YAfHGyS0ff5zKuTDWZgivB8hh/mTtvRzZunIL+FW1+1z5G9rUwjgQ==} - '@unocss/preset-wind@0.62.0': - resolution: {integrity: sha512-yBw6MDwz6iCfzEZ7bpPSWu79uZoDtISgQqgI1iQSQDdlEkddNmh9uXgUA4XPXnX28xfTE52JKw6BIzBfBRVTdw==} + '@unocss/preset-wind@0.62.3': + resolution: {integrity: sha512-6+VNce1he1U5EXKlXRwTIPn8KeK6bZ2jAEgcCxk8mFy8SzOlLeYzXCI9lcdiWRTjIeIiK5iSaUqmsQFtKdTyQg==} - '@unocss/reset@0.62.0': - resolution: {integrity: sha512-IOl/gM5kAEno5vP1v1DwqPp8XL8aYyrvdrgU7d/x/Tkhxaohpd8jZc3FXRi1g2jpiTZRe5eLc+h8uf2QCgd9Sw==} + '@unocss/reset@0.62.3': + resolution: {integrity: sha512-XVKPkbm8y9SGzRaG3x+HygGZURm50MvKLVHXsbxi67RbIir9Ouyt9hQTV6Xs3RicRZFWOpJx3wMRb8iKUOe5Zw==} - '@unocss/rule-utils@0.62.0': - resolution: {integrity: sha512-2uL+sKoMEHRlkMH1aLAxQwC1tc9A7nEkJ6RwfJfDTs/8oIlHPALJUsaz69qESRWLMsafBHJ8nLuaPRgkTVRiRw==} + '@unocss/rule-utils@0.62.3': + resolution: {integrity: sha512-qI37jHH//XzyR5Y2aN3Kpo4lQrQO+CaiXpqPSwMLYh2bIypc2RQVpqGVtU736x0eA6IIx41XEkKzUW+VtvJvmg==} engines: {node: '>=14'} - '@unocss/scope@0.62.0': - resolution: {integrity: sha512-aRBqiBq5ewxAO6Uxm6/rbyCogwLX5aX6FcM4H26gAkPj0TJ6+5T9ywxa7GDQU/8sBRGyPIMstt7rKqi50mYNQA==} + '@unocss/scope@0.62.3': + resolution: {integrity: sha512-TJGmFfsMrTo8DBJ7CJupIqObpgij+w4jCHMBf1uu0/9jbm63dH6WGcrl3zf5mm6UBTeLmB0RwJ8K4hs7LtrBDQ==} - '@unocss/transformer-attributify-jsx-babel@0.62.0': - resolution: {integrity: sha512-jxpyoJETF5+zdj1mJ5hu3OZ+x/JGCF/msUZygM5xe8t5zjLKBExEizd1rQUQ+qQPH3pwdlIoPo1+9IDdwP21Uw==} + '@unocss/transformer-attributify-jsx-babel@0.62.3': + resolution: {integrity: sha512-3yFZPSoN8VLiAGUAFIyfDRv9HQYTKFGKawDdMM9ATZmSEYOecJnYjS2HayT1P9kzGwBwuKoFjcX50JH1PuNokg==} - '@unocss/transformer-attributify-jsx@0.62.0': - resolution: {integrity: sha512-AHc3gIga7TC8GFUTPJDY8eawYNea+S8OStedT2fTOnx6yVRIaZgjLUJZhSI9x6OnXyT3c0E1jDE0IWylHC/rEQ==} + '@unocss/transformer-attributify-jsx@0.62.3': + resolution: {integrity: sha512-AutidZj26QW1vLQzuW/aQigC/5ZnIeqGYIBeb/O+FKKt0bU411tHrHnA1iV4CoxIdWJTkw2sGAl6z6YvwAYG6w==} - '@unocss/transformer-compile-class@0.62.0': - resolution: {integrity: sha512-fZqC7jMfkD3oKdc1IcnVQJpmdTWXfoZ1utxGIZvlzrG2WZZcGm0cZ0c1HIETcAk+MCEpwiuC3NuBezfVf4BLIg==} + '@unocss/transformer-compile-class@0.62.3': + resolution: {integrity: sha512-1hf+99wJXzQXQPz9xR0AiTB3vBXT5RiEyugIX95HFx7EvSE/P17RP90yKEKZtDZRUwGiz2vIyySlxcKTFak9Vg==} - '@unocss/transformer-directives@0.62.0': - resolution: {integrity: sha512-uJw51mit0kbXnm5WYcLbKmItGA9kWkhXwS8nx1EY47bpz472ha72LURyNeGCnIHXngEETd0/oZ++BgsEqP7tYg==} + '@unocss/transformer-directives@0.62.3': + resolution: {integrity: sha512-HqHwFOA7DfxD/A1ROZIp8Dr8iZcE0z4w3VQtViWPQ89Fqmb7p2wCPGekk+8yW5PAltpynvHE4ahJEto5xjdg6w==} - '@unocss/transformer-variant-group@0.62.0': - resolution: {integrity: sha512-9WxLygH9Q44oMq0s8ZhzwoVCggaRgv5AyVxU4uRjPPzx1keWQMnb4EUErULPYjSriF6KfSt8TSpwZeQXeYyTUQ==} + '@unocss/transformer-variant-group@0.62.3': + resolution: {integrity: sha512-oNX1SdfWemz0GWGSXACu8NevM0t2l44j2ancnooNkNz3l1+z1nbn4vFwfsJCOqOaoVm4ZqxaiQ8HIx81ZSiU1A==} - '@unocss/vite@0.62.0': - resolution: {integrity: sha512-vNwQrXXq1D9u9eZ2CtkPik8Mi927IEpxvugv7/t7EFTOn/gVQhyHXr812K4A96mXYPCX2wBrS2MjDRqSusoXTg==} + '@unocss/vite@0.62.3': + resolution: {integrity: sha512-RrqF6Go8s0BGpwRfkOiLuO+n3CUE/CXxGqb0ipbUARhmNWJlekE3YPfayqImSEnCcImpaPgtVGv6Y0u3kLGG/w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1405,8 +1405,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + caniuse-lite@1.0.30001658: + resolution: {integrity: sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1490,8 +1490,8 @@ packages: ctrlc-windows@2.1.0: resolution: {integrity: sha512-OrX5KI+K+2NMN91QIhYZdW7VDO2YsSdTZW494pA7Nvw/wBdU2hz+MGP006bR978zOTrG6Q8EIeJvLJmLqc6MsQ==} - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1534,8 +1534,8 @@ packages: effection@2.0.8: resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} - electron-to-chromium@1.5.6: - resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} + electron-to-chromium@1.5.18: + resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1545,13 +1545,13 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.23.0: - resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -1628,10 +1628,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -1658,8 +1654,8 @@ packages: fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fdir@6.2.0: - resolution: {integrity: sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw==} + fdir@6.3.0: + resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -1712,12 +1708,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-tsconfig@4.7.6: - resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + get-tsconfig@4.8.0: + resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -1767,23 +1759,19 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - importx@0.4.3: - resolution: {integrity: sha512-x6E6OxmWq/SUaj7wDeDeSjyHP+rMUbEaqJ5fw0uEtC/FTX9ocxNMFJ+ONnpJIsRpFz3ya6qJAK4orwSKqw0BSQ==} + importx@0.4.4: + resolution: {integrity: sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -1814,8 +1802,8 @@ packages: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-decimal@1.0.4: @@ -1854,10 +1842,6 @@ packages: is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -1869,8 +1853,8 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jiti@2.0.0-beta.2: - resolution: {integrity: sha512-c+PHQZakiQuMKbnhvrjZUvrK6E/AfmTOf4P+E3Y4FNVHcNMX9e/XrnbEvO+m4wS6ZjsvhHh/POQTlfy8uXFc0A==} + jiti@2.0.0-beta.3: + resolution: {integrity: sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==} hasBin: true js-tokens@4.0.0: @@ -1962,9 +1946,6 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1979,10 +1960,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2006,9 +1983,6 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2039,10 +2013,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - ofetch@1.3.4: resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} @@ -2053,10 +2023,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -2069,6 +2035,9 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -2100,8 +2069,8 @@ packages: periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2117,15 +2086,15 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.3.2: - resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} + pino@9.4.0: + resolution: {integrity: sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w==} hasBin: true - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2219,8 +2188,8 @@ packages: safe-regex@2.1.1: resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} semver@7.6.3: @@ -2242,9 +2211,6 @@ packages: shellwords@0.1.1: resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -2259,11 +2225,11 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - sonic-boom@4.0.1: - resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + sonic-boom@4.1.0: + resolution: {integrity: sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -2292,10 +2258,6 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2326,8 +2288,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - terser@5.31.5: - resolution: {integrity: sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==} + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} engines: {node: '>=10'} hasBin: true @@ -2337,8 +2299,11 @@ packages: thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} - tinyglobby@0.2.2: - resolution: {integrity: sha512-mZ2sDMaySvi1PkTp4lTo1In2zjU+cY8OvZsfwrDrx3YGRbXPX1/cbPwCR9zkm3O/Fz9Jo0F1HNgIQ1b8BepqyQ==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + + tinyglobby@0.2.6: + resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} to-fast-properties@2.0.0: @@ -2368,8 +2333,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsx@4.17.0: - resolution: {integrity: sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==} + tsx@4.19.0: + resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} engines: {node: '>=18.0.0'} hasBin: true @@ -2407,11 +2372,11 @@ packages: unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unocss@0.62.0: - resolution: {integrity: sha512-0flfJGjiWxLKNb/JczzXJ39WXjC5x6iV94bRxOACnCGH9MrPf0HFUsCHu2AZYtyC1Eb/MhG1wG5e2CcrxAeTpQ==} + unocss@0.62.3: + resolution: {integrity: sha512-CLS6+JIlBobe/iPTz07pehyGDP8VqGJsiE+ZZ3Xkgib3hw76nCqAQF/4mJ8jVoV4C8KvGyVxmHaSSCFOkWmmZg==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.62.0 + '@unocss/webpack': 0.62.3 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -2434,8 +2399,8 @@ packages: vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2548,60 +2513,60 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/install-pkg@0.1.1': + '@antfu/install-pkg@0.4.1': dependencies: - execa: 5.1.1 - find-up: 5.0.0 + package-manager-detector: 0.2.0 + tinyexec: 0.3.0 '@antfu/utils@0.7.10': {} '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/compat-data@7.25.2': {} + '@babel/compat-data@7.25.4': {} '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 + '@babel/generator': 7.25.6 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 7.6.3 transitivePeerDependencies: - supports-color - '@babel/generator@7.25.0': + '@babel/generator@7.25.6': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.25.2 + '@babel/compat-data': 7.25.4 '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.3 lru-cache: 5.1.1 semver: 7.6.3 - '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.25.2)': + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 @@ -2609,22 +2574,22 @@ snapshots: '@babel/helper-optimise-call-expression': 7.24.7 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 semver: 7.6.3 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -2634,13 +2599,13 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/helper-plugin-utils@7.24.8': {} @@ -2649,21 +2614,21 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -2673,28 +2638,28 @@ snapshots: '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.25.0': + '@babel/helpers@7.25.6': dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/parser@7.25.3': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 @@ -2712,10 +2677,10 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -2733,22 +2698,22 @@ snapshots: '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - '@babel/traverse@7.25.3': + '@babel/traverse@7.25.6': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.6(supports-color@8.1.1) + '@babel/types': 7.25.6 + debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.2': + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 @@ -2760,13 +2725,13 @@ snapshots: '@clack/core@0.3.4': dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: '@clack/core': 0.3.4 - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@covector/apply@0.10.0(mocha@10.7.3)': @@ -2881,142 +2846,142 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.23.0': + '@esbuild/aix-ppc64@0.23.1': optional: true '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.23.0': + '@esbuild/android-arm64@0.23.1': optional: true '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.23.0': + '@esbuild/android-arm@0.23.1': optional: true '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.23.0': + '@esbuild/android-x64@0.23.1': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.23.0': + '@esbuild/darwin-arm64@0.23.1': optional: true '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.23.0': + '@esbuild/darwin-x64@0.23.1': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.23.0': + '@esbuild/freebsd-arm64@0.23.1': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.23.0': + '@esbuild/freebsd-x64@0.23.1': optional: true '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.23.0': + '@esbuild/linux-arm64@0.23.1': optional: true '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.23.0': + '@esbuild/linux-arm@0.23.1': optional: true '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.23.0': + '@esbuild/linux-ia32@0.23.1': optional: true '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.23.0': + '@esbuild/linux-loong64@0.23.1': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.23.0': + '@esbuild/linux-mips64el@0.23.1': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.23.0': + '@esbuild/linux-ppc64@0.23.1': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.23.0': + '@esbuild/linux-riscv64@0.23.1': optional: true '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.23.0': + '@esbuild/linux-s390x@0.23.1': optional: true '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.23.0': + '@esbuild/linux-x64@0.23.1': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.23.0': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.23.0': + '@esbuild/openbsd-arm64@0.23.1': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.23.0': + '@esbuild/openbsd-x64@0.23.1': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.23.0': + '@esbuild/sunos-x64@0.23.1': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.23.0': + '@esbuild/win32-arm64@0.23.1': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.23.0': + '@esbuild/win32-ia32@0.23.1': optional: true '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.23.0': + '@esbuild/win32-x64@0.23.1': optional: true '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@1.21.6))': @@ -3029,7 +2994,7 @@ snapshots: '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3037,10 +3002,10 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) espree: 10.1.0 globals: 14.0.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3060,22 +3025,22 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@iconify-json/codicon@1.1.51': + '@iconify-json/codicon@1.2.0': dependencies: '@iconify/types': 2.0.0 - '@iconify-json/ph@1.1.14': + '@iconify-json/ph@1.2.0': dependencies: '@iconify/types': 2.0.0 '@iconify/types@2.0.0': {} - '@iconify/utils@2.1.30': + '@iconify/utils@2.1.32': dependencies: - '@antfu/install-pkg': 0.1.1 + '@antfu/install-pkg': 0.4.1 '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.1 @@ -3133,7 +3098,7 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.31.5 + terser: 5.31.6 optionalDependencies: rollup: 4.21.2 @@ -3202,26 +3167,26 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.19)(vite@5.4.0(terser@5.31.5))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) - debug: 4.3.6(supports-color@8.1.1) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) + debug: 4.3.7(supports-color@8.1.1) svelte: 4.2.19 - vite: 5.4.0(terser@5.31.5) + vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)))(svelte@4.2.19)(vite@5.4.0(terser@5.31.5)) - debug: 4.3.6(supports-color@8.1.1) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) + debug: 4.3.7(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.0(terser@5.31.5) - vitefu: 0.2.5(vite@5.4.0(terser@5.31.5)) + vite: 5.4.3(terser@5.31.6) + vitefu: 0.2.5(vite@5.4.3(terser@5.31.6)) transitivePeerDependencies: - supports-color @@ -3270,14 +3235,14 @@ snapshots: '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.12 '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.12 - '@types/eslint@9.6.0': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 '@types/eslint__js@8.42.3': dependencies: - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 '@types/estree@1.0.5': {} @@ -3285,11 +3250,11 @@ snapshots: '@types/mdast@3.0.15': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 '@types/resolve@1.20.2': {} - '@types/unist@2.0.10': {} + '@types/unist@2.0.11': {} '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: @@ -3301,7 +3266,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.4.0 eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3315,7 +3280,7 @@ snapshots: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.4.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) eslint: 9.10.0(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 @@ -3331,7 +3296,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 @@ -3345,7 +3310,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -3372,24 +3337,24 @@ snapshots: '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.0(rollup@4.21.2)(vite@5.4.0(terser@5.31.5))': + '@unocss/astro@0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6))': dependencies: - '@unocss/core': 0.62.0 - '@unocss/reset': 0.62.0 - '@unocss/vite': 0.62.0(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)) + '@unocss/core': 0.62.3 + '@unocss/reset': 0.62.3 + '@unocss/vite': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) optionalDependencies: - vite: 5.4.0(terser@5.31.5) + vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.62.0(rollup@4.21.2)': + '@unocss/cli@0.62.3(rollup@4.21.2)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.21.2) - '@unocss/config': 0.62.0 - '@unocss/core': 0.62.0 - '@unocss/preset-uno': 0.62.0 + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/preset-uno': 0.62.3 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -3397,139 +3362,139 @@ snapshots: magic-string: 0.30.11 pathe: 1.1.2 perfect-debounce: 1.0.0 - tinyglobby: 0.2.2 + tinyglobby: 0.2.6 transitivePeerDependencies: - rollup - supports-color - '@unocss/config@0.62.0': + '@unocss/config@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 unconfig: 0.5.5 transitivePeerDependencies: - supports-color - '@unocss/core@0.62.0': {} + '@unocss/core@0.62.3': {} - '@unocss/extractor-arbitrary-variants@0.62.0': + '@unocss/extractor-arbitrary-variants@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/extractor-svelte@0.62.0': {} + '@unocss/extractor-svelte@0.62.3': {} - '@unocss/inspector@0.62.0': + '@unocss/inspector@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.62.0(postcss@8.4.41)': + '@unocss/postcss@0.62.3(postcss@8.4.45)': dependencies: - '@unocss/config': 0.62.0 - '@unocss/core': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 css-tree: 2.3.1 magic-string: 0.30.11 - postcss: 8.4.41 - tinyglobby: 0.2.2 + postcss: 8.4.45 + tinyglobby: 0.2.6 transitivePeerDependencies: - supports-color - '@unocss/preset-attributify@0.62.0': + '@unocss/preset-attributify@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/preset-icons@0.62.0': + '@unocss/preset-icons@0.62.3': dependencies: - '@iconify/utils': 2.1.30 - '@unocss/core': 0.62.0 + '@iconify/utils': 2.1.32 + '@unocss/core': 0.62.3 ofetch: 1.3.4 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.62.0': + '@unocss/preset-mini@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/extractor-arbitrary-variants': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/extractor-arbitrary-variants': 0.62.3 + '@unocss/rule-utils': 0.62.3 - '@unocss/preset-tagify@0.62.0': + '@unocss/preset-tagify@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/preset-typography@0.62.0': + '@unocss/preset-typography@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/preset-mini': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 - '@unocss/preset-uno@0.62.0': + '@unocss/preset-uno@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/preset-mini': 0.62.0 - '@unocss/preset-wind': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/preset-wind': 0.62.3 + '@unocss/rule-utils': 0.62.3 - '@unocss/preset-web-fonts@0.62.0': + '@unocss/preset-web-fonts@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 ofetch: 1.3.4 - '@unocss/preset-wind@0.62.0': + '@unocss/preset-wind@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/preset-mini': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/rule-utils': 0.62.3 - '@unocss/reset@0.62.0': {} + '@unocss/reset@0.62.3': {} - '@unocss/rule-utils@0.62.0': + '@unocss/rule-utils@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 magic-string: 0.30.11 - '@unocss/scope@0.62.0': {} + '@unocss/scope@0.62.3': {} - '@unocss/transformer-attributify-jsx-babel@0.62.0': + '@unocss/transformer-attributify-jsx-babel@0.62.3': dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 transitivePeerDependencies: - supports-color - '@unocss/transformer-attributify-jsx@0.62.0': + '@unocss/transformer-attributify-jsx@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/transformer-compile-class@0.62.0': + '@unocss/transformer-compile-class@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/transformer-directives@0.62.0': + '@unocss/transformer-directives@0.62.3': dependencies: - '@unocss/core': 0.62.0 - '@unocss/rule-utils': 0.62.0 + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 css-tree: 2.3.1 - '@unocss/transformer-variant-group@0.62.0': + '@unocss/transformer-variant-group@0.62.3': dependencies: - '@unocss/core': 0.62.0 + '@unocss/core': 0.62.3 - '@unocss/vite@0.62.0(rollup@4.21.2)(vite@5.4.0(terser@5.31.5))': + '@unocss/vite@0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.21.2) - '@unocss/config': 0.62.0 - '@unocss/core': 0.62.0 - '@unocss/inspector': 0.62.0 - '@unocss/scope': 0.62.0 - '@unocss/transformer-directives': 0.62.0 + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/inspector': 0.62.3 + '@unocss/scope': 0.62.3 + '@unocss/transformer-directives': 0.62.3 chokidar: 3.6.0 magic-string: 0.30.11 - tinyglobby: 0.2.2 - vite: 5.4.0(terser@5.31.5) + tinyglobby: 0.2.6 + vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - rollup - supports-color @@ -3609,8 +3574,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.6 + caniuse-lite: 1.0.30001658 + electron-to-chromium: 1.5.18 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -3623,9 +3588,9 @@ snapshots: builtin-modules@3.3.0: {} - bundle-require@5.0.0(esbuild@0.23.0): + bundle-require@5.0.0(esbuild@0.23.1): dependencies: - esbuild: 0.23.0 + esbuild: 0.23.1 load-tsconfig: 0.2.5 cac@6.7.14: {} @@ -3634,7 +3599,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001651: {} + caniuse-lite@1.0.30001658: {} chalk@2.4.2: dependencies: @@ -3721,7 +3686,7 @@ snapshots: globby: 11.1.0 js-yaml: 4.1.0 lodash: 4.17.21 - pino: 9.3.2 + pino: 9.4.0 pino-abstract-transport: 1.2.0 strip-ansi: 6.0.1 yargs: 17.7.2 @@ -3745,13 +3710,13 @@ snapshots: css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.2.1 ctrlc-windows@2.1.0: {} - debug@4.3.6(supports-color@8.1.1): + debug@4.3.7(supports-color@8.1.1): dependencies: - ms: 2.1.2 + ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 @@ -3788,7 +3753,7 @@ snapshots: - encoding - mocha - electron-to-chromium@1.5.6: {} + electron-to-chromium@1.5.18: {} emoji-regex@8.0.0: {} @@ -3818,34 +3783,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.23.0: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.0 - '@esbuild/android-arm': 0.23.0 - '@esbuild/android-arm64': 0.23.0 - '@esbuild/android-x64': 0.23.0 - '@esbuild/darwin-arm64': 0.23.0 - '@esbuild/darwin-x64': 0.23.0 - '@esbuild/freebsd-arm64': 0.23.0 - '@esbuild/freebsd-x64': 0.23.0 - '@esbuild/linux-arm': 0.23.0 - '@esbuild/linux-arm64': 0.23.0 - '@esbuild/linux-ia32': 0.23.0 - '@esbuild/linux-loong64': 0.23.0 - '@esbuild/linux-mips64el': 0.23.0 - '@esbuild/linux-ppc64': 0.23.0 - '@esbuild/linux-riscv64': 0.23.0 - '@esbuild/linux-s390x': 0.23.0 - '@esbuild/linux-x64': 0.23.0 - '@esbuild/netbsd-x64': 0.23.0 - '@esbuild/openbsd-arm64': 0.23.0 - '@esbuild/openbsd-x64': 0.23.0 - '@esbuild/sunos-x64': 0.23.0 - '@esbuild/win32-arm64': 0.23.0 - '@esbuild/win32-ia32': 0.23.0 - '@esbuild/win32-x64': 0.23.0 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 - escalade@3.1.2: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -3882,7 +3847,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -3893,7 +3858,7 @@ snapshots: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -3937,18 +3902,6 @@ snapshots: events@3.3.0: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - extend@3.0.2: {} fast-deep-equal@3.1.3: {} @@ -3975,7 +3928,7 @@ snapshots: dependencies: format: 0.2.2 - fdir@6.2.0(picomatch@4.0.2): + fdir@6.3.0(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -4014,9 +3967,7 @@ snapshots: get-caller-file@2.0.5: {} - get-stream@6.0.1: {} - - get-tsconfig@4.7.6: + get-tsconfig@4.8.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -4045,7 +3996,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -4065,27 +4016,24 @@ snapshots: he@1.2.0: {} - human-signals@2.1.0: {} - ieee754@1.2.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - importx@0.4.3: + importx@0.4.4: dependencies: - bundle-require: 5.0.0(esbuild@0.23.0) - debug: 4.3.6(supports-color@8.1.1) - esbuild: 0.23.0 - jiti: 2.0.0-beta.2 + bundle-require: 5.0.0(esbuild@0.23.1) + debug: 4.3.7(supports-color@8.1.1) + esbuild: 0.23.1 + jiti: 2.0.0-beta.3 jiti-v1: jiti@1.21.6 pathe: 1.1.2 - pkg-types: 1.1.3 - tsx: 4.17.0 + tsx: 4.19.0 transitivePeerDependencies: - supports-color @@ -4115,7 +4063,7 @@ snapshots: dependencies: builtin-modules: 3.3.0 - is-core-module@2.15.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -4143,15 +4091,13 @@ snapshots: dependencies: '@types/estree': 1.0.5 - is-stream@2.0.1: {} - is-unicode-supported@0.1.0: {} isexe@2.0.0: {} jiti@1.21.6: {} - jiti@2.0.0-beta.2: {} + jiti@2.0.0-beta.3: {} js-tokens@4.0.0: {} @@ -4187,7 +4133,7 @@ snapshots: local-pkg@0.5.0: dependencies: mlly: 1.7.1 - pkg-types: 1.1.3 + pkg-types: 1.2.0 locate-character@3.0.0: {} @@ -4230,7 +4176,7 @@ snapshots: mdast-util-to-markdown@0.6.5: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 longest-streak: 2.0.4 mdast-util-to-string: 2.0.0 parse-entities: 2.0.0 @@ -4241,8 +4187,6 @@ snapshots: mdn-data@2.0.30: {} - merge-stream@2.0.0: {} - merge2@1.4.1: {} micromark-extension-frontmatter@0.2.2: @@ -4251,7 +4195,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -4261,8 +4205,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mimic-fn@2.1.0: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4279,7 +4221,7 @@ snapshots: dependencies: acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.3 + pkg-types: 1.2.0 ufo: 1.5.4 mocha@10.7.3: @@ -4287,7 +4229,7 @@ snapshots: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -4307,8 +4249,6 @@ snapshots: mrmime@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} nanoid@3.3.7: {} @@ -4325,10 +4265,6 @@ snapshots: normalize-path@3.0.0: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - ofetch@1.3.4: dependencies: destr: 2.0.3 @@ -4341,10 +4277,6 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4362,6 +4294,8 @@ snapshots: dependencies: p-limit: 3.1.0 + package-manager-detector@0.2.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -4393,7 +4327,7 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -4406,7 +4340,7 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@9.3.2: + pino@9.4.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 @@ -4416,21 +4350,21 @@ snapshots: process-warning: 4.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 4.0.1 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.1.0 thread-stream: 3.1.0 - pkg-types@1.1.3: + pkg-types@1.2.0: dependencies: confbox: 0.1.7 mlly: 1.7.1 pathe: 1.1.2 - postcss@8.4.41: + postcss@8.4.45: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -4491,7 +4425,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -4529,7 +4463,7 @@ snapshots: dependencies: regexp-tree: 0.1.27 - safe-stable-stringify@2.4.3: {} + safe-stable-stringify@2.5.0: {} semver@7.6.3: {} @@ -4545,8 +4479,6 @@ snapshots: shellwords@0.1.1: {} - signal-exit@3.0.7: {} - sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 @@ -4559,11 +4491,11 @@ snapshots: smob@1.5.0: {} - sonic-boom@4.0.1: + sonic-boom@4.1.0: dependencies: atomic-sleep: 1.0.0 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -4592,8 +4524,6 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-final-newline@2.0.0: {} - strip-json-comments@3.1.1: {} supports-color@5.5.0: @@ -4631,7 +4561,7 @@ snapshots: magic-string: 0.30.11 periscopic: 3.1.0 - terser@5.31.5: + terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -4644,9 +4574,11 @@ snapshots: dependencies: real-require: 0.2.0 - tinyglobby@0.2.2: + tinyexec@0.3.0: {} + + tinyglobby@0.2.6: dependencies: - fdir: 6.2.0(picomatch@4.0.2) + fdir: 6.3.0(picomatch@4.0.2) picomatch: 4.0.2 to-fast-properties@2.0.0: {} @@ -4667,10 +4599,10 @@ snapshots: tslib@2.7.0: {} - tsx@4.17.0: + tsx@4.19.0: dependencies: - esbuild: 0.23.0 - get-tsconfig: 4.7.6 + esbuild: 0.23.1 + get-tsconfig: 4.8.0 optionalDependencies: fsevents: 2.3.3 @@ -4699,13 +4631,13 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 defu: 6.1.4 - importx: 0.4.3 + importx: 0.4.4 transitivePeerDependencies: - supports-color unified@9.2.2: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 bail: 1.0.5 extend: 3.0.2 is-buffer: 2.0.5 @@ -4715,32 +4647,32 @@ snapshots: unist-util-stringify-position@2.0.3: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 - unocss@0.62.0(postcss@8.4.41)(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)): + unocss@0.62.3(postcss@8.4.45)(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)): dependencies: - '@unocss/astro': 0.62.0(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)) - '@unocss/cli': 0.62.0(rollup@4.21.2) - '@unocss/core': 0.62.0 - '@unocss/extractor-arbitrary-variants': 0.62.0 - '@unocss/postcss': 0.62.0(postcss@8.4.41) - '@unocss/preset-attributify': 0.62.0 - '@unocss/preset-icons': 0.62.0 - '@unocss/preset-mini': 0.62.0 - '@unocss/preset-tagify': 0.62.0 - '@unocss/preset-typography': 0.62.0 - '@unocss/preset-uno': 0.62.0 - '@unocss/preset-web-fonts': 0.62.0 - '@unocss/preset-wind': 0.62.0 - '@unocss/reset': 0.62.0 - '@unocss/transformer-attributify-jsx': 0.62.0 - '@unocss/transformer-attributify-jsx-babel': 0.62.0 - '@unocss/transformer-compile-class': 0.62.0 - '@unocss/transformer-directives': 0.62.0 - '@unocss/transformer-variant-group': 0.62.0 - '@unocss/vite': 0.62.0(rollup@4.21.2)(vite@5.4.0(terser@5.31.5)) + '@unocss/astro': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) + '@unocss/cli': 0.62.3(rollup@4.21.2) + '@unocss/core': 0.62.3 + '@unocss/extractor-arbitrary-variants': 0.62.3 + '@unocss/postcss': 0.62.3(postcss@8.4.45) + '@unocss/preset-attributify': 0.62.3 + '@unocss/preset-icons': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/preset-tagify': 0.62.3 + '@unocss/preset-typography': 0.62.3 + '@unocss/preset-uno': 0.62.3 + '@unocss/preset-web-fonts': 0.62.3 + '@unocss/preset-wind': 0.62.3 + '@unocss/reset': 0.62.3 + '@unocss/transformer-attributify-jsx': 0.62.3 + '@unocss/transformer-attributify-jsx-babel': 0.62.3 + '@unocss/transformer-compile-class': 0.62.3 + '@unocss/transformer-directives': 0.62.3 + '@unocss/transformer-variant-group': 0.62.3 + '@unocss/vite': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) optionalDependencies: - vite: 5.4.0(terser@5.31.5) + vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - postcss - rollup @@ -4749,8 +4681,8 @@ snapshots: update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -4758,28 +4690,28 @@ snapshots: vfile-message@2.0.4: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 unist-util-stringify-position: 2.0.3 vfile@4.2.1: dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite@5.4.0(terser@5.31.5): + vite@5.4.3(terser@5.31.6): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 + postcss: 8.4.45 rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 - terser: 5.31.5 + terser: 5.31.6 - vitefu@0.2.5(vite@5.4.0(terser@5.31.5)): + vitefu@0.2.5(vite@5.4.3(terser@5.31.6)): optionalDependencies: - vite: 5.4.0(terser@5.31.5) + vite: 5.4.3(terser@5.31.6) webidl-conversions@3.0.1: {} @@ -4822,7 +4754,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -4832,7 +4764,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 3912800db3215f910c3921b5d8e2b193dbcf6c9a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:35:43 +0800 Subject: [PATCH 530/643] chore(deps): lock file maintenance (#1753) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b70d69ab..8aa1dc4eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1405,8 +1405,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001658: - resolution: {integrity: sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw==} + caniuse-lite@1.0.30001659: + resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3574,7 +3574,7 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001658 + caniuse-lite: 1.0.30001659 electron-to-chromium: 1.5.18 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -3599,7 +3599,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001658: {} + caniuse-lite@1.0.30001659: {} chalk@2.4.2: dependencies: From 0dd97d911569cdedab07f504b708036d62ff83c1 Mon Sep 17 00:00:00 2001 From: Kauan Curbani <87383246+KauanCurbani@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:40:45 -0300 Subject: [PATCH 531/643] feat(sql): added uuid type in postgres decoder (#1375) Co-authored-by: Kauan Curbani Co-authored-by: Fabian-Lars --- .changes/sql-uuid-type.md | 5 +++++ plugins/sql/src/decode/postgres.rs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changes/sql-uuid-type.md diff --git a/.changes/sql-uuid-type.md b/.changes/sql-uuid-type.md new file mode 100644 index 000000000..879104b84 --- /dev/null +++ b/.changes/sql-uuid-type.md @@ -0,0 +1,5 @@ +--- +"sql": patch +--- + +Added support for `UUID` columns to the postgres implementation. \ No newline at end of file diff --git a/plugins/sql/src/decode/postgres.rs b/plugins/sql/src/decode/postgres.rs index e38ad0259..6f689dced 100644 --- a/plugins/sql/src/decode/postgres.rs +++ b/plugins/sql/src/decode/postgres.rs @@ -14,7 +14,7 @@ pub(crate) fn to_json(v: PgValueRef) -> Result { } let res = match v.type_info().name() { - "CHAR" | "VARCHAR" | "TEXT" | "NAME" => { + "CHAR" | "VARCHAR" | "TEXT" | "NAME" | "UUID" => { if let Ok(v) = ValueRef::to_owned(&v).try_decode() { JsonValue::String(v) } else { From c23b3d4bc81a474c141a026079da51bd732cb04b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:24:20 +0200 Subject: [PATCH 532/643] chore(deps): update dependency typescript-eslint to v8.5.0 (v2) (#1755) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 4444a3cb4..8f535a686 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.21.2", "tslib": "2.7.0", "typescript": "5.5.4", - "typescript-eslint": "8.4.0" + "typescript-eslint": "8.5.0" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aa1dc4eb..de7aa3eb6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.5.4 version: 5.5.4 typescript-eslint: - specifier: 8.4.0 - version: 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + specifier: 8.5.0 + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) examples/api: dependencies: @@ -1140,8 +1140,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.4.0': - resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} + '@typescript-eslint/eslint-plugin@8.5.0': + resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1151,8 +1151,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.4.0': - resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} + '@typescript-eslint/parser@8.5.0': + resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1161,12 +1161,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.4.0': - resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} + '@typescript-eslint/scope-manager@8.5.0': + resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.4.0': - resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} + '@typescript-eslint/type-utils@8.5.0': + resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1174,12 +1174,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.4.0': - resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} + '@typescript-eslint/types@8.5.0': + resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.4.0': - resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} + '@typescript-eslint/typescript-estree@8.5.0': + resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1187,14 +1187,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.4.0': - resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} + '@typescript-eslint/utils@8.5.0': + resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.4.0': - resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} + '@typescript-eslint/visitor-keys@8.5.0': + resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.62.3': @@ -2346,8 +2346,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.4.0: - resolution: {integrity: sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==} + typescript-eslint@8.5.0: + resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3256,14 +3256,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.5.0 eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 @@ -3274,12 +3274,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.10.0(jiti@1.21.6) optionalDependencies: @@ -3287,15 +3287,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.4.0': + '@typescript-eslint/scope-manager@8.5.0': dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3304,12 +3304,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.4.0': {} + '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3321,20 +3321,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.4.0': + '@typescript-eslint/visitor-keys@8.5.0': dependencies: - '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/types': 8.5.0 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6))': @@ -4612,11 +4612,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: From a9b2a9af84c844c5e95e5676c1706ccbab5e5bd2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:28:08 +0200 Subject: [PATCH 533/643] chore(deps): update dependency typescript to v5.6.2 (v2) (#1754) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 76 +++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 8f535a686..464d4a3de 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "prettier": "3.3.3", "rollup": "4.21.2", "tslib": "2.7.0", - "typescript": "5.5.4", + "typescript": "5.6.2", "typescript-eslint": "8.5.0" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de7aa3eb6..1c33d10e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ importers: version: 0.4.4(rollup@4.21.2) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.5.4) + version: 11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.6.2) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -49,11 +49,11 @@ importers: specifier: 2.7.0 version: 2.7.0 typescript: - specifier: 5.5.4 - version: 5.5.4 + specifier: 5.6.2 + version: 5.6.2 typescript-eslint: specifier: 8.5.0 - version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) examples/api: dependencies: @@ -184,7 +184,7 @@ importers: version: 2.0.0-rc.12 typescript: specifier: ^5.2.2 - version: 5.5.4 + version: 5.6.2 vite: specifier: ^5.0.13 version: 5.4.3(terser@5.31.6) @@ -292,7 +292,7 @@ importers: version: 2.0.0-rc.12 typescript: specifier: ^5.3.3 - version: 5.5.4 + version: 5.6.2 vite: specifier: ^5.0.12 version: 5.4.3(terser@5.31.6) @@ -332,7 +332,7 @@ importers: version: 2.0.0-rc.12 typescript: specifier: ^5.3.3 - version: 5.5.4 + version: 5.6.2 vite: specifier: ^5.0.13 version: 5.4.3(terser@5.31.6) @@ -2355,8 +2355,8 @@ packages: typescript: optional: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -3102,11 +3102,11 @@ snapshots: optionalDependencies: rollup: 4.21.2 - '@rollup/plugin-typescript@11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.5.4)': + '@rollup/plugin-typescript@11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.6.2)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.21.2) resolve: 1.22.8 - typescript: 5.5.4 + typescript: 5.6.2 optionalDependencies: rollup: 4.21.2 tslib: 2.7.0 @@ -3256,34 +3256,34 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.5.0 eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.10.0(jiti@1.21.6) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -3292,21 +3292,21 @@ snapshots: '@typescript-eslint/types': 8.5.0 '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 8.5.0 '@typescript-eslint/visitor-keys': 8.5.0 @@ -3315,18 +3315,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.5.0 '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -4593,9 +4593,9 @@ snapshots: trough@1.0.5: {} - ts-api-utils@1.3.0(typescript@5.5.4): + ts-api-utils@1.3.0(typescript@5.6.2): dependencies: - typescript: 5.5.4 + typescript: 5.6.2 tslib@2.7.0: {} @@ -4612,18 +4612,18 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4): + typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - eslint - supports-color - typescript@5.5.4: {} + typescript@5.6.2: {} ufo@1.5.4: {} From 713c54ef8365d36afd84585dcabed2fbb751223d Mon Sep 17 00:00:00 2001 From: Olivier Lemasle Date: Tue, 10 Sep 2024 13:01:29 +0200 Subject: [PATCH 534/643] chore(barcode): remove unused Android dependencies (#1749) * chore(barcode): remove unused Android dependencies Plugin barcode-scanner has two unused Android dependencies: - com.google.zxing:core - com.journeyapps:zxing-android-embedded However, these dependency's AndroidManifest.xml were merged, and contained required parameters (to get camera's permissions). See the merged manifests: - https://github.com/zxing/zxing/blob/zxing-3.3.0/android/AndroidManifest.xml - https://github.com/journeyapps/zxing-android-embedded/blob/v4.3.0/zxing-android-embedded/AndroidManifest.xml This commit removes the unused dependencies (and unused Java imports) and updates the Android manifest. * chore: remove comments --------- Co-authored-by: Lucas Nogueira --- .changes/barcode-dependencies.md | 5 +++++ plugins/barcode-scanner/android/build.gradle.kts | 4 ---- .../barcode-scanner/android/src/main/AndroidManifest.xml | 8 +++----- .../android/src/main/java/BarcodeScannerPlugin.kt | 2 -- plugins/nfc/android/src/main/AndroidManifest.xml | 5 ----- 5 files changed, 8 insertions(+), 16 deletions(-) create mode 100644 .changes/barcode-dependencies.md diff --git a/.changes/barcode-dependencies.md b/.changes/barcode-dependencies.md new file mode 100644 index 000000000..7beab24f9 --- /dev/null +++ b/.changes/barcode-dependencies.md @@ -0,0 +1,5 @@ +--- +"barcode-scanner": patch +--- + +Remove unused Android dependencies. \ No newline at end of file diff --git a/plugins/barcode-scanner/android/build.gradle.kts b/plugins/barcode-scanner/android/build.gradle.kts index 64e7e865f..f3ecd6c71 100644 --- a/plugins/barcode-scanner/android/build.gradle.kts +++ b/plugins/barcode-scanner/android/build.gradle.kts @@ -47,9 +47,5 @@ dependencies { testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - implementation("com.journeyapps:zxing-android-embedded:4.3.0") { - isTransitive = false - } - implementation("com.google.zxing:core:3.3.0") implementation(project(":tauri-android")) } diff --git a/plugins/barcode-scanner/android/src/main/AndroidManifest.xml b/plugins/barcode-scanner/android/src/main/AndroidManifest.xml index b4050b4f6..750a724b8 100644 --- a/plugins/barcode-scanner/android/src/main/AndroidManifest.xml +++ b/plugins/barcode-scanner/android/src/main/AndroidManifest.xml @@ -2,10 +2,8 @@ xmlns:tools="http://schemas.android.com/tools" android:hardwareAccelerated="true"> - - - - - + + + diff --git a/plugins/barcode-scanner/android/src/main/java/BarcodeScannerPlugin.kt b/plugins/barcode-scanner/android/src/main/java/BarcodeScannerPlugin.kt index 4728bad0e..ef2eeb347 100644 --- a/plugins/barcode-scanner/android/src/main/java/BarcodeScannerPlugin.kt +++ b/plugins/barcode-scanner/android/src/main/java/BarcodeScannerPlugin.kt @@ -42,7 +42,6 @@ import app.tauri.annotation.Permission import app.tauri.annotation.PermissionCallback import app.tauri.annotation.TauriPlugin import app.tauri.plugin.Invoke -import app.tauri.plugin.JSArray import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin import com.google.common.util.concurrent.ListenableFuture @@ -50,7 +49,6 @@ import com.google.mlkit.vision.barcode.BarcodeScannerOptions import com.google.mlkit.vision.barcode.BarcodeScanning import com.google.mlkit.vision.barcode.common.Barcode import com.google.mlkit.vision.common.InputImage -import org.json.JSONException import java.util.Collections import java.util.concurrent.ExecutionException diff --git a/plugins/nfc/android/src/main/AndroidManifest.xml b/plugins/nfc/android/src/main/AndroidManifest.xml index a2c208e2b..7603a356a 100644 --- a/plugins/nfc/android/src/main/AndroidManifest.xml +++ b/plugins/nfc/android/src/main/AndroidManifest.xml @@ -1,9 +1,4 @@ - - - - - From a34fade5004a64f1b00c39a34397f18c65bb625e Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Tue, 10 Sep 2024 08:31:39 -0300 Subject: [PATCH 535/643] chore(ios): consolidate optional argument standard (#1738) * chore(ios): consolidate optional argument standard mark all optional iOS arguments as `var : Type?`, following the pattern described in the documentation: https://v2.tauri.app/develop/plugins/develop-mobile/#ios * chore: add missing Info.plist to example --- examples/api/src-tauri/Info.plist | 14 ++++--- .../src-tauri/gen/apple/api_iOS/Info.plist | 2 + .../ios/Sources/BarcodeScannerPlugin.swift | 4 +- .../ios/Sources/BiometricPlugin.swift | 4 +- .../ios/Sources/GeolocationPlugin.swift | 42 ++++++++++--------- plugins/nfc/ios/Sources/NfcPlugin.swift | 22 +++++----- .../ios/Sources/NotificationHandler.swift | 2 +- .../ios/Sources/NotificationPlugin.swift | 36 ++++++++-------- .../template/ios/Sources/ExamplePlugin.swift | 2 +- 9 files changed, 68 insertions(+), 60 deletions(-) diff --git a/examples/api/src-tauri/Info.plist b/examples/api/src-tauri/Info.plist index fe253ec7b..c20d89463 100644 --- a/examples/api/src-tauri/Info.plist +++ b/examples/api/src-tauri/Info.plist @@ -1,10 +1,12 @@ - - NSCameraUsageDescription - Request camera access for WebRTC - NSMicrophoneUsageDescription - Request microphone access for WebRTC - + + NSCameraUsageDescription + Request camera access for WebRTC + NSMicrophoneUsageDescription + Request microphone access for WebRTC + NSFaceIDUsageDescription + Authenticate with biometrics + diff --git a/examples/api/src-tauri/gen/apple/api_iOS/Info.plist b/examples/api/src-tauri/gen/apple/api_iOS/Info.plist index 2106cfb6f..319665905 100644 --- a/examples/api/src-tauri/gen/apple/api_iOS/Info.plist +++ b/examples/api/src-tauri/gen/apple/api_iOS/Info.plist @@ -40,6 +40,8 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + NSFaceIDUsageDescription + Authenticate with biometrics NSCameraUsageDescription Request camera access for WebRTC NSMicrophoneUsageDescription diff --git a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift index ec16ad594..7efdc256d 100644 --- a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift +++ b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift @@ -9,8 +9,8 @@ import WebKit struct ScanOptions: Decodable { var formats: [SupportedFormat]? - let windowed: Bool? - let cameraDirection: String? + var windowed: Bool? + var cameraDirection: String? } enum SupportedFormat: String, CaseIterable, Decodable { diff --git a/plugins/biometric/ios/Sources/BiometricPlugin.swift b/plugins/biometric/ios/Sources/BiometricPlugin.swift index 7e3e8bbd8..3c9a192a8 100644 --- a/plugins/biometric/ios/Sources/BiometricPlugin.swift +++ b/plugins/biometric/ios/Sources/BiometricPlugin.swift @@ -25,8 +25,8 @@ class BiometricStatus { struct AuthOptions: Decodable { let reason: String var allowDeviceCredential: Bool? - let fallbackTitle: String? - let cancelTitle: String? + var fallbackTitle: String? + var cancelTitle: String? } class BiometricPlugin: Plugin { diff --git a/plugins/geolocation/ios/Sources/GeolocationPlugin.swift b/plugins/geolocation/ios/Sources/GeolocationPlugin.swift index fedfa570c..7a2b57a95 100644 --- a/plugins/geolocation/ios/Sources/GeolocationPlugin.swift +++ b/plugins/geolocation/ios/Sources/GeolocationPlugin.swift @@ -2,14 +2,14 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +import CoreLocation import SwiftRs import Tauri import UIKit import WebKit -import CoreLocation class GetPositionArgs: Decodable { - let enableHighAccuracy: Bool? + var enableHighAccuracy: Bool? } class WatchPositionArgs: Decodable { @@ -101,14 +101,14 @@ class GeolocationPlugin: Plugin, CLLocationManagerDelegate { if CLLocationManager.locationServicesEnabled() { // TODO: Use the authorizationStatus instance property with locationManagerDidChangeAuthorization(_:) instead. switch CLLocationManager.authorizationStatus() { - case .notDetermined: - status = "prompt" - case .restricted, .denied: - status = "denied" - case .authorizedAlways, .authorizedWhenInUse: - status = "granted" - @unknown default: - status = "prompt" + case .notDetermined: + status = "prompt" + case .restricted, .denied: + status = "denied" + case .authorizedAlways, .authorizedWhenInUse: + status = "granted" + @unknown default: + status = "prompt" } } else { invoke.reject("Location services are not enabled.") @@ -161,16 +161,18 @@ class GeolocationPlugin: Plugin, CLLocationManagerDelegate { } } - public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + public func locationManager( + _ manager: CLLocationManager, didUpdateLocations locations: [CLLocation] + ) { // Respond to all getCurrentPosition() calls. for request in self.positionRequests { - // The capacitor plugin uses locations.first but .last should be the most current one - // and i don't see a reason to use old locations - if let location = locations.last { - let result = convertLocation(location) - request.resolve(result) - } else { - request.reject("Location service returned an empty Location array.") + // The capacitor plugin uses locations.first but .last should be the most current one + // and i don't see a reason to use old locations + if let location = locations.last { + let result = convertLocation(location) + request.resolve(result) + } else { + request.reject("Location service returned an empty Location array.") } } @@ -194,7 +196,9 @@ class GeolocationPlugin: Plugin, CLLocationManagerDelegate { } } - public func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { + public func locationManager( + _ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus + ) { let requests = self.permissionRequests self.permissionRequests.removeAll() diff --git a/plugins/nfc/ios/Sources/NfcPlugin.swift b/plugins/nfc/ios/Sources/NfcPlugin.swift index 21bb26063..58d69a847 100644 --- a/plugins/nfc/ios/Sources/NfcPlugin.swift +++ b/plugins/nfc/ios/Sources/NfcPlugin.swift @@ -16,24 +16,24 @@ enum ScanKind: Decodable { struct ScanOptions: Decodable { let kind: ScanKind - let keepSessionAlive: Bool? - let message: String? - let successMessage: String? + var keepSessionAlive: Bool? + var message: String? + var successMessage: String? } struct NDEFRecord: Decodable { - let format: UInt8? - let kind: [UInt8]? - let identifier: [UInt8]? - let payload: [UInt8]? + var format: UInt8? + var kind: [UInt8]? + var identifier: [UInt8]? + var payload: [UInt8]? } struct WriteOptions: Decodable { - let kind: ScanKind? + var kind: ScanKind? let records: [NDEFRecord] - let message: String? - let successMessage: String? - let successfulReadMessage: String? + var message: String? + var successMessage: String? + var successfulReadMessage: String? } enum TagProcessMode { diff --git a/plugins/notification/ios/Sources/NotificationHandler.swift b/plugins/notification/ios/Sources/NotificationHandler.swift index 83ac0ae4c..1bf134b67 100644 --- a/plugins/notification/ios/Sources/NotificationHandler.swift +++ b/plugins/notification/ios/Sources/NotificationHandler.swift @@ -34,7 +34,7 @@ public class NotificationHandler: NSObject, NotificationHandlerProtocol { try? self.plugin?.trigger("notification", data: notificationData) if let options = notificationsMap[notification.request.identifier] { - if options.silent { + if options.silent ?? false { return UNNotificationPresentationOptions.init(rawValue: 0) } } diff --git a/plugins/notification/ios/Sources/NotificationPlugin.swift b/plugins/notification/ios/Sources/NotificationPlugin.swift index 9371e83d2..6d8391bcc 100644 --- a/plugins/notification/ios/Sources/NotificationPlugin.swift +++ b/plugins/notification/ios/Sources/NotificationPlugin.swift @@ -34,13 +34,13 @@ enum ScheduleEveryKind: String, Decodable { } struct ScheduleInterval: Decodable { - let year: Int? - let month: Int? - let day: Int? - let weekday: Int? - let hour: Int? - let minute: Int? - let second: Int? + var year: Int? + var month: Int? + var day: Int? + var weekday: Int? + var hour: Int? + var minute: Int? + var second: Int? } enum NotificationSchedule: Decodable { @@ -67,13 +67,13 @@ struct Notification: Decodable { var title: String var body: String? var extra: [String: String]? - let schedule: NotificationSchedule? - let attachments: [NotificationAttachment]? - let sound: String? - let group: String? - let actionTypeId: String? - let summary: String? - var silent = false + var schedule: NotificationSchedule? + var attachments: [NotificationAttachment]? + var sound: String? + var group: String? + var actionTypeId: String? + var summary: String? + var silent: Bool? } struct RemoveActiveNotification: Decodable { @@ -130,19 +130,19 @@ struct Action: Decodable { var foreground: Bool? var destructive: Bool? var input: Bool? - let inputButtonTitle: String? - let inputPlaceholder: String? + var inputButtonTitle: String? + var inputPlaceholder: String? } struct ActionType: Decodable { let id: String let actions: [Action] - let hiddenPreviewsBodyPlaceholder: String? + var hiddenPreviewsBodyPlaceholder: String? var customDismissAction: Bool? var allowInCarPlay: Bool? var hiddenPreviewsShowTitle: Bool? var hiddenPreviewsShowSubtitle: Bool? - let hiddenBodyPlaceholder: String? + var hiddenBodyPlaceholder: String? } struct RegisterActionTypesArgs: Decodable { diff --git a/shared/template/ios/Sources/ExamplePlugin.swift b/shared/template/ios/Sources/ExamplePlugin.swift index 36c3a8f74..2a1055deb 100644 --- a/shared/template/ios/Sources/ExamplePlugin.swift +++ b/shared/template/ios/Sources/ExamplePlugin.swift @@ -8,7 +8,7 @@ import UIKit import WebKit class PingArgs: Decodable { - let value: String? + var value: String? } class ExamplePlugin: Plugin { From 57fd28126c38c11d3237a5f5283732be920fd1a4 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Tue, 10 Sep 2024 08:38:57 -0300 Subject: [PATCH 536/643] chore(examples): add NFCReaderUsageDescription Info.plist, entitlement --- examples/api/src-tauri/Info.plist | 2 + .../gen/apple/api.xcodeproj/project.pbxproj | 70 ++++++++++++++----- .../src-tauri/gen/apple/api_iOS/Info.plist | 2 + .../gen/apple/api_iOS/api_iOS.entitlements | 7 +- examples/api/src-tauri/gen/apple/project.yml | 2 +- examples/api/src-tauri/tauri.conf.json | 3 + 6 files changed, 68 insertions(+), 18 deletions(-) diff --git a/examples/api/src-tauri/Info.plist b/examples/api/src-tauri/Info.plist index c20d89463..4dcd6aca6 100644 --- a/examples/api/src-tauri/Info.plist +++ b/examples/api/src-tauri/Info.plist @@ -8,5 +8,7 @@ Request microphone access for WebRTC NSFaceIDUsageDescription Authenticate with biometrics + NFCReaderUsageDescription + Read and write to NFC tags for testing diff --git a/examples/api/src-tauri/gen/apple/api.xcodeproj/project.pbxproj b/examples/api/src-tauri/gen/apple/api.xcodeproj/project.pbxproj index e6756039c..64ef20a86 100644 --- a/examples/api/src-tauri/gen/apple/api.xcodeproj/project.pbxproj +++ b/examples/api/src-tauri/gen/apple/api.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 56; objects = { /* Begin PBXBuildFile section */ @@ -22,26 +22,26 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = ""; }; - 1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; path = tray.rs; sourceTree = ""; }; + 0E96CE07CD20273DD46BF325 /* main.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.rs; sourceTree = ""; }; + 1C1AB1B414CA2795AFBEDDB9 /* tray.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = tray.rs; sourceTree = ""; }; 248286BAA086BB1A5F98B2B2 /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = ""; }; 2F63E2AA460089BB58D40C79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 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; }; 4B2D1B108AE002010BDEC6D2 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 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; }; 6B7E79E23E646BA7968B457C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 71EB788DE4662CFC0D97F567 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 74A8FDFB350B966F5AAD4A24 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; - 785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = ""; }; + 785D025E9542F7E098BF22B5 /* lib.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = lib.rs; sourceTree = ""; }; 879941AE3DAA14534BBC6391 /* api_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = api_iOS.entitlements; sourceTree = ""; }; 90D3B673AFAB8D8AB561F616 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; B6082E363D51372A7658C351 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; DC377692DC31A070A0188C9D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; EC8C7948C50C3C9B5D96CB61 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; }; - F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; path = cmd.rs; sourceTree = ""; }; + F835F52713CE8F029D5D252C /* cmd.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = cmd.rs; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -104,7 +104,7 @@ 4AC51E67B71E27F15B02C5CD /* Products */ = { isa = PBXGroup; children = ( - 5AC703CEBA41A121596066F3 /* api_iOS.app */, + 5AC703CEBA41A121596066F3 /* Tauri API.app */, ); name = Products; sourceTree = ""; @@ -172,7 +172,7 @@ ); name = api_iOS; productName = api_iOS; - productReference = 5AC703CEBA41A121596066F3 /* api_iOS.app */; + productReference = 5AC703CEBA41A121596066F3 /* Tauri API.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -386,6 +386,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Q93MBH6S2F; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64"; @@ -395,19 +396,37 @@ "\".\"", ); INFOPLIST_FILE = api_iOS/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "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)"; + "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = ( + "$(inherited)", + "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)", + "$(SDKROOT)/usr/lib/swift", + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)", + ); + "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_NAME = "Tauri API"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 arm64-sim"; - CODE_SIGN_STYLE = Automatic; }; name = debug; }; @@ -422,6 +441,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = api_iOS/api_iOS.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Q93MBH6S2F; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64"; @@ -431,19 +451,37 @@ "\".\"", ); INFOPLIST_FILE = api_iOS/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "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)"; + "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = ( + "$(inherited)", + "$(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION)", + "$(SDKROOT)/usr/lib/swift", + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)", + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)", + ); + "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_NAME = "Tauri API"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 arm64-sim"; - CODE_SIGN_STYLE = Automatic; }; name = release; }; diff --git a/examples/api/src-tauri/gen/apple/api_iOS/Info.plist b/examples/api/src-tauri/gen/apple/api_iOS/Info.plist index 319665905..46a5c04cc 100644 --- a/examples/api/src-tauri/gen/apple/api_iOS/Info.plist +++ b/examples/api/src-tauri/gen/apple/api_iOS/Info.plist @@ -46,5 +46,7 @@ Request camera access for WebRTC NSMicrophoneUsageDescription Request microphone access for WebRTC + NFCReaderUsageDescription + Read and write to NFC tags for testing \ No newline at end of file diff --git a/examples/api/src-tauri/gen/apple/api_iOS/api_iOS.entitlements b/examples/api/src-tauri/gen/apple/api_iOS/api_iOS.entitlements index 0c67376eb..2bb4dee14 100644 --- a/examples/api/src-tauri/gen/apple/api_iOS/api_iOS.entitlements +++ b/examples/api/src-tauri/gen/apple/api_iOS/api_iOS.entitlements @@ -1,5 +1,10 @@ - + + com.apple.developer.nfc.readersession.formats + + TAG + + diff --git a/examples/api/src-tauri/gen/apple/project.yml b/examples/api/src-tauri/gen/apple/project.yml index dad7b6192..9705de239 100644 --- a/examples/api/src-tauri/gen/apple/project.yml +++ b/examples/api/src-tauri/gen/apple/project.yml @@ -2,7 +2,7 @@ name: api options: bundleIdPrefix: com.tauri.api deploymentTarget: - iOS: 13.0 + iOS: 14.0 fileGroups: [../../src] configs: debug: debug diff --git a/examples/api/src-tauri/tauri.conf.json b/examples/api/src-tauri/tauri.conf.json index 9f1852d26..565b17559 100644 --- a/examples/api/src-tauri/tauri.conf.json +++ b/examples/api/src-tauri/tauri.conf.json @@ -100,6 +100,9 @@ } } } + }, + "iOS": { + "minimumSystemVersion": "14.0" } } } From 8c3a6a253d7029d370659d2102f91a458745d345 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Tue, 10 Sep 2024 12:24:03 -0300 Subject: [PATCH 537/643] feat(barcode-scanner): validate missing Info.plist configuration (#1758) --- .changes/barcode-scanner-validate-plist.md | 5 +++++ .../barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changes/barcode-scanner-validate-plist.md diff --git a/.changes/barcode-scanner-validate-plist.md b/.changes/barcode-scanner-validate-plist.md new file mode 100644 index 000000000..70780005b --- /dev/null +++ b/.changes/barcode-scanner-validate-plist.md @@ -0,0 +1,5 @@ +--- +"barcode-scanner": patch +--- + +Validate missing `NSCameraUsageDescription` Info.plist value. diff --git a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift index 7efdc256d..cde8d6807 100644 --- a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift +++ b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift @@ -262,6 +262,13 @@ class BarcodeScannerPlugin: Plugin, AVCaptureMetadataOutputObjectsDelegate { self.invoke = invoke + let entry = Bundle.main.infoDictionary?["NSCameraUsageDescription"] as? String + + if entry == nil || entry?.count == 0 { + invoke.reject("NSCameraUsageDescription is not in the app Info.plist") + return + } + var iOS14min: Bool = false if #available(iOS 14.0, *) { iOS14min = true } if !iOS14min && self.getPermissionState() != "granted" { From 77680f6ed88d5402f37f1ba8ee44879d8730de8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 13:06:48 -0300 Subject: [PATCH 538/643] publish new versions (#1740) Co-authored-by: lucasfernog --- .changes/pre.json | 4 ++++ Cargo.lock | 8 ++++---- examples/api/src-tauri/CHANGELOG.md | 7 +++++++ examples/api/src-tauri/Cargo.toml | 6 +++--- plugins/barcode-scanner/CHANGELOG.md | 5 +++++ plugins/barcode-scanner/Cargo.toml | 2 +- plugins/notification/CHANGELOG.md | 4 ++++ plugins/notification/Cargo.toml | 2 +- plugins/sql/CHANGELOG.md | 4 ++++ plugins/sql/Cargo.toml | 2 +- 10 files changed, 34 insertions(+), 10 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 8c502e0ad..69f22a353 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -2,6 +2,8 @@ "tag": "rc", "changes": [ ".changes/android-dialog-save.md", + ".changes/barcode-dependencies.md", + ".changes/barcode-scanner-validate-plist.md", ".changes/consolidate-permission-state.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", @@ -22,6 +24,7 @@ ".changes/haptics-release.md", ".changes/iife-varname-spacing.md", ".changes/ios-dialog-save.md", + ".changes/notification-body-optional-ios.md", ".changes/notification-permission-type-change.md", ".changes/rc.md", ".changes/remove-target-sdk.md", @@ -29,6 +32,7 @@ ".changes/shell-open-regex-match-string.md", ".changes/shell-regex-match-string.md", ".changes/single-instance-windows-sys.0.59.md", + ".changes/sql-uuid-type.md", ".changes/store-remove-mobile-plugin.md", ".changes/swift-build-older-versions.md", ".changes/tauri-rc-8.md", diff --git a/Cargo.lock b/Cargo.lock index 4c8ec230f..356a17305 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -212,7 +212,7 @@ checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "api" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "log", "serde", @@ -6444,7 +6444,7 @@ dependencies = [ [[package]] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "log", "serde", @@ -6655,7 +6655,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "color-backtrace", "ctor", @@ -6761,7 +6761,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "futures-core", "indexmap 2.5.0", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 8e137128e..f3b7ceac2 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index bed090391..9e8a18498 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -28,7 +28,7 @@ tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.5" tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", ], version = "2.0.0-rc.3" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.3", features = [ +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.4", features = [ "windows7-compat", ] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-rc.1" } @@ -55,7 +55,7 @@ tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", vers tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.3" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] -tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.3" } +tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.4" } tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-rc.3" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-rc.3" } diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index 39727b988..edc837cd4 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-rc.4] + +- [`713c54ef`](https://github.com/tauri-apps/plugins-workspace/commit/713c54ef8365d36afd84585dcabed2fbb751223d) ([#1749](https://github.com/tauri-apps/plugins-workspace/pull/1749) by [@olivierlemasle](https://github.com/tauri-apps/plugins-workspace/../../olivierlemasle)) Remove unused Android dependencies. +- [`8c3a6a25`](https://github.com/tauri-apps/plugins-workspace/commit/8c3a6a253d7029d370659d2102f91a458745d345) ([#1758](https://github.com/tauri-apps/plugins-workspace/pull/1758) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Validate missing `NSCameraUsageDescription` Info.plist value. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Use `PermissionState` from the `tauri` crate, which now also includes a "prompt with rationale" variant for Android (returned when your app must explain to the user why it needs the permission). diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index fde3a2f76..5992f8525 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS" edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index 3ec2a21b2..a13d65f17 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.4] + +- [`3d301c65`](https://github.com/tauri-apps/plugins-workspace/commit/3d301c654e6f5e7f343e0e0cbb57648002e98f04) ([#1737](https://github.com/tauri-apps/plugins-workspace/pull/1737) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) The notification body is now optional on iOS to match the other platforms. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Use `PermissionState` from the `tauri` crate, which now also includes a "prompt with rationale" variant for Android (returned when your app must explain to the user why it needs the permission). diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index 0ab0b76c0..da6fc5eb8 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 609743bcd..1d5fd993d 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`0dd97d91`](https://github.com/tauri-apps/plugins-workspace/commit/0dd97d911569cdedab07f504b708036d62ff83c1) ([#1375](https://github.com/tauri-apps/plugins-workspace/pull/1375) by [@KauanCurbani](https://github.com/tauri-apps/plugins-workspace/../../KauanCurbani)) Added support for `UUID` columns to the postgres implementation. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 5c9f6b95d..dba0c4332 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } From 64a6240f79fcd52267c8d721b727ae695055d7ff Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Tue, 10 Sep 2024 16:00:42 -0300 Subject: [PATCH 539/643] feat(deep-link): implement getCurrent on Windows/Linux (#1759) * feat(deep-link): implement getCurrent on Windows/Linux checks std::env::args() on initialization, also includes integration with the single-instance plugin * fmt * update docs, fix event * add register_all function * expose api * be nicer on docs, clippy --- .changes/config.json | 3 +- .changes/deep-link-get-current-desktop.md | 5 + .changes/deep-link-register-all.md | 5 + .changes/single-instance-deep-link.md | 5 + Cargo.lock | 2 + plugins/deep-link/examples/app/.gitignore | 2 + .../examples/app/src-tauri/Cargo.toml | 1 + .../examples/app/src-tauri/src/lib.rs | 13 +++ .../examples/app/src-tauri/tauri.conf.json | 9 +- plugins/deep-link/src/config.rs | 29 ++++- plugins/deep-link/src/lib.rs | 110 +++++++++++++++--- plugins/single-instance/Cargo.toml | 1 + plugins/single-instance/src/lib.rs | 10 +- 13 files changed, 171 insertions(+), 24 deletions(-) create mode 100644 .changes/deep-link-get-current-desktop.md create mode 100644 .changes/deep-link-register-all.md create mode 100644 .changes/single-instance-deep-link.md diff --git a/.changes/config.json b/.changes/config.json index c0135c1e8..5837be886 100644 --- a/.changes/config.json +++ b/.changes/config.json @@ -268,7 +268,8 @@ }, "single-instance": { "path": "./plugins/single-instance", - "manager": "rust" + "manager": "rust", + "dependencies": ["deep-link"] }, "sql": { "path": "./plugins/sql", diff --git a/.changes/deep-link-get-current-desktop.md b/.changes/deep-link-get-current-desktop.md new file mode 100644 index 000000000..e03fef816 --- /dev/null +++ b/.changes/deep-link-get-current-desktop.md @@ -0,0 +1,5 @@ +--- +"deep-link": patch +--- + +Implement `get_current` on Linux and Windows. diff --git a/.changes/deep-link-register-all.md b/.changes/deep-link-register-all.md new file mode 100644 index 000000000..63edee03c --- /dev/null +++ b/.changes/deep-link-register-all.md @@ -0,0 +1,5 @@ +--- +"deep-link": patch +--- + +Added `register_all` to register all desktop schemes - useful for Linux to not require a formal AppImage installation. diff --git a/.changes/single-instance-deep-link.md b/.changes/single-instance-deep-link.md new file mode 100644 index 000000000..43aac1bf8 --- /dev/null +++ b/.changes/single-instance-deep-link.md @@ -0,0 +1,5 @@ +--- +"single-instance": patch +--- + +Integrate with the deep link plugin out of the box. diff --git a/Cargo.lock b/Cargo.lock index 356a17305..9a5708982 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1534,6 +1534,7 @@ dependencies = [ "tauri-build", "tauri-plugin-deep-link", "tauri-plugin-log", + "tauri-plugin-single-instance", ] [[package]] @@ -6754,6 +6755,7 @@ dependencies = [ "serde", "serde_json", "tauri", + "tauri-plugin-deep-link", "thiserror", "windows-sys 0.59.0", "zbus", diff --git a/plugins/deep-link/examples/app/.gitignore b/plugins/deep-link/examples/app/.gitignore index 251ce6d2b..c9b618642 100644 --- a/plugins/deep-link/examples/app/.gitignore +++ b/plugins/deep-link/examples/app/.gitignore @@ -21,3 +21,5 @@ dist-ssr *.njsproj *.sln *.sw? + +dist/ diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index 05d2319f5..b4139524b 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -22,6 +22,7 @@ serde_json = { workspace = true } tauri = { workspace = true, features = ["wry", "compression"] } tauri-plugin-deep-link = { path = "../../../" } tauri-plugin-log = { path = "../../../../log" } +tauri-plugin-single-instance = { path = "../../../../single-instance" } log = "0.4" [features] diff --git a/plugins/deep-link/examples/app/src-tauri/src/lib.rs b/plugins/deep-link/examples/app/src-tauri/src/lib.rs index c3948d907..4efa6e2a4 100644 --- a/plugins/deep-link/examples/app/src-tauri/src/lib.rs +++ b/plugins/deep-link/examples/app/src-tauri/src/lib.rs @@ -13,6 +13,9 @@ fn greet(name: &str) -> String { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() + .plugin(tauri_plugin_single_instance::init(|_app, argv, _cwd| { + println!("single instance triggered: {argv:?}"); + })) .plugin(tauri_plugin_deep_link::init()) .plugin( tauri_plugin_log::Builder::default() @@ -20,6 +23,16 @@ pub fn run() { .build(), ) .setup(|app| { + // ensure deep links are registered on the system + // this is useful because AppImages requires additional setup to be available in the system + // and calling register() makes the deep links immediately available - without any user input + #[cfg(target_os = "linux")] + { + use tauri_plugin_deep_link::DeepLinkExt; + + app.deep_link().register_all()?; + } + app.listen("deep-link://new-url", |url| { dbg!(url); }); diff --git a/plugins/deep-link/examples/app/src-tauri/tauri.conf.json b/plugins/deep-link/examples/app/src-tauri/tauri.conf.json index 8ce12b266..ac1c292b4 100644 --- a/plugins/deep-link/examples/app/src-tauri/tauri.conf.json +++ b/plugins/deep-link/examples/app/src-tauri/tauri.conf.json @@ -29,8 +29,13 @@ }, "deep-link": { "mobile": [ - { "host": "fabianlars.de", "pathPrefix": ["/intent"] }, - { "host": "tauri.app" } + { + "host": "fabianlars.de", + "pathPrefix": ["/intent"] + }, + { + "host": "tauri.app" + } ], "desktop": { "schemes": ["fabianlars", "my-tauri-app"] diff --git a/plugins/deep-link/src/config.rs b/plugins/deep-link/src/config.rs index 9cd2e66bb..d7bad5b4e 100644 --- a/plugins/deep-link/src/config.rs +++ b/plugins/deep-link/src/config.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Deserializer}; use tauri_utils::config::DeepLinkProtocol; -#[derive(Deserialize)] +#[derive(Deserialize, Clone)] pub struct AssociatedDomain { #[serde(deserialize_with = "deserialize_associated_host")] pub host: String, @@ -29,7 +29,7 @@ where } } -#[derive(Deserialize)] +#[derive(Deserialize, Clone)] pub struct Config { /// Mobile requires `https://` urls. #[serde(default)] @@ -41,7 +41,7 @@ pub struct Config { pub desktop: DesktopProtocol, } -#[derive(Deserialize)] +#[derive(Deserialize, Clone)] #[serde(untagged)] #[allow(unused)] // Used in tauri-bundler pub enum DesktopProtocol { @@ -54,3 +54,26 @@ impl Default for DesktopProtocol { Self::List(Vec::new()) } } + +impl DesktopProtocol { + #[allow(dead_code)] + pub fn contains_scheme(&self, scheme: &String) -> bool { + match self { + Self::One(protocol) => protocol.schemes.contains(scheme), + Self::List(protocols) => protocols + .iter() + .any(|protocol| protocol.schemes.contains(scheme)), + } + } + + #[allow(dead_code)] + pub fn schemes(&self) -> Vec { + match self { + Self::One(protocol) => protocol.schemes.clone(), + Self::List(protocols) => protocols + .iter() + .flat_map(|protocol| protocol.schemes.clone()) + .collect(), + } + } +} diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index 52e37cd1c..4dafde7b3 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use serde::de::DeserializeOwned; use tauri::{ plugin::{Builder, PluginApi, TauriPlugin}, AppHandle, Manager, Runtime, @@ -17,12 +16,14 @@ pub use error::{Error, Result}; #[cfg(target_os = "android")] const PLUGIN_IDENTIFIER: &str = "app.tauri.deep_link"; -fn init_deep_link( +fn init_deep_link( app: &AppHandle, - _api: PluginApi, + api: PluginApi>, ) -> crate::Result> { #[cfg(target_os = "android")] { + let _api = api; + use tauri::{ ipc::{Channel, InvokeResponseBody}, Emitter, @@ -59,11 +60,28 @@ fn init_deep_link( return Ok(DeepLink(handle)); } - #[cfg(not(target_os = "android"))] - Ok(DeepLink { + #[cfg(target_os = "ios")] + return Ok(DeepLink { app: app.clone(), current: Default::default(), - }) + config: api.config().clone(), + }); + + #[cfg(desktop)] + { + let args = std::env::args(); + let current = if let Some(config) = api.config() { + imp::deep_link_from_args(config, args) + } else { + None + }; + + Ok(DeepLink { + app: app.clone(), + current: std::sync::Mutex::new(current.map(|url| vec![url])), + config: api.config().clone(), + }) + } } #[cfg(target_os = "android")] @@ -90,10 +108,6 @@ mod imp { impl DeepLink { /// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link. - /// - /// ## Platform-specific: - /// - /// - **Windows / Linux**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`). pub fn get_current(&self) -> crate::Result>> { self.0 .run_mobile_plugin::("getCurrent", ()) @@ -154,23 +168,87 @@ mod imp { /// Access to the deep-link APIs. pub struct DeepLink { - #[allow(dead_code)] pub(crate) app: AppHandle, - #[allow(dead_code)] pub(crate) current: Mutex>>, + pub(crate) config: Option, + } + + pub(crate) fn deep_link_from_args, I: Iterator>( + config: &crate::config::Config, + mut args: I, + ) -> Option { + if cfg!(windows) || cfg!(target_os = "linux") { + args.next(); // bin name + let arg = args.next(); + + let maybe_deep_link = args.next().is_none(); // single argument + if !maybe_deep_link { + return None; + } + + if let Some(url) = arg.and_then(|arg| arg.as_ref().parse::().ok()) { + if config.desktop.contains_scheme(&url.scheme().to_string()) { + return Some(url); + } else if cfg!(debug_assertions) { + log::warn!("argument {url} does not match any configured deep link scheme; skipping it"); + } + } + } + + None } impl DeepLink { + /// Checks if the provided list of arguments (which should match [`std::env::args`]) + /// contains a deep link argument (for Linux and Windows). + /// + /// On Linux and Windows the deep links trigger a new app instance with the deep link URL as its only argument. + /// + /// This function does what it can to verify if the argument is actually a deep link, though it could also be a regular CLI argument. + /// To enhance its checks, we only match deep links against the schemes defined in the Tauri configuration + /// i.e. dynamic schemes WON'T be processed. + /// + /// This function updates the [`Self::get_current`] value and emits a `deep-link://new-url` event. + #[cfg(desktop)] + pub fn handle_cli_arguments, I: Iterator>(&self, args: I) { + use tauri::Emitter; + + let Some(config) = &self.config else { + return; + }; + + if let Some(url) = deep_link_from_args(config, args) { + let mut current = self.current.lock().unwrap(); + current.replace(vec![url.clone()]); + let _ = self.app.emit("deep-link://new-url", vec![url]); + } + } + /// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link. /// /// ## Platform-specific: /// - /// - **Windows / Linux**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`). + /// - **Windows / Linux**: This function reads the command line arguments and checks if there's only one value, which must be an URL with scheme matching one of the configured values. + /// Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. + /// Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect. pub fn get_current(&self) -> crate::Result>> { - #[cfg(not(any(windows, target_os = "linux")))] return Ok(self.current.lock().unwrap().clone()); - #[cfg(any(windows, target_os = "linux"))] - Err(crate::Error::UnsupportedPlatform) + } + + /// Registers all schemes defined in the configuration file. + /// + /// This is useful to ensure the schemes are registered even if the user did not install the app properly + /// (e.g. an AppImage that was not properly registered with an AppImage launcher). + pub fn register_all(&self) -> crate::Result<()> { + let Some(config) = &self.config else { + return Ok(()); + }; + + for scheme in config.desktop.schemes() { + self.register(scheme)?; + } + + Ok(()) } /// Register the app as the default handler for the specified protocol. diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 5ccd95983..586f698cd 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -19,6 +19,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.3" } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/plugins/single-instance/src/lib.rs b/plugins/single-instance/src/lib.rs index 5d2a5e535..1dc9d61a9 100644 --- a/plugins/single-instance/src/lib.rs +++ b/plugins/single-instance/src/lib.rs @@ -13,6 +13,7 @@ #![cfg(not(any(target_os = "android", target_os = "ios")))] use tauri::{plugin::TauriPlugin, AppHandle, Manager, Runtime}; +use tauri_plugin_deep_link::DeepLink; #[cfg(target_os = "windows")] #[path = "platform_impl/windows.rs"] @@ -31,9 +32,14 @@ pub(crate) type SingleInstanceCallback = dyn FnMut(&AppHandle, Vec, String) + Send + Sync + 'static; pub fn init, Vec, String) + Send + Sync + 'static>( - f: F, + mut f: F, ) -> TauriPlugin { - platform_impl::init(Box::new(f)) + platform_impl::init(Box::new(move |app, args, cwd| { + if let Some(deep_link) = app.try_state::>() { + deep_link.handle_cli_arguments(args.iter()); + } + f(app, args, cwd) + })) } pub fn destroy>(manager: &M) { From 949e2d6c451df0100fea7e62c02224bf45f6cc9b Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Tue, 10 Sep 2024 16:02:38 -0300 Subject: [PATCH 540/643] chore: update docs --- .changes/deep-link-get-current-desktop.md | 1 + plugins/deep-link/guest-js/index.ts | 4 +++- plugins/deep-link/src/lib.rs | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.changes/deep-link-get-current-desktop.md b/.changes/deep-link-get-current-desktop.md index e03fef816..ffc3f83ee 100644 --- a/.changes/deep-link-get-current-desktop.md +++ b/.changes/deep-link-get-current-desktop.md @@ -1,5 +1,6 @@ --- "deep-link": patch +"deep-link-js": patch --- Implement `get_current` on Linux and Windows. diff --git a/plugins/deep-link/guest-js/index.ts b/plugins/deep-link/guest-js/index.ts index e75c9d76c..49afbab75 100644 --- a/plugins/deep-link/guest-js/index.ts +++ b/plugins/deep-link/guest-js/index.ts @@ -14,7 +14,9 @@ import { type UnlistenFn, listen } from '@tauri-apps/api/event' * const urls = await getCurrent(); * ``` * - * #### - **Windows / Linux**: Unsupported. + * #### - **Windows / Linux**: This function reads the command line arguments and checks if there's only one value, which must be an URL with scheme matching one of the configured values. + * Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. + * Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect.. * * @since 2.0.0 */ diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index 4dafde7b3..7b0e827a4 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -108,6 +108,12 @@ mod imp { impl DeepLink { /// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link. + /// + /// ## Platform-specific: + /// + /// - **Windows / Linux**: This function reads the command line arguments and checks if there's only one value, which must be an URL with scheme matching one of the configured values. + /// Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. + /// Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect. pub fn get_current(&self) -> crate::Result>> { self.0 .run_mobile_plugin::("getCurrent", ()) From 253ae66210f3c7eef794508bdcbc3e78420ecd9c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:14:05 -0300 Subject: [PATCH 541/643] publish new versions (#1761) --- .changes/pre.json | 3 +++ Cargo.lock | 4 ++-- plugins/deep-link/CHANGELOG.md | 7 ++++++ plugins/deep-link/Cargo.toml | 2 +- plugins/deep-link/examples/app/CHANGELOG.md | 6 +++++ plugins/deep-link/examples/app/package.json | 4 ++-- plugins/deep-link/package.json | 2 +- plugins/single-instance/CHANGELOG.md | 8 +++++++ plugins/single-instance/Cargo.toml | 4 ++-- pnpm-lock.yaml | 26 +++++++++++---------- 10 files changed, 46 insertions(+), 20 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 69f22a353..1f2983714 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -5,6 +5,8 @@ ".changes/barcode-dependencies.md", ".changes/barcode-scanner-validate-plist.md", ".changes/consolidate-permission-state.md", + ".changes/deep-link-get-current-desktop.md", + ".changes/deep-link-register-all.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", ".changes/fix-deep-link-config.md", @@ -31,6 +33,7 @@ ".changes/resolve-content-uris.md", ".changes/shell-open-regex-match-string.md", ".changes/shell-regex-match-string.md", + ".changes/single-instance-deep-link.md", ".changes/single-instance-windows-sys.0.59.md", ".changes/sql-uuid-type.md", ".changes/store-remove-mobile-plugin.md", diff --git a/Cargo.lock b/Cargo.lock index 9a5708982..095c39cfd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6497,7 +6497,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "dunce", "log", @@ -6748,7 +6748,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "log", "semver", diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index ae6f68fac..e068ba26d 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`64a6240f`](https://github.com/tauri-apps/plugins-workspace/commit/64a6240f79fcd52267c8d721b727ae695055d7ff) ([#1759](https://github.com/tauri-apps/plugins-workspace/pull/1759) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Implement `get_current` on Linux and Windows. + ## \[2.0.0-rc.3] - [`4654591d`](https://github.com/tauri-apps/plugins-workspace/commit/4654591d820403d6fa1a007fd55bb0d85947a6cc) ([#1732](https://github.com/tauri-apps/plugins-workspace/pull/1732) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Allow empty configuration values. @@ -104,3 +108,6 @@ - [`eccd6f9`](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. ithub.com/tauri-apps/plugins-workspace/pull/504)) Initial release. +](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. + commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. + ithub.com/tauri-apps/plugins-workspace/pull/504)) Initial release. diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 196ac3dc3..725947e75 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/deep-link/examples/app/CHANGELOG.md b/plugins/deep-link/examples/app/CHANGELOG.md index 6fdd168d7..14f4fd9bb 100644 --- a/plugins/deep-link/examples/app/CHANGELOG.md +++ b/plugins/deep-link/examples/app/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.1] + +### Dependencies + +- Upgraded to `deep-link-js@2.0.0-rc.2` + ## \[2.0.0-rc.0] ### Dependencies diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 3367d189f..d00d17ff6 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -1,7 +1,7 @@ { "name": "deep-link-example", "private": true, - "version": "2.0.0-rc.0", + "version": "2.0.0-rc.1", "type": "module", "scripts": { "dev": "vite", @@ -11,7 +11,7 @@ }, "dependencies": { "@tauri-apps/api": "2.0.0-rc.4", - "@tauri-apps/plugin-deep-link": "2.0.0-rc.1" + "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { "@tauri-apps/cli": "2.0.0-rc.12", diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index d3986d8b9..11faee2b6 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-deep-link", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "description": "Set your Tauri application as the default handler for an URL", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 88161b97a..ff9bed310 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0-rc.2] + +- [`64a6240f`](https://github.com/tauri-apps/plugins-workspace/commit/64a6240f79fcd52267c8d721b727ae695055d7ff) ([#1759](https://github.com/tauri-apps/plugins-workspace/pull/1759) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Integrate with the deep link plugin out of the box. + +### Dependencies + +- Upgraded to `deep-link@2.0.0-rc.4` + ## \[2.0.0-rc.1] - [`3c52f30e`](https://github.com/tauri-apps/plugins-workspace/commit/3c52f30ea4ec29c51f7021aa7871614d72e43258) ([#1665](https://github.com/tauri-apps/plugins-workspace/pull/1665) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Updated `windows-sys` crate to `0.59` diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 586f698cd..d58a89b8d 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -19,7 +19,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.3" } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4" } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c33d10e3..589faa42e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -176,7 +176,7 @@ importers: specifier: 2.0.0-rc.4 version: 2.0.0-rc.4 '@tauri-apps/plugin-deep-link': - specifier: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 version: link:../.. devDependencies: '@tauri-apps/cli': @@ -2743,9 +2743,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0': + '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2756,9 +2756,10 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/changelog@0.12.0': + '@covector/changelog@0.12.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2768,14 +2769,16 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/command@0.8.0': + '@covector/command@0.8.0(mocha@10.7.3)': dependencies: - '@effection/process': 2.1.4 + '@effection/process': 2.1.4(mocha@10.7.3) effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding + - mocha '@covector/files@0.8.0': dependencies: @@ -2822,10 +2825,8 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 - transitivePeerDependencies: - - encoding - '@effection/process@2.1.4': + '@effection/process@2.1.4(mocha@10.7.3)': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2833,6 +2834,7 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding + - mocha '@effection/stream@2.0.6': dependencies: @@ -3678,9 +3680,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0 - '@covector/changelog': 0.12.0 - '@covector/command': 0.8.0 + '@covector/assemble': 0.12.0(mocha@10.7.3) + '@covector/changelog': 0.12.0(mocha@10.7.3) + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From 3715f3c9a64d7a0b96696c96a0d1646a576556bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 09:12:13 +0800 Subject: [PATCH 542/643] chore(deps): update tauri monorepo (#1760) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 32 ++--- Cargo.toml | 8 +- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 130 +++++++++--------- 8 files changed, 89 insertions(+), 91 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 095c39cfd..9d09e930c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6297,9 +6297,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6327f79726c508efbbc3826b343fd7d39ebce786bdeff5881077b35d335d9e0" +checksum = "4f60dc86a0513f775a6515d79cf2a54ce38f2fa7225e0c5b9d5ae8241e599afa" dependencies = [ "anyhow", "bytes", @@ -6350,9 +6350,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7938a610d1474435fa38dfba66c95ce9be7f17b500672b6e00072bca5e52fef3" +checksum = "f9d6fc774b19bedadd547b0310fbdbfadbc7546978eccd6d3e389be7cabc437a" dependencies = [ "anyhow", "cargo_toml", @@ -6374,9 +6374,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d3e95b57c860bea13b7c812820d9e7425e4b700e5e69b358d906f22022007" +checksum = "d14af7a85713898cb8a6be3ece89eb1c39392d8756dd1cc0309ebd6fdc966eb3" dependencies = [ "base64 0.22.1", "brotli", @@ -6401,9 +6401,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.8" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4585a906bd96bf57d063c3d60c52577ccc5de592d08f9d112e873ada79af9b9" +checksum = "b9f698301cd7297a7876bb81181a830d40d401461eb14fdaf7ae189b1b56ef76" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6415,9 +6415,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b905ecef194245bb35baba0447703f9fe40e4c03e946c7aba54c21c23e3452c7" +checksum = "ad2b0b4fe684059a1b700c1a0d7d51698c05b2257ca64eca2a730d7be2e47c6a" dependencies = [ "anyhow", "glob", @@ -6888,9 +6888,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72cd110a6699ef44963504d4fa4f6c535677bb0177da2d178f4f822a53058ed" +checksum = "6a0758dce4f9e08ebeee877d84de0062859495507e1d16f647f97b29f881b43d" dependencies = [ "dpi", "gtk", @@ -6907,9 +6907,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eb325cca17496ccbb469e7e2fef7f3e31a1005ab0c658dc3331c7781a573401" +checksum = "78dd7f77e769630da5d91a55e4f102a84ff9c5a99c71e1b5c916a18b5ccafc16" dependencies = [ "cocoa 0.26.0", "gtk", @@ -6931,9 +6931,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6746b87c4755f493b94920622e245aef2d771f001ddeffc203e315872d323e1c" +checksum = "ba92ad9cdf7658fefa29a7218dda0acead9400c021bbf9c3f88e98f5e3b9bbab" dependencies = [ "aes-gcm", "brotli", diff --git a/Cargo.toml b/Cargo.toml index 2e1ecc21d..60362bbea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.10", default-features = false } -tauri-build = "2.0.0-rc.9" -tauri-plugin = "2.0.0-rc.9" -tauri-utils = "2.0.0-rc.9" +tauri = { version = "2.0.0-rc.11", default-features = false } +tauri-build = "2.0.0-rc.10" +tauri-plugin = "2.0.0-rc.10" +tauri-utils = "2.0.0-rc.10" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index 055b9c2a6..c96e879a1 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.12", + "@tauri-apps/cli": "2.0.0-rc.13", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index d00d17ff6..7febcae92 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.12", + "@tauri-apps/cli": "2.0.0-rc.13", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index c12e3b8ea..56716752d 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.12" + "@tauri-apps/cli": "2.0.0-rc.13" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 053f96481..867def04f 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.12", + "@tauri-apps/cli": "2.0.0-rc.13", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 15f7d2ea2..ed4367c33 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.12", + "@tauri-apps/cli": "2.0.0-rc.13", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 589faa42e..303fccf04 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -119,8 +119,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) '@tauri-apps/cli': - specifier: 2.0.0-rc.12 - version: 2.0.0-rc.12 + specifier: 2.0.0-rc.13 + version: 2.0.0-rc.13 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.3 @@ -180,8 +180,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.12 - version: 2.0.0-rc.12 + specifier: 2.0.0-rc.13 + version: 2.0.0-rc.13 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -270,8 +270,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.12 - version: 2.0.0-rc.12 + specifier: 2.0.0-rc.13 + version: 2.0.0-rc.13 plugins/sql: dependencies: @@ -288,8 +288,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.12 - version: 2.0.0-rc.12 + specifier: 2.0.0-rc.13 + version: 2.0.0-rc.13 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -328,8 +328,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.12 - version: 2.0.0-rc.12 + specifier: 2.0.0-rc.13 + version: 2.0.0-rc.13 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -1054,68 +1054,68 @@ packages: '@tauri-apps/api@2.0.0-rc.4': resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.12': - resolution: {integrity: sha512-zYxcAH4reyqKkqCAybggszFWkBvC+ZyZPTWFKXXVQ20MZc1q+e/0UJYC8UKsaumrbi1uptgamvnM8yql56x5QQ==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.13': + resolution: {integrity: sha512-j2BTeqq0b5073SUr5jLUGWwmQ0Q7/T1uXQZd0hLynYgbL6ZR83afex2ct7i50Qui03er49188EoBWy3vDE/9Kg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.12': - resolution: {integrity: sha512-eme7pQzEzeGCk13V3uxUNRnkVZJukqwHotqEb2RdovXqJWSyESrighBy4PBG5Xn6wNYTOyoquY9+In4TOfJAzw==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.13': + resolution: {integrity: sha512-xj9O2G2aC4XdQtNefJRlk3M+mLchHphefMpkmhxAeeHIFspt24Cr15WO4FnUF/BcSkpIt1Pxdy3XTISECzx3eA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.12': - resolution: {integrity: sha512-113T2NsLeoy6GXsqc0yjMoozt+KXzkAtUB7DL9Kcvx9IMfA87cUVaTNjnb2GFsoQqpCWGfHei3nr9n1PGEbwMg==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.13': + resolution: {integrity: sha512-n/moJC9pP1qDrqxgi825jjlubCQVRQ3D9VVriFaFOJ0mO4uPy+RTf27HLHWxe0MCk92Kxox2v3wzuDF5ldfy3A==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.12': - resolution: {integrity: sha512-9TrUyNg0vmsYF7IbG+/sybEeiz6ikA1Kjd6JjC4iwfXjRff8fuTR7CIOb06imabxbLzGP79qSAnGAeTXz8E7qA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.13': + resolution: {integrity: sha512-dFIqAADRGjEiS4aTe02ZmVLXmrV/9b6K2vF3I+N/zaBLHQvfRiGfyooXr4EsmyHmen2hHWErUcHe27g17eB4pA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.12': - resolution: {integrity: sha512-YvE40+wdkNcXhwUAJNPyhNzJ8YS3saJoxGj7mtNQeNeNrKhxyj6hA5T6gw9KtMkwBOp+HGtqn+eDXiu0X7BBHQ==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.13': + resolution: {integrity: sha512-wc3lJNHfFB7ipux582i490h3uniGq2VakRZGvAIJXsUEWR4t4wcd2t77EXW1eaQMLA5UyiZJ7V3o7NiUJ5q0Hw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.12': - resolution: {integrity: sha512-q+MJp/lSA5WINs78dCFMlU0/jQeUkGr9GHbKeppcVcpkcY/1vog70b4KhneyvbuklKBn/V8kd0FtIKCn8VP+KQ==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.13': + resolution: {integrity: sha512-gC2Bmzqnb0R2lHgZ2tqwXJwaohz/kIBhmg1i+4UtNqJHNk96FSdWOPBX2fjvJsclks6WbI4u6y53jFFe9gzu4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.12': - resolution: {integrity: sha512-5zodtleH2GFsB9lszDYrzPTLcr+MMqtpQpJWHATC1K03bLEA8ia8zSdBqRwm7u8NraMLl8TE7hc7hwq0uxGEcg==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.13': + resolution: {integrity: sha512-lh8qZ4UCt3314LPQgO6GxNtlsZs6M9yvUz6TmHo0SPfxQp4iiRVF/g032Bc1QUZEj7LUtvo9psyWRbzRA660/Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.12': - resolution: {integrity: sha512-nSu6VHpuq61DYM2YowLDLDwkK8im7dzYxIHXs+h8/rhkmadTujGhbyUhHPI1STA6hNyITUtSFpo6P2mEbfpAIg==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.13': + resolution: {integrity: sha512-09kTW5EPB1Q/Vnnnqu5v32UcPOjaA/+hey7fG1zIvNjjI4C0SZewvlPpffVpn9CQf9HTeBjPFFcadUu5pfFKAg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.12': - resolution: {integrity: sha512-d/4y57OisMuB+MUkTpZsryQRi9ZQXQ8SsMhrvEgu8sbX8/WRm0iZyGuIZ01RlZZHLIasXbKTkPX+hPQC5Juk8Q==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.13': + resolution: {integrity: sha512-LCSeYLqtcNGIax1GD+ss1JbMDN02Xv2Yg6J54exE7xYG8POD5kS6ZRYxpPeKOSr/tAA6OHBb0EOiZyq4T+mn1g==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.12': - resolution: {integrity: sha512-RsPUvsbFza03ysh0nU2nM3P2CVWz9cu7CRHwOEdtXjWWNREHUYCaVpqQKz0tn2sG19yXiNIB40iqrIBUmb/IoA==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.13': + resolution: {integrity: sha512-lx0QS0pb0jP94k0nzAjd4IdKbchamC0jpfwQ5V0wW7DcW9e2EVGM0HIpQSh2hJgY5M2DBx+ZDnehvzeBxxz3BA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.12': - resolution: {integrity: sha512-rNcVSyGHGz8vNk542isYKPk5fEMAsgmzER+1s9YYbGZCH7m4e0rH89p/P9W40I/Z4AZk4ZqjpEeajeS5izDI4g==} + '@tauri-apps/cli@2.0.0-rc.13': + resolution: {integrity: sha512-Pqn7uqMu3C2X1vnP//dU5TDaE6/PIFH5cbl2FjZiVJErKsjhlIbZMFzrWJTSSBTAK42ZxiEAh+dfw2erTBTjrQ==} engines: {node: '>= 10'} hasBin: true @@ -2743,9 +2743,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0(mocha@10.7.3)': + '@covector/assemble@0.12.0': dependencies: - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2756,10 +2756,9 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/changelog@0.12.0(mocha@10.7.3)': + '@covector/changelog@0.12.0': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2769,16 +2768,14 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/command@0.8.0(mocha@10.7.3)': + '@covector/command@0.8.0': dependencies: - '@effection/process': 2.1.4(mocha@10.7.3) + '@effection/process': 2.1.4 effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding - - mocha '@covector/files@0.8.0': dependencies: @@ -2825,8 +2822,10 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 + transitivePeerDependencies: + - encoding - '@effection/process@2.1.4(mocha@10.7.3)': + '@effection/process@2.1.4': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2834,7 +2833,6 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding - - mocha '@effection/stream@2.0.6': dependencies: @@ -3194,48 +3192,48 @@ snapshots: '@tauri-apps/api@2.0.0-rc.4': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.12': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.13': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.12': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.13': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.12': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.13': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.12': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.13': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.12': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.13': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.12': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.13': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.12': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.13': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.12': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.13': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.12': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.13': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.12': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.13': optional: true - '@tauri-apps/cli@2.0.0-rc.12': + '@tauri-apps/cli@2.0.0-rc.13': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.12 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.12 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.12 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.12 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.12 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.12 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.12 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.12 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.12 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.12 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.13 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.13 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.13 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.13 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.13 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.13 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.13 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.13 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.13 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.13 '@types/eslint@9.6.1': dependencies: @@ -3680,9 +3678,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0(mocha@10.7.3) - '@covector/changelog': 0.12.0(mocha@10.7.3) - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/assemble': 0.12.0 + '@covector/changelog': 0.12.0 + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From 9291e4d2caa31c883c71e55f2193bd8754d72f03 Mon Sep 17 00:00:00 2001 From: SRutile <90175199+SRutile@users.noreply.github.com> Date: Wed, 11 Sep 2024 23:02:24 +0800 Subject: [PATCH 543/643] fix(fs): support any UTF-8 path in writeFile (#1640) * In the `writeFile` function, when `options.baseDir` is not set, convert `path` to URL to avoid errors caused by Chinese characters. * fmt * use TextEncoder * use percent encoding * add change file * fmt --------- Co-authored-by: Lucas Nogueira --- .changes/fs-write-file-utf8-chars.md | 5 +++++ Cargo.lock | 1 + plugins/fs/Cargo.toml | 1 + plugins/fs/api-iife.js | 2 +- plugins/fs/guest-js/index.ts | 2 +- plugins/fs/src/commands.rs | 7 ++++--- 6 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .changes/fs-write-file-utf8-chars.md diff --git a/.changes/fs-write-file-utf8-chars.md b/.changes/fs-write-file-utf8-chars.md new file mode 100644 index 000000000..805439ff9 --- /dev/null +++ b/.changes/fs-write-file-utf8-chars.md @@ -0,0 +1,5 @@ +--- +"fs": patch +--- + +Support any UTF-8 character in the writeFile API. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 9d09e930c..0423f38be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6538,6 +6538,7 @@ dependencies = [ "glob", "notify", "notify-debouncer-full", + "percent-encoding", "schemars", "serde", "serde_json", diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index fcdeac80b..9beb7843f 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -31,6 +31,7 @@ glob = "0.3" notify = { version = "6", optional = true, features = ["serde"] } notify-debouncer-full = { version = "0.3", optional = true } dunce = { workspace = true } +percent-encoding = "2" [features] watch = ["notify", "notify-debouncer-full"] diff --git a/plugins/fs/api-iife.js b/plugins/fs/api-iife.js index e3efe2e7a..b855277dd 100644 --- a/plugins/fs/api-iife.js +++ b/plugins/fs/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return await l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){await l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return await l("plugin:fs|write",{rid:this.rid,data:t})}}async function h(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=w,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return n instanceof ArrayBuffer?new Uint8Array(n):Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return await Promise.resolve({path:n,rid:null,async next(){null===this.rid&&(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:t instanceof URL?t.toString():t,options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return await l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){await l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return await l("plugin:fs|write",{rid:this.rid,data:t})}}async function h(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=w,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return n instanceof ArrayBuffer?new Uint8Array(n):Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return await Promise.resolve({path:n,rid:null,async next(){null===this.rid&&(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index bfc018afb..da5aad90b 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -1015,7 +1015,7 @@ async function writeFile( await invoke('plugin:fs|write_file', data, { headers: { - path: path instanceof URL ? path.toString() : path, + path: encodeURIComponent(path instanceof URL ? path.toString() : path), options: JSON.stringify(options) } }) diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index b72e3b3f5..8f7a9ac0f 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -855,10 +855,11 @@ pub async fn write_file( .get("path") .ok_or_else(|| anyhow::anyhow!("missing file path").into()) .and_then(|p| { - p.to_str() - .map_err(|e| anyhow::anyhow!("invalid path: {e}").into()) + percent_encoding::percent_decode(p.as_ref()) + .decode_utf8() + .map_err(|_| anyhow::anyhow!("path is not a valid UTF-8").into()) }) - .and_then(|p| SafeFilePath::from_str(p).map_err(CommandError::from))?; + .and_then(|p| SafeFilePath::from_str(&p).map_err(CommandError::from))?; let options = request .headers() .get("options") From 41afcae399acc30720a05ab41d73423a56899e6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:01:38 +0200 Subject: [PATCH 544/643] chore(deps): update dependency rollup to v4.21.3 (v2) (#1767) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 188 ++++++++++++++++++++++++------------------------- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index 464d4a3de..abacb0bae 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", - "rollup": "4.21.2", + "rollup": "4.21.3", "tslib": "2.7.0", "typescript": "5.6.2", "typescript-eslint": "8.5.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 303fccf04..b169b78f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,13 +17,13 @@ importers: version: 9.10.0 '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.21.2) + version: 15.2.3(rollup@4.21.3) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.21.2) + version: 0.4.4(rollup@4.21.3) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.6.2) + version: 11.1.6(rollup@4.21.3)(tslib@2.7.0)(typescript@5.6.2) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -43,8 +43,8 @@ importers: specifier: 3.3.3 version: 3.3.3 rollup: - specifier: 4.21.2 - version: 4.21.2 + specifier: 4.21.3 + version: 4.21.3 tslib: specifier: 2.7.0 version: 2.7.0 @@ -129,7 +129,7 @@ importers: version: 4.2.19 unocss: specifier: ^0.62.0 - version: 0.62.3(postcss@8.4.45)(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) + version: 0.62.3(postcss@8.4.45)(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) vite: specifier: ^5.0.13 version: 5.4.3(terser@5.31.6) @@ -956,83 +956,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.2': - resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} + '@rollup/rollup-android-arm-eabi@4.21.3': + resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.2': - resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} + '@rollup/rollup-android-arm64@4.21.3': + resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.2': - resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} + '@rollup/rollup-darwin-arm64@4.21.3': + resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.2': - resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} + '@rollup/rollup-darwin-x64@4.21.3': + resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.2': - resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.2': - resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} + '@rollup/rollup-linux-arm-musleabihf@4.21.3': + resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.2': - resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} + '@rollup/rollup-linux-arm64-gnu@4.21.3': + resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.2': - resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} + '@rollup/rollup-linux-arm64-musl@4.21.3': + resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': - resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.2': - resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} + '@rollup/rollup-linux-riscv64-gnu@4.21.3': + resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.2': - resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} + '@rollup/rollup-linux-s390x-gnu@4.21.3': + resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.2': - resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} + '@rollup/rollup-linux-x64-gnu@4.21.3': + resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.2': - resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} + '@rollup/rollup-linux-x64-musl@4.21.3': + resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.2': - resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} + '@rollup/rollup-win32-arm64-msvc@4.21.3': + resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.2': - resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} + '@rollup/rollup-win32-ia32-msvc@4.21.3': + resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.2': - resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} + '@rollup/rollup-win32-x64-msvc@4.21.3': + resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==} cpu: [x64] os: [win32] @@ -2174,8 +2174,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.21.2: - resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} + rollup@4.21.3: + resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3083,88 +3083,88 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.2)': + '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.3)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.0(rollup@4.21.3) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.21.2 + rollup: 4.21.3 - '@rollup/plugin-terser@0.4.4(rollup@4.21.2)': + '@rollup/plugin-terser@0.4.4(rollup@4.21.3)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.31.6 optionalDependencies: - rollup: 4.21.2 + rollup: 4.21.3 - '@rollup/plugin-typescript@11.1.6(rollup@4.21.2)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.21.3)(tslib@2.7.0)(typescript@5.6.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.0(rollup@4.21.3) resolve: 1.22.8 typescript: 5.6.2 optionalDependencies: - rollup: 4.21.2 + rollup: 4.21.3 tslib: 2.7.0 - '@rollup/pluginutils@5.1.0(rollup@4.21.2)': + '@rollup/pluginutils@5.1.0(rollup@4.21.3)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.2 + rollup: 4.21.3 - '@rollup/rollup-android-arm-eabi@4.21.2': + '@rollup/rollup-android-arm-eabi@4.21.3': optional: true - '@rollup/rollup-android-arm64@4.21.2': + '@rollup/rollup-android-arm64@4.21.3': optional: true - '@rollup/rollup-darwin-arm64@4.21.2': + '@rollup/rollup-darwin-arm64@4.21.3': optional: true - '@rollup/rollup-darwin-x64@4.21.2': + '@rollup/rollup-darwin-x64@4.21.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.2': + '@rollup/rollup-linux-arm-musleabihf@4.21.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.2': + '@rollup/rollup-linux-arm64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.2': + '@rollup/rollup-linux-arm64-musl@4.21.3': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.2': + '@rollup/rollup-linux-riscv64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.2': + '@rollup/rollup-linux-s390x-gnu@4.21.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.2': + '@rollup/rollup-linux-x64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-x64-musl@4.21.2': + '@rollup/rollup-linux-x64-musl@4.21.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.2': + '@rollup/rollup-win32-arm64-msvc@4.21.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.2': + '@rollup/rollup-win32-ia32-msvc@4.21.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.2': + '@rollup/rollup-win32-x64-msvc@4.21.3': optional: true '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': @@ -3337,21 +3337,21 @@ snapshots: '@typescript-eslint/types': 8.5.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6))': + '@unocss/astro@0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6))': dependencies: '@unocss/core': 0.62.3 '@unocss/reset': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.62.3(rollup@4.21.2)': + '@unocss/cli@0.62.3(rollup@4.21.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.0(rollup@4.21.3) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/preset-uno': 0.62.3 @@ -3482,10 +3482,10 @@ snapshots: dependencies: '@unocss/core': 0.62.3 - '@unocss/vite@0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6))': + '@unocss/vite@0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6))': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.0(rollup@4.21.3) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/inspector': 0.62.3 @@ -4431,26 +4431,26 @@ snapshots: reusify@1.0.4: {} - rollup@4.21.2: + rollup@4.21.3: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.2 - '@rollup/rollup-android-arm64': 4.21.2 - '@rollup/rollup-darwin-arm64': 4.21.2 - '@rollup/rollup-darwin-x64': 4.21.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 - '@rollup/rollup-linux-arm-musleabihf': 4.21.2 - '@rollup/rollup-linux-arm64-gnu': 4.21.2 - '@rollup/rollup-linux-arm64-musl': 4.21.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 - '@rollup/rollup-linux-riscv64-gnu': 4.21.2 - '@rollup/rollup-linux-s390x-gnu': 4.21.2 - '@rollup/rollup-linux-x64-gnu': 4.21.2 - '@rollup/rollup-linux-x64-musl': 4.21.2 - '@rollup/rollup-win32-arm64-msvc': 4.21.2 - '@rollup/rollup-win32-ia32-msvc': 4.21.2 - '@rollup/rollup-win32-x64-msvc': 4.21.2 + '@rollup/rollup-android-arm-eabi': 4.21.3 + '@rollup/rollup-android-arm64': 4.21.3 + '@rollup/rollup-darwin-arm64': 4.21.3 + '@rollup/rollup-darwin-x64': 4.21.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 + '@rollup/rollup-linux-arm-musleabihf': 4.21.3 + '@rollup/rollup-linux-arm64-gnu': 4.21.3 + '@rollup/rollup-linux-arm64-musl': 4.21.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 + '@rollup/rollup-linux-riscv64-gnu': 4.21.3 + '@rollup/rollup-linux-s390x-gnu': 4.21.3 + '@rollup/rollup-linux-x64-gnu': 4.21.3 + '@rollup/rollup-linux-x64-musl': 4.21.3 + '@rollup/rollup-win32-arm64-msvc': 4.21.3 + '@rollup/rollup-win32-ia32-msvc': 4.21.3 + '@rollup/rollup-win32-x64-msvc': 4.21.3 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4649,10 +4649,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.62.3(postcss@8.4.45)(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)): + unocss@0.62.3(postcss@8.4.45)(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)): dependencies: - '@unocss/astro': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) - '@unocss/cli': 0.62.3(rollup@4.21.2) + '@unocss/astro': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) + '@unocss/cli': 0.62.3(rollup@4.21.3) '@unocss/core': 0.62.3 '@unocss/extractor-arbitrary-variants': 0.62.3 '@unocss/postcss': 0.62.3(postcss@8.4.45) @@ -4670,7 +4670,7 @@ snapshots: '@unocss/transformer-compile-class': 0.62.3 '@unocss/transformer-directives': 0.62.3 '@unocss/transformer-variant-group': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.21.2)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: @@ -4704,7 +4704,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.45 - rollup: 4.21.2 + rollup: 4.21.3 optionalDependencies: fsevents: 2.3.3 terser: 5.31.6 From b2269333e39afe32629a11763a8e25d0b12b132b Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:20:15 +0800 Subject: [PATCH 545/643] chore(single-instance): put deep link integration behined a feature (#1766) * Make deep link optional for single instance * Add change file * Add deep-link feature to example * Update plugins/deep-link/README.md Co-authored-by: Fabian-Lars * format * [skip ci] update readme --------- Co-authored-by: Fabian-Lars --- .changes/single-instance-optional-deep-link.md | 5 +++++ plugins/deep-link/README.md | 2 +- plugins/deep-link/examples/app/src-tauri/Cargo.toml | 4 +++- plugins/deep-link/examples/app/src-tauri/src/lib.rs | 2 +- plugins/single-instance/Cargo.toml | 3 ++- plugins/single-instance/README.md | 6 ++++-- plugins/single-instance/src/lib.rs | 4 ++-- 7 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 .changes/single-instance-optional-deep-link.md diff --git a/.changes/single-instance-optional-deep-link.md b/.changes/single-instance-optional-deep-link.md new file mode 100644 index 000000000..aabf98d11 --- /dev/null +++ b/.changes/single-instance-optional-deep-link.md @@ -0,0 +1,5 @@ +--- +"single-instance": "patch" +--- + +Put deep link integration behined a feature diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index 394f4ece7..e761fa68f 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -145,7 +145,7 @@ await onOpenUrl((urls) => { }) ``` -Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin. +Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin with the `deep-link` feature enabled. ## Contributing diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index b4139524b..57b9180e4 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -22,7 +22,9 @@ serde_json = { workspace = true } tauri = { workspace = true, features = ["wry", "compression"] } tauri-plugin-deep-link = { path = "../../../" } tauri-plugin-log = { path = "../../../../log" } -tauri-plugin-single-instance = { path = "../../../../single-instance" } +tauri-plugin-single-instance = { path = "../../../../single-instance", features = [ + "deep-link", +] } log = "0.4" [features] diff --git a/plugins/deep-link/examples/app/src-tauri/src/lib.rs b/plugins/deep-link/examples/app/src-tauri/src/lib.rs index 4efa6e2a4..f72f28f65 100644 --- a/plugins/deep-link/examples/app/src-tauri/src/lib.rs +++ b/plugins/deep-link/examples/app/src-tauri/src/lib.rs @@ -7,7 +7,7 @@ use tauri::Listener; // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command #[tauri::command] fn greet(name: &str) -> String { - format!("Hello, {}! You've been greeted from Rust!", name) + format!("Hello, {name}! You've been greeted from Rust!") } #[cfg_attr(mobile, tauri::mobile_entry_point)] diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index d58a89b8d..e89b46a16 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -19,7 +19,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4" } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] @@ -39,3 +39,4 @@ zbus = "4" [features] semver = ["dep:semver"] +deep-link = ["dep:tauri-plugin-deep-link"] diff --git a/plugins/single-instance/README.md b/plugins/single-instance/README.md index 3a379634b..bd761018b 100644 --- a/plugins/single-instance/README.md +++ b/plugins/single-instance/README.md @@ -34,8 +34,8 @@ use tauri::{Manager}; #[derive(Clone, serde::Serialize)] struct Payload { - args: Vec, - cwd: String, + args: Vec, + cwd: String, } fn main() { @@ -49,6 +49,8 @@ fn main() { } ``` +Note that currently, plugins run in the order they were added in to the builder, so make sure that this plugin is registered first. + ## Contributing PRs accepted. Please make sure to read the Contributing Guide before making a pull request. diff --git a/plugins/single-instance/src/lib.rs b/plugins/single-instance/src/lib.rs index 1dc9d61a9..ce7815e83 100644 --- a/plugins/single-instance/src/lib.rs +++ b/plugins/single-instance/src/lib.rs @@ -13,7 +13,6 @@ #![cfg(not(any(target_os = "android", target_os = "ios")))] use tauri::{plugin::TauriPlugin, AppHandle, Manager, Runtime}; -use tauri_plugin_deep_link::DeepLink; #[cfg(target_os = "windows")] #[path = "platform_impl/windows.rs"] @@ -35,7 +34,8 @@ pub fn init, Vec, String) + Send + Sy mut f: F, ) -> TauriPlugin { platform_impl::init(Box::new(move |app, args, cwd| { - if let Some(deep_link) = app.try_state::>() { + #[cfg(feature = "deep-link")] + if let Some(deep_link) = app.try_state::>() { deep_link.handle_cli_arguments(args.iter()); } f(app, args, cwd) From 2b898f078688c57309ca17962bf02e665c406514 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 12 Sep 2024 11:10:16 -0300 Subject: [PATCH 546/643] fix(dialog): update asset protocol scope on directory open, closes #1553 (#1769) --- .changes/dialog-asset-scope.md | 5 +++++ plugins/dialog/src/commands.rs | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 .changes/dialog-asset-scope.md diff --git a/.changes/dialog-asset-scope.md b/.changes/dialog-asset-scope.md new file mode 100644 index 000000000..9e2f031ec --- /dev/null +++ b/.changes/dialog-asset-scope.md @@ -0,0 +1,5 @@ +--- +"dialog": patch +--- + +Update Tauri scopes (asset protocol) when using the `open()` command to select directories. diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 76a92e098..8eb5b173b 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -132,14 +132,17 @@ pub(crate) async fn open( let res = if options.directory { #[cfg(desktop)] { + let tauri_scope = window.state::(); + if options.multiple { let folders = dialog_builder.blocking_pick_folders(); if let Some(folders) = &folders { for folder in folders { if let Ok(path) = folder.clone().into_path() { if let Some(s) = window.try_fs_scope() { - s.allow_directory(path, options.recursive); + s.allow_directory(&path, options.recursive); } + tauri_scope.allow_directory(&path, options.directory)?; } } } @@ -151,8 +154,9 @@ pub(crate) async fn open( if let Some(folder) = &folder { if let Ok(path) = folder.clone().into_path() { if let Some(s) = window.try_fs_scope() { - s.allow_directory(path, options.recursive); + s.allow_directory(&path, options.recursive); } + tauri_scope.allow_directory(&path, options.directory)?; } } OpenResponse::Folder(folder.map(|p| p.simplified())) @@ -161,6 +165,8 @@ pub(crate) async fn open( #[cfg(mobile)] return Err(crate::Error::FolderPickerNotImplemented); } else if options.multiple { + let tauri_scope = window.state::(); + let files = dialog_builder.blocking_pick_files(); if let Some(files) = &files { for file in files { @@ -169,12 +175,13 @@ pub(crate) async fn open( s.allow_file(&path); } - window.state::().allow_file(&path)?; + tauri_scope.allow_file(&path)?; } } } OpenResponse::Files(files.map(|files| files.into_iter().map(|f| f.simplified()).collect())) } else { + let tauri_scope = window.state::(); let file = dialog_builder.blocking_pick_file(); if let Some(file) = &file { @@ -182,7 +189,7 @@ pub(crate) async fn open( if let Some(s) = window.try_fs_scope() { s.allow_file(&path); } - window.state::().allow_file(&path)?; + tauri_scope.allow_file(&path)?; } } OpenResponse::File(file.map(|f| f.simplified())) @@ -216,13 +223,15 @@ pub(crate) async fn save( dialog_builder = dialog_builder.add_filter(filter.name, &extensions); } + let tauri_scope = window.state::(); + let path = dialog_builder.blocking_save_file(); if let Some(p) = &path { if let Ok(path) = p.clone().into_path() { if let Some(s) = window.try_fs_scope() { s.allow_file(&path); } - window.state::().allow_file(&path)?; + tauri_scope.allow_file(&path)?; } } From 984110a978774712bad4d746ed06134d54debcd0 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 12 Sep 2024 11:20:16 -0300 Subject: [PATCH 547/643] fix(deep-link): emit new-url event on app load (#1770) --- .changes/deep-link-event.md | 6 ++ .../apple/deep-link-example_iOS/Info.plist | 2 +- .../deep-link-example_iOS.entitlements | 1 - .../examples/app/src-tauri/src/lib.rs | 13 +++- plugins/deep-link/src/lib.rs | 64 ++++++++----------- 5 files changed, 42 insertions(+), 44 deletions(-) create mode 100644 .changes/deep-link-event.md diff --git a/.changes/deep-link-event.md b/.changes/deep-link-event.md new file mode 100644 index 000000000..15d45f049 --- /dev/null +++ b/.changes/deep-link-event.md @@ -0,0 +1,6 @@ +--- +"deep-link": patch +--- + +Emit the `deep-link://new-url` event on Linux and Windows when the app is executed with a deep link CLI argument, +matching the iOS and macOS behavior. diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/Info.plist b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/Info.plist index c658e0ff4..7ce866140 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/Info.plist +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/Info.plist @@ -17,7 +17,7 @@ CFBundleShortVersionString 0.0.0 CFBundleVersion - 0.0.0 + 0.1.0 LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements index 72f5d991b..3216c743b 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements +++ b/plugins/deep-link/examples/app/src-tauri/gen/apple/deep-link-example_iOS/deep-link-example_iOS.entitlements @@ -6,7 +6,6 @@ applinks:fabianlars.de applinks:tauri.app - applinks:91f4-177-23-156-161.ngrok-free.app \ No newline at end of file diff --git a/plugins/deep-link/examples/app/src-tauri/src/lib.rs b/plugins/deep-link/examples/app/src-tauri/src/lib.rs index f72f28f65..eba3f679a 100644 --- a/plugins/deep-link/examples/app/src-tauri/src/lib.rs +++ b/plugins/deep-link/examples/app/src-tauri/src/lib.rs @@ -12,10 +12,17 @@ fn greet(name: &str) -> String { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { - tauri::Builder::default() - .plugin(tauri_plugin_single_instance::init(|_app, argv, _cwd| { + #[allow(unused_mut)] + let mut builder = tauri::Builder::default(); + + #[cfg(desktop)] + { + builder = builder.plugin(tauri_plugin_single_instance::init(|_app, argv, _cwd| { println!("single instance triggered: {argv:?}"); - })) + })); + } + + builder .plugin(tauri_plugin_deep_link::init()) .plugin( tauri_plugin_log::Builder::default() diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index 7b0e827a4..1fff4e441 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -70,17 +70,14 @@ fn init_deep_link( #[cfg(desktop)] { let args = std::env::args(); - let current = if let Some(config) = api.config() { - imp::deep_link_from_args(config, args) - } else { - None - }; - - Ok(DeepLink { + let deep_link = DeepLink { app: app.clone(), - current: std::sync::Mutex::new(current.map(|url| vec![url])), + current: Default::default(), config: api.config().clone(), - }) + }; + deep_link.handle_cli_arguments(args); + + Ok(deep_link) } } @@ -179,31 +176,6 @@ mod imp { pub(crate) config: Option, } - pub(crate) fn deep_link_from_args, I: Iterator>( - config: &crate::config::Config, - mut args: I, - ) -> Option { - if cfg!(windows) || cfg!(target_os = "linux") { - args.next(); // bin name - let arg = args.next(); - - let maybe_deep_link = args.next().is_none(); // single argument - if !maybe_deep_link { - return None; - } - - if let Some(url) = arg.and_then(|arg| arg.as_ref().parse::().ok()) { - if config.desktop.contains_scheme(&url.scheme().to_string()) { - return Some(url); - } else if cfg!(debug_assertions) { - log::warn!("argument {url} does not match any configured deep link scheme; skipping it"); - } - } - } - - None - } - impl DeepLink { /// Checks if the provided list of arguments (which should match [`std::env::args`]) /// contains a deep link argument (for Linux and Windows). @@ -216,17 +188,31 @@ mod imp { /// /// This function updates the [`Self::get_current`] value and emits a `deep-link://new-url` event. #[cfg(desktop)] - pub fn handle_cli_arguments, I: Iterator>(&self, args: I) { + pub fn handle_cli_arguments, I: Iterator>(&self, mut args: I) { use tauri::Emitter; let Some(config) = &self.config else { return; }; - if let Some(url) = deep_link_from_args(config, args) { - let mut current = self.current.lock().unwrap(); - current.replace(vec![url.clone()]); - let _ = self.app.emit("deep-link://new-url", vec![url]); + if cfg!(windows) || cfg!(target_os = "linux") { + args.next(); // bin name + let arg = args.next(); + + let maybe_deep_link = args.next().is_none(); // single argument + if !maybe_deep_link { + return; + } + + if let Some(url) = arg.and_then(|arg| arg.as_ref().parse::().ok()) { + if config.desktop.contains_scheme(&url.scheme().to_string()) { + let mut current = self.current.lock().unwrap(); + current.replace(vec![url.clone()]); + let _ = self.app.emit("deep-link://new-url", vec![url]); + } else if cfg!(debug_assertions) { + log::warn!("argument {url} does not match any configured deep link scheme; skipping it"); + } + } } } From ebf821afd1d211241ca589af30be26bd7b5bba6f Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Thu, 12 Sep 2024 15:32:27 -0300 Subject: [PATCH 548/643] chore(examples): update AndroidManifest.xml --- .../gen/android/app/src/main/AndroidManifest.xml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml index 9324740da..05265e325 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -41,15 +41,6 @@ - - - - - - - - - From 8a45c35160aa0ca36f8f619b4bfbcadc196be2a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:49:29 -0300 Subject: [PATCH 549/643] publish new versions (#1764) Co-authored-by: lucasfernog --- .changes/pre.json | 4 ++++ Cargo.lock | 14 +++++++------- examples/api/src-tauri/CHANGELOG.md | 8 ++++++++ examples/api/src-tauri/Cargo.toml | 8 ++++---- plugins/deep-link/CHANGELOG.md | 7 ++++++- plugins/deep-link/Cargo.toml | 2 +- plugins/dialog/CHANGELOG.md | 8 ++++++++ plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 4 ++++ plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 6 ++++++ plugins/http/Cargo.toml | 4 ++-- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/single-instance/CHANGELOG.md | 8 ++++++++ plugins/single-instance/Cargo.toml | 4 ++-- 16 files changed, 71 insertions(+), 22 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 1f2983714..7ddced33f 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -5,8 +5,10 @@ ".changes/barcode-dependencies.md", ".changes/barcode-scanner-validate-plist.md", ".changes/consolidate-permission-state.md", + ".changes/deep-link-event.md", ".changes/deep-link-get-current-desktop.md", ".changes/deep-link-register-all.md", + ".changes/dialog-asset-scope.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", ".changes/fix-deep-link-config.md", @@ -21,6 +23,7 @@ ".changes/fs-dialog-safe-file-path.md", ".changes/fs-scope-recursive-allow-read-dir.md", ".changes/fs-windows-path.md", + ".changes/fs-write-file-utf8-chars.md", ".changes/geolocation-release.md", ".changes/global-shortcut-0.6.md", ".changes/haptics-release.md", @@ -34,6 +37,7 @@ ".changes/shell-open-regex-match-string.md", ".changes/shell-regex-match-string.md", ".changes/single-instance-deep-link.md", + ".changes/single-instance-optional-deep-link.md", ".changes/single-instance-windows-sys.0.59.md", ".changes/sql-uuid-type.md", ".changes/store-remove-mobile-plugin.md", diff --git a/Cargo.lock b/Cargo.lock index 0423f38be..af2d6eb3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -212,7 +212,7 @@ checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "api" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "log", "serde", @@ -6497,7 +6497,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "dunce", "log", @@ -6515,7 +6515,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "log", "raw-window-handle 0.6.2", @@ -6531,7 +6531,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "anyhow", "dunce", @@ -6591,7 +6591,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "data-url", "http", @@ -6695,7 +6695,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "aho-corasick", "bincode", @@ -6749,7 +6749,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "log", "semver", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index f3b7ceac2..0be241466 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 9e8a18498..7a0bc7712 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,14 +20,14 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.3", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.4", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.3" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.5" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.6" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.3" } +], version = "2.0.0-rc.4" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.4", features = [ "windows7-compat", ] } diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index e068ba26d..e4995138c 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-rc.5] + +- [`984110a9`](https://github.com/tauri-apps/plugins-workspace/commit/984110a978774712bad4d746ed06134d54debcd0) ([#1770](https://github.com/tauri-apps/plugins-workspace/pull/1770) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Emit the `deep-link://new-url` event on Linux and Windows when the app is executed with a deep link CLI argument, + matching the iOS and macOS behavior. + ## \[2.0.0-rc.2] - [`64a6240f`](https://github.com/tauri-apps/plugins-workspace/commit/64a6240f79fcd52267c8d721b727ae695055d7ff) ([#1759](https://github.com/tauri-apps/plugins-workspace/pull/1759) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Implement `get_current` on Linux and Windows. @@ -108,6 +113,6 @@ - [`eccd6f9`](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. ithub.com/tauri-apps/plugins-workspace/pull/504)) Initial release. -](https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. + ]\(https://github.com/tauri-apps/plugins-workspace/commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. commit/eccd6f977af7629255b6f5a5205666c9079a86ed)([#504](https://github.com/tauri-apps/plugins-workspace/pull/504)) Initial release. ithub.com/tauri-apps/plugins-workspace/pull/504)) Initial release. diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 725947e75..bcc436f4f 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 695d5cab1..32e4a96a0 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0-rc.6] + +- [`2b898f07`](https://github.com/tauri-apps/plugins-workspace/commit/2b898f078688c57309ca17962bf02e665c406514) ([#1769](https://github.com/tauri-apps/plugins-workspace/pull/1769) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update Tauri scopes (asset protocol) when using the `open()` command to select directories. + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.4` + ## \[2.0.0-rc.5] - [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add utility methods on `FilePath` and `SafeFilePath` enums which are: diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 813aa2a0d..061f0cdba 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 0e0b0d382..201877369 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.4] + +- [`9291e4d2`](https://github.com/tauri-apps/plugins-workspace/commit/9291e4d2caa31c883c71e55f2193bd8754d72f03) ([#1640](https://github.com/tauri-apps/plugins-workspace/pull/1640) by [@SRutile](https://github.com/tauri-apps/plugins-workspace/../../SRutile)) Support any UTF-8 character in the writeFile API. + ## \[2.0.0-rc.3] - [`a2fe5551`](https://github.com/tauri-apps/plugins-workspace/commit/a2fe55512f908dd11c814ce021d164f01677572a) ([#1727](https://github.com/tauri-apps/plugins-workspace/pull/1727) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add utility methods on `FilePath` and `SafeFilePath` enums which are: diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 9beb7843f..4e335995e 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index e5d168d26..d605ae78e 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.4] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.4` + ## \[2.0.0-rc.3] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 0635f20ca..8591049df 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index da8e79ceb..f42e15074 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.4] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.4` + ## \[2.0.0-rc.3] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 688cbfc87..77dc96ff6 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -20,7 +20,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.3" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index ff9bed310..02d719da8 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0-rc.3] + +- [`b2269333`](https://github.com/tauri-apps/plugins-workspace/commit/b2269333e39afe32629a11763a8e25d0b12b132b) ([#1766](https://github.com/tauri-apps/plugins-workspace/pull/1766) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Put deep link integration behined a feature + +### Dependencies + +- Upgraded to `deep-link@2.0.0-rc.5` + ## \[2.0.0-rc.2] - [`64a6240f`](https://github.com/tauri-apps/plugins-workspace/commit/64a6240f79fcd52267c8d721b727ae695055d7ff) ([#1759](https://github.com/tauri-apps/plugins-workspace/pull/1759) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Integrate with the deep link plugin out of the box. diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index e89b46a16..50b338c3b 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -19,7 +19,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.5", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] From 204e5aacad7e8f99a9a08f4a45cfed83643c1cc0 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Fri, 13 Sep 2024 11:29:38 +0800 Subject: [PATCH 550/643] fix(window-state)!: saving minimized state (#1743) * Fix saving minimized state again * Add change file * Fix saving minimized size * Add change file * Fix missing .md * Remove window-shadows --- .../fix-restore-minimized-window-state.md | 5 ++ .changes/window-state-physical-size.md | 5 ++ Cargo.lock | 84 ++++--------------- examples/api/src-tauri/Cargo.toml | 4 +- .../src-tauri/gen/schemas/desktop-schema.json | 49 +++++++++++ examples/api/src-tauri/src/lib.rs | 5 +- examples/api/src-tauri/tauri.conf.json | 2 +- plugins/window-state/src/lib.rs | 69 +++++++-------- 8 files changed, 118 insertions(+), 105 deletions(-) create mode 100644 .changes/fix-restore-minimized-window-state.md create mode 100644 .changes/window-state-physical-size.md diff --git a/.changes/fix-restore-minimized-window-state.md b/.changes/fix-restore-minimized-window-state.md new file mode 100644 index 000000000..6c673205a --- /dev/null +++ b/.changes/fix-restore-minimized-window-state.md @@ -0,0 +1,5 @@ +--- +"window-state": patch +--- + +Fix can't restore a minimized window's size and position properly diff --git a/.changes/window-state-physical-size.md b/.changes/window-state-physical-size.md new file mode 100644 index 000000000..543b31252 --- /dev/null +++ b/.changes/window-state-physical-size.md @@ -0,0 +1,5 @@ +--- +"window-state": patch:breaking +--- + +Window's size is now stored in physical size instead of logical size diff --git a/Cargo.lock b/Cargo.lock index af2d6eb3b..2eb377299 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,8 +235,8 @@ dependencies = [ "tauri-plugin-shell", "tauri-plugin-store", "tauri-plugin-updater", + "tauri-plugin-window-state", "tiny_http", - "window-shadows", ] [[package]] @@ -1025,22 +1025,6 @@ dependencies = [ "error-code", ] -[[package]] -name = "cocoa" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" -dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation 0.1.2", - "core-foundation 0.9.4", - "core-graphics 0.23.2", - "foreign-types 0.5.0", - "libc", - "objc", -] - [[package]] name = "cocoa" version = "0.26.0" @@ -1049,7 +1033,7 @@ checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.6.0", "block", - "cocoa-foundation 0.2.0", + "cocoa-foundation", "core-foundation 0.10.0", "core-graphics 0.24.0", "foreign-types 0.5.0", @@ -1057,20 +1041,6 @@ dependencies = [ "objc", ] -[[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" -dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation 0.9.4", - "core-graphics-types 0.1.3", - "libc", - "objc", -] - [[package]] name = "cocoa-foundation" version = "0.2.0" @@ -3659,7 +3629,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba8ac4080fb1e097c2c22acae467e46e4da72d941f02e82b67a87a2a89fa38b1" dependencies = [ - "cocoa 0.26.0", + "cocoa", "crossbeam-channel", "dpi", "gtk", @@ -3700,7 +3670,7 @@ dependencies = [ "log", "ndk-sys", "num_enum", - "raw-window-handle 0.6.2", + "raw-window-handle", "thiserror", ] @@ -4824,12 +4794,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - [[package]] name = "raw-window-handle" version = "0.6.2" @@ -5024,7 +4988,7 @@ dependencies = [ "objc", "objc-foundation", "objc_id", - "raw-window-handle 0.6.2", + "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -5711,7 +5675,7 @@ dependencies = [ "objc2", "objc2-foundation", "objc2-quartz-core", - "raw-window-handle 0.6.2", + "raw-window-handle", "redox_syscall", "wasm-bindgen", "web-sys", @@ -6229,7 +6193,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a93f2c6b8fdaeb7f417bda89b5bc767999745c3052969664ae1fa65892deb7e" dependencies = [ "bitflags 2.6.0", - "cocoa 0.26.0", + "cocoa", "core-foundation 0.10.0", "core-graphics 0.24.0", "crossbeam-channel", @@ -6250,7 +6214,7 @@ dependencies = [ "objc", "once_cell", "parking_lot", - "raw-window-handle 0.6.2", + "raw-window-handle", "scopeguard", "tao-macros", "unicode-segmentation", @@ -6303,7 +6267,7 @@ checksum = "4f60dc86a0513f775a6515d79cf2a54ce38f2fa7225e0c5b9d5ae8241e599afa" dependencies = [ "anyhow", "bytes", - "cocoa 0.26.0", + "cocoa", "dirs 5.0.1", "dunce", "embed_plist", @@ -6322,7 +6286,7 @@ dependencies = [ "muda", "objc", "percent-encoding", - "raw-window-handle 0.6.2", + "raw-window-handle", "reqwest", "serde", "serde_json", @@ -6518,7 +6482,7 @@ name = "tauri-plugin-dialog" version = "2.0.0-rc.6" dependencies = [ "log", - "raw-window-handle 0.6.2", + "raw-window-handle", "rfd", "serde", "serde_json", @@ -6628,7 +6592,7 @@ version = "2.0.0-rc.2" dependencies = [ "android_logger", "byte-unit", - "cocoa 0.26.0", + "cocoa", "fern", "log", "objc", @@ -6897,7 +6861,7 @@ dependencies = [ "gtk", "http", "jni", - "raw-window-handle 0.6.2", + "raw-window-handle", "serde", "serde_json", "tauri-utils", @@ -6912,13 +6876,13 @@ version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78dd7f77e769630da5d91a55e4f102a84ff9c5a99c71e1b5c916a18b5ccafc16" dependencies = [ - "cocoa 0.26.0", + "cocoa", "gtk", "http", "jni", "log", "percent-encoding", - "raw-window-handle 0.6.2", + "raw-window-handle", "softbuffer", "tao", "tauri-runtime", @@ -7995,18 +7959,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "window-shadows" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ff424735b1ac21293b0492b069394b0a189c8a463fb015a16dea7c2e221c08" -dependencies = [ - "cocoa 0.25.0", - "objc", - "raw-window-handle 0.5.2", - "windows-sys 0.48.0", -] - [[package]] name = "window-vibrancy" version = "0.5.2" @@ -8016,7 +7968,7 @@ dependencies = [ "objc2", "objc2-app-kit", "objc2-foundation", - "raw-window-handle 0.6.2", + "raw-window-handle", "windows-sys 0.59.0", "windows-version", ] @@ -8469,7 +8421,7 @@ checksum = "f4d715cf5fe88e9647f3d17b207b6d060d4a88e7171d4ccb2d2c657dd1d44728" dependencies = [ "base64 0.22.1", "block", - "cocoa 0.26.0", + "cocoa", "core-graphics 0.24.0", "crossbeam-channel", "dpi", @@ -8487,7 +8439,7 @@ dependencies = [ "objc_id", "once_cell", "percent-encoding", - "raw-window-handle 0.6.2", + "raw-window-handle", "sha2", "soup3", "tao-macros", diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 7a0bc7712..551de3b2d 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -53,14 +53,12 @@ features = [ tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.1" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-rc.2" } tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.3" } +tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0-rc.3" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.4" } tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-rc.3" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-rc.3" } -[target."cfg(target_os = \"windows\")".dependencies] -window-shadows = "0.2" - [features] prod = ["tauri/custom-protocol"] diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index ae9110201..aed6d6306 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -7502,6 +7502,55 @@ "enum": [ "updater:deny-install" ] + }, + { + "description": "window-state:default -> This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "type": "string", + "enum": [ + "window-state:default" + ] + }, + { + "description": "window-state:allow-filename -> Enables the filename command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:allow-filename" + ] + }, + { + "description": "window-state:allow-restore-state -> Enables the restore_state command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:allow-restore-state" + ] + }, + { + "description": "window-state:allow-save-window-state -> Enables the save_window_state command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:allow-save-window-state" + ] + }, + { + "description": "window-state:deny-filename -> Denies the filename command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:deny-filename" + ] + }, + { + "description": "window-state:deny-restore-state -> Denies the restore_state command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:deny-restore-state" + ] + }, + { + "description": "window-state:deny-save-window-state -> Denies the save_window_state command without any pre-configured scope.", + "type": "string", + "enum": [ + "window-state:deny-save-window-state" + ] } ] }, diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index 429054eb1..077e56ea7 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -45,6 +45,8 @@ pub fn run() { app.handle().plugin(tauri_plugin_cli::init())?; app.handle() .plugin(tauri_plugin_global_shortcut::Builder::new().build())?; + app.handle() + .plugin(tauri_plugin_window_state::Builder::new().build())?; app.handle() .plugin(tauri_plugin_updater::Builder::new().build())?; } @@ -63,8 +65,7 @@ pub fn run() { .user_agent(&format!("Tauri API - {}", std::env::consts::OS)) .title("Tauri API Validation") .inner_size(1000., 800.) - .min_inner_size(600., 400.) - .content_protected(true); + .min_inner_size(600., 400.); } #[cfg(target_os = "windows")] diff --git a/examples/api/src-tauri/tauri.conf.json b/examples/api/src-tauri/tauri.conf.json index 565b17559..00b095be8 100644 --- a/examples/api/src-tauri/tauri.conf.json +++ b/examples/api/src-tauri/tauri.conf.json @@ -1,5 +1,5 @@ { - "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "productName": "Tauri API", "version": "2.0.0", "identifier": "com.tauri.api", diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index 85ae7eceb..5d2b5bf42 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -16,8 +16,8 @@ use bitflags::bitflags; use serde::{Deserialize, Serialize}; use tauri::{ plugin::{Builder as PluginBuilder, TauriPlugin}, - LogicalSize, Manager, Monitor, PhysicalPosition, PhysicalSize, RunEvent, Runtime, - WebviewWindow, Window, WindowEvent, + Manager, Monitor, PhysicalPosition, PhysicalSize, RunEvent, Runtime, WebviewWindow, Window, + WindowEvent, }; use std::{ @@ -72,8 +72,8 @@ struct PluginState { #[derive(Debug, Deserialize, Serialize, PartialEq)] struct WindowState { - width: f64, - height: f64, + width: u32, + height: u32, x: i32, y: i32, // prev_x and prev_y are used to store position @@ -181,7 +181,7 @@ impl WindowExt for Window { } if flags.contains(StateFlags::SIZE) { - self.set_size(LogicalSize { + self.set_size(PhysicalSize { width: state.width, height: state.height, })?; @@ -223,11 +223,7 @@ impl WindowExt for Window { let mut metadata = WindowState::default(); if flags.contains(StateFlags::SIZE) { - let scale_factor = self - .current_monitor()? - .map(|m| m.scale_factor()) - .unwrap_or(1.); - let size = self.inner_size()?.to_logical(scale_factor); + let size = self.inner_size()?; metadata.width = size.width; metadata.height = size.height; } @@ -278,10 +274,11 @@ impl WindowExtInternal for WebviewWindow { impl WindowExtInternal for Window { fn update_state(&self, state: &mut WindowState, flags: StateFlags) -> tauri::Result<()> { - let is_maximized = match flags.intersects(StateFlags::MAXIMIZED | StateFlags::SIZE) { - true => self.is_maximized()?, - false => false, - }; + let is_maximized = flags + .intersects(StateFlags::MAXIMIZED | StateFlags::POSITION | StateFlags::SIZE) + && self.is_maximized()?; + let is_minimized = + flags.intersects(StateFlags::POSITION | StateFlags::SIZE) && self.is_minimized()?; if flags.contains(StateFlags::MAXIMIZED) { state.maximized = is_maximized; @@ -299,21 +296,16 @@ impl WindowExtInternal for Window { state.visible = self.is_visible()?; } - if flags.contains(StateFlags::SIZE) { - let scale_factor = self - .current_monitor()? - .map(|m| m.scale_factor()) - .unwrap_or(1.); - let size = self.inner_size()?.to_logical(scale_factor); - + if flags.contains(StateFlags::SIZE) && !is_maximized && !is_minimized { + let size = self.inner_size()?; // It doesn't make sense to save a window with 0 height or width - if size.width > 0. && size.height > 0. && !is_maximized { + if size.width > 0 && size.height > 0 { state.width = size.width; state.height = size.height; } } - if flags.contains(StateFlags::POSITION) && !is_maximized && !self.is_minimized()? { + if flags.contains(StateFlags::POSITION) && !is_maximized && !is_minimized { let position = self.outer_position()?; state.x = position.x; state.y = position.y; @@ -451,13 +443,26 @@ impl Builder { } WindowEvent::Moved(position) if flags.contains(StateFlags::POSITION) => { - let mut c = cache.lock().unwrap(); - if let Some(state) = c.get_mut(&label) { - state.prev_x = state.x; - state.prev_y = state.y; + if !window_clone.is_minimized().unwrap_or_default() { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.prev_x = state.x; + state.prev_y = state.y; - state.x = position.x; - state.y = position.y; + state.x = position.x; + state.y = position.y; + } + } + } + WindowEvent::Resized(size) if flags.contains(StateFlags::SIZE) => { + if !window_clone.is_minimized().unwrap_or_default() + && !window_clone.is_maximized().unwrap_or_default() + { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.width = size.width; + state.height = size.height; + } } } _ => {} @@ -473,13 +478,11 @@ impl Builder { } trait MonitorExt { - fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool; + fn intersects(&self, position: PhysicalPosition, size: PhysicalSize) -> bool; } impl MonitorExt for Monitor { - fn intersects(&self, position: PhysicalPosition, size: LogicalSize) -> bool { - let size = size.to_physical::(self.scale_factor()); - + fn intersects(&self, position: PhysicalPosition, size: PhysicalSize) -> bool { let PhysicalPosition { x, y } = *self.position(); let PhysicalSize { width, height } = *self.size(); From 009299ebec613d11bfa33b28a8ad73cc2cd47bc0 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Fri, 13 Sep 2024 09:10:01 -0300 Subject: [PATCH 551/643] chore(prettier): ignore mobile build artifacts --- .prettierignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index ff5627141..fa45e2c0a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,4 +19,8 @@ plugins/*/examples/*/src-tauri/gen/ api-iife.js init-iife.js CHANGELOG.md -*schema.json \ No newline at end of file +*schema.json + +# mobile build +**/ios/.build +**/.tauri From cc03ccf5e0e4be8bbf50bbdebe957c84be7f779b Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Fri, 13 Sep 2024 09:57:46 -0300 Subject: [PATCH 552/643] fix(fs): app scopes not properly enabling paths (#1774) --- .changes/fix-fs-app-scopes.md | 5 + .../src-tauri/gen/schemas/desktop-schema.json | 136 +++++++++--------- .../src-tauri/gen/schemas/mobile-schema.json | 136 +++++++++--------- plugins/fs/build.rs | 3 +- plugins/fs/guest-js/index.ts | 2 +- plugins/fs/permissions/app.toml | 114 +++++++++++++++ .../autogenerated/base-directories/app.toml | 82 ----------- .../base-directories/appcache.toml | 2 +- .../base-directories/appconfig.toml | 2 +- .../base-directories/appdata.toml | 2 +- .../base-directories/applocaldata.toml | 2 +- .../base-directories/applog.toml | 2 +- .../autogenerated/base-directories/audio.toml | 2 +- .../autogenerated/base-directories/cache.toml | 2 +- .../base-directories/config.toml | 2 +- .../autogenerated/base-directories/data.toml | 2 +- .../base-directories/desktop.toml | 2 +- .../base-directories/document.toml | 2 +- .../base-directories/download.toml | 2 +- .../autogenerated/base-directories/exe.toml | 2 +- .../autogenerated/base-directories/font.toml | 2 +- .../autogenerated/base-directories/home.toml | 2 +- .../base-directories/localdata.toml | 2 +- .../autogenerated/base-directories/log.toml | 2 +- .../base-directories/picture.toml | 2 +- .../base-directories/public.toml | 2 +- .../base-directories/resource.toml | 2 +- .../base-directories/runtime.toml | 2 +- .../autogenerated/base-directories/temp.toml | 2 +- .../base-directories/template.toml | 2 +- .../autogenerated/base-directories/video.toml | 2 +- .../fs/permissions/autogenerated/reference.md | 66 ++++----- .../permissions/create-app-specific-dirs.toml | 17 +-- .../read-app-specific-dirs-recursive.toml | 16 +-- plugins/fs/permissions/schemas/schema.json | 66 ++++----- plugins/shell/src/scope_entry.rs | 2 +- 36 files changed, 350 insertions(+), 343 deletions(-) create mode 100644 .changes/fix-fs-app-scopes.md create mode 100644 plugins/fs/permissions/app.toml delete mode 100644 plugins/fs/permissions/autogenerated/base-directories/app.toml diff --git a/.changes/fix-fs-app-scopes.md b/.changes/fix-fs-app-scopes.md new file mode 100644 index 000000000..48c31bd7a --- /dev/null +++ b/.changes/fix-fs-app-scopes.md @@ -0,0 +1,5 @@ +--- +"fs": patch +--- + +Fix `scope-app`, `scope-app-recursive` and `scope-index` not properly enabling the application paths. diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index aed6d6306..a0b832848 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -150,42 +150,42 @@ ] }, { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta" ] }, { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta-recursive" ] }, { - "description": "fs:allow-app-read -> This allows non-recursive read access to the `$APP` folder.", + "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", "type": "string", "enum": [ "fs:allow-app-read" ] }, { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-read-recursive" ] }, { - "description": "fs:allow-app-write -> This allows non-recursive write access to the `$APP` folder.", + "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", "type": "string", "enum": [ "fs:allow-app-write" ] }, { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-write-recursive" @@ -1606,28 +1606,28 @@ ] }, { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the `$APP`folder.", + "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", "enum": [ "fs:scope-app" ] }, { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the `$APP`folder.", + "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", "type": "string", "enum": [ "fs:scope-app-index" ] }, { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete `$APP` folder, including sub directories and files.", + "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", "enum": [ "fs:scope-app-recursive" ] }, { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.", + "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", "enum": [ "fs:scope-appcache" @@ -1648,7 +1648,7 @@ ] }, { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.", + "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", "enum": [ "fs:scope-appconfig" @@ -1669,7 +1669,7 @@ ] }, { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.", + "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", "enum": [ "fs:scope-appdata" @@ -1690,7 +1690,7 @@ ] }, { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.", + "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-applocaldata" @@ -1711,7 +1711,7 @@ ] }, { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.", + "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", "enum": [ "fs:scope-applog" @@ -1732,7 +1732,7 @@ ] }, { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.", + "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", "enum": [ "fs:scope-audio" @@ -1753,7 +1753,7 @@ ] }, { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE`folder.", + "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", "enum": [ "fs:scope-cache" @@ -1774,7 +1774,7 @@ ] }, { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.", + "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", "enum": [ "fs:scope-config" @@ -1795,7 +1795,7 @@ ] }, { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA`folder.", + "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", "enum": [ "fs:scope-data" @@ -1816,7 +1816,7 @@ ] }, { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.", + "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", "enum": [ "fs:scope-desktop" @@ -1837,7 +1837,7 @@ ] }, { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.", + "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", "enum": [ "fs:scope-document" @@ -1858,7 +1858,7 @@ ] }, { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.", + "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", "enum": [ "fs:scope-download" @@ -1879,7 +1879,7 @@ ] }, { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE`folder.", + "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", "enum": [ "fs:scope-exe" @@ -1900,7 +1900,7 @@ ] }, { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT`folder.", + "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", "enum": [ "fs:scope-font" @@ -1921,7 +1921,7 @@ ] }, { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME`folder.", + "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", "enum": [ "fs:scope-home" @@ -1942,7 +1942,7 @@ ] }, { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.", + "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-localdata" @@ -1963,7 +1963,7 @@ ] }, { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG`folder.", + "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", "enum": [ "fs:scope-log" @@ -1984,7 +1984,7 @@ ] }, { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.", + "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", "enum": [ "fs:scope-picture" @@ -2005,7 +2005,7 @@ ] }, { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.", + "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", "enum": [ "fs:scope-public" @@ -2026,7 +2026,7 @@ ] }, { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.", + "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", "enum": [ "fs:scope-resource" @@ -2047,7 +2047,7 @@ ] }, { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.", + "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", "enum": [ "fs:scope-runtime" @@ -2068,7 +2068,7 @@ ] }, { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP`folder.", + "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", "enum": [ "fs:scope-temp" @@ -2089,7 +2089,7 @@ ] }, { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.", + "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", "enum": [ "fs:scope-template" @@ -2110,7 +2110,7 @@ ] }, { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.", + "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", "enum": [ "fs:scope-video" @@ -2427,7 +2427,7 @@ ] }, "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, "name": { @@ -2462,7 +2462,7 @@ ] }, "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, "name": { @@ -4641,42 +4641,42 @@ ] }, { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta" ] }, { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta-recursive" ] }, { - "description": "fs:allow-app-read -> This allows non-recursive read access to the `$APP` folder.", + "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", "type": "string", "enum": [ "fs:allow-app-read" ] }, { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-read-recursive" ] }, { - "description": "fs:allow-app-write -> This allows non-recursive write access to the `$APP` folder.", + "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", "type": "string", "enum": [ "fs:allow-app-write" ] }, { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-write-recursive" @@ -6104,28 +6104,28 @@ ] }, { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the `$APP`folder.", + "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", "enum": [ "fs:scope-app" ] }, { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the `$APP`folder.", + "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", "type": "string", "enum": [ "fs:scope-app-index" ] }, { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete `$APP` folder, including sub directories and files.", + "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", "enum": [ "fs:scope-app-recursive" ] }, { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.", + "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", "enum": [ "fs:scope-appcache" @@ -6146,7 +6146,7 @@ ] }, { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.", + "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", "enum": [ "fs:scope-appconfig" @@ -6167,7 +6167,7 @@ ] }, { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.", + "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", "enum": [ "fs:scope-appdata" @@ -6188,7 +6188,7 @@ ] }, { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.", + "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-applocaldata" @@ -6209,7 +6209,7 @@ ] }, { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.", + "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", "enum": [ "fs:scope-applog" @@ -6230,7 +6230,7 @@ ] }, { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.", + "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", "enum": [ "fs:scope-audio" @@ -6251,7 +6251,7 @@ ] }, { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE`folder.", + "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", "enum": [ "fs:scope-cache" @@ -6272,7 +6272,7 @@ ] }, { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.", + "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", "enum": [ "fs:scope-config" @@ -6293,7 +6293,7 @@ ] }, { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA`folder.", + "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", "enum": [ "fs:scope-data" @@ -6314,7 +6314,7 @@ ] }, { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.", + "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", "enum": [ "fs:scope-desktop" @@ -6335,7 +6335,7 @@ ] }, { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.", + "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", "enum": [ "fs:scope-document" @@ -6356,7 +6356,7 @@ ] }, { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.", + "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", "enum": [ "fs:scope-download" @@ -6377,7 +6377,7 @@ ] }, { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE`folder.", + "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", "enum": [ "fs:scope-exe" @@ -6398,7 +6398,7 @@ ] }, { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT`folder.", + "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", "enum": [ "fs:scope-font" @@ -6419,7 +6419,7 @@ ] }, { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME`folder.", + "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", "enum": [ "fs:scope-home" @@ -6440,7 +6440,7 @@ ] }, { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.", + "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-localdata" @@ -6461,7 +6461,7 @@ ] }, { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG`folder.", + "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", "enum": [ "fs:scope-log" @@ -6482,7 +6482,7 @@ ] }, { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.", + "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", "enum": [ "fs:scope-picture" @@ -6503,7 +6503,7 @@ ] }, { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.", + "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", "enum": [ "fs:scope-public" @@ -6524,7 +6524,7 @@ ] }, { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.", + "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", "enum": [ "fs:scope-resource" @@ -6545,7 +6545,7 @@ ] }, { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.", + "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", "enum": [ "fs:scope-runtime" @@ -6566,7 +6566,7 @@ ] }, { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP`folder.", + "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", "enum": [ "fs:scope-temp" @@ -6587,7 +6587,7 @@ ] }, { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.", + "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", "enum": [ "fs:scope-template" @@ -6608,7 +6608,7 @@ ] }, { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.", + "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", "enum": [ "fs:scope-video" diff --git a/examples/api/src-tauri/gen/schemas/mobile-schema.json b/examples/api/src-tauri/gen/schemas/mobile-schema.json index 1cce6dd18..82c9e0ca2 100644 --- a/examples/api/src-tauri/gen/schemas/mobile-schema.json +++ b/examples/api/src-tauri/gen/schemas/mobile-schema.json @@ -150,42 +150,42 @@ ] }, { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta" ] }, { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta-recursive" ] }, { - "description": "fs:allow-app-read -> This allows non-recursive read access to the `$APP` folder.", + "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", "type": "string", "enum": [ "fs:allow-app-read" ] }, { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-read-recursive" ] }, { - "description": "fs:allow-app-write -> This allows non-recursive write access to the `$APP` folder.", + "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", "type": "string", "enum": [ "fs:allow-app-write" ] }, { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-write-recursive" @@ -1606,28 +1606,28 @@ ] }, { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the `$APP`folder.", + "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", "enum": [ "fs:scope-app" ] }, { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the `$APP`folder.", + "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", "type": "string", "enum": [ "fs:scope-app-index" ] }, { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete `$APP` folder, including sub directories and files.", + "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", "enum": [ "fs:scope-app-recursive" ] }, { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.", + "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", "enum": [ "fs:scope-appcache" @@ -1648,7 +1648,7 @@ ] }, { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.", + "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", "enum": [ "fs:scope-appconfig" @@ -1669,7 +1669,7 @@ ] }, { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.", + "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", "enum": [ "fs:scope-appdata" @@ -1690,7 +1690,7 @@ ] }, { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.", + "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-applocaldata" @@ -1711,7 +1711,7 @@ ] }, { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.", + "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", "enum": [ "fs:scope-applog" @@ -1732,7 +1732,7 @@ ] }, { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.", + "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", "enum": [ "fs:scope-audio" @@ -1753,7 +1753,7 @@ ] }, { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE`folder.", + "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", "enum": [ "fs:scope-cache" @@ -1774,7 +1774,7 @@ ] }, { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.", + "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", "enum": [ "fs:scope-config" @@ -1795,7 +1795,7 @@ ] }, { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA`folder.", + "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", "enum": [ "fs:scope-data" @@ -1816,7 +1816,7 @@ ] }, { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.", + "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", "enum": [ "fs:scope-desktop" @@ -1837,7 +1837,7 @@ ] }, { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.", + "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", "enum": [ "fs:scope-document" @@ -1858,7 +1858,7 @@ ] }, { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.", + "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", "enum": [ "fs:scope-download" @@ -1879,7 +1879,7 @@ ] }, { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE`folder.", + "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", "enum": [ "fs:scope-exe" @@ -1900,7 +1900,7 @@ ] }, { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT`folder.", + "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", "enum": [ "fs:scope-font" @@ -1921,7 +1921,7 @@ ] }, { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME`folder.", + "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", "enum": [ "fs:scope-home" @@ -1942,7 +1942,7 @@ ] }, { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.", + "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-localdata" @@ -1963,7 +1963,7 @@ ] }, { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG`folder.", + "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", "enum": [ "fs:scope-log" @@ -1984,7 +1984,7 @@ ] }, { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.", + "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", "enum": [ "fs:scope-picture" @@ -2005,7 +2005,7 @@ ] }, { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.", + "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", "enum": [ "fs:scope-public" @@ -2026,7 +2026,7 @@ ] }, { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.", + "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", "enum": [ "fs:scope-resource" @@ -2047,7 +2047,7 @@ ] }, { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.", + "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", "enum": [ "fs:scope-runtime" @@ -2068,7 +2068,7 @@ ] }, { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP`folder.", + "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", "enum": [ "fs:scope-temp" @@ -2089,7 +2089,7 @@ ] }, { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.", + "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", "enum": [ "fs:scope-template" @@ -2110,7 +2110,7 @@ ] }, { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.", + "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", "enum": [ "fs:scope-video" @@ -2427,7 +2427,7 @@ ] }, "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, "name": { @@ -2462,7 +2462,7 @@ ] }, "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "type": "string" }, "name": { @@ -4746,42 +4746,42 @@ ] }, { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta" ] }, { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "fs:allow-app-meta-recursive" ] }, { - "description": "fs:allow-app-read -> This allows non-recursive read access to the `$APP` folder.", + "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", "type": "string", "enum": [ "fs:allow-app-read" ] }, { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-read-recursive" ] }, { - "description": "fs:allow-app-write -> This allows non-recursive write access to the `$APP` folder.", + "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", "type": "string", "enum": [ "fs:allow-app-write" ] }, { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.", + "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "fs:allow-app-write-recursive" @@ -6209,28 +6209,28 @@ ] }, { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the `$APP`folder.", + "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", "enum": [ "fs:scope-app" ] }, { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the `$APP`folder.", + "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", "type": "string", "enum": [ "fs:scope-app-index" ] }, { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete `$APP` folder, including sub directories and files.", + "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", "enum": [ "fs:scope-app-recursive" ] }, { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.", + "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", "enum": [ "fs:scope-appcache" @@ -6251,7 +6251,7 @@ ] }, { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.", + "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", "enum": [ "fs:scope-appconfig" @@ -6272,7 +6272,7 @@ ] }, { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.", + "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", "enum": [ "fs:scope-appdata" @@ -6293,7 +6293,7 @@ ] }, { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.", + "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-applocaldata" @@ -6314,7 +6314,7 @@ ] }, { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.", + "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", "enum": [ "fs:scope-applog" @@ -6335,7 +6335,7 @@ ] }, { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.", + "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", "enum": [ "fs:scope-audio" @@ -6356,7 +6356,7 @@ ] }, { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE`folder.", + "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", "enum": [ "fs:scope-cache" @@ -6377,7 +6377,7 @@ ] }, { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.", + "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", "enum": [ "fs:scope-config" @@ -6398,7 +6398,7 @@ ] }, { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA`folder.", + "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", "enum": [ "fs:scope-data" @@ -6419,7 +6419,7 @@ ] }, { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.", + "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", "enum": [ "fs:scope-desktop" @@ -6440,7 +6440,7 @@ ] }, { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.", + "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", "enum": [ "fs:scope-document" @@ -6461,7 +6461,7 @@ ] }, { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.", + "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", "enum": [ "fs:scope-download" @@ -6482,7 +6482,7 @@ ] }, { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE`folder.", + "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", "enum": [ "fs:scope-exe" @@ -6503,7 +6503,7 @@ ] }, { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT`folder.", + "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", "enum": [ "fs:scope-font" @@ -6524,7 +6524,7 @@ ] }, { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME`folder.", + "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", "enum": [ "fs:scope-home" @@ -6545,7 +6545,7 @@ ] }, { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.", + "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", "enum": [ "fs:scope-localdata" @@ -6566,7 +6566,7 @@ ] }, { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG`folder.", + "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", "enum": [ "fs:scope-log" @@ -6587,7 +6587,7 @@ ] }, { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.", + "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", "enum": [ "fs:scope-picture" @@ -6608,7 +6608,7 @@ ] }, { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.", + "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", "enum": [ "fs:scope-public" @@ -6629,7 +6629,7 @@ ] }, { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.", + "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", "enum": [ "fs:scope-resource" @@ -6650,7 +6650,7 @@ ] }, { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.", + "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", "enum": [ "fs:scope-runtime" @@ -6671,7 +6671,7 @@ ] }, { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP`folder.", + "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", "enum": [ "fs:scope-temp" @@ -6692,7 +6692,7 @@ ] }, { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.", + "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", "enum": [ "fs:scope-template" @@ -6713,7 +6713,7 @@ ] }, { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.", + "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", "enum": [ "fs:scope-video" diff --git a/plugins/fs/build.rs b/plugins/fs/build.rs index af35f0e89..5a641eb61 100644 --- a/plugins/fs/build.rs +++ b/plugins/fs/build.rs @@ -52,7 +52,6 @@ const BASE_DIR_VARS: &[&str] = &[ "TEMPLATE", "VIDEO", "RESOURCE", - "APP", "LOG", "TEMP", "APPCONFIG", @@ -118,7 +117,7 @@ path = "${upper}/**" [[permission]] identifier = "scope-{lower}" -description = "This scope permits access to all files and list content of top level directories in the `${upper}`folder." +description = "This scope permits access to all files and list content of top level directories in the `${upper}` folder." [[permission.scope.allow]] path = "${upper}" diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index da5aad90b..1f314f711 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -270,7 +270,7 @@ class FileHandle extends Resource { * @example * ```typescript * import { open, BaseDirectory } from "@tauri-apps/plugin-fs" - * // if "$APP/foo/bar.txt" contains the text "hello world": + * // if "$APPCONFIG/foo/bar.txt" contains the text "hello world": * const file = await open("foo/bar.txt", { baseDir: BaseDirectory.AppConfig }); * const buf = new Uint8Array(100); * const numberOfBytesRead = await file.read(buf); // 11 bytes diff --git a/plugins/fs/permissions/app.toml b/plugins/fs/permissions/app.toml new file mode 100644 index 000000000..aeb0521b2 --- /dev/null +++ b/plugins/fs/permissions/app.toml @@ -0,0 +1,114 @@ +"$schema" = "schemas/schema.json" + +# Scopes Section +# This section contains scopes, which define file level access + +[[permission]] +identifier = "scope-app-recursive" +description = "This scope permits recursive access to the complete application folders, including sub directories and files." + +[[permission.scope.allow]] +path = "$APPCONFIG" +[[permission.scope.allow]] +path = "$APPCONFIG/**" + +[[permission.scope.allow]] +path = "$APPDATA" +[[permission.scope.allow]] +path = "$APPDATA/**" + +[[permission.scope.allow]] +path = "$APPLOCALDATA" +[[permission.scope.allow]] +path = "$APPLOCALDATA/**" + +[[permission.scope.allow]] +path = "$APPCACHE" +[[permission.scope.allow]] +path = "$APPCACHE/**" + +[[permission.scope.allow]] +path = "$APPLOG" +[[permission.scope.allow]] +path = "$APPLOG/**" + +[[permission]] +identifier = "scope-app" +description = "This scope permits access to all files and list content of top level directories in the application folders." + +[[permission.scope.allow]] +path = "$APPCONFIG" +[[permission.scope.allow]] +path = "$APPCONFIG/*" + +[[permission.scope.allow]] +path = "$APPDATA" +[[permission.scope.allow]] +path = "$APPDATA/*" + +[[permission.scope.allow]] +path = "$APPLOCALDATA" +[[permission.scope.allow]] +path = "$APPLOCALDATA/*" + +[[permission.scope.allow]] +path = "$APPCACHE" +[[permission.scope.allow]] +path = "$APPCACHE/*" + +[[permission.scope.allow]] +path = "$APPLOG" +[[permission.scope.allow]] +path = "$APPLOG/*" + +[[permission]] +identifier = "scope-app-index" +description = "This scope permits to list all files and folders in the application directories." + +[[permission.scope.allow]] +path = "$APPCONFIG" + +[[permission.scope.allow]] +path = "$APPDATA" + +[[permission.scope.allow]] +path = "$APPLOCALDATA" + +[[permission.scope.allow]] +path = "$APPCACHE" + +[[permission.scope.allow]] +path = "$APPLOG" + +# Sets Section +# This section combines the scope elements with enablement of commands + +[[set]] +identifier = "allow-app-read-recursive" +description = "This allows full recursive read access to the complete application folders, files and subdirectories." +permissions = ["read-all", "scope-app-recursive"] + +[[set]] +identifier = "allow-app-write-recursive" +description = "This allows full recursive write access to the complete application folders, files and subdirectories." +permissions = ["write-all", "scope-app-recursive"] + +[[set]] +identifier = "allow-app-read" +description = "This allows non-recursive read access to the application folders." +permissions = ["read-all", "scope-app"] + +[[set]] +identifier = "allow-app-write" +description = "This allows non-recursive write access to the application folders." +permissions = ["write-all", "scope-app"] + +[[set]] +identifier = "allow-app-meta-recursive" +description = "This allows full recursive read access to metadata of the application folders, including file listing and statistics." +permissions = ["read-meta", "scope-app-recursive"] + +[[set]] +identifier = "allow-app-meta" +description = "This allows non-recursive read access to metadata of the application folders, including file listing and statistics." +permissions = ["read-meta", "scope-app-index"] diff --git a/plugins/fs/permissions/autogenerated/base-directories/app.toml b/plugins/fs/permissions/autogenerated/base-directories/app.toml deleted file mode 100644 index 32401f4c6..000000000 --- a/plugins/fs/permissions/autogenerated/base-directories/app.toml +++ /dev/null @@ -1,82 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -# Scopes Section -# This section contains scopes, which define file level access - -[[permission]] -identifier = "scope-app-recursive" -description = "This scope permits recursive access to the complete `$APP` folder, including sub directories and files." - -[[permission.scope.allow]] -path = "$APP" -[[permission.scope.allow]] -path = "$APP/**" - -[[permission]] -identifier = "scope-app" -description = "This scope permits access to all files and list content of top level directories in the `$APP`folder." - -[[permission.scope.allow]] -path = "$APP" -[[permission.scope.allow]] -path = "$APP/*" - -[[permission]] -identifier = "scope-app-index" -description = "This scope permits to list all files and folders in the `$APP`folder." - -[[permission.scope.allow]] -path = "$APP" - -# Sets Section -# This section combines the scope elements with enablement of commands - -[[set]] -identifier = "allow-app-read-recursive" -description = "This allows full recursive read access to the complete `$APP` folder, files and subdirectories." -permissions = [ - "read-all", - "scope-app-recursive" -] - -[[set]] -identifier = "allow-app-write-recursive" -description = "This allows full recursive write access to the complete `$APP` folder, files and subdirectories." -permissions = [ - "write-all", - "scope-app-recursive" -] - -[[set]] -identifier = "allow-app-read" -description = "This allows non-recursive read access to the `$APP` folder." -permissions = [ - "read-all", - "scope-app" -] - -[[set]] -identifier = "allow-app-write" -description = "This allows non-recursive write access to the `$APP` folder." -permissions = [ - "write-all", - "scope-app" -] - -[[set]] -identifier = "allow-app-meta-recursive" -description = "This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics." -permissions = [ - "read-meta", - "scope-app-recursive" -] - -[[set]] -identifier = "allow-app-meta" -description = "This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics." -permissions = [ - "read-meta", - "scope-app-index" -] \ No newline at end of file diff --git a/plugins/fs/permissions/autogenerated/base-directories/appcache.toml b/plugins/fs/permissions/autogenerated/base-directories/appcache.toml index 50e168c3a..50e19efc9 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/appcache.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/appcache.toml @@ -16,7 +16,7 @@ path = "$APPCACHE/**" [[permission]] identifier = "scope-appcache" -description = "This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder." [[permission.scope.allow]] path = "$APPCACHE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/appconfig.toml b/plugins/fs/permissions/autogenerated/base-directories/appconfig.toml index 4b1062908..ab136956d 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/appconfig.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/appconfig.toml @@ -16,7 +16,7 @@ path = "$APPCONFIG/**" [[permission]] identifier = "scope-appconfig" -description = "This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder." +description = "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder." [[permission.scope.allow]] path = "$APPCONFIG" diff --git a/plugins/fs/permissions/autogenerated/base-directories/appdata.toml b/plugins/fs/permissions/autogenerated/base-directories/appdata.toml index 36d99619a..1b0931e20 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/appdata.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/appdata.toml @@ -16,7 +16,7 @@ path = "$APPDATA/**" [[permission]] identifier = "scope-appdata" -description = "This scope permits access to all files and list content of top level directories in the `$APPDATA`folder." +description = "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder." [[permission.scope.allow]] path = "$APPDATA" diff --git a/plugins/fs/permissions/autogenerated/base-directories/applocaldata.toml b/plugins/fs/permissions/autogenerated/base-directories/applocaldata.toml index d538fdd26..a6e38a31f 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/applocaldata.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/applocaldata.toml @@ -16,7 +16,7 @@ path = "$APPLOCALDATA/**" [[permission]] identifier = "scope-applocaldata" -description = "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder." +description = "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder." [[permission.scope.allow]] path = "$APPLOCALDATA" diff --git a/plugins/fs/permissions/autogenerated/base-directories/applog.toml b/plugins/fs/permissions/autogenerated/base-directories/applog.toml index c53a01788..a979ce76a 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/applog.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/applog.toml @@ -16,7 +16,7 @@ path = "$APPLOG/**" [[permission]] identifier = "scope-applog" -description = "This scope permits access to all files and list content of top level directories in the `$APPLOG`folder." +description = "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder." [[permission.scope.allow]] path = "$APPLOG" diff --git a/plugins/fs/permissions/autogenerated/base-directories/audio.toml b/plugins/fs/permissions/autogenerated/base-directories/audio.toml index 51d394c6b..d66d68a23 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/audio.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/audio.toml @@ -16,7 +16,7 @@ path = "$AUDIO/**" [[permission]] identifier = "scope-audio" -description = "This scope permits access to all files and list content of top level directories in the `$AUDIO`folder." +description = "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder." [[permission.scope.allow]] path = "$AUDIO" diff --git a/plugins/fs/permissions/autogenerated/base-directories/cache.toml b/plugins/fs/permissions/autogenerated/base-directories/cache.toml index 68b1fe595..814319eb8 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/cache.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/cache.toml @@ -16,7 +16,7 @@ path = "$CACHE/**" [[permission]] identifier = "scope-cache" -description = "This scope permits access to all files and list content of top level directories in the `$CACHE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$CACHE` folder." [[permission.scope.allow]] path = "$CACHE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/config.toml b/plugins/fs/permissions/autogenerated/base-directories/config.toml index 9a645065b..592210456 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/config.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/config.toml @@ -16,7 +16,7 @@ path = "$CONFIG/**" [[permission]] identifier = "scope-config" -description = "This scope permits access to all files and list content of top level directories in the `$CONFIG`folder." +description = "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder." [[permission.scope.allow]] path = "$CONFIG" diff --git a/plugins/fs/permissions/autogenerated/base-directories/data.toml b/plugins/fs/permissions/autogenerated/base-directories/data.toml index f395fa14d..a8428ca13 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/data.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/data.toml @@ -16,7 +16,7 @@ path = "$DATA/**" [[permission]] identifier = "scope-data" -description = "This scope permits access to all files and list content of top level directories in the `$DATA`folder." +description = "This scope permits access to all files and list content of top level directories in the `$DATA` folder." [[permission.scope.allow]] path = "$DATA" diff --git a/plugins/fs/permissions/autogenerated/base-directories/desktop.toml b/plugins/fs/permissions/autogenerated/base-directories/desktop.toml index 8d51c41be..da369fa03 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/desktop.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/desktop.toml @@ -16,7 +16,7 @@ path = "$DESKTOP/**" [[permission]] identifier = "scope-desktop" -description = "This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder." +description = "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder." [[permission.scope.allow]] path = "$DESKTOP" diff --git a/plugins/fs/permissions/autogenerated/base-directories/document.toml b/plugins/fs/permissions/autogenerated/base-directories/document.toml index 17ce35562..9feb4d0d0 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/document.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/document.toml @@ -16,7 +16,7 @@ path = "$DOCUMENT/**" [[permission]] identifier = "scope-document" -description = "This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder." +description = "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder." [[permission.scope.allow]] path = "$DOCUMENT" diff --git a/plugins/fs/permissions/autogenerated/base-directories/download.toml b/plugins/fs/permissions/autogenerated/base-directories/download.toml index 087ce2d41..8659e3ac4 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/download.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/download.toml @@ -16,7 +16,7 @@ path = "$DOWNLOAD/**" [[permission]] identifier = "scope-download" -description = "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder." +description = "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder." [[permission.scope.allow]] path = "$DOWNLOAD" diff --git a/plugins/fs/permissions/autogenerated/base-directories/exe.toml b/plugins/fs/permissions/autogenerated/base-directories/exe.toml index b0d33f024..94950e844 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/exe.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/exe.toml @@ -16,7 +16,7 @@ path = "$EXE/**" [[permission]] identifier = "scope-exe" -description = "This scope permits access to all files and list content of top level directories in the `$EXE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$EXE` folder." [[permission.scope.allow]] path = "$EXE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/font.toml b/plugins/fs/permissions/autogenerated/base-directories/font.toml index 6b1ec813b..21840046a 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/font.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/font.toml @@ -16,7 +16,7 @@ path = "$FONT/**" [[permission]] identifier = "scope-font" -description = "This scope permits access to all files and list content of top level directories in the `$FONT`folder." +description = "This scope permits access to all files and list content of top level directories in the `$FONT` folder." [[permission.scope.allow]] path = "$FONT" diff --git a/plugins/fs/permissions/autogenerated/base-directories/home.toml b/plugins/fs/permissions/autogenerated/base-directories/home.toml index fd954f565..cbf48e2fb 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/home.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/home.toml @@ -16,7 +16,7 @@ path = "$HOME/**" [[permission]] identifier = "scope-home" -description = "This scope permits access to all files and list content of top level directories in the `$HOME`folder." +description = "This scope permits access to all files and list content of top level directories in the `$HOME` folder." [[permission.scope.allow]] path = "$HOME" diff --git a/plugins/fs/permissions/autogenerated/base-directories/localdata.toml b/plugins/fs/permissions/autogenerated/base-directories/localdata.toml index a86dd16e4..90a8f48bc 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/localdata.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/localdata.toml @@ -16,7 +16,7 @@ path = "$LOCALDATA/**" [[permission]] identifier = "scope-localdata" -description = "This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder." +description = "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder." [[permission.scope.allow]] path = "$LOCALDATA" diff --git a/plugins/fs/permissions/autogenerated/base-directories/log.toml b/plugins/fs/permissions/autogenerated/base-directories/log.toml index d9a51cceb..d505a3ce2 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/log.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/log.toml @@ -16,7 +16,7 @@ path = "$LOG/**" [[permission]] identifier = "scope-log" -description = "This scope permits access to all files and list content of top level directories in the `$LOG`folder." +description = "This scope permits access to all files and list content of top level directories in the `$LOG` folder." [[permission.scope.allow]] path = "$LOG" diff --git a/plugins/fs/permissions/autogenerated/base-directories/picture.toml b/plugins/fs/permissions/autogenerated/base-directories/picture.toml index ac061e230..6a760909d 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/picture.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/picture.toml @@ -16,7 +16,7 @@ path = "$PICTURE/**" [[permission]] identifier = "scope-picture" -description = "This scope permits access to all files and list content of top level directories in the `$PICTURE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder." [[permission.scope.allow]] path = "$PICTURE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/public.toml b/plugins/fs/permissions/autogenerated/base-directories/public.toml index 9584bd927..2e39abb45 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/public.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/public.toml @@ -16,7 +16,7 @@ path = "$PUBLIC/**" [[permission]] identifier = "scope-public" -description = "This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder." +description = "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder." [[permission.scope.allow]] path = "$PUBLIC" diff --git a/plugins/fs/permissions/autogenerated/base-directories/resource.toml b/plugins/fs/permissions/autogenerated/base-directories/resource.toml index 54a739d70..53dfeb079 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/resource.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/resource.toml @@ -16,7 +16,7 @@ path = "$RESOURCE/**" [[permission]] identifier = "scope-resource" -description = "This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder." [[permission.scope.allow]] path = "$RESOURCE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/runtime.toml b/plugins/fs/permissions/autogenerated/base-directories/runtime.toml index 3f9bb2c09..8dcc2a038 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/runtime.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/runtime.toml @@ -16,7 +16,7 @@ path = "$RUNTIME/**" [[permission]] identifier = "scope-runtime" -description = "This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder." +description = "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder." [[permission.scope.allow]] path = "$RUNTIME" diff --git a/plugins/fs/permissions/autogenerated/base-directories/temp.toml b/plugins/fs/permissions/autogenerated/base-directories/temp.toml index 383f5409e..c08e1da21 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/temp.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/temp.toml @@ -16,7 +16,7 @@ path = "$TEMP/**" [[permission]] identifier = "scope-temp" -description = "This scope permits access to all files and list content of top level directories in the `$TEMP`folder." +description = "This scope permits access to all files and list content of top level directories in the `$TEMP` folder." [[permission.scope.allow]] path = "$TEMP" diff --git a/plugins/fs/permissions/autogenerated/base-directories/template.toml b/plugins/fs/permissions/autogenerated/base-directories/template.toml index b523b9ee1..ce39f7736 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/template.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/template.toml @@ -16,7 +16,7 @@ path = "$TEMPLATE/**" [[permission]] identifier = "scope-template" -description = "This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder." +description = "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder." [[permission.scope.allow]] path = "$TEMPLATE" diff --git a/plugins/fs/permissions/autogenerated/base-directories/video.toml b/plugins/fs/permissions/autogenerated/base-directories/video.toml index 8d32b7bdf..df41abdc6 100644 --- a/plugins/fs/permissions/autogenerated/base-directories/video.toml +++ b/plugins/fs/permissions/autogenerated/base-directories/video.toml @@ -16,7 +16,7 @@ path = "$VIDEO/**" [[permission]] identifier = "scope-video" -description = "This scope permits access to all files and list content of top level directories in the `$VIDEO`folder." +description = "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder." [[permission.scope.allow]] path = "$VIDEO" diff --git a/plugins/fs/permissions/autogenerated/reference.md b/plugins/fs/permissions/autogenerated/reference.md index 6913f47a8..cc6477f1e 100644 --- a/plugins/fs/permissions/autogenerated/reference.md +++ b/plugins/fs/permissions/autogenerated/reference.md @@ -47,7 +47,7 @@ On Windows the webview data folder access is denied. -This allows full recursive read access to the complete `$APP` folder, files and subdirectories. +This allows full recursive read access to the complete application folders, files and subdirectories. @@ -60,7 +60,7 @@ This allows full recursive read access to the complete `$APP` folder, files and -This allows full recursive write access to the complete `$APP` folder, files and subdirectories. +This allows full recursive write access to the complete application folders, files and subdirectories. @@ -73,7 +73,7 @@ This allows full recursive write access to the complete `$APP` folder, files and -This allows non-recursive read access to the `$APP` folder. +This allows non-recursive read access to the application folders. @@ -86,7 +86,7 @@ This allows non-recursive read access to the `$APP` folder. -This allows non-recursive write access to the `$APP` folder. +This allows non-recursive write access to the application folders. @@ -99,7 +99,7 @@ This allows non-recursive write access to the `$APP` folder. -This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics. +This allows full recursive read access to metadata of the application folders, including file listing and statistics. @@ -112,7 +112,7 @@ This allows full recursive read access to metadata of the `$APP` folder, includi -This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics. +This allows non-recursive read access to metadata of the application folders, including file listing and statistics. @@ -125,7 +125,7 @@ This allows non-recursive read access to metadata of the `$APP` folder, includin -This scope permits recursive access to the complete `$APP` folder, including sub directories and files. +This scope permits recursive access to the complete application folders, including sub directories and files. @@ -138,7 +138,7 @@ This scope permits recursive access to the complete `$APP` folder, including sub -This scope permits access to all files and list content of top level directories in the `$APP`folder. +This scope permits access to all files and list content of top level directories in the application folders. @@ -151,7 +151,7 @@ This scope permits access to all files and list content of top level directories -This scope permits to list all files and folders in the `$APP`folder. +This scope permits to list all files and folders in the application directories. @@ -255,7 +255,7 @@ This scope permits recursive access to the complete `$APPCACHE` folder, includin -This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder. +This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder. @@ -372,7 +372,7 @@ This scope permits recursive access to the complete `$APPCONFIG` folder, includi -This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder. +This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder. @@ -489,7 +489,7 @@ This scope permits recursive access to the complete `$APPDATA` folder, including -This scope permits access to all files and list content of top level directories in the `$APPDATA`folder. +This scope permits access to all files and list content of top level directories in the `$APPDATA` folder. @@ -606,7 +606,7 @@ This scope permits recursive access to the complete `$APPLOCALDATA` folder, incl -This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder. +This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder. @@ -723,7 +723,7 @@ This scope permits recursive access to the complete `$APPLOG` folder, including -This scope permits access to all files and list content of top level directories in the `$APPLOG`folder. +This scope permits access to all files and list content of top level directories in the `$APPLOG` folder. @@ -840,7 +840,7 @@ This scope permits recursive access to the complete `$AUDIO` folder, including s -This scope permits access to all files and list content of top level directories in the `$AUDIO`folder. +This scope permits access to all files and list content of top level directories in the `$AUDIO` folder. @@ -957,7 +957,7 @@ This scope permits recursive access to the complete `$CACHE` folder, including s -This scope permits access to all files and list content of top level directories in the `$CACHE`folder. +This scope permits access to all files and list content of top level directories in the `$CACHE` folder. @@ -1074,7 +1074,7 @@ This scope permits recursive access to the complete `$CONFIG` folder, including -This scope permits access to all files and list content of top level directories in the `$CONFIG`folder. +This scope permits access to all files and list content of top level directories in the `$CONFIG` folder. @@ -1191,7 +1191,7 @@ This scope permits recursive access to the complete `$DATA` folder, including su -This scope permits access to all files and list content of top level directories in the `$DATA`folder. +This scope permits access to all files and list content of top level directories in the `$DATA` folder. @@ -1308,7 +1308,7 @@ This scope permits recursive access to the complete `$DESKTOP` folder, including -This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder. +This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder. @@ -1425,7 +1425,7 @@ This scope permits recursive access to the complete `$DOCUMENT` folder, includin -This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder. +This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder. @@ -1542,7 +1542,7 @@ This scope permits recursive access to the complete `$DOWNLOAD` folder, includin -This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder. +This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder. @@ -1659,7 +1659,7 @@ This scope permits recursive access to the complete `$EXE` folder, including sub -This scope permits access to all files and list content of top level directories in the `$EXE`folder. +This scope permits access to all files and list content of top level directories in the `$EXE` folder. @@ -1776,7 +1776,7 @@ This scope permits recursive access to the complete `$FONT` folder, including su -This scope permits access to all files and list content of top level directories in the `$FONT`folder. +This scope permits access to all files and list content of top level directories in the `$FONT` folder. @@ -1893,7 +1893,7 @@ This scope permits recursive access to the complete `$HOME` folder, including su -This scope permits access to all files and list content of top level directories in the `$HOME`folder. +This scope permits access to all files and list content of top level directories in the `$HOME` folder. @@ -2010,7 +2010,7 @@ This scope permits recursive access to the complete `$LOCALDATA` folder, includi -This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder. +This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder. @@ -2127,7 +2127,7 @@ This scope permits recursive access to the complete `$LOG` folder, including sub -This scope permits access to all files and list content of top level directories in the `$LOG`folder. +This scope permits access to all files and list content of top level directories in the `$LOG` folder. @@ -2244,7 +2244,7 @@ This scope permits recursive access to the complete `$PICTURE` folder, including -This scope permits access to all files and list content of top level directories in the `$PICTURE`folder. +This scope permits access to all files and list content of top level directories in the `$PICTURE` folder. @@ -2361,7 +2361,7 @@ This scope permits recursive access to the complete `$PUBLIC` folder, including -This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder. +This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder. @@ -2478,7 +2478,7 @@ This scope permits recursive access to the complete `$RESOURCE` folder, includin -This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder. +This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder. @@ -2595,7 +2595,7 @@ This scope permits recursive access to the complete `$RUNTIME` folder, including -This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder. +This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder. @@ -2712,7 +2712,7 @@ This scope permits recursive access to the complete `$TEMP` folder, including su -This scope permits access to all files and list content of top level directories in the `$TEMP`folder. +This scope permits access to all files and list content of top level directories in the `$TEMP` folder. @@ -2829,7 +2829,7 @@ This scope permits recursive access to the complete `$TEMPLATE` folder, includin -This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder. +This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder. @@ -2946,7 +2946,7 @@ This scope permits recursive access to the complete `$VIDEO` folder, including s -This scope permits access to all files and list content of top level directories in the `$VIDEO`folder. +This scope permits access to all files and list content of top level directories in the `$VIDEO` folder. diff --git a/plugins/fs/permissions/create-app-specific-dirs.toml b/plugins/fs/permissions/create-app-specific-dirs.toml index 68a849219..7785cb13c 100644 --- a/plugins/fs/permissions/create-app-specific-dirs.toml +++ b/plugins/fs/permissions/create-app-specific-dirs.toml @@ -5,19 +5,4 @@ identifier = "create-app-specific-dirs" description = """ This permissions allows to create the application specific directories. """ -commands.allow = ["mkdir"] - -[[permission.scope.allow]] -path = "$APPCONFIG" - -[[permission.scope.allow]] -path = "$APPDATA" - -[[permission.scope.allow]] -path = "$APPLOCALDATA" - -[[permission.scope.allow]] -path = "$APPCACHE" - -[[permission.scope.allow]] -path = "$APPLOG" +commands.allow = ["mkdir", "scope-app-index"] diff --git a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml index af1d0fce9..5342dbc0b 100644 --- a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml +++ b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml @@ -13,19 +13,5 @@ commands.allow = [ "read_text_file_lines", "read_text_file_lines_next", "exists", + "scope-app-recursive", ] - -[[permission.scope.allow]] -path = "$APPCONFIG/**" - -[[permission.scope.allow]] -path = "$APPDATA/**" - -[[permission.scope.allow]] -path = "$APPLOCALDATA/**" - -[[permission.scope.allow]] -path = "$APPCACHE/**" - -[[permission.scope.allow]] -path = "$APPLOG/**" diff --git a/plugins/fs/permissions/schemas/schema.json b/plugins/fs/permissions/schemas/schema.json index 12fd7b341..8d3e77fc1 100644 --- a/plugins/fs/permissions/schemas/schema.json +++ b/plugins/fs/permissions/schemas/schema.json @@ -295,63 +295,63 @@ "type": "string", "oneOf": [ { - "description": "allow-app-read-recursive -> This allows full recursive read access to the complete `$APP` folder, files and subdirectories.", + "description": "allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "allow-app-read-recursive" ] }, { - "description": "allow-app-write-recursive -> This allows full recursive write access to the complete `$APP` folder, files and subdirectories.", + "description": "allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", "enum": [ "allow-app-write-recursive" ] }, { - "description": "allow-app-read -> This allows non-recursive read access to the `$APP` folder.", + "description": "allow-app-read -> This allows non-recursive read access to the application folders.", "type": "string", "enum": [ "allow-app-read" ] }, { - "description": "allow-app-write -> This allows non-recursive write access to the `$APP` folder.", + "description": "allow-app-write -> This allows non-recursive write access to the application folders.", "type": "string", "enum": [ "allow-app-write" ] }, { - "description": "allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "allow-app-meta-recursive" ] }, { - "description": "allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.", + "description": "allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", "enum": [ "allow-app-meta" ] }, { - "description": "scope-app-recursive -> This scope permits recursive access to the complete `$APP` folder, including sub directories and files.", + "description": "scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", "enum": [ "scope-app-recursive" ] }, { - "description": "scope-app -> This scope permits access to all files and list content of top level directories in the `$APP`folder.", + "description": "scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", "enum": [ "scope-app" ] }, { - "description": "scope-app-index -> This scope permits to list all files and folders in the `$APP`folder.", + "description": "scope-app-index -> This scope permits to list all files and folders in the application directories.", "type": "string", "enum": [ "scope-app-index" @@ -407,7 +407,7 @@ ] }, { - "description": "scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE`folder.", + "description": "scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", "enum": [ "scope-appcache" @@ -470,7 +470,7 @@ ] }, { - "description": "scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG`folder.", + "description": "scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", "enum": [ "scope-appconfig" @@ -533,7 +533,7 @@ ] }, { - "description": "scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA`folder.", + "description": "scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", "enum": [ "scope-appdata" @@ -596,7 +596,7 @@ ] }, { - "description": "scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA`folder.", + "description": "scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", "enum": [ "scope-applocaldata" @@ -659,7 +659,7 @@ ] }, { - "description": "scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG`folder.", + "description": "scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", "enum": [ "scope-applog" @@ -722,7 +722,7 @@ ] }, { - "description": "scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO`folder.", + "description": "scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", "enum": [ "scope-audio" @@ -785,7 +785,7 @@ ] }, { - "description": "scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE`folder.", + "description": "scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", "enum": [ "scope-cache" @@ -848,7 +848,7 @@ ] }, { - "description": "scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG`folder.", + "description": "scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", "enum": [ "scope-config" @@ -911,7 +911,7 @@ ] }, { - "description": "scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA`folder.", + "description": "scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", "enum": [ "scope-data" @@ -974,7 +974,7 @@ ] }, { - "description": "scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP`folder.", + "description": "scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", "enum": [ "scope-desktop" @@ -1037,7 +1037,7 @@ ] }, { - "description": "scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT`folder.", + "description": "scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", "enum": [ "scope-document" @@ -1100,7 +1100,7 @@ ] }, { - "description": "scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD`folder.", + "description": "scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", "enum": [ "scope-download" @@ -1163,7 +1163,7 @@ ] }, { - "description": "scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE`folder.", + "description": "scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", "enum": [ "scope-exe" @@ -1226,7 +1226,7 @@ ] }, { - "description": "scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT`folder.", + "description": "scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", "enum": [ "scope-font" @@ -1289,7 +1289,7 @@ ] }, { - "description": "scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME`folder.", + "description": "scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", "enum": [ "scope-home" @@ -1352,7 +1352,7 @@ ] }, { - "description": "scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA`folder.", + "description": "scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", "enum": [ "scope-localdata" @@ -1415,7 +1415,7 @@ ] }, { - "description": "scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG`folder.", + "description": "scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", "enum": [ "scope-log" @@ -1478,7 +1478,7 @@ ] }, { - "description": "scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE`folder.", + "description": "scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", "enum": [ "scope-picture" @@ -1541,7 +1541,7 @@ ] }, { - "description": "scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC`folder.", + "description": "scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", "enum": [ "scope-public" @@ -1604,7 +1604,7 @@ ] }, { - "description": "scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE`folder.", + "description": "scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", "enum": [ "scope-resource" @@ -1667,7 +1667,7 @@ ] }, { - "description": "scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME`folder.", + "description": "scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", "enum": [ "scope-runtime" @@ -1730,7 +1730,7 @@ ] }, { - "description": "scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP`folder.", + "description": "scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", "enum": [ "scope-temp" @@ -1793,7 +1793,7 @@ ] }, { - "description": "scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE`folder.", + "description": "scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", "enum": [ "scope-template" @@ -1856,7 +1856,7 @@ ] }, { - "description": "scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO`folder.", + "description": "scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", "enum": [ "scope-video" diff --git a/plugins/shell/src/scope_entry.rs b/plugins/shell/src/scope_entry.rs index e40936c30..a2fb61367 100644 --- a/plugins/shell/src/scope_entry.rs +++ b/plugins/shell/src/scope_entry.rs @@ -19,7 +19,7 @@ pub struct Entry { /// It can start with a variable that resolves to a system base directory. /// The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, /// `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, - /// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, + /// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, /// `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. // use default just so the schema doesn't flag it as required #[serde(rename = "cmd")] From 341a5320c33d3c7b041abf7eb0ab7ad8009e6c3f Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Fri, 13 Sep 2024 12:03:10 -0300 Subject: [PATCH 553/643] fix(clipboard): Android warnings and build on SDK under 28 (#1771) --- .changes/fix-clipboard-warnings-sdk.md | 6 ++ examples/api/src/views/Clipboard.svelte | 57 +++++++++---------- .../android/src/main/java/ClipboardPlugin.kt | 11 +++- plugins/clipboard-manager/guest-js/index.ts | 5 ++ 4 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 .changes/fix-clipboard-warnings-sdk.md diff --git a/.changes/fix-clipboard-warnings-sdk.md b/.changes/fix-clipboard-warnings-sdk.md new file mode 100644 index 000000000..b98f222ea --- /dev/null +++ b/.changes/fix-clipboard-warnings-sdk.md @@ -0,0 +1,6 @@ +--- +"clipboard-manager": patch +"clipboard-manager-js": patch +--- + +Fix warnings and clear implementation on Android below SDK 28. diff --git a/examples/api/src/views/Clipboard.svelte b/examples/api/src/views/Clipboard.svelte index c86282d90..f16a7d716 100644 --- a/examples/api/src/views/Clipboard.svelte +++ b/examples/api/src/views/Clipboard.svelte @@ -1,59 +1,59 @@ @@ -65,6 +65,5 @@ /> - diff --git a/plugins/clipboard-manager/android/src/main/java/ClipboardPlugin.kt b/plugins/clipboard-manager/android/src/main/java/ClipboardPlugin.kt index 942a83176..ebb931b40 100644 --- a/plugins/clipboard-manager/android/src/main/java/ClipboardPlugin.kt +++ b/plugins/clipboard-manager/android/src/main/java/ClipboardPlugin.kt @@ -4,12 +4,12 @@ package app.tauri.clipboard -import android.R.attr.value import android.app.Activity import android.content.ClipData import android.content.ClipDescription import android.content.ClipboardManager import android.content.Context +import android.os.Build import app.tauri.annotation.Command import app.tauri.annotation.InvokeArg import app.tauri.annotation.TauriPlugin @@ -59,6 +59,9 @@ internal class ReadClipDataSerializer @JvmOverloads constructor(t: Class { + throw Exception("unimplemented ReadClipData") + } } jgen.writeEndObject() @@ -93,7 +96,7 @@ class ClipboardPlugin(private val activity: Activity) : Plugin(activity) { is WriteOptions.PlainText -> { ClipData.newPlainText(args.label, args.text) } else -> { - invoke.reject("Invalid write options provided") + invoke.reject("unimplemented WriteOptions") return } @@ -128,7 +131,11 @@ class ClipboardPlugin(private val activity: Activity) : Plugin(activity) { @Command fun clear(invoke: Invoke) { if (manager.hasPrimaryClip()) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { manager.clearPrimaryClip() + } else { + manager.setPrimaryClip(ClipData.newPlainText("", "")) + } } invoke.resolve() } diff --git a/plugins/clipboard-manager/guest-js/index.ts b/plugins/clipboard-manager/guest-js/index.ts index f09754e65..d39e2f815 100644 --- a/plugins/clipboard-manager/guest-js/index.ts +++ b/plugins/clipboard-manager/guest-js/index.ts @@ -114,6 +114,11 @@ async function writeHtml(html: string, altHtml?: string): Promise { /** * Clears the clipboard. + * + * #### Platform-specific + * + * - **Android:** Only supported on SDK 28+. For older releases we write an empty string to the clipboard instead. + * * @example * ```typescript * import { clear } from '@tauri-apps/plugin-clipboard-manager'; From aebd4f61854d623b5b0b703bf3f065f8c2a8515d Mon Sep 17 00:00:00 2001 From: Cole Shirley <84236864+coleshirley@users.noreply.github.com> Date: Sat, 14 Sep 2024 11:20:21 -0500 Subject: [PATCH 554/643] fix(barcode-scanner): Fix mixed up imports (internal) (#1777) Co-authored-by: Fabian-Lars --- plugins/barcode-scanner/guest-js/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/barcode-scanner/guest-js/index.ts b/plugins/barcode-scanner/guest-js/index.ts index e8637d111..2f2361be9 100644 --- a/plugins/barcode-scanner/guest-js/index.ts +++ b/plugins/barcode-scanner/guest-js/index.ts @@ -4,8 +4,8 @@ import { invoke, - requestPermissions as checkPermissions_, - checkPermissions as requestPermissions_ + requestPermissions as requestPermissions_, + checkPermissions as checkPermissions_ } from '@tauri-apps/api/core' export type { PermissionState } from '@tauri-apps/api/core' From 79d6e19c4b38bae0cab29eb88df379e2237d9aac Mon Sep 17 00:00:00 2001 From: FabianLars Date: Sat, 14 Sep 2024 18:34:45 +0200 Subject: [PATCH 555/643] chore: Add changefile for #1777 --- .changes/fix-barcodae-scanner-imports.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/fix-barcodae-scanner-imports.md diff --git a/.changes/fix-barcodae-scanner-imports.md b/.changes/fix-barcodae-scanner-imports.md new file mode 100644 index 000000000..b3cd753f0 --- /dev/null +++ b/.changes/fix-barcodae-scanner-imports.md @@ -0,0 +1,5 @@ +--- +"barcode-scanner-js": patch +--- + +Fixed an issue which caused checkPermission and requestPermission to be mixed up. \ No newline at end of file From 6f3f66794a87ef9d1c16667c425d5ad7091a9c2f Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Sat, 14 Sep 2024 21:35:31 -0300 Subject: [PATCH 556/643] feat(deep-link): add `on_open_url` Rust API (#1780) --- .changes/deep-link-on-new-url.md | 6 ++ .../examples/app/src-tauri/src/lib.rs | 16 ++--- plugins/deep-link/src/lib.rs | 68 +++++++++++++++++-- 3 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 .changes/deep-link-on-new-url.md diff --git a/.changes/deep-link-on-new-url.md b/.changes/deep-link-on-new-url.md new file mode 100644 index 000000000..b37bed905 --- /dev/null +++ b/.changes/deep-link-on-new-url.md @@ -0,0 +1,6 @@ +--- +"deep-link": patch +--- + +Added `DeepLink::on_open_url` function to match the JavaScript API implementation, +which wraps the `deep-link://new-url` event and also send the current deep link if there's any. diff --git a/plugins/deep-link/examples/app/src-tauri/src/lib.rs b/plugins/deep-link/examples/app/src-tauri/src/lib.rs index eba3f679a..f85527d91 100644 --- a/plugins/deep-link/examples/app/src-tauri/src/lib.rs +++ b/plugins/deep-link/examples/app/src-tauri/src/lib.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use tauri::Listener; +use tauri_plugin_deep_link::DeepLinkExt; // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command #[tauri::command] @@ -33,16 +33,14 @@ pub fn run() { // ensure deep links are registered on the system // this is useful because AppImages requires additional setup to be available in the system // and calling register() makes the deep links immediately available - without any user input - #[cfg(target_os = "linux")] - { - use tauri_plugin_deep_link::DeepLinkExt; + // additionally, we manually register on Windows on debug builds for development + #[cfg(any(target_os = "linux", all(debug_assertions, windows)))] + app.deep_link().register_all()?; - app.deep_link().register_all()?; - } - - app.listen("deep-link://new-url", |url| { - dbg!(url); + app.deep_link().on_open_url(|event| { + dbg!(event.urls()); }); + Ok(()) }) .invoke_handler(tauri::generate_handler![greet]) diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index 1fff4e441..ea265504b 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -2,9 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use std::sync::Arc; + use tauri::{ plugin::{Builder, PluginApi, TauriPlugin}, - AppHandle, Manager, Runtime, + AppHandle, EventId, Listener, Manager, Runtime, }; mod commands; @@ -57,7 +59,10 @@ fn init_deep_link( }, )?; - return Ok(DeepLink(handle)); + return Ok(DeepLink { + app: app.clone(), + plugin_handle: handle, + }); } #[cfg(target_os = "ios")] @@ -83,10 +88,9 @@ fn init_deep_link( #[cfg(target_os = "android")] mod imp { - use tauri::{plugin::PluginHandle, Runtime}; + use tauri::{ipc::Channel, plugin::PluginHandle, AppHandle, Runtime}; use serde::{Deserialize, Serialize}; - use tauri::ipc::Channel; #[derive(Serialize)] #[serde(rename_all = "camelCase")] @@ -101,7 +105,10 @@ mod imp { } /// Access to the deep-link APIs. - pub struct DeepLink(pub(crate) PluginHandle); + pub struct DeepLink { + pub(crate) app: AppHandle, + pub(crate) plugin_handle: PluginHandle, + } impl DeepLink { /// Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link. @@ -112,7 +119,7 @@ mod imp { /// Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. /// Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect. pub fn get_current(&self) -> crate::Result>> { - self.0 + self.plugin_handle .run_mobile_plugin::("getCurrent", ()) .map(|v| v.url.map(|url| vec![url])) .map_err(Into::into) @@ -437,6 +444,7 @@ mod imp { } pub use imp::DeepLink; +use url::Url; /// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the deep-link APIs. pub trait DeepLinkExt { @@ -449,6 +457,54 @@ impl> crate::DeepLinkExt for T { } } +/// Event that is triggered when the app was requested to open a new URL. +/// +/// Typed [`tauri::Event`]. +pub struct OpenUrlEvent { + id: EventId, + urls: Vec, +} + +impl OpenUrlEvent { + /// The event ID which can be used to stop listening to the event via [`tauri::Listener::unlisten`]. + pub fn id(&self) -> EventId { + self.id + } + + /// The event URLs. + pub fn urls(self) -> Vec { + self.urls + } +} + +impl DeepLink { + /// Handle a new deep link being triggered to open the app. + /// + /// To avoid race conditions, if the app was started with a deep link, + /// the closure gets immediately called with the deep link URL. + pub fn on_open_url(&self, f: F) -> EventId { + let f = Arc::new(f); + let f_ = f.clone(); + let event_id = self.app.listen("deep-link://new-url", move |event| { + if let Ok(urls) = serde_json::from_str(event.payload()) { + f(OpenUrlEvent { + id: event.id(), + urls, + }) + } + }); + + if let Ok(Some(current)) = self.get_current() { + f_(OpenUrlEvent { + id: event_id, + urls: current, + }) + } + + event_id + } +} + /// Initializes the plugin. pub fn init() -> TauriPlugin> { Builder::new("deep-link") From fb85e5dd76688f3ae836890160f9bde843b70167 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Sun, 15 Sep 2024 11:36:23 -0300 Subject: [PATCH 557/643] chore(deps): update tauri to 2.0.0-rc.12 (#1785) --- .changes/update-tauri-rc-12.md | 5 + Cargo.lock | 33 +- Cargo.toml | 8 +- .../src-tauri/gen/schemas/desktop-schema.json | 8427 +++++++---------- .../autostart/permissions/schemas/schema.json | 42 +- .../permissions/schemas/schema.json | 78 +- .../biometric/permissions/schemas/schema.json | 30 +- plugins/cli/permissions/schemas/schema.json | 18 +- .../permissions/schemas/schema.json | 78 +- .../deep-link/permissions/schemas/schema.json | 54 +- .../dialog/permissions/schemas/schema.json | 66 +- plugins/fs/permissions/schemas/schema.json | 1716 ++-- .../permissions/schemas/schema.json | 72 +- .../permissions/schemas/schema.json | 66 +- .../haptics/permissions/schemas/schema.json | 48 +- plugins/http/permissions/schemas/schema.json | 54 +- plugins/log/permissions/schemas/schema.json | 18 +- plugins/nfc/permissions/schemas/schema.json | 42 +- .../permissions/schemas/schema.json | 198 +- plugins/notification/src/commands.rs | 2 +- plugins/os/permissions/schemas/schema.json | 102 +- .../permissions/schemas/schema.json | 18 +- .../process/permissions/schemas/schema.json | 30 +- plugins/shell/permissions/schemas/schema.json | 66 +- plugins/sql/permissions/schemas/schema.json | 54 +- plugins/store/permissions/schemas/schema.json | 150 +- .../permissions/schemas/schema.json | 138 +- .../updater/permissions/schemas/schema.json | 54 +- .../upload/permissions/schemas/schema.json | 30 +- .../websocket/permissions/schemas/schema.json | 30 +- .../permissions/schemas/schema.json | 42 +- 31 files changed, 4347 insertions(+), 7422 deletions(-) create mode 100644 .changes/update-tauri-rc-12.md diff --git a/.changes/update-tauri-rc-12.md b/.changes/update-tauri-rc-12.md new file mode 100644 index 000000000..fd69ac6b3 --- /dev/null +++ b/.changes/update-tauri-rc-12.md @@ -0,0 +1,5 @@ +--- +"notification": patch +--- + +Update to tauri 2.0.0-rc.12. diff --git a/Cargo.lock b/Cargo.lock index 2eb377299..cb289e66c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6261,9 +6261,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f60dc86a0513f775a6515d79cf2a54ce38f2fa7225e0c5b9d5ae8241e599afa" +checksum = "65e5d4a319f11ae72c77d0f4dbd9703ab6b401eb91d1ca88d89c33d13d4ea20c" dependencies = [ "anyhow", "bytes", @@ -6286,6 +6286,7 @@ dependencies = [ "muda", "objc", "percent-encoding", + "plist", "raw-window-handle", "reqwest", "serde", @@ -6314,9 +6315,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d6fc774b19bedadd547b0310fbdbfadbc7546978eccd6d3e389be7cabc437a" +checksum = "148441d64674b2885c1ba5baf3ae61662bb8753859ffcfb541962cbc6b847f39" dependencies = [ "anyhow", "cargo_toml", @@ -6338,9 +6339,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14af7a85713898cb8a6be3ece89eb1c39392d8756dd1cc0309ebd6fdc966eb3" +checksum = "72a15c3f9282c82871c69ddb65d02ae552738bbac848c8adcab521bf14d8b9e6" dependencies = [ "base64 0.22.1", "brotli", @@ -6365,9 +6366,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.9" +version = "2.0.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f698301cd7297a7876bb81181a830d40d401461eb14fdaf7ae189b1b56ef76" +checksum = "f12d1aa317bec56f78388cf6012d788876d838595a48f95cbd7835642db356a0" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6379,9 +6380,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2b0b4fe684059a1b700c1a0d7d51698c05b2257ca64eca2a730d7be2e47c6a" +checksum = "d82a2adea16b8a71b7a5ad23f720bb13f8d2830b820cc1c266512314ba99bf67" dependencies = [ "anyhow", "glob", @@ -6853,9 +6854,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0758dce4f9e08ebeee877d84de0062859495507e1d16f647f97b29f881b43d" +checksum = "389f78c8e8e6eff3897d8d9581087943b5976ea96a0ab5036be691f28c2b0df0" dependencies = [ "dpi", "gtk", @@ -6872,9 +6873,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78dd7f77e769630da5d91a55e4f102a84ff9c5a99c71e1b5c916a18b5ccafc16" +checksum = "466c418aef2ddc7d31173a5b00bfae3df9b58ed66644339f3ca55008bfc54f25" dependencies = [ "cocoa", "gtk", @@ -6896,9 +6897,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba92ad9cdf7658fefa29a7218dda0acead9400c021bbf9c3f88e98f5e3b9bbab" +checksum = "3019641087c9039b57ebfca95fa42a93c07056845b7d8d57c8966061bcee83b4" dependencies = [ "aes-gcm", "brotli", diff --git a/Cargo.toml b/Cargo.toml index 60362bbea..7f8d0f21c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.11", default-features = false } -tauri-build = "2.0.0-rc.10" -tauri-plugin = "2.0.0-rc.10" -tauri-utils = "2.0.0-rc.10" +tauri = { version = "2.0.0-rc.12", default-features = false } +tauri-build = "2.0.0-rc.11" +tauri-plugin = "2.0.0-rc.11" +tauri-utils = "2.0.0-rc.11" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json index a0b832848..6853acb0e 100644 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ b/examples/api/src-tauri/gen/schemas/desktop-schema.json @@ -133,7424 +133,5441 @@ { "description": "Reference a permission or permission set by identifier and extends its scope.", "type": "object", - "oneOf": [ + "allOf": [ { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "description": "fs:default -> This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", - "type": "string", - "enum": [ - "fs:default" - ] - }, - { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta" - ] - }, - { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta-recursive" - ] - }, - { - "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-read" - ] - }, - { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-read-recursive" - ] - }, - { - "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-write" - ] - }, - { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-write-recursive" - ] - }, - { - "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta" - ] - }, - { - "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta-recursive" - ] - }, - { - "description": "fs:allow-appcache-read -> This allows non-recursive read access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-read" - ] - }, - { - "description": "fs:allow-appcache-read-recursive -> This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-read-recursive" - ] - }, - { - "description": "fs:allow-appcache-write -> This allows non-recursive write access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-write" - ] - }, - { - "description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-write-recursive" - ] - }, - { - "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta" - ] - }, - { - "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta-recursive" - ] - }, - { - "description": "fs:allow-appconfig-read -> This allows non-recursive read access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read" - ] - }, - { - "description": "fs:allow-appconfig-read-recursive -> This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read-recursive" - ] - }, - { - "description": "fs:allow-appconfig-write -> This allows non-recursive write access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write" - ] - }, - { - "description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write-recursive" - ] - }, - { - "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta" - ] - }, - { - "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta-recursive" - ] - }, - { - "description": "fs:allow-appdata-read -> This allows non-recursive read access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-read" - ] - }, - { - "description": "fs:allow-appdata-read-recursive -> This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-read-recursive" - ] - }, - { - "description": "fs:allow-appdata-write -> This allows non-recursive write access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-write" - ] - }, - { - "description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-write-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta" - ] - }, - { - "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-read -> This allows non-recursive read access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read" - ] - }, - { - "description": "fs:allow-applocaldata-read-recursive -> This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-write -> This allows non-recursive write access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write" - ] - }, - { - "description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write-recursive" - ] - }, - { - "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta" - ] - }, - { - "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta-recursive" - ] - }, - { - "description": "fs:allow-applog-read -> This allows non-recursive read access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-read" - ] - }, - { - "description": "fs:allow-applog-read-recursive -> This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-read-recursive" - ] - }, - { - "description": "fs:allow-applog-write -> This allows non-recursive write access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-write" - ] - }, - { - "description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-write-recursive" - ] - }, - { - "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta" - ] - }, - { - "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta-recursive" - ] - }, - { - "description": "fs:allow-audio-read -> This allows non-recursive read access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-read" - ] - }, - { - "description": "fs:allow-audio-read-recursive -> This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-read-recursive" - ] - }, - { - "description": "fs:allow-audio-write -> This allows non-recursive write access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-write" - ] - }, - { - "description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-write-recursive" - ] - }, - { - "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta" - ] - }, - { - "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta-recursive" - ] - }, - { - "description": "fs:allow-cache-read -> This allows non-recursive read access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-read" - ] - }, - { - "description": "fs:allow-cache-read-recursive -> This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-read-recursive" - ] - }, - { - "description": "fs:allow-cache-write -> This allows non-recursive write access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-write" - ] - }, - { - "description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-write-recursive" - ] - }, - { - "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta" - ] - }, - { - "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta-recursive" - ] - }, - { - "description": "fs:allow-config-read -> This allows non-recursive read access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-read" - ] - }, - { - "description": "fs:allow-config-read-recursive -> This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-read-recursive" - ] - }, - { - "description": "fs:allow-config-write -> This allows non-recursive write access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-write" - ] - }, - { - "description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-write-recursive" - ] - }, - { - "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta" - ] - }, - { - "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta-recursive" - ] - }, - { - "description": "fs:allow-data-read -> This allows non-recursive read access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-read" - ] - }, - { - "description": "fs:allow-data-read-recursive -> This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-read-recursive" - ] - }, - { - "description": "fs:allow-data-write -> This allows non-recursive write access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-write" - ] - }, - { - "description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-write-recursive" - ] - }, - { - "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta" - ] - }, - { - "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta-recursive" - ] - }, - { - "description": "fs:allow-desktop-read -> This allows non-recursive read access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-read" - ] - }, - { - "description": "fs:allow-desktop-read-recursive -> This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-read-recursive" - ] - }, - { - "description": "fs:allow-desktop-write -> This allows non-recursive write access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-write" - ] - }, - { - "description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-write-recursive" - ] - }, - { - "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta" - ] - }, - { - "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta-recursive" - ] - }, - { - "description": "fs:allow-document-read -> This allows non-recursive read access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-read" - ] - }, - { - "description": "fs:allow-document-read-recursive -> This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-read-recursive" - ] - }, - { - "description": "fs:allow-document-write -> This allows non-recursive write access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-write" - ] - }, - { - "description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-write-recursive" - ] - }, - { - "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta" - ] - }, - { - "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta-recursive" - ] - }, - { - "description": "fs:allow-download-read -> This allows non-recursive read access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-read" - ] - }, - { - "description": "fs:allow-download-read-recursive -> This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-read-recursive" - ] - }, - { - "description": "fs:allow-download-write -> This allows non-recursive write access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-write" - ] - }, - { - "description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-write-recursive" - ] - }, - { - "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta" - ] - }, - { - "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta-recursive" - ] - }, - { - "description": "fs:allow-exe-read -> This allows non-recursive read access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-read" - ] - }, - { - "description": "fs:allow-exe-read-recursive -> This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-read-recursive" - ] - }, - { - "description": "fs:allow-exe-write -> This allows non-recursive write access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-write" - ] - }, - { - "description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-write-recursive" - ] - }, - { - "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta" - ] - }, - { - "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta-recursive" - ] - }, - { - "description": "fs:allow-font-read -> This allows non-recursive read access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-read" - ] - }, - { - "description": "fs:allow-font-read-recursive -> This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-read-recursive" - ] - }, - { - "description": "fs:allow-font-write -> This allows non-recursive write access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-write" - ] - }, - { - "description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-write-recursive" - ] - }, - { - "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta" - ] - }, - { - "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta-recursive" - ] - }, - { - "description": "fs:allow-home-read -> This allows non-recursive read access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-read" - ] - }, - { - "description": "fs:allow-home-read-recursive -> This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-read-recursive" - ] - }, - { - "description": "fs:allow-home-write -> This allows non-recursive write access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-write" - ] - }, - { - "description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-write-recursive" - ] - }, - { - "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta" - ] - }, - { - "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta-recursive" - ] - }, - { - "description": "fs:allow-localdata-read -> This allows non-recursive read access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-read" - ] - }, - { - "description": "fs:allow-localdata-read-recursive -> This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-read-recursive" - ] - }, - { - "description": "fs:allow-localdata-write -> This allows non-recursive write access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-write" - ] - }, - { - "description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-write-recursive" - ] - }, - { - "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta" - ] - }, - { - "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta-recursive" - ] - }, - { - "description": "fs:allow-log-read -> This allows non-recursive read access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-read" - ] - }, - { - "description": "fs:allow-log-read-recursive -> This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-read-recursive" - ] - }, - { - "description": "fs:allow-log-write -> This allows non-recursive write access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-write" - ] - }, - { - "description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-write-recursive" - ] - }, - { - "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta" - ] - }, - { - "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta-recursive" - ] - }, - { - "description": "fs:allow-picture-read -> This allows non-recursive read access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-read" - ] - }, - { - "description": "fs:allow-picture-read-recursive -> This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-read-recursive" - ] - }, - { - "description": "fs:allow-picture-write -> This allows non-recursive write access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-write" - ] - }, - { - "description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-write-recursive" - ] - }, - { - "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta" - ] - }, - { - "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta-recursive" - ] - }, - { - "description": "fs:allow-public-read -> This allows non-recursive read access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-read" - ] - }, - { - "description": "fs:allow-public-read-recursive -> This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-read-recursive" - ] - }, - { - "description": "fs:allow-public-write -> This allows non-recursive write access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-write" - ] - }, - { - "description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-write-recursive" - ] - }, - { - "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta" - ] - }, - { - "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta-recursive" - ] - }, - { - "description": "fs:allow-resource-read -> This allows non-recursive read access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-read" - ] - }, - { - "description": "fs:allow-resource-read-recursive -> This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-read-recursive" - ] - }, - { - "description": "fs:allow-resource-write -> This allows non-recursive write access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-write" - ] - }, - { - "description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-write-recursive" - ] - }, - { - "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta" - ] - }, - { - "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta-recursive" - ] - }, - { - "description": "fs:allow-runtime-read -> This allows non-recursive read access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-read" - ] - }, - { - "description": "fs:allow-runtime-read-recursive -> This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-read-recursive" - ] - }, - { - "description": "fs:allow-runtime-write -> This allows non-recursive write access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-write" - ] - }, - { - "description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-write-recursive" - ] - }, - { - "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta" - ] - }, - { - "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta-recursive" - ] - }, - { - "description": "fs:allow-temp-read -> This allows non-recursive read access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-read" - ] - }, - { - "description": "fs:allow-temp-read-recursive -> This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-read-recursive" - ] - }, - { - "description": "fs:allow-temp-write -> This allows non-recursive write access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-write" - ] - }, - { - "description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-write-recursive" - ] - }, - { - "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta" - ] - }, - { - "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta-recursive" - ] - }, - { - "description": "fs:allow-template-read -> This allows non-recursive read access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-read" - ] - }, - { - "description": "fs:allow-template-read-recursive -> This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-read-recursive" - ] - }, - { - "description": "fs:allow-template-write -> This allows non-recursive write access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-write" - ] - }, - { - "description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-write-recursive" - ] - }, - { - "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta" - ] - }, - { - "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta-recursive" - ] - }, - { - "description": "fs:allow-video-read -> This allows non-recursive read access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-read" - ] - }, - { - "description": "fs:allow-video-read-recursive -> This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-read-recursive" - ] - }, - { - "description": "fs:allow-video-write -> This allows non-recursive write access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-write" - ] - }, - { - "description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-write-recursive" - ] - }, - { - "description": "fs:deny-default -> This denies access to dangerous Tauri relevant files and folders by default.", - "type": "string", - "enum": [ - "fs:deny-default" - ] - }, - { - "description": "fs:allow-copy-file -> Enables the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-copy-file" - ] - }, - { - "description": "fs:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-create" - ] - }, - { - "description": "fs:allow-exists -> Enables the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-exists" - ] - }, - { - "description": "fs:allow-fstat -> Enables the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-fstat" - ] - }, - { - "description": "fs:allow-ftruncate -> Enables the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-ftruncate" - ] - }, - { - "description": "fs:allow-lstat -> Enables the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-lstat" - ] - }, - { - "description": "fs:allow-mkdir -> Enables the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-mkdir" - ] - }, - { - "description": "fs:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-open" - ] - }, - { - "description": "fs:allow-read -> Enables the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read" - ] - }, - { - "description": "fs:allow-read-dir -> Enables the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-dir" - ] - }, - { - "description": "fs:allow-read-file -> Enables the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-file" - ] - }, - { - "description": "fs:allow-read-text-file -> Enables the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file" - ] - }, - { - "description": "fs:allow-read-text-file-lines -> Enables the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines" - ] - }, - { - "description": "fs:allow-read-text-file-lines-next -> Enables the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines-next" - ] - }, - { - "description": "fs:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-remove" - ] - }, - { - "description": "fs:allow-rename -> Enables the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-rename" - ] - }, - { - "description": "fs:allow-seek -> Enables the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-seek" - ] - }, - { - "description": "fs:allow-stat -> Enables the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-stat" - ] - }, - { - "description": "fs:allow-truncate -> Enables the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-truncate" - ] - }, - { - "description": "fs:allow-unwatch -> Enables the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-unwatch" - ] - }, - { - "description": "fs:allow-watch -> Enables the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-watch" - ] - }, - { - "description": "fs:allow-write -> Enables the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write" - ] - }, - { - "description": "fs:allow-write-file -> Enables the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-file" - ] - }, - { - "description": "fs:allow-write-text-file -> Enables the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-text-file" - ] - }, - { - "description": "fs:create-app-specific-dirs -> This permissions allows to create the application specific directories.\n", - "type": "string", - "enum": [ - "fs:create-app-specific-dirs" - ] - }, - { - "description": "fs:deny-copy-file -> Denies the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-copy-file" - ] - }, - { - "description": "fs:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-create" - ] - }, - { - "description": "fs:deny-exists -> Denies the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-exists" - ] - }, - { - "description": "fs:deny-fstat -> Denies the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-fstat" - ] - }, - { - "description": "fs:deny-ftruncate -> Denies the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-ftruncate" - ] - }, - { - "description": "fs:deny-lstat -> Denies the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-lstat" - ] - }, - { - "description": "fs:deny-mkdir -> Denies the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-mkdir" - ] - }, - { - "description": "fs:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-open" - ] - }, - { - "description": "fs:deny-read -> Denies the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read" - ] - }, - { - "description": "fs:deny-read-dir -> Denies the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-dir" - ] - }, - { - "description": "fs:deny-read-file -> Denies the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-file" - ] - }, - { - "description": "fs:deny-read-text-file -> Denies the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file" - ] - }, - { - "description": "fs:deny-read-text-file-lines -> Denies the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines" - ] - }, - { - "description": "fs:deny-read-text-file-lines-next -> Denies the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines-next" - ] - }, - { - "description": "fs:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-remove" - ] - }, - { - "description": "fs:deny-rename -> Denies the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-rename" - ] - }, - { - "description": "fs:deny-seek -> Denies the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-seek" - ] - }, - { - "description": "fs:deny-stat -> Denies the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-stat" - ] - }, - { - "description": "fs:deny-truncate -> Denies the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-truncate" - ] - }, - { - "description": "fs:deny-unwatch -> Denies the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-unwatch" - ] - }, - { - "description": "fs:deny-watch -> Denies the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-watch" - ] - }, - { - "description": "fs:deny-webview-data-linux -> This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-linux" - ] - }, - { - "description": "fs:deny-webview-data-windows -> This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-windows" - ] - }, - { - "description": "fs:deny-write -> Denies the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write" - ] - }, - { - "description": "fs:deny-write-file -> Denies the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-file" - ] - }, - { - "description": "fs:deny-write-text-file -> Denies the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-text-file" - ] - }, - { - "description": "fs:read-all -> This enables all read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-all" - ] - }, - { - "description": "fs:read-app-specific-dirs-recursive -> This permission allows recursive read functionality on the application\nspecific base directories. \n", - "type": "string", - "enum": [ - "fs:read-app-specific-dirs-recursive" - ] - }, - { - "description": "fs:read-dirs -> This enables directory read and file metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-dirs" - ] - }, - { - "description": "fs:read-files -> This enables file read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-files" - ] - }, - { - "description": "fs:read-meta -> This enables all index or metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-meta" - ] - }, - { - "description": "fs:scope -> An empty permission you can use to modify the global scope.", - "type": "string", - "enum": [ - "fs:scope" - ] - }, - { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", - "type": "string", - "enum": [ - "fs:scope-app" - ] - }, - { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", - "type": "string", - "enum": [ - "fs:scope-app-index" - ] - }, - { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-app-recursive" - ] - }, - { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-appcache" - ] - }, - { - "description": "fs:scope-appcache-index -> This scope permits to list all files and folders in the `$APPCACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-appcache-index" - ] - }, - { - "description": "fs:scope-appcache-recursive -> This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appcache-recursive" - ] - }, - { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig" - ] - }, - { - "description": "fs:scope-appconfig-index -> This scope permits to list all files and folders in the `$APPCONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig-index" - ] - }, - { - "description": "fs:scope-appconfig-recursive -> This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appconfig-recursive" - ] - }, - { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-appdata" - ] - }, - { - "description": "fs:scope-appdata-index -> This scope permits to list all files and folders in the `$APPDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-appdata-index" - ] - }, - { - "description": "fs:scope-appdata-recursive -> This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appdata-recursive" - ] - }, - { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata" - ] - }, - { - "description": "fs:scope-applocaldata-index -> This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-index" - ] - }, - { - "description": "fs:scope-applocaldata-recursive -> This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-recursive" - ] - }, - { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:scope-applog" - ] - }, - { - "description": "fs:scope-applog-index -> This scope permits to list all files and folders in the `$APPLOG`folder.", - "type": "string", - "enum": [ - "fs:scope-applog-index" - ] - }, - { - "description": "fs:scope-applog-recursive -> This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applog-recursive" - ] - }, - { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:scope-audio" - ] - }, - { - "description": "fs:scope-audio-index -> This scope permits to list all files and folders in the `$AUDIO`folder.", - "type": "string", - "enum": [ - "fs:scope-audio-index" - ] - }, - { - "description": "fs:scope-audio-recursive -> This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-audio-recursive" - ] - }, - { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-cache" - ] - }, - { - "description": "fs:scope-cache-index -> This scope permits to list all files and folders in the `$CACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-cache-index" - ] - }, - { - "description": "fs:scope-cache-recursive -> This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-cache-recursive" - ] - }, - { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-config" - ] - }, - { - "description": "fs:scope-config-index -> This scope permits to list all files and folders in the `$CONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-config-index" - ] - }, - { - "description": "fs:scope-config-recursive -> This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-config-recursive" - ] - }, - { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:scope-data" - ] - }, - { - "description": "fs:scope-data-index -> This scope permits to list all files and folders in the `$DATA`folder.", - "type": "string", - "enum": [ - "fs:scope-data-index" - ] - }, - { - "description": "fs:scope-data-recursive -> This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-data-recursive" - ] - }, - { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:scope-desktop" - ] - }, - { - "description": "fs:scope-desktop-index -> This scope permits to list all files and folders in the `$DESKTOP`folder.", - "type": "string", - "enum": [ - "fs:scope-desktop-index" - ] - }, - { - "description": "fs:scope-desktop-recursive -> This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-desktop-recursive" - ] - }, - { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:scope-document" - ] - }, - { - "description": "fs:scope-document-index -> This scope permits to list all files and folders in the `$DOCUMENT`folder.", - "type": "string", - "enum": [ - "fs:scope-document-index" - ] - }, - { - "description": "fs:scope-document-recursive -> This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-document-recursive" - ] - }, - { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:scope-download" - ] - }, - { - "description": "fs:scope-download-index -> This scope permits to list all files and folders in the `$DOWNLOAD`folder.", - "type": "string", - "enum": [ - "fs:scope-download-index" - ] - }, - { - "description": "fs:scope-download-recursive -> This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-download-recursive" - ] - }, - { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:scope-exe" - ] - }, - { - "description": "fs:scope-exe-index -> This scope permits to list all files and folders in the `$EXE`folder.", - "type": "string", - "enum": [ - "fs:scope-exe-index" - ] - }, - { - "description": "fs:scope-exe-recursive -> This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-exe-recursive" - ] - }, - { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:scope-font" - ] - }, - { - "description": "fs:scope-font-index -> This scope permits to list all files and folders in the `$FONT`folder.", - "type": "string", - "enum": [ - "fs:scope-font-index" - ] - }, - { - "description": "fs:scope-font-recursive -> This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-font-recursive" - ] - }, - { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:scope-home" - ] - }, - { - "description": "fs:scope-home-index -> This scope permits to list all files and folders in the `$HOME`folder.", - "type": "string", - "enum": [ - "fs:scope-home-index" - ] - }, - { - "description": "fs:scope-home-recursive -> This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-home-recursive" - ] - }, - { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-localdata" - ] - }, - { - "description": "fs:scope-localdata-index -> This scope permits to list all files and folders in the `$LOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-localdata-index" - ] - }, - { - "description": "fs:scope-localdata-recursive -> This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-localdata-recursive" - ] - }, - { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:scope-log" - ] - }, - { - "description": "fs:scope-log-index -> This scope permits to list all files and folders in the `$LOG`folder.", - "type": "string", - "enum": [ - "fs:scope-log-index" - ] - }, - { - "description": "fs:scope-log-recursive -> This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-log-recursive" - ] - }, - { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:scope-picture" - ] - }, - { - "description": "fs:scope-picture-index -> This scope permits to list all files and folders in the `$PICTURE`folder.", - "type": "string", - "enum": [ - "fs:scope-picture-index" - ] - }, - { - "description": "fs:scope-picture-recursive -> This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-picture-recursive" - ] - }, - { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:scope-public" - ] - }, - { - "description": "fs:scope-public-index -> This scope permits to list all files and folders in the `$PUBLIC`folder.", - "type": "string", - "enum": [ - "fs:scope-public-index" - ] - }, - { - "description": "fs:scope-public-recursive -> This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-public-recursive" - ] - }, - { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:scope-resource" - ] - }, - { - "description": "fs:scope-resource-index -> This scope permits to list all files and folders in the `$RESOURCE`folder.", - "type": "string", - "enum": [ - "fs:scope-resource-index" - ] - }, - { - "description": "fs:scope-resource-recursive -> This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-resource-recursive" - ] - }, - { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:scope-runtime" - ] - }, - { - "description": "fs:scope-runtime-index -> This scope permits to list all files and folders in the `$RUNTIME`folder.", - "type": "string", - "enum": [ - "fs:scope-runtime-index" - ] - }, - { - "description": "fs:scope-runtime-recursive -> This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-runtime-recursive" - ] - }, - { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:scope-temp" - ] - }, - { - "description": "fs:scope-temp-index -> This scope permits to list all files and folders in the `$TEMP`folder.", - "type": "string", - "enum": [ - "fs:scope-temp-index" - ] - }, - { - "description": "fs:scope-temp-recursive -> This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-temp-recursive" - ] - }, - { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:scope-template" - ] - }, - { - "description": "fs:scope-template-index -> This scope permits to list all files and folders in the `$TEMPLATE`folder.", - "type": "string", - "enum": [ - "fs:scope-template-index" - ] - }, - { - "description": "fs:scope-template-recursive -> This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-template-recursive" - ] - }, - { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:scope-video" - ] - }, - { - "description": "fs:scope-video-index -> This scope permits to list all files and folders in the `$VIDEO`folder.", - "type": "string", - "enum": [ - "fs:scope-video-index" - ] - }, - { - "description": "fs:scope-video-recursive -> This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-video-recursive" - ] - }, - { - "description": "fs:write-all -> This enables all write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-all" - ] - }, - { - "description": "fs:write-files -> This enables all file write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-files" - ] - } - ] - }, - "allow": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", + "if": { + "properties": { + "identifier": { "anyOf": [ { - "description": "FS scope path.", - "type": "string" + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "type": "string", + "const": "fs:default" }, { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", - "anyOf": [ - { - "description": "FS scope path.", - "type": "string" + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta" }, { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "type": "string", + "const": "fs:allow-app-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the application folders.", + "type": "string", + "const": "fs:allow-app-read" + }, + { + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-read-recursive" + }, + { + "description": "This allows non-recursive write access to the application folders.", + "type": "string", + "const": "fs:allow-app-write" + }, + { + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", + "type": "string", + "const": "fs:allow-app-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appcache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", + "type": "string", + "const": "fs:allow-appcache-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appcache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appconfig-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:allow-appconfig-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appconfig-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-appdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPDATA` folder.", + "type": "string", + "const": "fs:allow-appdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-appdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applocaldata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:allow-applocaldata-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applocaldata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-applog-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-read" + }, + { + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$APPLOG` folder.", + "type": "string", + "const": "fs:allow-applog-write" + }, + { + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-applog-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-audio-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-read" + }, + { + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$AUDIO` folder.", + "type": "string", + "const": "fs:allow-audio-write" + }, + { + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-audio-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-cache-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-read" + }, + { + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CACHE` folder.", + "type": "string", + "const": "fs:allow-cache-write" + }, + { + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-cache-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-config-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-read" + }, + { + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$CONFIG` folder.", + "type": "string", + "const": "fs:allow-config-write" + }, + { + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-config-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-data-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-read" + }, + { + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DATA` folder.", + "type": "string", + "const": "fs:allow-data-write" + }, + { + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-data-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-desktop-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-read" + }, + { + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", + "type": "string", + "const": "fs:allow-desktop-write" + }, + { + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-desktop-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-document-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:allow-document-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-document-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-download-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-read" + }, + { + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:allow-download-write" + }, + { + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-download-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-exe-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-read" + }, + { + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$EXE` folder.", + "type": "string", + "const": "fs:allow-exe-write" + }, + { + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-exe-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-font-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-read" + }, + { + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$FONT` folder.", + "type": "string", + "const": "fs:allow-font-write" + }, + { + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-font-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-home-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-read" + }, + { + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$HOME` folder.", + "type": "string", + "const": "fs:allow-home-write" + }, + { + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-home-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-localdata-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:allow-localdata-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-localdata-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-log-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-read" + }, + { + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$LOG` folder.", + "type": "string", + "const": "fs:allow-log-write" + }, + { + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-log-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-picture-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-read" + }, + { + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PICTURE` folder.", + "type": "string", + "const": "fs:allow-picture-write" + }, + { + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-picture-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-public-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-read" + }, + { + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", + "type": "string", + "const": "fs:allow-public-write" + }, + { + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-public-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-resource-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-read" + }, + { + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", + "type": "string", + "const": "fs:allow-resource-write" + }, + { + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-resource-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-runtime-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-read" + }, + { + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", + "type": "string", + "const": "fs:allow-runtime-write" + }, + { + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-runtime-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-temp-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMP` folder.", + "type": "string", + "const": "fs:allow-temp-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-temp-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-template-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-read" + }, + { + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:allow-template-write" + }, + { + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-template-write-recursive" + }, + { + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta" + }, + { + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "type": "string", + "const": "fs:allow-video-meta-recursive" + }, + { + "description": "This allows non-recursive read access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-read" + }, + { + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-read-recursive" + }, + { + "description": "This allows non-recursive write access to the `$VIDEO` folder.", + "type": "string", + "const": "fs:allow-video-write" + }, + { + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "type": "string", + "const": "fs:allow-video-write-recursive" + }, + { + "description": "This denies access to dangerous Tauri relevant files and folders by default.", + "type": "string", + "const": "fs:deny-default" + }, + { + "description": "Enables the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-copy-file" + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-create" + }, + { + "description": "Enables the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-exists" + }, + { + "description": "Enables the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-fstat" + }, + { + "description": "Enables the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-ftruncate" + }, + { + "description": "Enables the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-lstat" + }, + { + "description": "Enables the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-mkdir" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-open" + }, + { + "description": "Enables the read command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read" + }, + { + "description": "Enables the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-dir" + }, + { + "description": "Enables the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-file" + }, + { + "description": "Enables the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file" + }, + { + "description": "Enables the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines" + }, + { + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-read-text-file-lines-next" + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-remove" + }, + { + "description": "Enables the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-rename" + }, + { + "description": "Enables the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-seek" + }, + { + "description": "Enables the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-stat" + }, + { + "description": "Enables the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-truncate" + }, + { + "description": "Enables the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-unwatch" + }, + { + "description": "Enables the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-watch" + }, + { + "description": "Enables the write command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write" + }, + { + "description": "Enables the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-file" + }, + { + "description": "Enables the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:allow-write-text-file" + }, + { + "description": "This permissions allows to create the application specific directories.\n", + "type": "string", + "const": "fs:create-app-specific-dirs" + }, + { + "description": "Denies the copy_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-copy-file" + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-create" + }, + { + "description": "Denies the exists command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-exists" + }, + { + "description": "Denies the fstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-fstat" + }, + { + "description": "Denies the ftruncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-ftruncate" + }, + { + "description": "Denies the lstat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-lstat" + }, + { + "description": "Denies the mkdir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-mkdir" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-open" + }, + { + "description": "Denies the read command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read" + }, + { + "description": "Denies the read_dir command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-dir" + }, + { + "description": "Denies the read_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-file" + }, + { + "description": "Denies the read_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file" + }, + { + "description": "Denies the read_text_file_lines command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines" + }, + { + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-read-text-file-lines-next" + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-remove" + }, + { + "description": "Denies the rename command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-rename" + }, + { + "description": "Denies the seek command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-seek" + }, + { + "description": "Denies the stat command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-stat" + }, + { + "description": "Denies the truncate command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-truncate" + }, + { + "description": "Denies the unwatch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-unwatch" + }, + { + "description": "Denies the watch command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-watch" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-linux" + }, + { + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "type": "string", + "const": "fs:deny-webview-data-windows" + }, + { + "description": "Denies the write command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write" + }, + { + "description": "Denies the write_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-file" + }, + { + "description": "Denies the write_text_file command without any pre-configured scope.", + "type": "string", + "const": "fs:deny-write-text-file" + }, + { + "description": "This enables all read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-all" + }, + { + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "type": "string", + "const": "fs:read-app-specific-dirs-recursive" + }, + { + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-dirs" + }, + { + "description": "This enables file read related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-files" + }, + { + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:read-meta" + }, + { + "description": "An empty permission you can use to modify the global scope.", + "type": "string", + "const": "fs:scope" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the application folders.", + "type": "string", + "const": "fs:scope-app" + }, + { + "description": "This scope permits to list all files and folders in the application directories.", + "type": "string", + "const": "fs:scope-app-index" + }, + { + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", + "type": "string", + "const": "fs:scope-app-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "type": "string", + "const": "fs:scope-appcache" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", + "type": "string", + "const": "fs:scope-appcache-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appcache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "type": "string", + "const": "fs:scope-appconfig" + }, + { + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "type": "string", + "const": "fs:scope-appconfig-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appconfig-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "type": "string", + "const": "fs:scope-appdata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", + "type": "string", + "const": "fs:scope-appdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-appdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "type": "string", + "const": "fs:scope-applocaldata" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "type": "string", + "const": "fs:scope-applocaldata-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applocaldata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "type": "string", + "const": "fs:scope-applog" + }, + { + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", + "type": "string", + "const": "fs:scope-applog-index" + }, + { + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-applog-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "type": "string", + "const": "fs:scope-audio" + }, + { + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", + "type": "string", + "const": "fs:scope-audio-index" + }, + { + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-audio-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "type": "string", + "const": "fs:scope-cache" + }, + { + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", + "type": "string", + "const": "fs:scope-cache-index" + }, + { + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-cache-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "type": "string", + "const": "fs:scope-config" + }, + { + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", + "type": "string", + "const": "fs:scope-config-index" + }, + { + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-config-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "type": "string", + "const": "fs:scope-data" + }, + { + "description": "This scope permits to list all files and folders in the `$DATA`folder.", + "type": "string", + "const": "fs:scope-data-index" + }, + { + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-data-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "type": "string", + "const": "fs:scope-desktop" + }, + { + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", + "type": "string", + "const": "fs:scope-desktop-index" + }, + { + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-desktop-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "type": "string", + "const": "fs:scope-document" + }, + { + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "type": "string", + "const": "fs:scope-document-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-document-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "type": "string", + "const": "fs:scope-download" + }, + { + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "type": "string", + "const": "fs:scope-download-index" + }, + { + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-download-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "type": "string", + "const": "fs:scope-exe" + }, + { + "description": "This scope permits to list all files and folders in the `$EXE`folder.", + "type": "string", + "const": "fs:scope-exe-index" + }, + { + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-exe-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "type": "string", + "const": "fs:scope-font" + }, + { + "description": "This scope permits to list all files and folders in the `$FONT`folder.", + "type": "string", + "const": "fs:scope-font-index" + }, + { + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-font-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "type": "string", + "const": "fs:scope-home" + }, + { + "description": "This scope permits to list all files and folders in the `$HOME`folder.", + "type": "string", + "const": "fs:scope-home-index" + }, + { + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-home-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "type": "string", + "const": "fs:scope-localdata" + }, + { + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "type": "string", + "const": "fs:scope-localdata-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-localdata-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "type": "string", + "const": "fs:scope-log" + }, + { + "description": "This scope permits to list all files and folders in the `$LOG`folder.", + "type": "string", + "const": "fs:scope-log-index" + }, + { + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-log-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "type": "string", + "const": "fs:scope-picture" + }, + { + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", + "type": "string", + "const": "fs:scope-picture-index" + }, + { + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-picture-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "type": "string", + "const": "fs:scope-public" + }, + { + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", + "type": "string", + "const": "fs:scope-public-index" + }, + { + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-public-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "type": "string", + "const": "fs:scope-resource" + }, + { + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", + "type": "string", + "const": "fs:scope-resource-index" + }, + { + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-resource-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "type": "string", + "const": "fs:scope-runtime" + }, + { + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", + "type": "string", + "const": "fs:scope-runtime-index" + }, + { + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-runtime-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "type": "string", + "const": "fs:scope-temp" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", + "type": "string", + "const": "fs:scope-temp-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-temp-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "type": "string", + "const": "fs:scope-template" + }, + { + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "type": "string", + "const": "fs:scope-template-index" + }, + { + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-template-recursive" + }, + { + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "type": "string", + "const": "fs:scope-video" + }, + { + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", + "type": "string", + "const": "fs:scope-video-index" + }, + { + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "type": "string", + "const": "fs:scope-video-recursive" + }, + { + "description": "This enables all write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-all" + }, + { + "description": "This enables all file write related commands without any pre-configured accessible paths.", + "type": "string", + "const": "fs:write-files" } ] } } - } - }, - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "description": "http:default -> This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", - "type": "string", - "enum": [ - "http:default" - ] - }, - { - "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch" - ] - }, - { - "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-cancel" - ] - }, - { - "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-read-body" - ] - }, - { - "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-send" - ] - }, - { - "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch" - ] - }, - { - "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-cancel" - ] - }, - { - "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-read-body" - ] - }, - { - "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-send" + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } ] } + }, + "deny": { + "items": { + "title": "FsScopeEntry", + "description": "FS scope entry.", + "anyOf": [ + { + "description": "FS scope path.", + "type": "string" + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "FS scope path.", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } ] - }, - "allow": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } } } }, { - "type": "object", - "required": [ - "identifier" - ], + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "type": "string", + "const": "http:default" + }, + { + "description": "Enables the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch" + }, + { + "description": "Enables the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-cancel" + }, + { + "description": "Enables the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-read-body" + }, + { + "description": "Enables the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:allow-fetch-send" + }, + { + "description": "Denies the fetch command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch" + }, + { + "description": "Denies the fetch_cancel command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-cancel" + }, + { + "description": "Denies the fetch_read_body command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-read-body" + }, + { + "description": "Denies the fetch_send command without any pre-configured scope.", + "type": "string", + "const": "http:deny-fetch-send" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "HttpScopeEntry", + "description": "HTTP scope entry.", + "anyOf": [ + { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + }, + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + } + ] + } + } + } + }, "properties": { "identifier": { - "oneOf": [ + "description": "Identifier of the permission or permission set.", + "allOf": [ { - "description": "shell:default -> This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", - "type": "string", - "enum": [ - "shell:default" - ] - }, + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "type": "string", + "const": "shell:default" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute" + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill" + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open" + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn" + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write" + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute" + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill" + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open" + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn" + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write" + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "Entry", + "description": "A command allowed to be executed by the webview API.", + "type": "object", + "required": [ + "args", + "cmd", + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + } + } + }, + "deny": { + "items": { + "title": "Entry", + "description": "A command allowed to be executed by the webview API.", + "type": "object", + "required": [ + "args", + "cmd", + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + } + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-spawn" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-spawn" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] + "$ref": "#/definitions/Identifier" } ] }, "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } + "$ref": "#/definitions/Value" } }, "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } + "$ref": "#/definitions/Value" } } } } + ], + "required": [ + "identifier" ] } ] }, "Identifier": { + "description": "Permission identifier", "oneOf": [ { - "description": "cli:default -> Allows reading the CLI matches", + "description": "Allows reading the CLI matches", "type": "string", - "enum": [ - "cli:default" - ] + "const": "cli:default" }, { - "description": "cli:allow-cli-matches -> Enables the cli_matches command without any pre-configured scope.", + "description": "Enables the cli_matches command without any pre-configured scope.", "type": "string", - "enum": [ - "cli:allow-cli-matches" - ] + "const": "cli:allow-cli-matches" }, { - "description": "cli:deny-cli-matches -> Denies the cli_matches command without any pre-configured scope.", + "description": "Denies the cli_matches command without any pre-configured scope.", "type": "string", - "enum": [ - "cli:deny-cli-matches" - ] + "const": "cli:deny-cli-matches" }, { - "description": "clipboard-manager:default -> No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", + "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", "type": "string", - "enum": [ - "clipboard-manager:default" - ] + "const": "clipboard-manager:default" }, { - "description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.", + "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-clear" - ] + "const": "clipboard-manager:allow-clear" }, { - "description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.", + "description": "Enables the read_image command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-read-image" - ] + "const": "clipboard-manager:allow-read-image" }, { - "description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.", + "description": "Enables the read_text command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-read-text" - ] + "const": "clipboard-manager:allow-read-text" }, { - "description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.", + "description": "Enables the write_html command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-write-html" - ] + "const": "clipboard-manager:allow-write-html" }, { - "description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.", + "description": "Enables the write_image command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-write-image" - ] + "const": "clipboard-manager:allow-write-image" }, { - "description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.", + "description": "Enables the write_text command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:allow-write-text" - ] + "const": "clipboard-manager:allow-write-text" }, { - "description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.", + "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-clear" - ] + "const": "clipboard-manager:deny-clear" }, { - "description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.", + "description": "Denies the read_image command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-read-image" - ] + "const": "clipboard-manager:deny-read-image" }, { - "description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.", + "description": "Denies the read_text command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-read-text" - ] + "const": "clipboard-manager:deny-read-text" }, { - "description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.", + "description": "Denies the write_html command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-write-html" - ] + "const": "clipboard-manager:deny-write-html" }, { - "description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.", + "description": "Denies the write_image command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-write-image" - ] + "const": "clipboard-manager:deny-write-image" }, { - "description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.", + "description": "Denies the write_text command without any pre-configured scope.", "type": "string", - "enum": [ - "clipboard-manager:deny-write-text" - ] + "const": "clipboard-manager:deny-write-text" }, { - "description": "core:app:default -> Default permissions for the plugin.", + "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", "type": "string", - "enum": [ - "core:app:default" - ] + "const": "core:default" }, { - "description": "core:app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:app:allow-app-hide" - ] + "const": "core:app:default" }, { - "description": "core:app:allow-app-show -> Enables the app_show command without any pre-configured scope.", + "description": "Enables the app_hide command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:allow-app-show" - ] + "const": "core:app:allow-app-hide" }, { - "description": "core:app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.", + "description": "Enables the app_show command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:allow-default-window-icon" - ] + "const": "core:app:allow-app-show" }, { - "description": "core:app:allow-name -> Enables the name command without any pre-configured scope.", + "description": "Enables the default_window_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:allow-name" - ] + "const": "core:app:allow-default-window-icon" }, { - "description": "core:app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", + "description": "Enables the name command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:allow-tauri-version" - ] + "const": "core:app:allow-name" }, { - "description": "core:app:allow-version -> Enables the version command without any pre-configured scope.", + "description": "Enables the tauri_version command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:allow-version" - ] + "const": "core:app:allow-tauri-version" }, { - "description": "core:app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", + "description": "Enables the version command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-app-hide" - ] + "const": "core:app:allow-version" }, { - "description": "core:app:deny-app-show -> Denies the app_show command without any pre-configured scope.", + "description": "Denies the app_hide command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-app-show" - ] + "const": "core:app:deny-app-hide" }, { - "description": "core:app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.", + "description": "Denies the app_show command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-default-window-icon" - ] + "const": "core:app:deny-app-show" }, { - "description": "core:app:deny-name -> Denies the name command without any pre-configured scope.", + "description": "Denies the default_window_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-name" - ] + "const": "core:app:deny-default-window-icon" }, { - "description": "core:app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", + "description": "Denies the name command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-tauri-version" - ] + "const": "core:app:deny-name" }, { - "description": "core:app:deny-version -> Denies the version command without any pre-configured scope.", + "description": "Denies the tauri_version command without any pre-configured scope.", "type": "string", - "enum": [ - "core:app:deny-version" - ] + "const": "core:app:deny-tauri-version" }, { - "description": "core:event:default -> Default permissions for the plugin.", + "description": "Denies the version command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:default" - ] + "const": "core:app:deny-version" }, { - "description": "core:event:allow-emit -> Enables the emit command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:event:allow-emit" - ] + "const": "core:event:default" }, { - "description": "core:event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", + "description": "Enables the emit command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:allow-emit-to" - ] + "const": "core:event:allow-emit" }, { - "description": "core:event:allow-listen -> Enables the listen command without any pre-configured scope.", + "description": "Enables the emit_to command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:allow-listen" - ] + "const": "core:event:allow-emit-to" }, { - "description": "core:event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", + "description": "Enables the listen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:allow-unlisten" - ] + "const": "core:event:allow-listen" }, { - "description": "core:event:deny-emit -> Denies the emit command without any pre-configured scope.", + "description": "Enables the unlisten command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:deny-emit" - ] + "const": "core:event:allow-unlisten" }, { - "description": "core:event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", + "description": "Denies the emit command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:deny-emit-to" - ] + "const": "core:event:deny-emit" }, { - "description": "core:event:deny-listen -> Denies the listen command without any pre-configured scope.", + "description": "Denies the emit_to command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:deny-listen" - ] + "const": "core:event:deny-emit-to" }, { - "description": "core:event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", + "description": "Denies the listen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:event:deny-unlisten" - ] + "const": "core:event:deny-listen" }, { - "description": "core:image:default -> Default permissions for the plugin.", + "description": "Denies the unlisten command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:default" - ] + "const": "core:event:deny-unlisten" }, { - "description": "core:image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:image:allow-from-bytes" - ] + "const": "core:image:default" }, { - "description": "core:image:allow-from-path -> Enables the from_path command without any pre-configured scope.", + "description": "Enables the from_bytes command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:allow-from-path" - ] + "const": "core:image:allow-from-bytes" }, { - "description": "core:image:allow-new -> Enables the new command without any pre-configured scope.", + "description": "Enables the from_path command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:allow-new" - ] + "const": "core:image:allow-from-path" }, { - "description": "core:image:allow-rgba -> Enables the rgba command without any pre-configured scope.", + "description": "Enables the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:allow-rgba" - ] + "const": "core:image:allow-new" }, { - "description": "core:image:allow-size -> Enables the size command without any pre-configured scope.", + "description": "Enables the rgba command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:allow-size" - ] + "const": "core:image:allow-rgba" }, { - "description": "core:image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", + "description": "Enables the size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:deny-from-bytes" - ] + "const": "core:image:allow-size" }, { - "description": "core:image:deny-from-path -> Denies the from_path command without any pre-configured scope.", + "description": "Denies the from_bytes command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:deny-from-path" - ] + "const": "core:image:deny-from-bytes" }, { - "description": "core:image:deny-new -> Denies the new command without any pre-configured scope.", + "description": "Denies the from_path command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:deny-new" - ] + "const": "core:image:deny-from-path" }, { - "description": "core:image:deny-rgba -> Denies the rgba command without any pre-configured scope.", + "description": "Denies the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:deny-rgba" - ] + "const": "core:image:deny-new" }, { - "description": "core:image:deny-size -> Denies the size command without any pre-configured scope.", + "description": "Denies the rgba command without any pre-configured scope.", "type": "string", - "enum": [ - "core:image:deny-size" - ] + "const": "core:image:deny-rgba" }, { - "description": "core:menu:default -> Default permissions for the plugin.", + "description": "Denies the size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:default" - ] + "const": "core:image:deny-size" }, { - "description": "core:menu:allow-append -> Enables the append command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:menu:allow-append" - ] + "const": "core:menu:default" }, { - "description": "core:menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", + "description": "Enables the append command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-create-default" - ] + "const": "core:menu:allow-append" }, { - "description": "core:menu:allow-get -> Enables the get command without any pre-configured scope.", + "description": "Enables the create_default command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-get" - ] + "const": "core:menu:allow-create-default" }, { - "description": "core:menu:allow-insert -> Enables the insert command without any pre-configured scope.", + "description": "Enables the get command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-insert" - ] + "const": "core:menu:allow-get" }, { - "description": "core:menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", + "description": "Enables the insert command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-is-checked" - ] + "const": "core:menu:allow-insert" }, { - "description": "core:menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", + "description": "Enables the is_checked command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-is-enabled" - ] + "const": "core:menu:allow-is-checked" }, { - "description": "core:menu:allow-items -> Enables the items command without any pre-configured scope.", + "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-items" - ] + "const": "core:menu:allow-is-enabled" }, { - "description": "core:menu:allow-new -> Enables the new command without any pre-configured scope.", + "description": "Enables the items command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-new" - ] + "const": "core:menu:allow-items" }, { - "description": "core:menu:allow-popup -> Enables the popup command without any pre-configured scope.", + "description": "Enables the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-popup" - ] + "const": "core:menu:allow-new" }, { - "description": "core:menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", + "description": "Enables the popup command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-prepend" - ] + "const": "core:menu:allow-popup" }, { - "description": "core:menu:allow-remove -> Enables the remove command without any pre-configured scope.", + "description": "Enables the prepend command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-remove" - ] + "const": "core:menu:allow-prepend" }, { - "description": "core:menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", + "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-remove-at" - ] + "const": "core:menu:allow-remove" }, { - "description": "core:menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", + "description": "Enables the remove_at command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-accelerator" - ] + "const": "core:menu:allow-remove-at" }, { - "description": "core:menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", + "description": "Enables the set_accelerator command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-as-app-menu" - ] + "const": "core:menu:allow-set-accelerator" }, { - "description": "core:menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "description": "Enables the set_as_app_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-as-help-menu-for-nsapp" - ] + "const": "core:menu:allow-set-as-app-menu" }, { - "description": "core:menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-as-window-menu" - ] + "const": "core:menu:allow-set-as-help-menu-for-nsapp" }, { - "description": "core:menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "description": "Enables the set_as_window_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-as-windows-menu-for-nsapp" - ] + "const": "core:menu:allow-set-as-window-menu" }, { - "description": "core:menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-checked" - ] + "const": "core:menu:allow-set-as-windows-menu-for-nsapp" }, { - "description": "core:menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", + "description": "Enables the set_checked command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-enabled" - ] + "const": "core:menu:allow-set-checked" }, { - "description": "core:menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", + "description": "Enables the set_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-icon" - ] + "const": "core:menu:allow-set-enabled" }, { - "description": "core:menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", + "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-set-text" - ] + "const": "core:menu:allow-set-icon" }, { - "description": "core:menu:allow-text -> Enables the text command without any pre-configured scope.", + "description": "Enables the set_text command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:allow-text" - ] + "const": "core:menu:allow-set-text" }, { - "description": "core:menu:deny-append -> Denies the append command without any pre-configured scope.", + "description": "Enables the text command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-append" - ] + "const": "core:menu:allow-text" }, { - "description": "core:menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", + "description": "Denies the append command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-create-default" - ] + "const": "core:menu:deny-append" }, { - "description": "core:menu:deny-get -> Denies the get command without any pre-configured scope.", + "description": "Denies the create_default command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-get" - ] + "const": "core:menu:deny-create-default" }, { - "description": "core:menu:deny-insert -> Denies the insert command without any pre-configured scope.", + "description": "Denies the get command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-insert" - ] + "const": "core:menu:deny-get" }, { - "description": "core:menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", + "description": "Denies the insert command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-is-checked" - ] + "const": "core:menu:deny-insert" }, { - "description": "core:menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", + "description": "Denies the is_checked command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-is-enabled" - ] + "const": "core:menu:deny-is-checked" }, { - "description": "core:menu:deny-items -> Denies the items command without any pre-configured scope.", + "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-items" - ] + "const": "core:menu:deny-is-enabled" }, { - "description": "core:menu:deny-new -> Denies the new command without any pre-configured scope.", + "description": "Denies the items command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-new" - ] + "const": "core:menu:deny-items" }, { - "description": "core:menu:deny-popup -> Denies the popup command without any pre-configured scope.", + "description": "Denies the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-popup" - ] + "const": "core:menu:deny-new" }, { - "description": "core:menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", + "description": "Denies the popup command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-prepend" - ] + "const": "core:menu:deny-popup" }, { - "description": "core:menu:deny-remove -> Denies the remove command without any pre-configured scope.", + "description": "Denies the prepend command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-remove" - ] + "const": "core:menu:deny-prepend" }, { - "description": "core:menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", + "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-remove-at" - ] + "const": "core:menu:deny-remove" }, { - "description": "core:menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", + "description": "Denies the remove_at command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-accelerator" - ] + "const": "core:menu:deny-remove-at" }, { - "description": "core:menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", + "description": "Denies the set_accelerator command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-as-app-menu" - ] + "const": "core:menu:deny-set-accelerator" }, { - "description": "core:menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "description": "Denies the set_as_app_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-as-help-menu-for-nsapp" - ] + "const": "core:menu:deny-set-as-app-menu" }, { - "description": "core:menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-as-window-menu" - ] + "const": "core:menu:deny-set-as-help-menu-for-nsapp" }, { - "description": "core:menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "description": "Denies the set_as_window_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-as-windows-menu-for-nsapp" - ] + "const": "core:menu:deny-set-as-window-menu" }, { - "description": "core:menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-checked" - ] + "const": "core:menu:deny-set-as-windows-menu-for-nsapp" }, { - "description": "core:menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", + "description": "Denies the set_checked command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-enabled" - ] + "const": "core:menu:deny-set-checked" }, { - "description": "core:menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", + "description": "Denies the set_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-icon" - ] + "const": "core:menu:deny-set-enabled" }, { - "description": "core:menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", + "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-set-text" - ] + "const": "core:menu:deny-set-icon" }, { - "description": "core:menu:deny-text -> Denies the text command without any pre-configured scope.", + "description": "Denies the set_text command without any pre-configured scope.", "type": "string", - "enum": [ - "core:menu:deny-text" - ] + "const": "core:menu:deny-set-text" }, { - "description": "core:path:default -> Default permissions for the plugin.", + "description": "Denies the text command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:default" - ] + "const": "core:menu:deny-text" }, { - "description": "core:path:allow-basename -> Enables the basename command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:path:allow-basename" - ] + "const": "core:path:default" }, { - "description": "core:path:allow-dirname -> Enables the dirname command without any pre-configured scope.", + "description": "Enables the basename command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-dirname" - ] + "const": "core:path:allow-basename" }, { - "description": "core:path:allow-extname -> Enables the extname command without any pre-configured scope.", + "description": "Enables the dirname command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-extname" - ] + "const": "core:path:allow-dirname" }, { - "description": "core:path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", + "description": "Enables the extname command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-is-absolute" - ] + "const": "core:path:allow-extname" }, { - "description": "core:path:allow-join -> Enables the join command without any pre-configured scope.", + "description": "Enables the is_absolute command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-join" - ] + "const": "core:path:allow-is-absolute" }, { - "description": "core:path:allow-normalize -> Enables the normalize command without any pre-configured scope.", + "description": "Enables the join command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-normalize" - ] + "const": "core:path:allow-join" }, { - "description": "core:path:allow-resolve -> Enables the resolve command without any pre-configured scope.", + "description": "Enables the normalize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-resolve" - ] + "const": "core:path:allow-normalize" }, { - "description": "core:path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", + "description": "Enables the resolve command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:allow-resolve-directory" - ] + "const": "core:path:allow-resolve" }, { - "description": "core:path:deny-basename -> Denies the basename command without any pre-configured scope.", + "description": "Enables the resolve_directory command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-basename" - ] + "const": "core:path:allow-resolve-directory" }, { - "description": "core:path:deny-dirname -> Denies the dirname command without any pre-configured scope.", + "description": "Denies the basename command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-dirname" - ] + "const": "core:path:deny-basename" }, { - "description": "core:path:deny-extname -> Denies the extname command without any pre-configured scope.", + "description": "Denies the dirname command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-extname" - ] + "const": "core:path:deny-dirname" }, { - "description": "core:path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", + "description": "Denies the extname command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-is-absolute" - ] + "const": "core:path:deny-extname" }, { - "description": "core:path:deny-join -> Denies the join command without any pre-configured scope.", + "description": "Denies the is_absolute command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-join" - ] + "const": "core:path:deny-is-absolute" }, { - "description": "core:path:deny-normalize -> Denies the normalize command without any pre-configured scope.", + "description": "Denies the join command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-normalize" - ] + "const": "core:path:deny-join" }, { - "description": "core:path:deny-resolve -> Denies the resolve command without any pre-configured scope.", + "description": "Denies the normalize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-resolve" - ] + "const": "core:path:deny-normalize" }, { - "description": "core:path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", + "description": "Denies the resolve command without any pre-configured scope.", "type": "string", - "enum": [ - "core:path:deny-resolve-directory" - ] + "const": "core:path:deny-resolve" }, { - "description": "core:resources:default -> Default permissions for the plugin.", + "description": "Denies the resolve_directory command without any pre-configured scope.", "type": "string", - "enum": [ - "core:resources:default" - ] + "const": "core:path:deny-resolve-directory" }, { - "description": "core:resources:allow-close -> Enables the close command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:resources:allow-close" - ] + "const": "core:resources:default" }, { - "description": "core:resources:deny-close -> Denies the close command without any pre-configured scope.", + "description": "Enables the close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:resources:deny-close" - ] + "const": "core:resources:allow-close" }, { - "description": "core:tray:default -> Default permissions for the plugin.", + "description": "Denies the close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:default" - ] + "const": "core:resources:deny-close" }, { - "description": "core:tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:tray:allow-get-by-id" - ] + "const": "core:tray:default" }, { - "description": "core:tray:allow-new -> Enables the new command without any pre-configured scope.", + "description": "Enables the get_by_id command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-new" - ] + "const": "core:tray:allow-get-by-id" }, { - "description": "core:tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", + "description": "Enables the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-remove-by-id" - ] + "const": "core:tray:allow-new" }, { - "description": "core:tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", + "description": "Enables the remove_by_id command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-icon" - ] + "const": "core:tray:allow-remove-by-id" }, { - "description": "core:tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", + "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-icon-as-template" - ] + "const": "core:tray:allow-set-icon" }, { - "description": "core:tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", + "description": "Enables the set_icon_as_template command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-menu" - ] + "const": "core:tray:allow-set-icon-as-template" }, { - "description": "core:tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "description": "Enables the set_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-show-menu-on-left-click" - ] + "const": "core:tray:allow-set-menu" }, { - "description": "core:tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-temp-dir-path" - ] + "const": "core:tray:allow-set-show-menu-on-left-click" }, { - "description": "core:tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-title" - ] + "const": "core:tray:allow-set-temp-dir-path" }, { - "description": "core:tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", + "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-tooltip" - ] + "const": "core:tray:allow-set-title" }, { - "description": "core:tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", + "description": "Enables the set_tooltip command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:allow-set-visible" - ] + "const": "core:tray:allow-set-tooltip" }, { - "description": "core:tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", + "description": "Enables the set_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-get-by-id" - ] + "const": "core:tray:allow-set-visible" }, { - "description": "core:tray:deny-new -> Denies the new command without any pre-configured scope.", + "description": "Denies the get_by_id command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-new" - ] + "const": "core:tray:deny-get-by-id" }, { - "description": "core:tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", + "description": "Denies the new command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-remove-by-id" - ] + "const": "core:tray:deny-new" }, { - "description": "core:tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", + "description": "Denies the remove_by_id command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-icon" - ] + "const": "core:tray:deny-remove-by-id" }, { - "description": "core:tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", + "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-icon-as-template" - ] + "const": "core:tray:deny-set-icon" }, { - "description": "core:tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", + "description": "Denies the set_icon_as_template command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-menu" - ] + "const": "core:tray:deny-set-icon-as-template" }, { - "description": "core:tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "description": "Denies the set_menu command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-show-menu-on-left-click" - ] + "const": "core:tray:deny-set-menu" }, { - "description": "core:tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-temp-dir-path" - ] + "const": "core:tray:deny-set-show-menu-on-left-click" }, { - "description": "core:tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-title" - ] + "const": "core:tray:deny-set-temp-dir-path" }, { - "description": "core:tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", + "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-tooltip" - ] + "const": "core:tray:deny-set-title" }, { - "description": "core:tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", + "description": "Denies the set_tooltip command without any pre-configured scope.", "type": "string", - "enum": [ - "core:tray:deny-set-visible" - ] + "const": "core:tray:deny-set-tooltip" }, { - "description": "core:webview:default -> Default permissions for the plugin.", + "description": "Denies the set_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:default" - ] + "const": "core:tray:deny-set-visible" }, { - "description": "core:webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:webview:allow-create-webview" - ] + "const": "core:webview:default" }, { - "description": "core:webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", + "description": "Enables the create_webview command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-create-webview-window" - ] + "const": "core:webview:allow-create-webview" }, { - "description": "core:webview:allow-get-all-webviews -> Enables the get_all_webviews command without any pre-configured scope.", + "description": "Enables the create_webview_window command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-get-all-webviews" - ] + "const": "core:webview:allow-create-webview-window" }, { - "description": "core:webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", + "description": "Enables the get_all_webviews command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-internal-toggle-devtools" - ] + "const": "core:webview:allow-get-all-webviews" }, { - "description": "core:webview:allow-print -> Enables the print command without any pre-configured scope.", + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-print" - ] + "const": "core:webview:allow-internal-toggle-devtools" }, { - "description": "core:webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", + "description": "Enables the print command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-reparent" - ] + "const": "core:webview:allow-print" }, { - "description": "core:webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", + "description": "Enables the reparent command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-set-webview-focus" - ] + "const": "core:webview:allow-reparent" }, { - "description": "core:webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", + "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-set-webview-position" - ] + "const": "core:webview:allow-set-webview-focus" }, { - "description": "core:webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", + "description": "Enables the set_webview_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-set-webview-size" - ] + "const": "core:webview:allow-set-webview-position" }, { - "description": "core:webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", + "description": "Enables the set_webview_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-set-webview-zoom" - ] + "const": "core:webview:allow-set-webview-size" }, { - "description": "core:webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", + "description": "Enables the set_webview_zoom command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-webview-close" - ] + "const": "core:webview:allow-set-webview-zoom" }, { - "description": "core:webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", + "description": "Enables the webview_close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-webview-position" - ] + "const": "core:webview:allow-webview-close" }, { - "description": "core:webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", + "description": "Enables the webview_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:allow-webview-size" - ] + "const": "core:webview:allow-webview-position" }, { - "description": "core:webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", + "description": "Enables the webview_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-create-webview" - ] + "const": "core:webview:allow-webview-size" }, { - "description": "core:webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", + "description": "Denies the create_webview command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-create-webview-window" - ] + "const": "core:webview:deny-create-webview" }, { - "description": "core:webview:deny-get-all-webviews -> Denies the get_all_webviews command without any pre-configured scope.", + "description": "Denies the create_webview_window command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-get-all-webviews" - ] + "const": "core:webview:deny-create-webview-window" }, { - "description": "core:webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", + "description": "Denies the get_all_webviews command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-internal-toggle-devtools" - ] + "const": "core:webview:deny-get-all-webviews" }, { - "description": "core:webview:deny-print -> Denies the print command without any pre-configured scope.", + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-print" - ] + "const": "core:webview:deny-internal-toggle-devtools" }, { - "description": "core:webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", + "description": "Denies the print command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-reparent" - ] + "const": "core:webview:deny-print" }, { - "description": "core:webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", + "description": "Denies the reparent command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-set-webview-focus" - ] + "const": "core:webview:deny-reparent" }, { - "description": "core:webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", + "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-set-webview-position" - ] + "const": "core:webview:deny-set-webview-focus" }, { - "description": "core:webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", + "description": "Denies the set_webview_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-set-webview-size" - ] + "const": "core:webview:deny-set-webview-position" }, { - "description": "core:webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", + "description": "Denies the set_webview_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-set-webview-zoom" - ] + "const": "core:webview:deny-set-webview-size" }, { - "description": "core:webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", + "description": "Denies the set_webview_zoom command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-webview-close" - ] + "const": "core:webview:deny-set-webview-zoom" }, { - "description": "core:webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", + "description": "Denies the webview_close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-webview-position" - ] + "const": "core:webview:deny-webview-close" }, { - "description": "core:webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", + "description": "Denies the webview_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:webview:deny-webview-size" - ] + "const": "core:webview:deny-webview-position" }, { - "description": "core:window:default -> Default permissions for the plugin.", + "description": "Denies the webview_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:default" - ] + "const": "core:webview:deny-webview-size" }, { - "description": "core:window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", + "description": "Default permissions for the plugin.", "type": "string", - "enum": [ - "core:window:allow-available-monitors" - ] + "const": "core:window:default" }, { - "description": "core:window:allow-center -> Enables the center command without any pre-configured scope.", + "description": "Enables the available_monitors command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-center" - ] + "const": "core:window:allow-available-monitors" }, { - "description": "core:window:allow-close -> Enables the close command without any pre-configured scope.", + "description": "Enables the center command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-close" - ] + "const": "core:window:allow-center" }, { - "description": "core:window:allow-create -> Enables the create command without any pre-configured scope.", + "description": "Enables the close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-create" - ] + "const": "core:window:allow-close" }, { - "description": "core:window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", + "description": "Enables the create command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-current-monitor" - ] + "const": "core:window:allow-create" }, { - "description": "core:window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.", + "description": "Enables the current_monitor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-cursor-position" - ] + "const": "core:window:allow-current-monitor" }, { - "description": "core:window:allow-destroy -> Enables the destroy command without any pre-configured scope.", + "description": "Enables the cursor_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-destroy" - ] + "const": "core:window:allow-cursor-position" }, { - "description": "core:window:allow-get-all-windows -> Enables the get_all_windows command without any pre-configured scope.", + "description": "Enables the destroy command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-get-all-windows" - ] + "const": "core:window:allow-destroy" }, { - "description": "core:window:allow-hide -> Enables the hide command without any pre-configured scope.", + "description": "Enables the get_all_windows command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-hide" - ] + "const": "core:window:allow-get-all-windows" }, { - "description": "core:window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", + "description": "Enables the hide command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-inner-position" - ] + "const": "core:window:allow-hide" }, { - "description": "core:window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", + "description": "Enables the inner_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-inner-size" - ] + "const": "core:window:allow-inner-position" }, { - "description": "core:window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", + "description": "Enables the inner_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-internal-toggle-maximize" - ] + "const": "core:window:allow-inner-size" }, { - "description": "core:window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-closable" - ] + "const": "core:window:allow-internal-toggle-maximize" }, { - "description": "core:window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", + "description": "Enables the is_closable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-decorated" - ] + "const": "core:window:allow-is-closable" }, { - "description": "core:window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", + "description": "Enables the is_decorated command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-focused" - ] + "const": "core:window:allow-is-decorated" }, { - "description": "core:window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", + "description": "Enables the is_focused command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-fullscreen" - ] + "const": "core:window:allow-is-focused" }, { - "description": "core:window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", + "description": "Enables the is_fullscreen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-maximizable" - ] + "const": "core:window:allow-is-fullscreen" }, { - "description": "core:window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", + "description": "Enables the is_maximizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-maximized" - ] + "const": "core:window:allow-is-maximizable" }, { - "description": "core:window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", + "description": "Enables the is_maximized command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-minimizable" - ] + "const": "core:window:allow-is-maximized" }, { - "description": "core:window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", + "description": "Enables the is_minimizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-minimized" - ] + "const": "core:window:allow-is-minimizable" }, { - "description": "core:window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", + "description": "Enables the is_minimized command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-resizable" - ] + "const": "core:window:allow-is-minimized" }, { - "description": "core:window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", + "description": "Enables the is_resizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-is-visible" - ] + "const": "core:window:allow-is-resizable" }, { - "description": "core:window:allow-maximize -> Enables the maximize command without any pre-configured scope.", + "description": "Enables the is_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-maximize" - ] + "const": "core:window:allow-is-visible" }, { - "description": "core:window:allow-minimize -> Enables the minimize command without any pre-configured scope.", + "description": "Enables the maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-minimize" - ] + "const": "core:window:allow-maximize" }, { - "description": "core:window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.", + "description": "Enables the minimize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-monitor-from-point" - ] + "const": "core:window:allow-minimize" }, { - "description": "core:window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", + "description": "Enables the monitor_from_point command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-outer-position" - ] + "const": "core:window:allow-monitor-from-point" }, { - "description": "core:window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", + "description": "Enables the outer_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-outer-size" - ] + "const": "core:window:allow-outer-position" }, { - "description": "core:window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", + "description": "Enables the outer_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-primary-monitor" - ] + "const": "core:window:allow-outer-size" }, { - "description": "core:window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", + "description": "Enables the primary_monitor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-request-user-attention" - ] + "const": "core:window:allow-primary-monitor" }, { - "description": "core:window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", + "description": "Enables the request_user_attention command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-scale-factor" - ] + "const": "core:window:allow-request-user-attention" }, { - "description": "core:window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", + "description": "Enables the scale_factor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-always-on-bottom" - ] + "const": "core:window:allow-scale-factor" }, { - "description": "core:window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-always-on-top" - ] + "const": "core:window:allow-set-always-on-bottom" }, { - "description": "core:window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", + "description": "Enables the set_always_on_top command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-closable" - ] + "const": "core:window:allow-set-always-on-top" }, { - "description": "core:window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", + "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-content-protected" - ] + "const": "core:window:allow-set-closable" }, { - "description": "core:window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", + "description": "Enables the set_content_protected command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-cursor-grab" - ] + "const": "core:window:allow-set-content-protected" }, { - "description": "core:window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", + "description": "Enables the set_cursor_grab command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-cursor-icon" - ] + "const": "core:window:allow-set-cursor-grab" }, { - "description": "core:window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", + "description": "Enables the set_cursor_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-cursor-position" - ] + "const": "core:window:allow-set-cursor-icon" }, { - "description": "core:window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", + "description": "Enables the set_cursor_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-cursor-visible" - ] + "const": "core:window:allow-set-cursor-position" }, { - "description": "core:window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", + "description": "Enables the set_cursor_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-decorations" - ] + "const": "core:window:allow-set-cursor-visible" }, { - "description": "core:window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", + "description": "Enables the set_decorations command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-effects" - ] + "const": "core:window:allow-set-decorations" }, { - "description": "core:window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", + "description": "Enables the set_effects command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-focus" - ] + "const": "core:window:allow-set-effects" }, { - "description": "core:window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", + "description": "Enables the set_focus command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-fullscreen" - ] + "const": "core:window:allow-set-focus" }, { - "description": "core:window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", + "description": "Enables the set_fullscreen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-icon" - ] + "const": "core:window:allow-set-fullscreen" }, { - "description": "core:window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", + "description": "Enables the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-ignore-cursor-events" - ] + "const": "core:window:allow-set-icon" }, { - "description": "core:window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-max-size" - ] + "const": "core:window:allow-set-ignore-cursor-events" }, { - "description": "core:window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", + "description": "Enables the set_max_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-maximizable" - ] + "const": "core:window:allow-set-max-size" }, { - "description": "core:window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", + "description": "Enables the set_maximizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-min-size" - ] + "const": "core:window:allow-set-maximizable" }, { - "description": "core:window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", + "description": "Enables the set_min_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-minimizable" - ] + "const": "core:window:allow-set-min-size" }, { - "description": "core:window:allow-set-position -> Enables the set_position command without any pre-configured scope.", + "description": "Enables the set_minimizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-position" - ] + "const": "core:window:allow-set-minimizable" }, { - "description": "core:window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", + "description": "Enables the set_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-progress-bar" - ] + "const": "core:window:allow-set-position" }, { - "description": "core:window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", + "description": "Enables the set_progress_bar command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-resizable" - ] + "const": "core:window:allow-set-progress-bar" }, { - "description": "core:window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", + "description": "Enables the set_resizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-shadow" - ] + "const": "core:window:allow-set-resizable" }, { - "description": "core:window:allow-set-size -> Enables the set_size command without any pre-configured scope.", + "description": "Enables the set_shadow command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-size" - ] + "const": "core:window:allow-set-shadow" }, { - "description": "core:window:allow-set-size-constraints -> Enables the set_size_constraints command without any pre-configured scope.", + "description": "Enables the set_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-size-constraints" - ] + "const": "core:window:allow-set-size" }, { - "description": "core:window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", + "description": "Enables the set_size_constraints command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-skip-taskbar" - ] + "const": "core:window:allow-set-size-constraints" }, { - "description": "core:window:allow-set-title -> Enables the set_title command without any pre-configured scope.", + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-title" - ] + "const": "core:window:allow-set-skip-taskbar" }, { - "description": "core:window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.", + "description": "Enables the set_title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-title-bar-style" - ] + "const": "core:window:allow-set-title" }, { - "description": "core:window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "description": "Enables the set_title_bar_style command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-set-visible-on-all-workspaces" - ] + "const": "core:window:allow-set-title-bar-style" }, { - "description": "core:window:allow-show -> Enables the show command without any pre-configured scope.", + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-show" - ] + "const": "core:window:allow-set-visible-on-all-workspaces" }, { - "description": "core:window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", + "description": "Enables the show command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-start-dragging" - ] + "const": "core:window:allow-show" }, { - "description": "core:window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.", + "description": "Enables the start_dragging command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-start-resize-dragging" - ] + "const": "core:window:allow-start-dragging" }, { - "description": "core:window:allow-theme -> Enables the theme command without any pre-configured scope.", + "description": "Enables the start_resize_dragging command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-theme" - ] + "const": "core:window:allow-start-resize-dragging" }, { - "description": "core:window:allow-title -> Enables the title command without any pre-configured scope.", + "description": "Enables the theme command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-title" - ] + "const": "core:window:allow-theme" }, { - "description": "core:window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", + "description": "Enables the title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-toggle-maximize" - ] + "const": "core:window:allow-title" }, { - "description": "core:window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", + "description": "Enables the toggle_maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-unmaximize" - ] + "const": "core:window:allow-toggle-maximize" }, { - "description": "core:window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", + "description": "Enables the unmaximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:allow-unminimize" - ] + "const": "core:window:allow-unmaximize" }, { - "description": "core:window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", + "description": "Enables the unminimize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-available-monitors" - ] + "const": "core:window:allow-unminimize" }, { - "description": "core:window:deny-center -> Denies the center command without any pre-configured scope.", + "description": "Denies the available_monitors command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-center" - ] + "const": "core:window:deny-available-monitors" }, { - "description": "core:window:deny-close -> Denies the close command without any pre-configured scope.", + "description": "Denies the center command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-close" - ] + "const": "core:window:deny-center" }, { - "description": "core:window:deny-create -> Denies the create command without any pre-configured scope.", + "description": "Denies the close command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-create" - ] + "const": "core:window:deny-close" }, { - "description": "core:window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", + "description": "Denies the create command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-current-monitor" - ] + "const": "core:window:deny-create" }, { - "description": "core:window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.", + "description": "Denies the current_monitor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-cursor-position" - ] + "const": "core:window:deny-current-monitor" }, { - "description": "core:window:deny-destroy -> Denies the destroy command without any pre-configured scope.", + "description": "Denies the cursor_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-destroy" - ] + "const": "core:window:deny-cursor-position" }, { - "description": "core:window:deny-get-all-windows -> Denies the get_all_windows command without any pre-configured scope.", + "description": "Denies the destroy command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-get-all-windows" - ] + "const": "core:window:deny-destroy" }, { - "description": "core:window:deny-hide -> Denies the hide command without any pre-configured scope.", + "description": "Denies the get_all_windows command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-hide" - ] + "const": "core:window:deny-get-all-windows" }, { - "description": "core:window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", + "description": "Denies the hide command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-inner-position" - ] + "const": "core:window:deny-hide" }, { - "description": "core:window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", + "description": "Denies the inner_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-inner-size" - ] + "const": "core:window:deny-inner-position" }, { - "description": "core:window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", + "description": "Denies the inner_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-internal-toggle-maximize" - ] + "const": "core:window:deny-inner-size" }, { - "description": "core:window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-closable" - ] + "const": "core:window:deny-internal-toggle-maximize" }, { - "description": "core:window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", + "description": "Denies the is_closable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-decorated" - ] + "const": "core:window:deny-is-closable" }, { - "description": "core:window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", + "description": "Denies the is_decorated command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-focused" - ] + "const": "core:window:deny-is-decorated" }, { - "description": "core:window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", + "description": "Denies the is_focused command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-fullscreen" - ] + "const": "core:window:deny-is-focused" }, { - "description": "core:window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", + "description": "Denies the is_fullscreen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-maximizable" - ] + "const": "core:window:deny-is-fullscreen" }, { - "description": "core:window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", + "description": "Denies the is_maximizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-maximized" - ] + "const": "core:window:deny-is-maximizable" }, { - "description": "core:window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", + "description": "Denies the is_maximized command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-minimizable" - ] + "const": "core:window:deny-is-maximized" }, { - "description": "core:window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", + "description": "Denies the is_minimizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-minimized" - ] + "const": "core:window:deny-is-minimizable" }, { - "description": "core:window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", + "description": "Denies the is_minimized command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-resizable" - ] + "const": "core:window:deny-is-minimized" }, { - "description": "core:window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", + "description": "Denies the is_resizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-is-visible" - ] + "const": "core:window:deny-is-resizable" }, { - "description": "core:window:deny-maximize -> Denies the maximize command without any pre-configured scope.", + "description": "Denies the is_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-maximize" - ] + "const": "core:window:deny-is-visible" }, { - "description": "core:window:deny-minimize -> Denies the minimize command without any pre-configured scope.", + "description": "Denies the maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-minimize" - ] + "const": "core:window:deny-maximize" }, { - "description": "core:window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.", + "description": "Denies the minimize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-monitor-from-point" - ] + "const": "core:window:deny-minimize" }, { - "description": "core:window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", + "description": "Denies the monitor_from_point command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-outer-position" - ] + "const": "core:window:deny-monitor-from-point" }, { - "description": "core:window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", + "description": "Denies the outer_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-outer-size" - ] + "const": "core:window:deny-outer-position" }, { - "description": "core:window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", + "description": "Denies the outer_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-primary-monitor" - ] + "const": "core:window:deny-outer-size" }, { - "description": "core:window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", + "description": "Denies the primary_monitor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-request-user-attention" - ] + "const": "core:window:deny-primary-monitor" }, { - "description": "core:window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", + "description": "Denies the request_user_attention command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-scale-factor" - ] + "const": "core:window:deny-request-user-attention" }, { - "description": "core:window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", + "description": "Denies the scale_factor command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-always-on-bottom" - ] + "const": "core:window:deny-scale-factor" }, { - "description": "core:window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-always-on-top" - ] + "const": "core:window:deny-set-always-on-bottom" }, { - "description": "core:window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", + "description": "Denies the set_always_on_top command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-closable" - ] + "const": "core:window:deny-set-always-on-top" }, { - "description": "core:window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", + "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-content-protected" - ] + "const": "core:window:deny-set-closable" }, { - "description": "core:window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", + "description": "Denies the set_content_protected command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-cursor-grab" - ] + "const": "core:window:deny-set-content-protected" }, { - "description": "core:window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", + "description": "Denies the set_cursor_grab command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-cursor-icon" - ] + "const": "core:window:deny-set-cursor-grab" }, { - "description": "core:window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", + "description": "Denies the set_cursor_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-cursor-position" - ] + "const": "core:window:deny-set-cursor-icon" }, { - "description": "core:window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", + "description": "Denies the set_cursor_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-cursor-visible" - ] + "const": "core:window:deny-set-cursor-position" }, { - "description": "core:window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", + "description": "Denies the set_cursor_visible command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-decorations" - ] + "const": "core:window:deny-set-cursor-visible" }, { - "description": "core:window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", + "description": "Denies the set_decorations command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-effects" - ] + "const": "core:window:deny-set-decorations" }, { - "description": "core:window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", + "description": "Denies the set_effects command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-focus" - ] + "const": "core:window:deny-set-effects" }, { - "description": "core:window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", + "description": "Denies the set_focus command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-fullscreen" - ] + "const": "core:window:deny-set-focus" }, { - "description": "core:window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", + "description": "Denies the set_fullscreen command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-icon" - ] + "const": "core:window:deny-set-fullscreen" }, { - "description": "core:window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", + "description": "Denies the set_icon command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-ignore-cursor-events" - ] + "const": "core:window:deny-set-icon" }, { - "description": "core:window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-max-size" - ] + "const": "core:window:deny-set-ignore-cursor-events" }, { - "description": "core:window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", + "description": "Denies the set_max_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-maximizable" - ] + "const": "core:window:deny-set-max-size" }, { - "description": "core:window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", + "description": "Denies the set_maximizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-min-size" - ] + "const": "core:window:deny-set-maximizable" }, { - "description": "core:window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", + "description": "Denies the set_min_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-minimizable" - ] + "const": "core:window:deny-set-min-size" }, { - "description": "core:window:deny-set-position -> Denies the set_position command without any pre-configured scope.", + "description": "Denies the set_minimizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-position" - ] + "const": "core:window:deny-set-minimizable" }, { - "description": "core:window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", + "description": "Denies the set_position command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-progress-bar" - ] + "const": "core:window:deny-set-position" }, { - "description": "core:window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", + "description": "Denies the set_progress_bar command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-resizable" - ] + "const": "core:window:deny-set-progress-bar" }, { - "description": "core:window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", + "description": "Denies the set_resizable command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-shadow" - ] + "const": "core:window:deny-set-resizable" }, { - "description": "core:window:deny-set-size -> Denies the set_size command without any pre-configured scope.", + "description": "Denies the set_shadow command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-size" - ] + "const": "core:window:deny-set-shadow" }, { - "description": "core:window:deny-set-size-constraints -> Denies the set_size_constraints command without any pre-configured scope.", + "description": "Denies the set_size command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-size-constraints" - ] + "const": "core:window:deny-set-size" }, { - "description": "core:window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", + "description": "Denies the set_size_constraints command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-skip-taskbar" - ] + "const": "core:window:deny-set-size-constraints" }, { - "description": "core:window:deny-set-title -> Denies the set_title command without any pre-configured scope.", + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-title" - ] + "const": "core:window:deny-set-skip-taskbar" }, { - "description": "core:window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.", + "description": "Denies the set_title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-title-bar-style" - ] + "const": "core:window:deny-set-title" }, { - "description": "core:window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "description": "Denies the set_title_bar_style command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-set-visible-on-all-workspaces" - ] + "const": "core:window:deny-set-title-bar-style" }, { - "description": "core:window:deny-show -> Denies the show command without any pre-configured scope.", + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-show" - ] + "const": "core:window:deny-set-visible-on-all-workspaces" }, { - "description": "core:window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", + "description": "Denies the show command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-start-dragging" - ] + "const": "core:window:deny-show" }, { - "description": "core:window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.", + "description": "Denies the start_dragging command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-start-resize-dragging" - ] + "const": "core:window:deny-start-dragging" }, { - "description": "core:window:deny-theme -> Denies the theme command without any pre-configured scope.", + "description": "Denies the start_resize_dragging command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-theme" - ] + "const": "core:window:deny-start-resize-dragging" }, { - "description": "core:window:deny-title -> Denies the title command without any pre-configured scope.", + "description": "Denies the theme command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-title" - ] + "const": "core:window:deny-theme" }, { - "description": "core:window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", + "description": "Denies the title command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-toggle-maximize" - ] + "const": "core:window:deny-title" }, { - "description": "core:window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", + "description": "Denies the toggle_maximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-unmaximize" - ] + "const": "core:window:deny-toggle-maximize" }, { - "description": "core:window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", + "description": "Denies the unmaximize command without any pre-configured scope.", "type": "string", - "enum": [ - "core:window:deny-unminimize" - ] + "const": "core:window:deny-unmaximize" }, { - "description": "dialog:default -> This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "description": "Denies the unminimize command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:default" - ] + "const": "core:window:deny-unminimize" }, { - "description": "dialog:allow-ask -> Enables the ask command without any pre-configured scope.", + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", "type": "string", - "enum": [ - "dialog:allow-ask" - ] + "const": "dialog:default" }, { - "description": "dialog:allow-confirm -> Enables the confirm command without any pre-configured scope.", + "description": "Enables the ask command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:allow-confirm" - ] + "const": "dialog:allow-ask" }, { - "description": "dialog:allow-message -> Enables the message command without any pre-configured scope.", + "description": "Enables the confirm command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:allow-message" - ] + "const": "dialog:allow-confirm" }, { - "description": "dialog:allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the message command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:allow-open" - ] + "const": "dialog:allow-message" }, { - "description": "dialog:allow-save -> Enables the save command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:allow-save" - ] + "const": "dialog:allow-open" }, { - "description": "dialog:deny-ask -> Denies the ask command without any pre-configured scope.", + "description": "Enables the save command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:deny-ask" - ] + "const": "dialog:allow-save" }, { - "description": "dialog:deny-confirm -> Denies the confirm command without any pre-configured scope.", + "description": "Denies the ask command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:deny-confirm" - ] + "const": "dialog:deny-ask" }, { - "description": "dialog:deny-message -> Denies the message command without any pre-configured scope.", + "description": "Denies the confirm command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:deny-message" - ] + "const": "dialog:deny-confirm" }, { - "description": "dialog:deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the message command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:deny-open" - ] + "const": "dialog:deny-message" }, { - "description": "dialog:deny-save -> Denies the save command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "dialog:deny-save" - ] + "const": "dialog:deny-open" }, { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "Denies the save command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-app-meta" - ] + "const": "dialog:deny-save" }, { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", "type": "string", - "enum": [ - "fs:allow-app-meta-recursive" - ] + "const": "fs:default" }, { - "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-app-read" - ] + "const": "fs:allow-app-meta" }, { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-app-read-recursive" - ] + "const": "fs:allow-app-meta-recursive" }, { - "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive read access to the application folders.", "type": "string", - "enum": [ - "fs:allow-app-write" - ] + "const": "fs:allow-app-read" }, { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-app-write-recursive" - ] + "const": "fs:allow-app-read-recursive" }, { - "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the application folders.", "type": "string", - "enum": [ - "fs:allow-appcache-meta" - ] + "const": "fs:allow-app-write" }, { - "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appcache-meta-recursive" - ] + "const": "fs:allow-app-write-recursive" }, { - "description": "fs:allow-appcache-read -> This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appcache-read" - ] + "const": "fs:allow-appcache-meta" }, { - "description": "fs:allow-appcache-read-recursive -> This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appcache-read-recursive" - ] + "const": "fs:allow-appcache-meta-recursive" }, { - "description": "fs:allow-appcache-write -> This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", "type": "string", - "enum": [ - "fs:allow-appcache-write" - ] + "const": "fs:allow-appcache-read" }, { - "description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appcache-write-recursive" - ] + "const": "fs:allow-appcache-read-recursive" }, { - "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", "type": "string", - "enum": [ - "fs:allow-appconfig-meta" - ] + "const": "fs:allow-appcache-write" }, { - "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appconfig-meta-recursive" - ] + "const": "fs:allow-appcache-write-recursive" }, { - "description": "fs:allow-appconfig-read -> This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appconfig-read" - ] + "const": "fs:allow-appconfig-meta" }, { - "description": "fs:allow-appconfig-read-recursive -> This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appconfig-read-recursive" - ] + "const": "fs:allow-appconfig-meta-recursive" }, { - "description": "fs:allow-appconfig-write -> This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "fs:allow-appconfig-write" - ] + "const": "fs:allow-appconfig-read" }, { - "description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appconfig-write-recursive" - ] + "const": "fs:allow-appconfig-read-recursive" }, { - "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "fs:allow-appdata-meta" - ] + "const": "fs:allow-appconfig-write" }, { - "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appdata-meta-recursive" - ] + "const": "fs:allow-appconfig-write-recursive" }, { - "description": "fs:allow-appdata-read -> This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appdata-read" - ] + "const": "fs:allow-appdata-meta" }, { - "description": "fs:allow-appdata-read-recursive -> This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-appdata-read-recursive" - ] + "const": "fs:allow-appdata-meta-recursive" }, { - "description": "fs:allow-appdata-write -> This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.", "type": "string", - "enum": [ - "fs:allow-appdata-write" - ] + "const": "fs:allow-appdata-read" }, { - "description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-appdata-write-recursive" - ] + "const": "fs:allow-appdata-read-recursive" }, { - "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.", "type": "string", - "enum": [ - "fs:allow-applocaldata-meta" - ] + "const": "fs:allow-appdata-write" }, { - "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-applocaldata-meta-recursive" - ] + "const": "fs:allow-appdata-write-recursive" }, { - "description": "fs:allow-applocaldata-read -> This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-applocaldata-read" - ] + "const": "fs:allow-applocaldata-meta" }, { - "description": "fs:allow-applocaldata-read-recursive -> This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-applocaldata-read-recursive" - ] + "const": "fs:allow-applocaldata-meta-recursive" }, { - "description": "fs:allow-applocaldata-write -> This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "fs:allow-applocaldata-write" - ] + "const": "fs:allow-applocaldata-read" }, { - "description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-applocaldata-write-recursive" - ] + "const": "fs:allow-applocaldata-read-recursive" }, { - "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "fs:allow-applog-meta" - ] + "const": "fs:allow-applocaldata-write" }, { - "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-applog-meta-recursive" - ] + "const": "fs:allow-applocaldata-write-recursive" }, { - "description": "fs:allow-applog-read -> This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-applog-read" - ] + "const": "fs:allow-applog-meta" }, { - "description": "fs:allow-applog-read-recursive -> This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-applog-read-recursive" - ] + "const": "fs:allow-applog-meta-recursive" }, { - "description": "fs:allow-applog-write -> This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.", "type": "string", - "enum": [ - "fs:allow-applog-write" - ] + "const": "fs:allow-applog-read" }, { - "description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-applog-write-recursive" - ] + "const": "fs:allow-applog-read-recursive" }, { - "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.", "type": "string", - "enum": [ - "fs:allow-audio-meta" - ] + "const": "fs:allow-applog-write" }, { - "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-audio-meta-recursive" - ] + "const": "fs:allow-applog-write-recursive" }, { - "description": "fs:allow-audio-read -> This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-audio-read" - ] + "const": "fs:allow-audio-meta" }, { - "description": "fs:allow-audio-read-recursive -> This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-audio-read-recursive" - ] + "const": "fs:allow-audio-meta-recursive" }, { - "description": "fs:allow-audio-write -> This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.", "type": "string", - "enum": [ - "fs:allow-audio-write" - ] + "const": "fs:allow-audio-read" }, { - "description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-audio-write-recursive" - ] + "const": "fs:allow-audio-read-recursive" }, { - "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.", "type": "string", - "enum": [ - "fs:allow-cache-meta" - ] + "const": "fs:allow-audio-write" }, { - "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-cache-meta-recursive" - ] + "const": "fs:allow-audio-write-recursive" }, { - "description": "fs:allow-cache-read -> This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-cache-read" - ] + "const": "fs:allow-cache-meta" }, { - "description": "fs:allow-cache-read-recursive -> This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-cache-read-recursive" - ] + "const": "fs:allow-cache-meta-recursive" }, { - "description": "fs:allow-cache-write -> This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.", "type": "string", - "enum": [ - "fs:allow-cache-write" - ] + "const": "fs:allow-cache-read" }, { - "description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-cache-write-recursive" - ] + "const": "fs:allow-cache-read-recursive" }, { - "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$CACHE` folder.", "type": "string", - "enum": [ - "fs:allow-config-meta" - ] + "const": "fs:allow-cache-write" }, { - "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-config-meta-recursive" - ] + "const": "fs:allow-cache-write-recursive" }, { - "description": "fs:allow-config-read -> This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-config-read" - ] + "const": "fs:allow-config-meta" }, { - "description": "fs:allow-config-read-recursive -> This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-config-read-recursive" - ] + "const": "fs:allow-config-meta-recursive" }, { - "description": "fs:allow-config-write -> This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.", "type": "string", - "enum": [ - "fs:allow-config-write" - ] + "const": "fs:allow-config-read" }, { - "description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-config-write-recursive" - ] + "const": "fs:allow-config-read-recursive" }, { - "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.", "type": "string", - "enum": [ - "fs:allow-data-meta" - ] + "const": "fs:allow-config-write" }, { - "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-data-meta-recursive" - ] + "const": "fs:allow-config-write-recursive" }, { - "description": "fs:allow-data-read -> This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-data-read" - ] + "const": "fs:allow-data-meta" }, { - "description": "fs:allow-data-read-recursive -> This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-data-read-recursive" - ] + "const": "fs:allow-data-meta-recursive" }, { - "description": "fs:allow-data-write -> This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.", "type": "string", - "enum": [ - "fs:allow-data-write" - ] + "const": "fs:allow-data-read" }, { - "description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-data-write-recursive" - ] + "const": "fs:allow-data-read-recursive" }, { - "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$DATA` folder.", "type": "string", - "enum": [ - "fs:allow-desktop-meta" - ] + "const": "fs:allow-data-write" }, { - "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-desktop-meta-recursive" - ] + "const": "fs:allow-data-write-recursive" }, { - "description": "fs:allow-desktop-read -> This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-desktop-read" - ] + "const": "fs:allow-desktop-meta" }, { - "description": "fs:allow-desktop-read-recursive -> This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-desktop-read-recursive" - ] + "const": "fs:allow-desktop-meta-recursive" }, { - "description": "fs:allow-desktop-write -> This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", "type": "string", - "enum": [ - "fs:allow-desktop-write" - ] + "const": "fs:allow-desktop-read" }, { - "description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-desktop-write-recursive" - ] + "const": "fs:allow-desktop-read-recursive" }, { - "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", "type": "string", - "enum": [ - "fs:allow-document-meta" - ] + "const": "fs:allow-desktop-write" }, { - "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-document-meta-recursive" - ] + "const": "fs:allow-desktop-write-recursive" }, { - "description": "fs:allow-document-read -> This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-document-read" - ] + "const": "fs:allow-document-meta" }, { - "description": "fs:allow-document-read-recursive -> This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-document-read-recursive" - ] + "const": "fs:allow-document-meta-recursive" }, { - "description": "fs:allow-document-write -> This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "fs:allow-document-write" - ] + "const": "fs:allow-document-read" }, { - "description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-document-write-recursive" - ] + "const": "fs:allow-document-read-recursive" }, { - "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "fs:allow-download-meta" - ] + "const": "fs:allow-document-write" }, { - "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-download-meta-recursive" - ] + "const": "fs:allow-document-write-recursive" }, { - "description": "fs:allow-download-read -> This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-download-read" - ] + "const": "fs:allow-download-meta" }, { - "description": "fs:allow-download-read-recursive -> This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-download-read-recursive" - ] + "const": "fs:allow-download-meta-recursive" }, { - "description": "fs:allow-download-write -> This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "fs:allow-download-write" - ] + "const": "fs:allow-download-read" }, { - "description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-download-write-recursive" - ] + "const": "fs:allow-download-read-recursive" }, { - "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "fs:allow-exe-meta" - ] + "const": "fs:allow-download-write" }, { - "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-exe-meta-recursive" - ] + "const": "fs:allow-download-write-recursive" }, { - "description": "fs:allow-exe-read -> This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-exe-read" - ] + "const": "fs:allow-exe-meta" }, { - "description": "fs:allow-exe-read-recursive -> This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-exe-read-recursive" - ] + "const": "fs:allow-exe-meta-recursive" }, { - "description": "fs:allow-exe-write -> This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.", "type": "string", - "enum": [ - "fs:allow-exe-write" - ] + "const": "fs:allow-exe-read" }, { - "description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-exe-write-recursive" - ] + "const": "fs:allow-exe-read-recursive" }, { - "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$EXE` folder.", "type": "string", - "enum": [ - "fs:allow-font-meta" - ] + "const": "fs:allow-exe-write" }, { - "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-font-meta-recursive" - ] + "const": "fs:allow-exe-write-recursive" }, { - "description": "fs:allow-font-read -> This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-font-read" - ] + "const": "fs:allow-font-meta" }, { - "description": "fs:allow-font-read-recursive -> This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-font-read-recursive" - ] + "const": "fs:allow-font-meta-recursive" }, { - "description": "fs:allow-font-write -> This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.", "type": "string", - "enum": [ - "fs:allow-font-write" - ] + "const": "fs:allow-font-read" }, { - "description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-font-write-recursive" - ] + "const": "fs:allow-font-read-recursive" }, { - "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$FONT` folder.", "type": "string", - "enum": [ - "fs:allow-home-meta" - ] + "const": "fs:allow-font-write" }, { - "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-home-meta-recursive" - ] + "const": "fs:allow-font-write-recursive" }, { - "description": "fs:allow-home-read -> This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-home-read" - ] + "const": "fs:allow-home-meta" }, { - "description": "fs:allow-home-read-recursive -> This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-home-read-recursive" - ] + "const": "fs:allow-home-meta-recursive" }, { - "description": "fs:allow-home-write -> This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.", "type": "string", - "enum": [ - "fs:allow-home-write" - ] + "const": "fs:allow-home-read" }, { - "description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-home-write-recursive" - ] + "const": "fs:allow-home-read-recursive" }, { - "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$HOME` folder.", "type": "string", - "enum": [ - "fs:allow-localdata-meta" - ] + "const": "fs:allow-home-write" }, { - "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-localdata-meta-recursive" - ] + "const": "fs:allow-home-write-recursive" }, { - "description": "fs:allow-localdata-read -> This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-localdata-read" - ] + "const": "fs:allow-localdata-meta" }, { - "description": "fs:allow-localdata-read-recursive -> This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-localdata-read-recursive" - ] + "const": "fs:allow-localdata-meta-recursive" }, { - "description": "fs:allow-localdata-write -> This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "fs:allow-localdata-write" - ] + "const": "fs:allow-localdata-read" }, { - "description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-localdata-write-recursive" - ] + "const": "fs:allow-localdata-read-recursive" }, { - "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "fs:allow-log-meta" - ] + "const": "fs:allow-localdata-write" }, { - "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-log-meta-recursive" - ] + "const": "fs:allow-localdata-write-recursive" }, { - "description": "fs:allow-log-read -> This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-log-read" - ] + "const": "fs:allow-log-meta" }, { - "description": "fs:allow-log-read-recursive -> This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-log-read-recursive" - ] + "const": "fs:allow-log-meta-recursive" }, { - "description": "fs:allow-log-write -> This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.", "type": "string", - "enum": [ - "fs:allow-log-write" - ] + "const": "fs:allow-log-read" }, { - "description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-log-write-recursive" - ] + "const": "fs:allow-log-read-recursive" }, { - "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$LOG` folder.", "type": "string", - "enum": [ - "fs:allow-picture-meta" - ] + "const": "fs:allow-log-write" }, { - "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-picture-meta-recursive" - ] + "const": "fs:allow-log-write-recursive" }, { - "description": "fs:allow-picture-read -> This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-picture-read" - ] + "const": "fs:allow-picture-meta" }, { - "description": "fs:allow-picture-read-recursive -> This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-picture-read-recursive" - ] + "const": "fs:allow-picture-meta-recursive" }, { - "description": "fs:allow-picture-write -> This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.", "type": "string", - "enum": [ - "fs:allow-picture-write" - ] + "const": "fs:allow-picture-read" }, { - "description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-picture-write-recursive" - ] + "const": "fs:allow-picture-read-recursive" }, { - "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.", "type": "string", - "enum": [ - "fs:allow-public-meta" - ] + "const": "fs:allow-picture-write" }, { - "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-public-meta-recursive" - ] + "const": "fs:allow-picture-write-recursive" }, { - "description": "fs:allow-public-read -> This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-public-read" - ] + "const": "fs:allow-public-meta" }, { - "description": "fs:allow-public-read-recursive -> This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-public-read-recursive" - ] + "const": "fs:allow-public-meta-recursive" }, { - "description": "fs:allow-public-write -> This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", "type": "string", - "enum": [ - "fs:allow-public-write" - ] + "const": "fs:allow-public-read" }, { - "description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-public-write-recursive" - ] + "const": "fs:allow-public-read-recursive" }, { - "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", "type": "string", - "enum": [ - "fs:allow-resource-meta" - ] + "const": "fs:allow-public-write" }, { - "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-resource-meta-recursive" - ] + "const": "fs:allow-public-write-recursive" }, { - "description": "fs:allow-resource-read -> This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-resource-read" - ] + "const": "fs:allow-resource-meta" }, { - "description": "fs:allow-resource-read-recursive -> This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-resource-read-recursive" - ] + "const": "fs:allow-resource-meta-recursive" }, { - "description": "fs:allow-resource-write -> This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", "type": "string", - "enum": [ - "fs:allow-resource-write" - ] + "const": "fs:allow-resource-read" }, { - "description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-resource-write-recursive" - ] + "const": "fs:allow-resource-read-recursive" }, { - "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", "type": "string", - "enum": [ - "fs:allow-runtime-meta" - ] + "const": "fs:allow-resource-write" }, { - "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-runtime-meta-recursive" - ] + "const": "fs:allow-resource-write-recursive" }, { - "description": "fs:allow-runtime-read -> This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-runtime-read" - ] + "const": "fs:allow-runtime-meta" }, { - "description": "fs:allow-runtime-read-recursive -> This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-runtime-read-recursive" - ] + "const": "fs:allow-runtime-meta-recursive" }, { - "description": "fs:allow-runtime-write -> This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", "type": "string", - "enum": [ - "fs:allow-runtime-write" - ] + "const": "fs:allow-runtime-read" }, { - "description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-runtime-write-recursive" - ] + "const": "fs:allow-runtime-read-recursive" }, { - "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", "type": "string", - "enum": [ - "fs:allow-temp-meta" - ] + "const": "fs:allow-runtime-write" }, { - "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-temp-meta-recursive" - ] + "const": "fs:allow-runtime-write-recursive" }, { - "description": "fs:allow-temp-read -> This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-temp-read" - ] + "const": "fs:allow-temp-meta" }, { - "description": "fs:allow-temp-read-recursive -> This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-temp-read-recursive" - ] + "const": "fs:allow-temp-meta-recursive" }, { - "description": "fs:allow-temp-write -> This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.", "type": "string", - "enum": [ - "fs:allow-temp-write" - ] + "const": "fs:allow-temp-read" }, { - "description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-temp-write-recursive" - ] + "const": "fs:allow-temp-read-recursive" }, { - "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$TEMP` folder.", "type": "string", - "enum": [ - "fs:allow-template-meta" - ] + "const": "fs:allow-temp-write" }, { - "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-template-meta-recursive" - ] + "const": "fs:allow-temp-write-recursive" }, { - "description": "fs:allow-template-read -> This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-template-read" - ] + "const": "fs:allow-template-meta" }, { - "description": "fs:allow-template-read-recursive -> This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-template-read-recursive" - ] + "const": "fs:allow-template-meta-recursive" }, { - "description": "fs:allow-template-write -> This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "fs:allow-template-write" - ] + "const": "fs:allow-template-read" }, { - "description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-template-write-recursive" - ] + "const": "fs:allow-template-read-recursive" }, { - "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "fs:allow-video-meta" - ] + "const": "fs:allow-template-write" }, { - "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-video-meta-recursive" - ] + "const": "fs:allow-template-write-recursive" }, { - "description": "fs:allow-video-read -> This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-video-read" - ] + "const": "fs:allow-video-meta" }, { - "description": "fs:allow-video-read-recursive -> This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "fs:allow-video-read-recursive" - ] + "const": "fs:allow-video-meta-recursive" }, { - "description": "fs:allow-video-write -> This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.", "type": "string", - "enum": [ - "fs:allow-video-write" - ] + "const": "fs:allow-video-read" }, { - "description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:allow-video-write-recursive" - ] + "const": "fs:allow-video-read-recursive" }, { - "description": "fs:deny-default -> This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.", "type": "string", - "enum": [ - "fs:deny-default" - ] + "const": "fs:allow-video-write" }, { - "description": "fs:default -> This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", "type": "string", - "enum": [ - "fs:default" - ] + "const": "fs:allow-video-write-recursive" }, { - "description": "fs:allow-copy-file -> Enables the copy_file command without any pre-configured scope.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.", "type": "string", - "enum": [ - "fs:allow-copy-file" - ] + "const": "fs:deny-default" }, { - "description": "fs:allow-create -> Enables the create command without any pre-configured scope.", + "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-create" - ] + "const": "fs:allow-copy-file" }, { - "description": "fs:allow-exists -> Enables the exists command without any pre-configured scope.", + "description": "Enables the create command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-exists" - ] + "const": "fs:allow-create" }, { - "description": "fs:allow-fstat -> Enables the fstat command without any pre-configured scope.", + "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-fstat" - ] + "const": "fs:allow-exists" }, { - "description": "fs:allow-ftruncate -> Enables the ftruncate command without any pre-configured scope.", + "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-ftruncate" - ] + "const": "fs:allow-fstat" }, { - "description": "fs:allow-lstat -> Enables the lstat command without any pre-configured scope.", + "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-lstat" - ] + "const": "fs:allow-ftruncate" }, { - "description": "fs:allow-mkdir -> Enables the mkdir command without any pre-configured scope.", + "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-mkdir" - ] + "const": "fs:allow-lstat" }, { - "description": "fs:allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-open" - ] + "const": "fs:allow-mkdir" }, { - "description": "fs:allow-read -> Enables the read command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read" - ] + "const": "fs:allow-open" }, { - "description": "fs:allow-read-dir -> Enables the read_dir command without any pre-configured scope.", + "description": "Enables the read command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read-dir" - ] + "const": "fs:allow-read" }, { - "description": "fs:allow-read-file -> Enables the read_file command without any pre-configured scope.", + "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read-file" - ] + "const": "fs:allow-read-dir" }, { - "description": "fs:allow-read-text-file -> Enables the read_text_file command without any pre-configured scope.", + "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read-text-file" - ] + "const": "fs:allow-read-file" }, { - "description": "fs:allow-read-text-file-lines -> Enables the read_text_file_lines command without any pre-configured scope.", + "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read-text-file-lines" - ] + "const": "fs:allow-read-text-file" }, { - "description": "fs:allow-read-text-file-lines-next -> Enables the read_text_file_lines_next command without any pre-configured scope.", + "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-read-text-file-lines-next" - ] + "const": "fs:allow-read-text-file-lines" }, { - "description": "fs:allow-remove -> Enables the remove command without any pre-configured scope.", + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-remove" - ] + "const": "fs:allow-read-text-file-lines-next" }, { - "description": "fs:allow-rename -> Enables the rename command without any pre-configured scope.", + "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-rename" - ] + "const": "fs:allow-remove" }, { - "description": "fs:allow-seek -> Enables the seek command without any pre-configured scope.", + "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-seek" - ] + "const": "fs:allow-rename" }, { - "description": "fs:allow-stat -> Enables the stat command without any pre-configured scope.", + "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-stat" - ] + "const": "fs:allow-seek" }, { - "description": "fs:allow-truncate -> Enables the truncate command without any pre-configured scope.", + "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-truncate" - ] + "const": "fs:allow-stat" }, { - "description": "fs:allow-unwatch -> Enables the unwatch command without any pre-configured scope.", + "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-unwatch" - ] + "const": "fs:allow-truncate" }, { - "description": "fs:allow-watch -> Enables the watch command without any pre-configured scope.", + "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-watch" - ] + "const": "fs:allow-unwatch" }, { - "description": "fs:allow-write -> Enables the write command without any pre-configured scope.", + "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-write" - ] + "const": "fs:allow-watch" }, { - "description": "fs:allow-write-file -> Enables the write_file command without any pre-configured scope.", + "description": "Enables the write command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-write-file" - ] + "const": "fs:allow-write" }, { - "description": "fs:allow-write-text-file -> Enables the write_text_file command without any pre-configured scope.", + "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:allow-write-text-file" - ] + "const": "fs:allow-write-file" }, { - "description": "fs:create-app-specific-dirs -> This permissions allows to create the application specific directories.\n", + "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:create-app-specific-dirs" - ] + "const": "fs:allow-write-text-file" }, { - "description": "fs:deny-copy-file -> Denies the copy_file command without any pre-configured scope.", + "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "enum": [ - "fs:deny-copy-file" - ] + "const": "fs:create-app-specific-dirs" }, { - "description": "fs:deny-create -> Denies the create command without any pre-configured scope.", + "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-create" - ] + "const": "fs:deny-copy-file" }, { - "description": "fs:deny-exists -> Denies the exists command without any pre-configured scope.", + "description": "Denies the create command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-exists" - ] + "const": "fs:deny-create" }, { - "description": "fs:deny-fstat -> Denies the fstat command without any pre-configured scope.", + "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-fstat" - ] + "const": "fs:deny-exists" }, { - "description": "fs:deny-ftruncate -> Denies the ftruncate command without any pre-configured scope.", + "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-ftruncate" - ] + "const": "fs:deny-fstat" }, { - "description": "fs:deny-lstat -> Denies the lstat command without any pre-configured scope.", + "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-lstat" - ] + "const": "fs:deny-ftruncate" }, { - "description": "fs:deny-mkdir -> Denies the mkdir command without any pre-configured scope.", + "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-mkdir" - ] + "const": "fs:deny-lstat" }, { - "description": "fs:deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-open" - ] + "const": "fs:deny-mkdir" }, { - "description": "fs:deny-read -> Denies the read command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read" - ] + "const": "fs:deny-open" }, { - "description": "fs:deny-read-dir -> Denies the read_dir command without any pre-configured scope.", + "description": "Denies the read command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read-dir" - ] + "const": "fs:deny-read" }, { - "description": "fs:deny-read-file -> Denies the read_file command without any pre-configured scope.", + "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read-file" - ] + "const": "fs:deny-read-dir" }, { - "description": "fs:deny-read-text-file -> Denies the read_text_file command without any pre-configured scope.", + "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read-text-file" - ] + "const": "fs:deny-read-file" }, { - "description": "fs:deny-read-text-file-lines -> Denies the read_text_file_lines command without any pre-configured scope.", + "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read-text-file-lines" - ] + "const": "fs:deny-read-text-file" }, { - "description": "fs:deny-read-text-file-lines-next -> Denies the read_text_file_lines_next command without any pre-configured scope.", + "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-read-text-file-lines-next" - ] + "const": "fs:deny-read-text-file-lines" }, { - "description": "fs:deny-remove -> Denies the remove command without any pre-configured scope.", + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-remove" - ] + "const": "fs:deny-read-text-file-lines-next" }, { - "description": "fs:deny-rename -> Denies the rename command without any pre-configured scope.", + "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-rename" - ] + "const": "fs:deny-remove" }, { - "description": "fs:deny-seek -> Denies the seek command without any pre-configured scope.", + "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-seek" - ] + "const": "fs:deny-rename" }, { - "description": "fs:deny-stat -> Denies the stat command without any pre-configured scope.", + "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-stat" - ] + "const": "fs:deny-seek" }, { - "description": "fs:deny-truncate -> Denies the truncate command without any pre-configured scope.", + "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-truncate" - ] + "const": "fs:deny-stat" }, { - "description": "fs:deny-unwatch -> Denies the unwatch command without any pre-configured scope.", + "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-unwatch" - ] + "const": "fs:deny-truncate" }, { - "description": "fs:deny-watch -> Denies the watch command without any pre-configured scope.", + "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-watch" - ] + "const": "fs:deny-unwatch" }, { - "description": "fs:deny-webview-data-linux -> This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-webview-data-linux" - ] + "const": "fs:deny-watch" }, { - "description": "fs:deny-webview-data-windows -> This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "enum": [ - "fs:deny-webview-data-windows" - ] + "const": "fs:deny-webview-data-linux" }, { - "description": "fs:deny-write -> Denies the write command without any pre-configured scope.", + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "enum": [ - "fs:deny-write" - ] + "const": "fs:deny-webview-data-windows" }, { - "description": "fs:deny-write-file -> Denies the write_file command without any pre-configured scope.", + "description": "Denies the write command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-write-file" - ] + "const": "fs:deny-write" }, { - "description": "fs:deny-write-text-file -> Denies the write_text_file command without any pre-configured scope.", + "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:deny-write-text-file" - ] + "const": "fs:deny-write-file" }, { - "description": "fs:read-all -> This enables all read related commands without any pre-configured accessible paths.", + "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "fs:read-all" - ] + "const": "fs:deny-write-text-file" }, { - "description": "fs:read-app-specific-dirs-recursive -> This permission allows recursive read functionality on the application\nspecific base directories. \n", + "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "fs:read-app-specific-dirs-recursive" - ] + "const": "fs:read-all" }, { - "description": "fs:read-dirs -> This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "enum": [ - "fs:read-dirs" - ] + "const": "fs:read-app-specific-dirs-recursive" }, { - "description": "fs:read-files -> This enables file read related commands without any pre-configured accessible paths.", + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "fs:read-files" - ] + "const": "fs:read-dirs" }, { - "description": "fs:read-meta -> This enables all index or metadata related commands without any pre-configured accessible paths.", + "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "fs:read-meta" - ] + "const": "fs:read-files" }, { - "description": "fs:scope -> An empty permission you can use to modify the global scope.", + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "fs:scope" - ] + "const": "fs:read-meta" }, { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", + "description": "An empty permission you can use to modify the global scope.", "type": "string", - "enum": [ - "fs:scope-app" - ] + "const": "fs:scope" }, { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", + "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "enum": [ - "fs:scope-app-index" - ] + "const": "fs:scope-app" }, { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", + "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "enum": [ - "fs:scope-app-recursive" - ] + "const": "fs:scope-app-index" }, { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-appcache" - ] + "const": "fs:scope-app-recursive" }, { - "description": "fs:scope-appcache-index -> This scope permits to list all files and folders in the `$APPCACHE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "enum": [ - "fs:scope-appcache-index" - ] + "const": "fs:scope-appcache" }, { - "description": "fs:scope-appcache-recursive -> This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "enum": [ - "fs:scope-appcache-recursive" - ] + "const": "fs:scope-appcache-index" }, { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-appconfig" - ] + "const": "fs:scope-appcache-recursive" }, { - "description": "fs:scope-appconfig-index -> This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "fs:scope-appconfig-index" - ] + "const": "fs:scope-appconfig" }, { - "description": "fs:scope-appconfig-recursive -> This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "enum": [ - "fs:scope-appconfig-recursive" - ] + "const": "fs:scope-appconfig-index" }, { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-appdata" - ] + "const": "fs:scope-appconfig-recursive" }, { - "description": "fs:scope-appdata-index -> This scope permits to list all files and folders in the `$APPDATA`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "enum": [ - "fs:scope-appdata-index" - ] + "const": "fs:scope-appdata" }, { - "description": "fs:scope-appdata-recursive -> This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "enum": [ - "fs:scope-appdata-recursive" - ] + "const": "fs:scope-appdata-index" }, { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-applocaldata" - ] + "const": "fs:scope-appdata-recursive" }, { - "description": "fs:scope-applocaldata-index -> This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "fs:scope-applocaldata-index" - ] + "const": "fs:scope-applocaldata" }, { - "description": "fs:scope-applocaldata-recursive -> This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "enum": [ - "fs:scope-applocaldata-recursive" - ] + "const": "fs:scope-applocaldata-index" }, { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-applog" - ] + "const": "fs:scope-applocaldata-recursive" }, { - "description": "fs:scope-applog-index -> This scope permits to list all files and folders in the `$APPLOG`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "enum": [ - "fs:scope-applog-index" - ] + "const": "fs:scope-applog" }, { - "description": "fs:scope-applog-recursive -> This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "enum": [ - "fs:scope-applog-recursive" - ] + "const": "fs:scope-applog-index" }, { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-audio" - ] + "const": "fs:scope-applog-recursive" }, { - "description": "fs:scope-audio-index -> This scope permits to list all files and folders in the `$AUDIO`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "enum": [ - "fs:scope-audio-index" - ] + "const": "fs:scope-audio" }, { - "description": "fs:scope-audio-recursive -> This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "enum": [ - "fs:scope-audio-recursive" - ] + "const": "fs:scope-audio-index" }, { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-cache" - ] + "const": "fs:scope-audio-recursive" }, { - "description": "fs:scope-cache-index -> This scope permits to list all files and folders in the `$CACHE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "enum": [ - "fs:scope-cache-index" - ] + "const": "fs:scope-cache" }, { - "description": "fs:scope-cache-recursive -> This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "enum": [ - "fs:scope-cache-recursive" - ] + "const": "fs:scope-cache-index" }, { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-config" - ] + "const": "fs:scope-cache-recursive" }, { - "description": "fs:scope-config-index -> This scope permits to list all files and folders in the `$CONFIG`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "enum": [ - "fs:scope-config-index" - ] + "const": "fs:scope-config" }, { - "description": "fs:scope-config-recursive -> This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "enum": [ - "fs:scope-config-recursive" - ] + "const": "fs:scope-config-index" }, { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-data" - ] + "const": "fs:scope-config-recursive" }, { - "description": "fs:scope-data-index -> This scope permits to list all files and folders in the `$DATA`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "enum": [ - "fs:scope-data-index" - ] + "const": "fs:scope-data" }, { - "description": "fs:scope-data-recursive -> This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "enum": [ - "fs:scope-data-recursive" - ] + "const": "fs:scope-data-index" }, { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-desktop" - ] + "const": "fs:scope-data-recursive" }, { - "description": "fs:scope-desktop-index -> This scope permits to list all files and folders in the `$DESKTOP`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "enum": [ - "fs:scope-desktop-index" - ] + "const": "fs:scope-desktop" }, { - "description": "fs:scope-desktop-recursive -> This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "enum": [ - "fs:scope-desktop-recursive" - ] + "const": "fs:scope-desktop-index" }, { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-document" - ] + "const": "fs:scope-desktop-recursive" }, { - "description": "fs:scope-document-index -> This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "fs:scope-document-index" - ] + "const": "fs:scope-document" }, { - "description": "fs:scope-document-recursive -> This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "enum": [ - "fs:scope-document-recursive" - ] + "const": "fs:scope-document-index" }, { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-download" - ] + "const": "fs:scope-document-recursive" }, { - "description": "fs:scope-download-index -> This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "fs:scope-download-index" - ] + "const": "fs:scope-download" }, { - "description": "fs:scope-download-recursive -> This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "enum": [ - "fs:scope-download-recursive" - ] + "const": "fs:scope-download-index" }, { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-exe" - ] + "const": "fs:scope-download-recursive" }, { - "description": "fs:scope-exe-index -> This scope permits to list all files and folders in the `$EXE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "enum": [ - "fs:scope-exe-index" - ] + "const": "fs:scope-exe" }, { - "description": "fs:scope-exe-recursive -> This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "enum": [ - "fs:scope-exe-recursive" - ] + "const": "fs:scope-exe-index" }, { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-font" - ] + "const": "fs:scope-exe-recursive" }, { - "description": "fs:scope-font-index -> This scope permits to list all files and folders in the `$FONT`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "enum": [ - "fs:scope-font-index" - ] + "const": "fs:scope-font" }, { - "description": "fs:scope-font-recursive -> This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "enum": [ - "fs:scope-font-recursive" - ] + "const": "fs:scope-font-index" }, { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-home" - ] + "const": "fs:scope-font-recursive" }, { - "description": "fs:scope-home-index -> This scope permits to list all files and folders in the `$HOME`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "enum": [ - "fs:scope-home-index" - ] + "const": "fs:scope-home" }, { - "description": "fs:scope-home-recursive -> This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "enum": [ - "fs:scope-home-recursive" - ] + "const": "fs:scope-home-index" }, { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-localdata" - ] + "const": "fs:scope-home-recursive" }, { - "description": "fs:scope-localdata-index -> This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "fs:scope-localdata-index" - ] + "const": "fs:scope-localdata" }, { - "description": "fs:scope-localdata-recursive -> This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "enum": [ - "fs:scope-localdata-recursive" - ] + "const": "fs:scope-localdata-index" }, { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-log" - ] + "const": "fs:scope-localdata-recursive" }, { - "description": "fs:scope-log-index -> This scope permits to list all files and folders in the `$LOG`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "enum": [ - "fs:scope-log-index" - ] + "const": "fs:scope-log" }, { - "description": "fs:scope-log-recursive -> This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "enum": [ - "fs:scope-log-recursive" - ] + "const": "fs:scope-log-index" }, { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-picture" - ] + "const": "fs:scope-log-recursive" }, { - "description": "fs:scope-picture-index -> This scope permits to list all files and folders in the `$PICTURE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "enum": [ - "fs:scope-picture-index" - ] + "const": "fs:scope-picture" }, { - "description": "fs:scope-picture-recursive -> This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "enum": [ - "fs:scope-picture-recursive" - ] + "const": "fs:scope-picture-index" }, { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-public" - ] + "const": "fs:scope-picture-recursive" }, { - "description": "fs:scope-public-index -> This scope permits to list all files and folders in the `$PUBLIC`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "enum": [ - "fs:scope-public-index" - ] + "const": "fs:scope-public" }, { - "description": "fs:scope-public-recursive -> This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "enum": [ - "fs:scope-public-recursive" - ] + "const": "fs:scope-public-index" }, { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-resource" - ] + "const": "fs:scope-public-recursive" }, { - "description": "fs:scope-resource-index -> This scope permits to list all files and folders in the `$RESOURCE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "enum": [ - "fs:scope-resource-index" - ] + "const": "fs:scope-resource" }, { - "description": "fs:scope-resource-recursive -> This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "enum": [ - "fs:scope-resource-recursive" - ] + "const": "fs:scope-resource-index" }, { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-runtime" - ] + "const": "fs:scope-resource-recursive" }, { - "description": "fs:scope-runtime-index -> This scope permits to list all files and folders in the `$RUNTIME`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "enum": [ - "fs:scope-runtime-index" - ] + "const": "fs:scope-runtime" }, { - "description": "fs:scope-runtime-recursive -> This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "enum": [ - "fs:scope-runtime-recursive" - ] + "const": "fs:scope-runtime-index" }, { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-temp" - ] + "const": "fs:scope-runtime-recursive" }, { - "description": "fs:scope-temp-index -> This scope permits to list all files and folders in the `$TEMP`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "enum": [ - "fs:scope-temp-index" - ] + "const": "fs:scope-temp" }, { - "description": "fs:scope-temp-recursive -> This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "enum": [ - "fs:scope-temp-recursive" - ] + "const": "fs:scope-temp-index" }, { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-template" - ] + "const": "fs:scope-temp-recursive" }, { - "description": "fs:scope-template-index -> This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "fs:scope-template-index" - ] + "const": "fs:scope-template" }, { - "description": "fs:scope-template-recursive -> This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "enum": [ - "fs:scope-template-recursive" - ] + "const": "fs:scope-template-index" }, { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:scope-video" - ] + "const": "fs:scope-template-recursive" }, { - "description": "fs:scope-video-index -> This scope permits to list all files and folders in the `$VIDEO`folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "enum": [ - "fs:scope-video-index" - ] + "const": "fs:scope-video" }, { - "description": "fs:scope-video-recursive -> This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "enum": [ - "fs:scope-video-recursive" - ] + "const": "fs:scope-video-index" }, { - "description": "fs:write-all -> This enables all write related commands without any pre-configured accessible paths.", + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "enum": [ - "fs:write-all" - ] + "const": "fs:scope-video-recursive" }, { - "description": "fs:write-files -> This enables all file write related commands without any pre-configured accessible paths.", + "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "fs:write-files" - ] + "const": "fs:write-all" }, { - "description": "global-shortcut:default -> No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", + "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "global-shortcut:default" - ] + "const": "fs:write-files" }, { - "description": "global-shortcut:allow-is-registered -> Enables the is_registered command without any pre-configured scope.", + "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", "type": "string", - "enum": [ - "global-shortcut:allow-is-registered" - ] + "const": "global-shortcut:default" }, { - "description": "global-shortcut:allow-register -> Enables the register command without any pre-configured scope.", + "description": "Enables the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:allow-register" - ] + "const": "global-shortcut:allow-is-registered" }, { - "description": "global-shortcut:allow-register-all -> Enables the register_all command without any pre-configured scope.", + "description": "Enables the register command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:allow-register-all" - ] + "const": "global-shortcut:allow-register" }, { - "description": "global-shortcut:allow-unregister -> Enables the unregister command without any pre-configured scope.", + "description": "Enables the register_all command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:allow-unregister" - ] + "const": "global-shortcut:allow-register-all" }, { - "description": "global-shortcut:allow-unregister-all -> Enables the unregister_all command without any pre-configured scope.", + "description": "Enables the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:allow-unregister-all" - ] + "const": "global-shortcut:allow-unregister" }, { - "description": "global-shortcut:deny-is-registered -> Denies the is_registered command without any pre-configured scope.", + "description": "Enables the unregister_all command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:deny-is-registered" - ] + "const": "global-shortcut:allow-unregister-all" }, { - "description": "global-shortcut:deny-register -> Denies the register command without any pre-configured scope.", + "description": "Denies the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:deny-register" - ] + "const": "global-shortcut:deny-is-registered" }, { - "description": "global-shortcut:deny-register-all -> Denies the register_all command without any pre-configured scope.", + "description": "Denies the register command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:deny-register-all" - ] + "const": "global-shortcut:deny-register" }, { - "description": "global-shortcut:deny-unregister -> Denies the unregister command without any pre-configured scope.", + "description": "Denies the register_all command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:deny-unregister" - ] + "const": "global-shortcut:deny-register-all" }, { - "description": "global-shortcut:deny-unregister-all -> Denies the unregister_all command without any pre-configured scope.", + "description": "Denies the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "global-shortcut:deny-unregister-all" - ] + "const": "global-shortcut:deny-unregister" }, { - "description": "http:default -> This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "Denies the unregister_all command without any pre-configured scope.", "type": "string", - "enum": [ - "http:default" - ] + "const": "global-shortcut:deny-unregister-all" }, { - "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", "type": "string", - "enum": [ - "http:allow-fetch" - ] + "const": "http:default" }, { - "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", + "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "enum": [ - "http:allow-fetch-cancel" - ] + "const": "http:allow-fetch" }, { - "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", + "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "http:allow-fetch-read-body" - ] + "const": "http:allow-fetch-cancel" }, { - "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", + "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "enum": [ - "http:allow-fetch-send" - ] + "const": "http:allow-fetch-read-body" }, { - "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", + "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "enum": [ - "http:deny-fetch" - ] + "const": "http:allow-fetch-send" }, { - "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", + "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "enum": [ - "http:deny-fetch-cancel" - ] + "const": "http:deny-fetch" }, { - "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", + "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "http:deny-fetch-read-body" - ] + "const": "http:deny-fetch-cancel" }, { - "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", + "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "enum": [ - "http:deny-fetch-send" - ] + "const": "http:deny-fetch-read-body" }, { - "description": "log:default -> Allows the log command", + "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "enum": [ - "log:default" - ] + "const": "http:deny-fetch-send" }, { - "description": "log:allow-log -> Enables the log command without any pre-configured scope.", + "description": "Allows the log command", "type": "string", - "enum": [ - "log:allow-log" - ] + "const": "log:default" }, { - "description": "log:deny-log -> Denies the log command without any pre-configured scope.", + "description": "Enables the log command without any pre-configured scope.", "type": "string", - "enum": [ - "log:deny-log" - ] + "const": "log:allow-log" }, { - "description": "notification:default -> This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "description": "Denies the log command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:default" - ] + "const": "log:deny-log" }, { - "description": "notification:allow-batch -> Enables the batch command without any pre-configured scope.", + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", "type": "string", - "enum": [ - "notification:allow-batch" - ] + "const": "notification:default" }, { - "description": "notification:allow-cancel -> Enables the cancel command without any pre-configured scope.", + "description": "Enables the batch command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-cancel" - ] + "const": "notification:allow-batch" }, { - "description": "notification:allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", + "description": "Enables the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-check-permissions" - ] + "const": "notification:allow-cancel" }, { - "description": "notification:allow-create-channel -> Enables the create_channel command without any pre-configured scope.", + "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-create-channel" - ] + "const": "notification:allow-check-permissions" }, { - "description": "notification:allow-delete-channel -> Enables the delete_channel command without any pre-configured scope.", + "description": "Enables the create_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-delete-channel" - ] + "const": "notification:allow-create-channel" }, { - "description": "notification:allow-get-active -> Enables the get_active command without any pre-configured scope.", + "description": "Enables the delete_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-get-active" - ] + "const": "notification:allow-delete-channel" }, { - "description": "notification:allow-get-pending -> Enables the get_pending command without any pre-configured scope.", + "description": "Enables the get_active command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-get-pending" - ] + "const": "notification:allow-get-active" }, { - "description": "notification:allow-is-permission-granted -> Enables the is_permission_granted command without any pre-configured scope.", + "description": "Enables the get_pending command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-is-permission-granted" - ] + "const": "notification:allow-get-pending" }, { - "description": "notification:allow-list-channels -> Enables the list_channels command without any pre-configured scope.", + "description": "Enables the is_permission_granted command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-list-channels" - ] + "const": "notification:allow-is-permission-granted" }, { - "description": "notification:allow-notify -> Enables the notify command without any pre-configured scope.", + "description": "Enables the list_channels command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-notify" - ] + "const": "notification:allow-list-channels" }, { - "description": "notification:allow-permission-state -> Enables the permission_state command without any pre-configured scope.", + "description": "Enables the notify command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-permission-state" - ] + "const": "notification:allow-notify" }, { - "description": "notification:allow-register-action-types -> Enables the register_action_types command without any pre-configured scope.", + "description": "Enables the permission_state command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-register-action-types" - ] + "const": "notification:allow-permission-state" }, { - "description": "notification:allow-register-listener -> Enables the register_listener command without any pre-configured scope.", + "description": "Enables the register_action_types command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-register-listener" - ] + "const": "notification:allow-register-action-types" }, { - "description": "notification:allow-remove-active -> Enables the remove_active command without any pre-configured scope.", + "description": "Enables the register_listener command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-remove-active" - ] + "const": "notification:allow-register-listener" }, { - "description": "notification:allow-request-permission -> Enables the request_permission command without any pre-configured scope.", + "description": "Enables the remove_active command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-request-permission" - ] + "const": "notification:allow-remove-active" }, { - "description": "notification:allow-show -> Enables the show command without any pre-configured scope.", + "description": "Enables the request_permission command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:allow-show" - ] + "const": "notification:allow-request-permission" }, { - "description": "notification:deny-batch -> Denies the batch command without any pre-configured scope.", + "description": "Enables the show command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-batch" - ] + "const": "notification:allow-show" }, { - "description": "notification:deny-cancel -> Denies the cancel command without any pre-configured scope.", + "description": "Denies the batch command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-cancel" - ] + "const": "notification:deny-batch" }, { - "description": "notification:deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", + "description": "Denies the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-check-permissions" - ] + "const": "notification:deny-cancel" }, { - "description": "notification:deny-create-channel -> Denies the create_channel command without any pre-configured scope.", + "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-create-channel" - ] + "const": "notification:deny-check-permissions" }, { - "description": "notification:deny-delete-channel -> Denies the delete_channel command without any pre-configured scope.", + "description": "Denies the create_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-delete-channel" - ] + "const": "notification:deny-create-channel" }, { - "description": "notification:deny-get-active -> Denies the get_active command without any pre-configured scope.", + "description": "Denies the delete_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-get-active" - ] + "const": "notification:deny-delete-channel" }, { - "description": "notification:deny-get-pending -> Denies the get_pending command without any pre-configured scope.", + "description": "Denies the get_active command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-get-pending" - ] + "const": "notification:deny-get-active" }, { - "description": "notification:deny-is-permission-granted -> Denies the is_permission_granted command without any pre-configured scope.", + "description": "Denies the get_pending command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-is-permission-granted" - ] + "const": "notification:deny-get-pending" }, { - "description": "notification:deny-list-channels -> Denies the list_channels command without any pre-configured scope.", + "description": "Denies the is_permission_granted command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-list-channels" - ] + "const": "notification:deny-is-permission-granted" }, { - "description": "notification:deny-notify -> Denies the notify command without any pre-configured scope.", + "description": "Denies the list_channels command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-notify" - ] + "const": "notification:deny-list-channels" }, { - "description": "notification:deny-permission-state -> Denies the permission_state command without any pre-configured scope.", + "description": "Denies the notify command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-permission-state" - ] + "const": "notification:deny-notify" }, { - "description": "notification:deny-register-action-types -> Denies the register_action_types command without any pre-configured scope.", + "description": "Denies the permission_state command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-register-action-types" - ] + "const": "notification:deny-permission-state" }, { - "description": "notification:deny-register-listener -> Denies the register_listener command without any pre-configured scope.", + "description": "Denies the register_action_types command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-register-listener" - ] + "const": "notification:deny-register-action-types" }, { - "description": "notification:deny-remove-active -> Denies the remove_active command without any pre-configured scope.", + "description": "Denies the register_listener command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-remove-active" - ] + "const": "notification:deny-register-listener" }, { - "description": "notification:deny-request-permission -> Denies the request_permission command without any pre-configured scope.", + "description": "Denies the remove_active command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-request-permission" - ] + "const": "notification:deny-remove-active" }, { - "description": "notification:deny-show -> Denies the show command without any pre-configured scope.", + "description": "Denies the request_permission command without any pre-configured scope.", "type": "string", - "enum": [ - "notification:deny-show" - ] + "const": "notification:deny-request-permission" }, { - "description": "os:default -> This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "description": "Denies the show command without any pre-configured scope.", "type": "string", - "enum": [ - "os:default" - ] + "const": "notification:deny-show" }, { - "description": "os:allow-arch -> Enables the arch command without any pre-configured scope.", + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", "type": "string", - "enum": [ - "os:allow-arch" - ] + "const": "os:default" }, { - "description": "os:allow-exe-extension -> Enables the exe_extension command without any pre-configured scope.", + "description": "Enables the arch command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-exe-extension" - ] + "const": "os:allow-arch" }, { - "description": "os:allow-family -> Enables the family command without any pre-configured scope.", + "description": "Enables the exe_extension command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-family" - ] + "const": "os:allow-exe-extension" }, { - "description": "os:allow-hostname -> Enables the hostname command without any pre-configured scope.", + "description": "Enables the family command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-hostname" - ] + "const": "os:allow-family" }, { - "description": "os:allow-locale -> Enables the locale command without any pre-configured scope.", + "description": "Enables the hostname command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-locale" - ] + "const": "os:allow-hostname" }, { - "description": "os:allow-os-type -> Enables the os_type command without any pre-configured scope.", + "description": "Enables the locale command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-os-type" - ] + "const": "os:allow-locale" }, { - "description": "os:allow-platform -> Enables the platform command without any pre-configured scope.", + "description": "Enables the os_type command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-platform" - ] + "const": "os:allow-os-type" }, { - "description": "os:allow-version -> Enables the version command without any pre-configured scope.", + "description": "Enables the platform command without any pre-configured scope.", "type": "string", - "enum": [ - "os:allow-version" - ] + "const": "os:allow-platform" }, { - "description": "os:deny-arch -> Denies the arch command without any pre-configured scope.", + "description": "Enables the version command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-arch" - ] + "const": "os:allow-version" }, { - "description": "os:deny-exe-extension -> Denies the exe_extension command without any pre-configured scope.", + "description": "Denies the arch command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-exe-extension" - ] + "const": "os:deny-arch" }, { - "description": "os:deny-family -> Denies the family command without any pre-configured scope.", + "description": "Denies the exe_extension command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-family" - ] + "const": "os:deny-exe-extension" }, { - "description": "os:deny-hostname -> Denies the hostname command without any pre-configured scope.", + "description": "Denies the family command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-hostname" - ] + "const": "os:deny-family" }, { - "description": "os:deny-locale -> Denies the locale command without any pre-configured scope.", + "description": "Denies the hostname command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-locale" - ] + "const": "os:deny-hostname" }, { - "description": "os:deny-os-type -> Denies the os_type command without any pre-configured scope.", + "description": "Denies the locale command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-os-type" - ] + "const": "os:deny-locale" }, { - "description": "os:deny-platform -> Denies the platform command without any pre-configured scope.", + "description": "Denies the os_type command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-platform" - ] + "const": "os:deny-os-type" }, { - "description": "os:deny-version -> Denies the version command without any pre-configured scope.", + "description": "Denies the platform command without any pre-configured scope.", "type": "string", - "enum": [ - "os:deny-version" - ] + "const": "os:deny-platform" }, { - "description": "process:default -> This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "description": "Denies the version command without any pre-configured scope.", "type": "string", - "enum": [ - "process:default" - ] + "const": "os:deny-version" }, { - "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", "type": "string", - "enum": [ - "process:allow-exit" - ] + "const": "process:default" }, { - "description": "process:allow-restart -> Enables the restart command without any pre-configured scope.", + "description": "Enables the exit command without any pre-configured scope.", "type": "string", - "enum": [ - "process:allow-restart" - ] + "const": "process:allow-exit" }, { - "description": "process:deny-exit -> Denies the exit command without any pre-configured scope.", + "description": "Enables the restart command without any pre-configured scope.", "type": "string", - "enum": [ - "process:deny-exit" - ] + "const": "process:allow-restart" }, { - "description": "process:deny-restart -> Denies the restart command without any pre-configured scope.", + "description": "Denies the exit command without any pre-configured scope.", "type": "string", - "enum": [ - "process:deny-restart" - ] + "const": "process:deny-exit" }, { - "description": "shell:default -> This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "Denies the restart command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:default" - ] + "const": "process:deny-restart" }, { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", "type": "string", - "enum": [ - "shell:allow-execute" - ] + "const": "shell:default" }, { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", + "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:allow-kill" - ] + "const": "shell:allow-execute" }, { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:allow-open" - ] + "const": "shell:allow-kill" }, { - "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:allow-spawn" - ] + "const": "shell:allow-open" }, { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", + "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] + "const": "shell:allow-spawn" }, { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", + "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:deny-execute" - ] + "const": "shell:allow-stdin-write" }, { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", + "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:deny-kill" - ] + "const": "shell:deny-execute" }, { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:deny-open" - ] + "const": "shell:deny-kill" }, { - "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:deny-spawn" - ] + "const": "shell:deny-open" }, { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", + "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] + "const": "shell:deny-spawn" }, { - "description": "store:default -> This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "enum": [ - "store:default" - ] + "const": "shell:deny-stdin-write" }, { - "description": "store:allow-clear -> Enables the clear command without any pre-configured scope.", + "description": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", "type": "string", - "enum": [ - "store:allow-clear" - ] + "const": "store:default" }, { - "description": "store:allow-delete -> Enables the delete command without any pre-configured scope.", + "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-delete" - ] + "const": "store:allow-clear" }, { - "description": "store:allow-entries -> Enables the entries command without any pre-configured scope.", + "description": "Enables the delete command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-entries" - ] + "const": "store:allow-delete" }, { - "description": "store:allow-get -> Enables the get command without any pre-configured scope.", + "description": "Enables the entries command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-get" - ] + "const": "store:allow-entries" }, { - "description": "store:allow-has -> Enables the has command without any pre-configured scope.", + "description": "Enables the get command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-has" - ] + "const": "store:allow-get" }, { - "description": "store:allow-keys -> Enables the keys command without any pre-configured scope.", + "description": "Enables the has command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-keys" - ] + "const": "store:allow-has" }, { - "description": "store:allow-length -> Enables the length command without any pre-configured scope.", + "description": "Enables the keys command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-length" - ] + "const": "store:allow-keys" }, { - "description": "store:allow-load -> Enables the load command without any pre-configured scope.", + "description": "Enables the length command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-load" - ] + "const": "store:allow-length" }, { - "description": "store:allow-reset -> Enables the reset command without any pre-configured scope.", + "description": "Enables the load command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-reset" - ] + "const": "store:allow-load" }, { - "description": "store:allow-save -> Enables the save command without any pre-configured scope.", + "description": "Enables the reset command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-save" - ] + "const": "store:allow-reset" }, { - "description": "store:allow-set -> Enables the set command without any pre-configured scope.", + "description": "Enables the save command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-set" - ] + "const": "store:allow-save" }, { - "description": "store:allow-values -> Enables the values command without any pre-configured scope.", + "description": "Enables the set command without any pre-configured scope.", "type": "string", - "enum": [ - "store:allow-values" - ] + "const": "store:allow-set" }, { - "description": "store:deny-clear -> Denies the clear command without any pre-configured scope.", + "description": "Enables the values command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-clear" - ] + "const": "store:allow-values" }, { - "description": "store:deny-delete -> Denies the delete command without any pre-configured scope.", + "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-delete" - ] + "const": "store:deny-clear" }, { - "description": "store:deny-entries -> Denies the entries command without any pre-configured scope.", + "description": "Denies the delete command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-entries" - ] + "const": "store:deny-delete" }, { - "description": "store:deny-get -> Denies the get command without any pre-configured scope.", + "description": "Denies the entries command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-get" - ] + "const": "store:deny-entries" }, { - "description": "store:deny-has -> Denies the has command without any pre-configured scope.", + "description": "Denies the get command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-has" - ] + "const": "store:deny-get" }, { - "description": "store:deny-keys -> Denies the keys command without any pre-configured scope.", + "description": "Denies the has command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-keys" - ] + "const": "store:deny-has" }, { - "description": "store:deny-length -> Denies the length command without any pre-configured scope.", + "description": "Denies the keys command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-length" - ] + "const": "store:deny-keys" }, { - "description": "store:deny-load -> Denies the load command without any pre-configured scope.", + "description": "Denies the length command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-load" - ] + "const": "store:deny-length" }, { - "description": "store:deny-reset -> Denies the reset command without any pre-configured scope.", + "description": "Denies the load command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-reset" - ] + "const": "store:deny-load" }, { - "description": "store:deny-save -> Denies the save command without any pre-configured scope.", + "description": "Denies the reset command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-save" - ] + "const": "store:deny-reset" }, { - "description": "store:deny-set -> Denies the set command without any pre-configured scope.", + "description": "Denies the save command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-set" - ] + "const": "store:deny-save" }, { - "description": "store:deny-values -> Denies the values command without any pre-configured scope.", + "description": "Denies the set command without any pre-configured scope.", "type": "string", - "enum": [ - "store:deny-values" - ] + "const": "store:deny-set" }, { - "description": "updater:default -> This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", + "description": "Denies the values command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:default" - ] + "const": "store:deny-values" }, { - "description": "updater:allow-check -> Enables the check command without any pre-configured scope.", + "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", "type": "string", - "enum": [ - "updater:allow-check" - ] + "const": "updater:default" }, { - "description": "updater:allow-download -> Enables the download command without any pre-configured scope.", + "description": "Enables the check command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:allow-download" - ] + "const": "updater:allow-check" }, { - "description": "updater:allow-download-and-install -> Enables the download_and_install command without any pre-configured scope.", + "description": "Enables the download command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:allow-download-and-install" - ] + "const": "updater:allow-download" }, { - "description": "updater:allow-install -> Enables the install command without any pre-configured scope.", + "description": "Enables the download_and_install command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:allow-install" - ] + "const": "updater:allow-download-and-install" }, { - "description": "updater:deny-check -> Denies the check command without any pre-configured scope.", + "description": "Enables the install command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:deny-check" - ] + "const": "updater:allow-install" }, { - "description": "updater:deny-download -> Denies the download command without any pre-configured scope.", + "description": "Denies the check command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:deny-download" - ] + "const": "updater:deny-check" }, { - "description": "updater:deny-download-and-install -> Denies the download_and_install command without any pre-configured scope.", + "description": "Denies the download command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:deny-download-and-install" - ] + "const": "updater:deny-download" }, { - "description": "updater:deny-install -> Denies the install command without any pre-configured scope.", + "description": "Denies the download_and_install command without any pre-configured scope.", "type": "string", - "enum": [ - "updater:deny-install" - ] + "const": "updater:deny-download-and-install" }, { - "description": "window-state:default -> This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "description": "Denies the install command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:default" - ] + "const": "updater:deny-install" }, { - "description": "window-state:allow-filename -> Enables the filename command without any pre-configured scope.", + "description": "This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", "type": "string", - "enum": [ - "window-state:allow-filename" - ] + "const": "window-state:default" }, { - "description": "window-state:allow-restore-state -> Enables the restore_state command without any pre-configured scope.", + "description": "Enables the filename command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:allow-restore-state" - ] + "const": "window-state:allow-filename" }, { - "description": "window-state:allow-save-window-state -> Enables the save_window_state command without any pre-configured scope.", + "description": "Enables the restore_state command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:allow-save-window-state" - ] + "const": "window-state:allow-restore-state" }, { - "description": "window-state:deny-filename -> Denies the filename command without any pre-configured scope.", + "description": "Enables the save_window_state command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:deny-filename" - ] + "const": "window-state:allow-save-window-state" }, { - "description": "window-state:deny-restore-state -> Denies the restore_state command without any pre-configured scope.", + "description": "Denies the filename command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:deny-restore-state" - ] + "const": "window-state:deny-filename" }, { - "description": "window-state:deny-save-window-state -> Denies the save_window_state command without any pre-configured scope.", + "description": "Denies the restore_state command without any pre-configured scope.", "type": "string", - "enum": [ - "window-state:deny-save-window-state" - ] + "const": "window-state:deny-restore-state" + }, + { + "description": "Denies the save_window_state command without any pre-configured scope.", + "type": "string", + "const": "window-state:deny-save-window-state" } ] }, diff --git a/plugins/autostart/permissions/schemas/schema.json b/plugins/autostart/permissions/schemas/schema.json index 1ecdac9b5..59c81f521 100644 --- a/plugins/autostart/permissions/schemas/schema.json +++ b/plugins/autostart/permissions/schemas/schema.json @@ -295,53 +295,39 @@ "type": "string", "oneOf": [ { - "description": "allow-disable -> Enables the disable command without any pre-configured scope.", + "description": "Enables the disable command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-disable" - ] + "const": "allow-disable" }, { - "description": "deny-disable -> Denies the disable command without any pre-configured scope.", + "description": "Denies the disable command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-disable" - ] + "const": "deny-disable" }, { - "description": "allow-enable -> Enables the enable command without any pre-configured scope.", + "description": "Enables the enable command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-enable" - ] + "const": "allow-enable" }, { - "description": "deny-enable -> Denies the enable command without any pre-configured scope.", + "description": "Denies the enable command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-enable" - ] + "const": "deny-enable" }, { - "description": "allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", + "description": "Enables the is_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-is-enabled" - ] + "const": "allow-is-enabled" }, { - "description": "deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", + "description": "Denies the is_enabled command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-is-enabled" - ] + "const": "deny-is-enabled" }, { - "description": "default -> This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n", + "description": "This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/barcode-scanner/permissions/schemas/schema.json b/plugins/barcode-scanner/permissions/schemas/schema.json index 02286fcb7..f41214b44 100644 --- a/plugins/barcode-scanner/permissions/schemas/schema.json +++ b/plugins/barcode-scanner/permissions/schemas/schema.json @@ -295,95 +295,69 @@ "type": "string", "oneOf": [ { - "description": "allow-cancel -> Enables the cancel command without any pre-configured scope.", + "description": "Enables the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-cancel" - ] + "const": "allow-cancel" }, { - "description": "deny-cancel -> Denies the cancel command without any pre-configured scope.", + "description": "Denies the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-cancel" - ] + "const": "deny-cancel" }, { - "description": "allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", + "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-check-permissions" - ] + "const": "allow-check-permissions" }, { - "description": "deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", + "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-check-permissions" - ] + "const": "deny-check-permissions" }, { - "description": "allow-open-app-settings -> Enables the open_app_settings command without any pre-configured scope.", + "description": "Enables the open_app_settings command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-open-app-settings" - ] + "const": "allow-open-app-settings" }, { - "description": "deny-open-app-settings -> Denies the open_app_settings command without any pre-configured scope.", + "description": "Denies the open_app_settings command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-open-app-settings" - ] + "const": "deny-open-app-settings" }, { - "description": "allow-request-permissions -> Enables the request_permissions command without any pre-configured scope.", + "description": "Enables the request_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-request-permissions" - ] + "const": "allow-request-permissions" }, { - "description": "deny-request-permissions -> Denies the request_permissions command without any pre-configured scope.", + "description": "Denies the request_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-request-permissions" - ] + "const": "deny-request-permissions" }, { - "description": "allow-scan -> Enables the scan command without any pre-configured scope.", + "description": "Enables the scan command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-scan" - ] + "const": "allow-scan" }, { - "description": "deny-scan -> Denies the scan command without any pre-configured scope.", + "description": "Denies the scan command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-scan" - ] + "const": "deny-scan" }, { - "description": "allow-vibrate -> Enables the vibrate command without any pre-configured scope.", + "description": "Enables the vibrate command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-vibrate" - ] + "const": "allow-vibrate" }, { - "description": "deny-vibrate -> Denies the vibrate command without any pre-configured scope.", + "description": "Denies the vibrate command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-vibrate" - ] + "const": "deny-vibrate" }, { - "description": "default -> This permission set configures which\nbarcode scanning features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all barcode related features.\n\n", + "description": "This permission set configures which\nbarcode scanning features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all barcode related features.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/biometric/permissions/schemas/schema.json b/plugins/biometric/permissions/schemas/schema.json index 8dbd11797..cc4d04d51 100644 --- a/plugins/biometric/permissions/schemas/schema.json +++ b/plugins/biometric/permissions/schemas/schema.json @@ -295,39 +295,29 @@ "type": "string", "oneOf": [ { - "description": "allow-authenticate -> Enables the authenticate command without any pre-configured scope.", + "description": "Enables the authenticate command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-authenticate" - ] + "const": "allow-authenticate" }, { - "description": "deny-authenticate -> Denies the authenticate command without any pre-configured scope.", + "description": "Denies the authenticate command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-authenticate" - ] + "const": "deny-authenticate" }, { - "description": "allow-status -> Enables the status command without any pre-configured scope.", + "description": "Enables the status command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-status" - ] + "const": "allow-status" }, { - "description": "deny-status -> Denies the status command without any pre-configured scope.", + "description": "Denies the status command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-status" - ] + "const": "deny-status" }, { - "description": "default -> This permission set configures which\nbiometric features are by default exposed.\n\n#### Granted Permissions\n\nIt allows acccess to all biometric commands.\n\n", + "description": "This permission set configures which\nbiometric features are by default exposed.\n\n#### Granted Permissions\n\nIt allows acccess to all biometric commands.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/cli/permissions/schemas/schema.json b/plugins/cli/permissions/schemas/schema.json index 045c7197b..b376890ee 100644 --- a/plugins/cli/permissions/schemas/schema.json +++ b/plugins/cli/permissions/schemas/schema.json @@ -295,25 +295,19 @@ "type": "string", "oneOf": [ { - "description": "allow-cli-matches -> Enables the cli_matches command without any pre-configured scope.", + "description": "Enables the cli_matches command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-cli-matches" - ] + "const": "allow-cli-matches" }, { - "description": "deny-cli-matches -> Denies the cli_matches command without any pre-configured scope.", + "description": "Denies the cli_matches command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-cli-matches" - ] + "const": "deny-cli-matches" }, { - "description": "default -> Allows reading the CLI matches", + "description": "Allows reading the CLI matches", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/clipboard-manager/permissions/schemas/schema.json b/plugins/clipboard-manager/permissions/schemas/schema.json index d579bae88..c27634923 100644 --- a/plugins/clipboard-manager/permissions/schemas/schema.json +++ b/plugins/clipboard-manager/permissions/schemas/schema.json @@ -295,95 +295,69 @@ "type": "string", "oneOf": [ { - "description": "allow-clear -> Enables the clear command without any pre-configured scope.", + "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-clear" - ] + "const": "allow-clear" }, { - "description": "deny-clear -> Denies the clear command without any pre-configured scope.", + "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-clear" - ] + "const": "deny-clear" }, { - "description": "allow-read-image -> Enables the read_image command without any pre-configured scope.", + "description": "Enables the read_image command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-image" - ] + "const": "allow-read-image" }, { - "description": "deny-read-image -> Denies the read_image command without any pre-configured scope.", + "description": "Denies the read_image command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-image" - ] + "const": "deny-read-image" }, { - "description": "allow-read-text -> Enables the read_text command without any pre-configured scope.", + "description": "Enables the read_text command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-text" - ] + "const": "allow-read-text" }, { - "description": "deny-read-text -> Denies the read_text command without any pre-configured scope.", + "description": "Denies the read_text command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-text" - ] + "const": "deny-read-text" }, { - "description": "allow-write-html -> Enables the write_html command without any pre-configured scope.", + "description": "Enables the write_html command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write-html" - ] + "const": "allow-write-html" }, { - "description": "deny-write-html -> Denies the write_html command without any pre-configured scope.", + "description": "Denies the write_html command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write-html" - ] + "const": "deny-write-html" }, { - "description": "allow-write-image -> Enables the write_image command without any pre-configured scope.", + "description": "Enables the write_image command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write-image" - ] + "const": "allow-write-image" }, { - "description": "deny-write-image -> Denies the write_image command without any pre-configured scope.", + "description": "Denies the write_image command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write-image" - ] + "const": "deny-write-image" }, { - "description": "allow-write-text -> Enables the write_text command without any pre-configured scope.", + "description": "Enables the write_text command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write-text" - ] + "const": "allow-write-text" }, { - "description": "deny-write-text -> Denies the write_text command without any pre-configured scope.", + "description": "Denies the write_text command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write-text" - ] + "const": "deny-write-text" }, { - "description": "default -> No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", + "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/deep-link/permissions/schemas/schema.json b/plugins/deep-link/permissions/schemas/schema.json index 32a079450..7d887dc2d 100644 --- a/plugins/deep-link/permissions/schemas/schema.json +++ b/plugins/deep-link/permissions/schemas/schema.json @@ -295,67 +295,49 @@ "type": "string", "oneOf": [ { - "description": "allow-get-current -> Enables the get_current command without any pre-configured scope.", + "description": "Enables the get_current command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get-current" - ] + "const": "allow-get-current" }, { - "description": "deny-get-current -> Denies the get_current command without any pre-configured scope.", + "description": "Denies the get_current command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get-current" - ] + "const": "deny-get-current" }, { - "description": "allow-is-registered -> Enables the is_registered command without any pre-configured scope.", + "description": "Enables the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-is-registered" - ] + "const": "allow-is-registered" }, { - "description": "deny-is-registered -> Denies the is_registered command without any pre-configured scope.", + "description": "Denies the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-is-registered" - ] + "const": "deny-is-registered" }, { - "description": "allow-register -> Enables the register command without any pre-configured scope.", + "description": "Enables the register command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-register" - ] + "const": "allow-register" }, { - "description": "deny-register -> Denies the register command without any pre-configured scope.", + "description": "Denies the register command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-register" - ] + "const": "deny-register" }, { - "description": "allow-unregister -> Enables the unregister command without any pre-configured scope.", + "description": "Enables the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-unregister" - ] + "const": "allow-unregister" }, { - "description": "deny-unregister -> Denies the unregister command without any pre-configured scope.", + "description": "Denies the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-unregister" - ] + "const": "deny-unregister" }, { - "description": "default -> Allows reading the opened deep link via the get_current command", + "description": "Allows reading the opened deep link via the get_current command", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/dialog/permissions/schemas/schema.json b/plugins/dialog/permissions/schemas/schema.json index e913aba23..ed8c07333 100644 --- a/plugins/dialog/permissions/schemas/schema.json +++ b/plugins/dialog/permissions/schemas/schema.json @@ -295,81 +295,59 @@ "type": "string", "oneOf": [ { - "description": "allow-ask -> Enables the ask command without any pre-configured scope.", + "description": "Enables the ask command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-ask" - ] + "const": "allow-ask" }, { - "description": "deny-ask -> Denies the ask command without any pre-configured scope.", + "description": "Denies the ask command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-ask" - ] + "const": "deny-ask" }, { - "description": "allow-confirm -> Enables the confirm command without any pre-configured scope.", + "description": "Enables the confirm command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-confirm" - ] + "const": "allow-confirm" }, { - "description": "deny-confirm -> Denies the confirm command without any pre-configured scope.", + "description": "Denies the confirm command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-confirm" - ] + "const": "deny-confirm" }, { - "description": "allow-message -> Enables the message command without any pre-configured scope.", + "description": "Enables the message command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-message" - ] + "const": "allow-message" }, { - "description": "deny-message -> Denies the message command without any pre-configured scope.", + "description": "Denies the message command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-message" - ] + "const": "deny-message" }, { - "description": "allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-open" - ] + "const": "allow-open" }, { - "description": "deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-open" - ] + "const": "deny-open" }, { - "description": "allow-save -> Enables the save command without any pre-configured scope.", + "description": "Enables the save command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save" - ] + "const": "allow-save" }, { - "description": "deny-save -> Denies the save command without any pre-configured scope.", + "description": "Denies the save command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save" - ] + "const": "deny-save" }, { - "description": "default -> This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", + "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/fs/permissions/schemas/schema.json b/plugins/fs/permissions/schemas/schema.json index 8d3e77fc1..57ab06341 100644 --- a/plugins/fs/permissions/schemas/schema.json +++ b/plugins/fs/permissions/schemas/schema.json @@ -295,2006 +295,1434 @@ "type": "string", "oneOf": [ { - "description": "allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", "type": "string", - "enum": [ - "allow-app-read-recursive" - ] + "const": "allow-app-read-recursive" }, { - "description": "allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", + "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", "type": "string", - "enum": [ - "allow-app-write-recursive" - ] + "const": "allow-app-write-recursive" }, { - "description": "allow-app-read -> This allows non-recursive read access to the application folders.", + "description": "This allows non-recursive read access to the application folders.", "type": "string", - "enum": [ - "allow-app-read" - ] + "const": "allow-app-read" }, { - "description": "allow-app-write -> This allows non-recursive write access to the application folders.", + "description": "This allows non-recursive write access to the application folders.", "type": "string", - "enum": [ - "allow-app-write" - ] + "const": "allow-app-write" }, { - "description": "allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", - "enum": [ - "allow-app-meta-recursive" - ] + "const": "allow-app-meta-recursive" }, { - "description": "allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", "type": "string", - "enum": [ - "allow-app-meta" - ] + "const": "allow-app-meta" }, { - "description": "scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", + "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", "type": "string", - "enum": [ - "scope-app-recursive" - ] + "const": "scope-app-recursive" }, { - "description": "scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", + "description": "This scope permits access to all files and list content of top level directories in the application folders.", "type": "string", - "enum": [ - "scope-app" - ] + "const": "scope-app" }, { - "description": "scope-app-index -> This scope permits to list all files and folders in the application directories.", + "description": "This scope permits to list all files and folders in the application directories.", "type": "string", - "enum": [ - "scope-app-index" - ] + "const": "scope-app-index" }, { - "description": "allow-appcache-read-recursive -> This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appcache-read-recursive" - ] + "const": "allow-appcache-read-recursive" }, { - "description": "allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appcache-write-recursive" - ] + "const": "allow-appcache-write-recursive" }, { - "description": "allow-appcache-read -> This allows non-recursive read access to the `$APPCACHE` folder.", + "description": "This allows non-recursive read access to the `$APPCACHE` folder.", "type": "string", - "enum": [ - "allow-appcache-read" - ] + "const": "allow-appcache-read" }, { - "description": "allow-appcache-write -> This allows non-recursive write access to the `$APPCACHE` folder.", + "description": "This allows non-recursive write access to the `$APPCACHE` folder.", "type": "string", - "enum": [ - "allow-appcache-write" - ] + "const": "allow-appcache-write" }, { - "description": "allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appcache-meta-recursive" - ] + "const": "allow-appcache-meta-recursive" }, { - "description": "allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appcache-meta" - ] + "const": "allow-appcache-meta" }, { - "description": "scope-appcache-recursive -> This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-appcache-recursive" - ] + "const": "scope-appcache-recursive" }, { - "description": "scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", "type": "string", - "enum": [ - "scope-appcache" - ] + "const": "scope-appcache" }, { - "description": "scope-appcache-index -> This scope permits to list all files and folders in the `$APPCACHE`folder.", + "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", "type": "string", - "enum": [ - "scope-appcache-index" - ] + "const": "scope-appcache-index" }, { - "description": "allow-appconfig-read-recursive -> This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appconfig-read-recursive" - ] + "const": "allow-appconfig-read-recursive" }, { - "description": "allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appconfig-write-recursive" - ] + "const": "allow-appconfig-write-recursive" }, { - "description": "allow-appconfig-read -> This allows non-recursive read access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "allow-appconfig-read" - ] + "const": "allow-appconfig-read" }, { - "description": "allow-appconfig-write -> This allows non-recursive write access to the `$APPCONFIG` folder.", + "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "allow-appconfig-write" - ] + "const": "allow-appconfig-write" }, { - "description": "allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appconfig-meta-recursive" - ] + "const": "allow-appconfig-meta-recursive" }, { - "description": "allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appconfig-meta" - ] + "const": "allow-appconfig-meta" }, { - "description": "scope-appconfig-recursive -> This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-appconfig-recursive" - ] + "const": "scope-appconfig-recursive" }, { - "description": "scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", "type": "string", - "enum": [ - "scope-appconfig" - ] + "const": "scope-appconfig" }, { - "description": "scope-appconfig-index -> This scope permits to list all files and folders in the `$APPCONFIG`folder.", + "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", "type": "string", - "enum": [ - "scope-appconfig-index" - ] + "const": "scope-appconfig-index" }, { - "description": "allow-appdata-read-recursive -> This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appdata-read-recursive" - ] + "const": "allow-appdata-read-recursive" }, { - "description": "allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-appdata-write-recursive" - ] + "const": "allow-appdata-write-recursive" }, { - "description": "allow-appdata-read -> This allows non-recursive read access to the `$APPDATA` folder.", + "description": "This allows non-recursive read access to the `$APPDATA` folder.", "type": "string", - "enum": [ - "allow-appdata-read" - ] + "const": "allow-appdata-read" }, { - "description": "allow-appdata-write -> This allows non-recursive write access to the `$APPDATA` folder.", + "description": "This allows non-recursive write access to the `$APPDATA` folder.", "type": "string", - "enum": [ - "allow-appdata-write" - ] + "const": "allow-appdata-write" }, { - "description": "allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appdata-meta-recursive" - ] + "const": "allow-appdata-meta-recursive" }, { - "description": "allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-appdata-meta" - ] + "const": "allow-appdata-meta" }, { - "description": "scope-appdata-recursive -> This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-appdata-recursive" - ] + "const": "scope-appdata-recursive" }, { - "description": "scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", "type": "string", - "enum": [ - "scope-appdata" - ] + "const": "scope-appdata" }, { - "description": "scope-appdata-index -> This scope permits to list all files and folders in the `$APPDATA`folder.", + "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", "type": "string", - "enum": [ - "scope-appdata-index" - ] + "const": "scope-appdata-index" }, { - "description": "allow-applocaldata-read-recursive -> This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-applocaldata-read-recursive" - ] + "const": "allow-applocaldata-read-recursive" }, { - "description": "allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-applocaldata-write-recursive" - ] + "const": "allow-applocaldata-write-recursive" }, { - "description": "allow-applocaldata-read -> This allows non-recursive read access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "allow-applocaldata-read" - ] + "const": "allow-applocaldata-read" }, { - "description": "allow-applocaldata-write -> This allows non-recursive write access to the `$APPLOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "allow-applocaldata-write" - ] + "const": "allow-applocaldata-write" }, { - "description": "allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-applocaldata-meta-recursive" - ] + "const": "allow-applocaldata-meta-recursive" }, { - "description": "allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-applocaldata-meta" - ] + "const": "allow-applocaldata-meta" }, { - "description": "scope-applocaldata-recursive -> This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-applocaldata-recursive" - ] + "const": "scope-applocaldata-recursive" }, { - "description": "scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", "type": "string", - "enum": [ - "scope-applocaldata" - ] + "const": "scope-applocaldata" }, { - "description": "scope-applocaldata-index -> This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", + "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", "type": "string", - "enum": [ - "scope-applocaldata-index" - ] + "const": "scope-applocaldata-index" }, { - "description": "allow-applog-read-recursive -> This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-applog-read-recursive" - ] + "const": "allow-applog-read-recursive" }, { - "description": "allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-applog-write-recursive" - ] + "const": "allow-applog-write-recursive" }, { - "description": "allow-applog-read -> This allows non-recursive read access to the `$APPLOG` folder.", + "description": "This allows non-recursive read access to the `$APPLOG` folder.", "type": "string", - "enum": [ - "allow-applog-read" - ] + "const": "allow-applog-read" }, { - "description": "allow-applog-write -> This allows non-recursive write access to the `$APPLOG` folder.", + "description": "This allows non-recursive write access to the `$APPLOG` folder.", "type": "string", - "enum": [ - "allow-applog-write" - ] + "const": "allow-applog-write" }, { - "description": "allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-applog-meta-recursive" - ] + "const": "allow-applog-meta-recursive" }, { - "description": "allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-applog-meta" - ] + "const": "allow-applog-meta" }, { - "description": "scope-applog-recursive -> This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-applog-recursive" - ] + "const": "scope-applog-recursive" }, { - "description": "scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", "type": "string", - "enum": [ - "scope-applog" - ] + "const": "scope-applog" }, { - "description": "scope-applog-index -> This scope permits to list all files and folders in the `$APPLOG`folder.", + "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", "type": "string", - "enum": [ - "scope-applog-index" - ] + "const": "scope-applog-index" }, { - "description": "allow-audio-read-recursive -> This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-audio-read-recursive" - ] + "const": "allow-audio-read-recursive" }, { - "description": "allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-audio-write-recursive" - ] + "const": "allow-audio-write-recursive" }, { - "description": "allow-audio-read -> This allows non-recursive read access to the `$AUDIO` folder.", + "description": "This allows non-recursive read access to the `$AUDIO` folder.", "type": "string", - "enum": [ - "allow-audio-read" - ] + "const": "allow-audio-read" }, { - "description": "allow-audio-write -> This allows non-recursive write access to the `$AUDIO` folder.", + "description": "This allows non-recursive write access to the `$AUDIO` folder.", "type": "string", - "enum": [ - "allow-audio-write" - ] + "const": "allow-audio-write" }, { - "description": "allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-audio-meta-recursive" - ] + "const": "allow-audio-meta-recursive" }, { - "description": "allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-audio-meta" - ] + "const": "allow-audio-meta" }, { - "description": "scope-audio-recursive -> This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-audio-recursive" - ] + "const": "scope-audio-recursive" }, { - "description": "scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", "type": "string", - "enum": [ - "scope-audio" - ] + "const": "scope-audio" }, { - "description": "scope-audio-index -> This scope permits to list all files and folders in the `$AUDIO`folder.", + "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", "type": "string", - "enum": [ - "scope-audio-index" - ] + "const": "scope-audio-index" }, { - "description": "allow-cache-read-recursive -> This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-cache-read-recursive" - ] + "const": "allow-cache-read-recursive" }, { - "description": "allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-cache-write-recursive" - ] + "const": "allow-cache-write-recursive" }, { - "description": "allow-cache-read -> This allows non-recursive read access to the `$CACHE` folder.", + "description": "This allows non-recursive read access to the `$CACHE` folder.", "type": "string", - "enum": [ - "allow-cache-read" - ] + "const": "allow-cache-read" }, { - "description": "allow-cache-write -> This allows non-recursive write access to the `$CACHE` folder.", + "description": "This allows non-recursive write access to the `$CACHE` folder.", "type": "string", - "enum": [ - "allow-cache-write" - ] + "const": "allow-cache-write" }, { - "description": "allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-cache-meta-recursive" - ] + "const": "allow-cache-meta-recursive" }, { - "description": "allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-cache-meta" - ] + "const": "allow-cache-meta" }, { - "description": "scope-cache-recursive -> This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-cache-recursive" - ] + "const": "scope-cache-recursive" }, { - "description": "scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", "type": "string", - "enum": [ - "scope-cache" - ] + "const": "scope-cache" }, { - "description": "scope-cache-index -> This scope permits to list all files and folders in the `$CACHE`folder.", + "description": "This scope permits to list all files and folders in the `$CACHE`folder.", "type": "string", - "enum": [ - "scope-cache-index" - ] + "const": "scope-cache-index" }, { - "description": "allow-config-read-recursive -> This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-config-read-recursive" - ] + "const": "allow-config-read-recursive" }, { - "description": "allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-config-write-recursive" - ] + "const": "allow-config-write-recursive" }, { - "description": "allow-config-read -> This allows non-recursive read access to the `$CONFIG` folder.", + "description": "This allows non-recursive read access to the `$CONFIG` folder.", "type": "string", - "enum": [ - "allow-config-read" - ] + "const": "allow-config-read" }, { - "description": "allow-config-write -> This allows non-recursive write access to the `$CONFIG` folder.", + "description": "This allows non-recursive write access to the `$CONFIG` folder.", "type": "string", - "enum": [ - "allow-config-write" - ] + "const": "allow-config-write" }, { - "description": "allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-config-meta-recursive" - ] + "const": "allow-config-meta-recursive" }, { - "description": "allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-config-meta" - ] + "const": "allow-config-meta" }, { - "description": "scope-config-recursive -> This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-config-recursive" - ] + "const": "scope-config-recursive" }, { - "description": "scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", "type": "string", - "enum": [ - "scope-config" - ] + "const": "scope-config" }, { - "description": "scope-config-index -> This scope permits to list all files and folders in the `$CONFIG`folder.", + "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", "type": "string", - "enum": [ - "scope-config-index" - ] + "const": "scope-config-index" }, { - "description": "allow-data-read-recursive -> This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-data-read-recursive" - ] + "const": "allow-data-read-recursive" }, { - "description": "allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-data-write-recursive" - ] + "const": "allow-data-write-recursive" }, { - "description": "allow-data-read -> This allows non-recursive read access to the `$DATA` folder.", + "description": "This allows non-recursive read access to the `$DATA` folder.", "type": "string", - "enum": [ - "allow-data-read" - ] + "const": "allow-data-read" }, { - "description": "allow-data-write -> This allows non-recursive write access to the `$DATA` folder.", + "description": "This allows non-recursive write access to the `$DATA` folder.", "type": "string", - "enum": [ - "allow-data-write" - ] + "const": "allow-data-write" }, { - "description": "allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-data-meta-recursive" - ] + "const": "allow-data-meta-recursive" }, { - "description": "allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-data-meta" - ] + "const": "allow-data-meta" }, { - "description": "scope-data-recursive -> This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-data-recursive" - ] + "const": "scope-data-recursive" }, { - "description": "scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", "type": "string", - "enum": [ - "scope-data" - ] + "const": "scope-data" }, { - "description": "scope-data-index -> This scope permits to list all files and folders in the `$DATA`folder.", + "description": "This scope permits to list all files and folders in the `$DATA`folder.", "type": "string", - "enum": [ - "scope-data-index" - ] + "const": "scope-data-index" }, { - "description": "allow-desktop-read-recursive -> This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-desktop-read-recursive" - ] + "const": "allow-desktop-read-recursive" }, { - "description": "allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-desktop-write-recursive" - ] + "const": "allow-desktop-write-recursive" }, { - "description": "allow-desktop-read -> This allows non-recursive read access to the `$DESKTOP` folder.", + "description": "This allows non-recursive read access to the `$DESKTOP` folder.", "type": "string", - "enum": [ - "allow-desktop-read" - ] + "const": "allow-desktop-read" }, { - "description": "allow-desktop-write -> This allows non-recursive write access to the `$DESKTOP` folder.", + "description": "This allows non-recursive write access to the `$DESKTOP` folder.", "type": "string", - "enum": [ - "allow-desktop-write" - ] + "const": "allow-desktop-write" }, { - "description": "allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-desktop-meta-recursive" - ] + "const": "allow-desktop-meta-recursive" }, { - "description": "allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-desktop-meta" - ] + "const": "allow-desktop-meta" }, { - "description": "scope-desktop-recursive -> This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-desktop-recursive" - ] + "const": "scope-desktop-recursive" }, { - "description": "scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", "type": "string", - "enum": [ - "scope-desktop" - ] + "const": "scope-desktop" }, { - "description": "scope-desktop-index -> This scope permits to list all files and folders in the `$DESKTOP`folder.", + "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", "type": "string", - "enum": [ - "scope-desktop-index" - ] + "const": "scope-desktop-index" }, { - "description": "allow-document-read-recursive -> This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-document-read-recursive" - ] + "const": "allow-document-read-recursive" }, { - "description": "allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-document-write-recursive" - ] + "const": "allow-document-write-recursive" }, { - "description": "allow-document-read -> This allows non-recursive read access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "allow-document-read" - ] + "const": "allow-document-read" }, { - "description": "allow-document-write -> This allows non-recursive write access to the `$DOCUMENT` folder.", + "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "allow-document-write" - ] + "const": "allow-document-write" }, { - "description": "allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-document-meta-recursive" - ] + "const": "allow-document-meta-recursive" }, { - "description": "allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-document-meta" - ] + "const": "allow-document-meta" }, { - "description": "scope-document-recursive -> This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-document-recursive" - ] + "const": "scope-document-recursive" }, { - "description": "scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", "type": "string", - "enum": [ - "scope-document" - ] + "const": "scope-document" }, { - "description": "scope-document-index -> This scope permits to list all files and folders in the `$DOCUMENT`folder.", + "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", "type": "string", - "enum": [ - "scope-document-index" - ] + "const": "scope-document-index" }, { - "description": "allow-download-read-recursive -> This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-download-read-recursive" - ] + "const": "allow-download-read-recursive" }, { - "description": "allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-download-write-recursive" - ] + "const": "allow-download-write-recursive" }, { - "description": "allow-download-read -> This allows non-recursive read access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "allow-download-read" - ] + "const": "allow-download-read" }, { - "description": "allow-download-write -> This allows non-recursive write access to the `$DOWNLOAD` folder.", + "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "allow-download-write" - ] + "const": "allow-download-write" }, { - "description": "allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-download-meta-recursive" - ] + "const": "allow-download-meta-recursive" }, { - "description": "allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-download-meta" - ] + "const": "allow-download-meta" }, { - "description": "scope-download-recursive -> This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-download-recursive" - ] + "const": "scope-download-recursive" }, { - "description": "scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", "type": "string", - "enum": [ - "scope-download" - ] + "const": "scope-download" }, { - "description": "scope-download-index -> This scope permits to list all files and folders in the `$DOWNLOAD`folder.", + "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", "type": "string", - "enum": [ - "scope-download-index" - ] + "const": "scope-download-index" }, { - "description": "allow-exe-read-recursive -> This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-exe-read-recursive" - ] + "const": "allow-exe-read-recursive" }, { - "description": "allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-exe-write-recursive" - ] + "const": "allow-exe-write-recursive" }, { - "description": "allow-exe-read -> This allows non-recursive read access to the `$EXE` folder.", + "description": "This allows non-recursive read access to the `$EXE` folder.", "type": "string", - "enum": [ - "allow-exe-read" - ] + "const": "allow-exe-read" }, { - "description": "allow-exe-write -> This allows non-recursive write access to the `$EXE` folder.", + "description": "This allows non-recursive write access to the `$EXE` folder.", "type": "string", - "enum": [ - "allow-exe-write" - ] + "const": "allow-exe-write" }, { - "description": "allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-exe-meta-recursive" - ] + "const": "allow-exe-meta-recursive" }, { - "description": "allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-exe-meta" - ] + "const": "allow-exe-meta" }, { - "description": "scope-exe-recursive -> This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-exe-recursive" - ] + "const": "scope-exe-recursive" }, { - "description": "scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", "type": "string", - "enum": [ - "scope-exe" - ] + "const": "scope-exe" }, { - "description": "scope-exe-index -> This scope permits to list all files and folders in the `$EXE`folder.", + "description": "This scope permits to list all files and folders in the `$EXE`folder.", "type": "string", - "enum": [ - "scope-exe-index" - ] + "const": "scope-exe-index" }, { - "description": "allow-font-read-recursive -> This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-font-read-recursive" - ] + "const": "allow-font-read-recursive" }, { - "description": "allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-font-write-recursive" - ] + "const": "allow-font-write-recursive" }, { - "description": "allow-font-read -> This allows non-recursive read access to the `$FONT` folder.", + "description": "This allows non-recursive read access to the `$FONT` folder.", "type": "string", - "enum": [ - "allow-font-read" - ] + "const": "allow-font-read" }, { - "description": "allow-font-write -> This allows non-recursive write access to the `$FONT` folder.", + "description": "This allows non-recursive write access to the `$FONT` folder.", "type": "string", - "enum": [ - "allow-font-write" - ] + "const": "allow-font-write" }, { - "description": "allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-font-meta-recursive" - ] + "const": "allow-font-meta-recursive" }, { - "description": "allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-font-meta" - ] + "const": "allow-font-meta" }, { - "description": "scope-font-recursive -> This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-font-recursive" - ] + "const": "scope-font-recursive" }, { - "description": "scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", "type": "string", - "enum": [ - "scope-font" - ] + "const": "scope-font" }, { - "description": "scope-font-index -> This scope permits to list all files and folders in the `$FONT`folder.", + "description": "This scope permits to list all files and folders in the `$FONT`folder.", "type": "string", - "enum": [ - "scope-font-index" - ] + "const": "scope-font-index" }, { - "description": "allow-home-read-recursive -> This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-home-read-recursive" - ] + "const": "allow-home-read-recursive" }, { - "description": "allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-home-write-recursive" - ] + "const": "allow-home-write-recursive" }, { - "description": "allow-home-read -> This allows non-recursive read access to the `$HOME` folder.", + "description": "This allows non-recursive read access to the `$HOME` folder.", "type": "string", - "enum": [ - "allow-home-read" - ] + "const": "allow-home-read" }, { - "description": "allow-home-write -> This allows non-recursive write access to the `$HOME` folder.", + "description": "This allows non-recursive write access to the `$HOME` folder.", "type": "string", - "enum": [ - "allow-home-write" - ] + "const": "allow-home-write" }, { - "description": "allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-home-meta-recursive" - ] + "const": "allow-home-meta-recursive" }, { - "description": "allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-home-meta" - ] + "const": "allow-home-meta" }, { - "description": "scope-home-recursive -> This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-home-recursive" - ] + "const": "scope-home-recursive" }, { - "description": "scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", "type": "string", - "enum": [ - "scope-home" - ] + "const": "scope-home" }, { - "description": "scope-home-index -> This scope permits to list all files and folders in the `$HOME`folder.", + "description": "This scope permits to list all files and folders in the `$HOME`folder.", "type": "string", - "enum": [ - "scope-home-index" - ] + "const": "scope-home-index" }, { - "description": "allow-localdata-read-recursive -> This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-localdata-read-recursive" - ] + "const": "allow-localdata-read-recursive" }, { - "description": "allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-localdata-write-recursive" - ] + "const": "allow-localdata-write-recursive" }, { - "description": "allow-localdata-read -> This allows non-recursive read access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "allow-localdata-read" - ] + "const": "allow-localdata-read" }, { - "description": "allow-localdata-write -> This allows non-recursive write access to the `$LOCALDATA` folder.", + "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "allow-localdata-write" - ] + "const": "allow-localdata-write" }, { - "description": "allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-localdata-meta-recursive" - ] + "const": "allow-localdata-meta-recursive" }, { - "description": "allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-localdata-meta" - ] + "const": "allow-localdata-meta" }, { - "description": "scope-localdata-recursive -> This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-localdata-recursive" - ] + "const": "scope-localdata-recursive" }, { - "description": "scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", "type": "string", - "enum": [ - "scope-localdata" - ] + "const": "scope-localdata" }, { - "description": "scope-localdata-index -> This scope permits to list all files and folders in the `$LOCALDATA`folder.", + "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", "type": "string", - "enum": [ - "scope-localdata-index" - ] + "const": "scope-localdata-index" }, { - "description": "allow-log-read-recursive -> This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-log-read-recursive" - ] + "const": "allow-log-read-recursive" }, { - "description": "allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-log-write-recursive" - ] + "const": "allow-log-write-recursive" }, { - "description": "allow-log-read -> This allows non-recursive read access to the `$LOG` folder.", + "description": "This allows non-recursive read access to the `$LOG` folder.", "type": "string", - "enum": [ - "allow-log-read" - ] + "const": "allow-log-read" }, { - "description": "allow-log-write -> This allows non-recursive write access to the `$LOG` folder.", + "description": "This allows non-recursive write access to the `$LOG` folder.", "type": "string", - "enum": [ - "allow-log-write" - ] + "const": "allow-log-write" }, { - "description": "allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-log-meta-recursive" - ] + "const": "allow-log-meta-recursive" }, { - "description": "allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-log-meta" - ] + "const": "allow-log-meta" }, { - "description": "scope-log-recursive -> This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-log-recursive" - ] + "const": "scope-log-recursive" }, { - "description": "scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", "type": "string", - "enum": [ - "scope-log" - ] + "const": "scope-log" }, { - "description": "scope-log-index -> This scope permits to list all files and folders in the `$LOG`folder.", + "description": "This scope permits to list all files and folders in the `$LOG`folder.", "type": "string", - "enum": [ - "scope-log-index" - ] + "const": "scope-log-index" }, { - "description": "allow-picture-read-recursive -> This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-picture-read-recursive" - ] + "const": "allow-picture-read-recursive" }, { - "description": "allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-picture-write-recursive" - ] + "const": "allow-picture-write-recursive" }, { - "description": "allow-picture-read -> This allows non-recursive read access to the `$PICTURE` folder.", + "description": "This allows non-recursive read access to the `$PICTURE` folder.", "type": "string", - "enum": [ - "allow-picture-read" - ] + "const": "allow-picture-read" }, { - "description": "allow-picture-write -> This allows non-recursive write access to the `$PICTURE` folder.", + "description": "This allows non-recursive write access to the `$PICTURE` folder.", "type": "string", - "enum": [ - "allow-picture-write" - ] + "const": "allow-picture-write" }, { - "description": "allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-picture-meta-recursive" - ] + "const": "allow-picture-meta-recursive" }, { - "description": "allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-picture-meta" - ] + "const": "allow-picture-meta" }, { - "description": "scope-picture-recursive -> This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-picture-recursive" - ] + "const": "scope-picture-recursive" }, { - "description": "scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", "type": "string", - "enum": [ - "scope-picture" - ] + "const": "scope-picture" }, { - "description": "scope-picture-index -> This scope permits to list all files and folders in the `$PICTURE`folder.", + "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", "type": "string", - "enum": [ - "scope-picture-index" - ] + "const": "scope-picture-index" }, { - "description": "allow-public-read-recursive -> This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-public-read-recursive" - ] + "const": "allow-public-read-recursive" }, { - "description": "allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-public-write-recursive" - ] + "const": "allow-public-write-recursive" }, { - "description": "allow-public-read -> This allows non-recursive read access to the `$PUBLIC` folder.", + "description": "This allows non-recursive read access to the `$PUBLIC` folder.", "type": "string", - "enum": [ - "allow-public-read" - ] + "const": "allow-public-read" }, { - "description": "allow-public-write -> This allows non-recursive write access to the `$PUBLIC` folder.", + "description": "This allows non-recursive write access to the `$PUBLIC` folder.", "type": "string", - "enum": [ - "allow-public-write" - ] + "const": "allow-public-write" }, { - "description": "allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-public-meta-recursive" - ] + "const": "allow-public-meta-recursive" }, { - "description": "allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-public-meta" - ] + "const": "allow-public-meta" }, { - "description": "scope-public-recursive -> This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-public-recursive" - ] + "const": "scope-public-recursive" }, { - "description": "scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", "type": "string", - "enum": [ - "scope-public" - ] + "const": "scope-public" }, { - "description": "scope-public-index -> This scope permits to list all files and folders in the `$PUBLIC`folder.", + "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", "type": "string", - "enum": [ - "scope-public-index" - ] + "const": "scope-public-index" }, { - "description": "allow-resource-read-recursive -> This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-resource-read-recursive" - ] + "const": "allow-resource-read-recursive" }, { - "description": "allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-resource-write-recursive" - ] + "const": "allow-resource-write-recursive" }, { - "description": "allow-resource-read -> This allows non-recursive read access to the `$RESOURCE` folder.", + "description": "This allows non-recursive read access to the `$RESOURCE` folder.", "type": "string", - "enum": [ - "allow-resource-read" - ] + "const": "allow-resource-read" }, { - "description": "allow-resource-write -> This allows non-recursive write access to the `$RESOURCE` folder.", + "description": "This allows non-recursive write access to the `$RESOURCE` folder.", "type": "string", - "enum": [ - "allow-resource-write" - ] + "const": "allow-resource-write" }, { - "description": "allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-resource-meta-recursive" - ] + "const": "allow-resource-meta-recursive" }, { - "description": "allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-resource-meta" - ] + "const": "allow-resource-meta" }, { - "description": "scope-resource-recursive -> This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-resource-recursive" - ] + "const": "scope-resource-recursive" }, { - "description": "scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", "type": "string", - "enum": [ - "scope-resource" - ] + "const": "scope-resource" }, { - "description": "scope-resource-index -> This scope permits to list all files and folders in the `$RESOURCE`folder.", + "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", "type": "string", - "enum": [ - "scope-resource-index" - ] + "const": "scope-resource-index" }, { - "description": "allow-runtime-read-recursive -> This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-runtime-read-recursive" - ] + "const": "allow-runtime-read-recursive" }, { - "description": "allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-runtime-write-recursive" - ] + "const": "allow-runtime-write-recursive" }, { - "description": "allow-runtime-read -> This allows non-recursive read access to the `$RUNTIME` folder.", + "description": "This allows non-recursive read access to the `$RUNTIME` folder.", "type": "string", - "enum": [ - "allow-runtime-read" - ] + "const": "allow-runtime-read" }, { - "description": "allow-runtime-write -> This allows non-recursive write access to the `$RUNTIME` folder.", + "description": "This allows non-recursive write access to the `$RUNTIME` folder.", "type": "string", - "enum": [ - "allow-runtime-write" - ] + "const": "allow-runtime-write" }, { - "description": "allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-runtime-meta-recursive" - ] + "const": "allow-runtime-meta-recursive" }, { - "description": "allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-runtime-meta" - ] + "const": "allow-runtime-meta" }, { - "description": "scope-runtime-recursive -> This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-runtime-recursive" - ] + "const": "scope-runtime-recursive" }, { - "description": "scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", "type": "string", - "enum": [ - "scope-runtime" - ] + "const": "scope-runtime" }, { - "description": "scope-runtime-index -> This scope permits to list all files and folders in the `$RUNTIME`folder.", + "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", "type": "string", - "enum": [ - "scope-runtime-index" - ] + "const": "scope-runtime-index" }, { - "description": "allow-temp-read-recursive -> This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-temp-read-recursive" - ] + "const": "allow-temp-read-recursive" }, { - "description": "allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-temp-write-recursive" - ] + "const": "allow-temp-write-recursive" }, { - "description": "allow-temp-read -> This allows non-recursive read access to the `$TEMP` folder.", + "description": "This allows non-recursive read access to the `$TEMP` folder.", "type": "string", - "enum": [ - "allow-temp-read" - ] + "const": "allow-temp-read" }, { - "description": "allow-temp-write -> This allows non-recursive write access to the `$TEMP` folder.", + "description": "This allows non-recursive write access to the `$TEMP` folder.", "type": "string", - "enum": [ - "allow-temp-write" - ] + "const": "allow-temp-write" }, { - "description": "allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-temp-meta-recursive" - ] + "const": "allow-temp-meta-recursive" }, { - "description": "allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-temp-meta" - ] + "const": "allow-temp-meta" }, { - "description": "scope-temp-recursive -> This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-temp-recursive" - ] + "const": "scope-temp-recursive" }, { - "description": "scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", "type": "string", - "enum": [ - "scope-temp" - ] + "const": "scope-temp" }, { - "description": "scope-temp-index -> This scope permits to list all files and folders in the `$TEMP`folder.", + "description": "This scope permits to list all files and folders in the `$TEMP`folder.", "type": "string", - "enum": [ - "scope-temp-index" - ] + "const": "scope-temp-index" }, { - "description": "allow-template-read-recursive -> This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-template-read-recursive" - ] + "const": "allow-template-read-recursive" }, { - "description": "allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-template-write-recursive" - ] + "const": "allow-template-write-recursive" }, { - "description": "allow-template-read -> This allows non-recursive read access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "allow-template-read" - ] + "const": "allow-template-read" }, { - "description": "allow-template-write -> This allows non-recursive write access to the `$TEMPLATE` folder.", + "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "allow-template-write" - ] + "const": "allow-template-write" }, { - "description": "allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-template-meta-recursive" - ] + "const": "allow-template-meta-recursive" }, { - "description": "allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-template-meta" - ] + "const": "allow-template-meta" }, { - "description": "scope-template-recursive -> This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-template-recursive" - ] + "const": "scope-template-recursive" }, { - "description": "scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", "type": "string", - "enum": [ - "scope-template" - ] + "const": "scope-template" }, { - "description": "scope-template-index -> This scope permits to list all files and folders in the `$TEMPLATE`folder.", + "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", "type": "string", - "enum": [ - "scope-template-index" - ] + "const": "scope-template-index" }, { - "description": "allow-video-read-recursive -> This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-video-read-recursive" - ] + "const": "allow-video-read-recursive" }, { - "description": "allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", + "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", "type": "string", - "enum": [ - "allow-video-write-recursive" - ] + "const": "allow-video-write-recursive" }, { - "description": "allow-video-read -> This allows non-recursive read access to the `$VIDEO` folder.", + "description": "This allows non-recursive read access to the `$VIDEO` folder.", "type": "string", - "enum": [ - "allow-video-read" - ] + "const": "allow-video-read" }, { - "description": "allow-video-write -> This allows non-recursive write access to the `$VIDEO` folder.", + "description": "This allows non-recursive write access to the `$VIDEO` folder.", "type": "string", - "enum": [ - "allow-video-write" - ] + "const": "allow-video-write" }, { - "description": "allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-video-meta-recursive" - ] + "const": "allow-video-meta-recursive" }, { - "description": "allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", + "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "type": "string", - "enum": [ - "allow-video-meta" - ] + "const": "allow-video-meta" }, { - "description": "scope-video-recursive -> This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", + "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", "type": "string", - "enum": [ - "scope-video-recursive" - ] + "const": "scope-video-recursive" }, { - "description": "scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", + "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", "type": "string", - "enum": [ - "scope-video" - ] + "const": "scope-video" }, { - "description": "scope-video-index -> This scope permits to list all files and folders in the `$VIDEO`folder.", + "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", "type": "string", - "enum": [ - "scope-video-index" - ] + "const": "scope-video-index" }, { - "description": "allow-copy-file -> Enables the copy_file command without any pre-configured scope.", + "description": "Enables the copy_file command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-copy-file" - ] + "const": "allow-copy-file" }, { - "description": "deny-copy-file -> Denies the copy_file command without any pre-configured scope.", + "description": "Denies the copy_file command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-copy-file" - ] + "const": "deny-copy-file" }, { - "description": "allow-create -> Enables the create command without any pre-configured scope.", + "description": "Enables the create command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-create" - ] + "const": "allow-create" }, { - "description": "deny-create -> Denies the create command without any pre-configured scope.", + "description": "Denies the create command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-create" - ] + "const": "deny-create" }, { - "description": "allow-exists -> Enables the exists command without any pre-configured scope.", + "description": "Enables the exists command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-exists" - ] + "const": "allow-exists" }, { - "description": "deny-exists -> Denies the exists command without any pre-configured scope.", + "description": "Denies the exists command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-exists" - ] + "const": "deny-exists" }, { - "description": "allow-fstat -> Enables the fstat command without any pre-configured scope.", + "description": "Enables the fstat command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-fstat" - ] + "const": "allow-fstat" }, { - "description": "deny-fstat -> Denies the fstat command without any pre-configured scope.", + "description": "Denies the fstat command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-fstat" - ] + "const": "deny-fstat" }, { - "description": "allow-ftruncate -> Enables the ftruncate command without any pre-configured scope.", + "description": "Enables the ftruncate command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-ftruncate" - ] + "const": "allow-ftruncate" }, { - "description": "deny-ftruncate -> Denies the ftruncate command without any pre-configured scope.", + "description": "Denies the ftruncate command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-ftruncate" - ] + "const": "deny-ftruncate" }, { - "description": "allow-lstat -> Enables the lstat command without any pre-configured scope.", + "description": "Enables the lstat command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-lstat" - ] + "const": "allow-lstat" }, { - "description": "deny-lstat -> Denies the lstat command without any pre-configured scope.", + "description": "Denies the lstat command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-lstat" - ] + "const": "deny-lstat" }, { - "description": "allow-mkdir -> Enables the mkdir command without any pre-configured scope.", + "description": "Enables the mkdir command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-mkdir" - ] + "const": "allow-mkdir" }, { - "description": "deny-mkdir -> Denies the mkdir command without any pre-configured scope.", + "description": "Denies the mkdir command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-mkdir" - ] + "const": "deny-mkdir" }, { - "description": "allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-open" - ] + "const": "allow-open" }, { - "description": "deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-open" - ] + "const": "deny-open" }, { - "description": "allow-read -> Enables the read command without any pre-configured scope.", + "description": "Enables the read command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read" - ] + "const": "allow-read" }, { - "description": "deny-read -> Denies the read command without any pre-configured scope.", + "description": "Denies the read command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read" - ] + "const": "deny-read" }, { - "description": "allow-read-dir -> Enables the read_dir command without any pre-configured scope.", + "description": "Enables the read_dir command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-dir" - ] + "const": "allow-read-dir" }, { - "description": "deny-read-dir -> Denies the read_dir command without any pre-configured scope.", + "description": "Denies the read_dir command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-dir" - ] + "const": "deny-read-dir" }, { - "description": "allow-read-file -> Enables the read_file command without any pre-configured scope.", + "description": "Enables the read_file command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-file" - ] + "const": "allow-read-file" }, { - "description": "deny-read-file -> Denies the read_file command without any pre-configured scope.", + "description": "Denies the read_file command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-file" - ] + "const": "deny-read-file" }, { - "description": "allow-read-text-file -> Enables the read_text_file command without any pre-configured scope.", + "description": "Enables the read_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-text-file" - ] + "const": "allow-read-text-file" }, { - "description": "deny-read-text-file -> Denies the read_text_file command without any pre-configured scope.", + "description": "Denies the read_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-text-file" - ] + "const": "deny-read-text-file" }, { - "description": "allow-read-text-file-lines -> Enables the read_text_file_lines command without any pre-configured scope.", + "description": "Enables the read_text_file_lines command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-text-file-lines" - ] + "const": "allow-read-text-file-lines" }, { - "description": "deny-read-text-file-lines -> Denies the read_text_file_lines command without any pre-configured scope.", + "description": "Denies the read_text_file_lines command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-text-file-lines" - ] + "const": "deny-read-text-file-lines" }, { - "description": "allow-read-text-file-lines-next -> Enables the read_text_file_lines_next command without any pre-configured scope.", + "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-read-text-file-lines-next" - ] + "const": "allow-read-text-file-lines-next" }, { - "description": "deny-read-text-file-lines-next -> Denies the read_text_file_lines_next command without any pre-configured scope.", + "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-read-text-file-lines-next" - ] + "const": "deny-read-text-file-lines-next" }, { - "description": "allow-remove -> Enables the remove command without any pre-configured scope.", + "description": "Enables the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-remove" - ] + "const": "allow-remove" }, { - "description": "deny-remove -> Denies the remove command without any pre-configured scope.", + "description": "Denies the remove command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-remove" - ] + "const": "deny-remove" }, { - "description": "allow-rename -> Enables the rename command without any pre-configured scope.", + "description": "Enables the rename command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-rename" - ] + "const": "allow-rename" }, { - "description": "deny-rename -> Denies the rename command without any pre-configured scope.", + "description": "Denies the rename command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-rename" - ] + "const": "deny-rename" }, { - "description": "allow-seek -> Enables the seek command without any pre-configured scope.", + "description": "Enables the seek command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-seek" - ] + "const": "allow-seek" }, { - "description": "deny-seek -> Denies the seek command without any pre-configured scope.", + "description": "Denies the seek command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-seek" - ] + "const": "deny-seek" }, { - "description": "allow-stat -> Enables the stat command without any pre-configured scope.", + "description": "Enables the stat command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-stat" - ] + "const": "allow-stat" }, { - "description": "deny-stat -> Denies the stat command without any pre-configured scope.", + "description": "Denies the stat command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-stat" - ] + "const": "deny-stat" }, { - "description": "allow-truncate -> Enables the truncate command without any pre-configured scope.", + "description": "Enables the truncate command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-truncate" - ] + "const": "allow-truncate" }, { - "description": "deny-truncate -> Denies the truncate command without any pre-configured scope.", + "description": "Denies the truncate command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-truncate" - ] + "const": "deny-truncate" }, { - "description": "allow-unwatch -> Enables the unwatch command without any pre-configured scope.", + "description": "Enables the unwatch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-unwatch" - ] + "const": "allow-unwatch" }, { - "description": "deny-unwatch -> Denies the unwatch command without any pre-configured scope.", + "description": "Denies the unwatch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-unwatch" - ] + "const": "deny-unwatch" }, { - "description": "allow-watch -> Enables the watch command without any pre-configured scope.", + "description": "Enables the watch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-watch" - ] + "const": "allow-watch" }, { - "description": "deny-watch -> Denies the watch command without any pre-configured scope.", + "description": "Denies the watch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-watch" - ] + "const": "deny-watch" }, { - "description": "allow-write -> Enables the write command without any pre-configured scope.", + "description": "Enables the write command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write" - ] + "const": "allow-write" }, { - "description": "deny-write -> Denies the write command without any pre-configured scope.", + "description": "Denies the write command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write" - ] + "const": "deny-write" }, { - "description": "allow-write-file -> Enables the write_file command without any pre-configured scope.", + "description": "Enables the write_file command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write-file" - ] + "const": "allow-write-file" }, { - "description": "deny-write-file -> Denies the write_file command without any pre-configured scope.", + "description": "Denies the write_file command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write-file" - ] + "const": "deny-write-file" }, { - "description": "allow-write-text-file -> Enables the write_text_file command without any pre-configured scope.", + "description": "Enables the write_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write-text-file" - ] + "const": "allow-write-text-file" }, { - "description": "deny-write-text-file -> Denies the write_text_file command without any pre-configured scope.", + "description": "Denies the write_text_file command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write-text-file" - ] + "const": "deny-write-text-file" }, { - "description": "create-app-specific-dirs -> This permissions allows to create the application specific directories.\n", + "description": "This permissions allows to create the application specific directories.\n", "type": "string", - "enum": [ - "create-app-specific-dirs" - ] + "const": "create-app-specific-dirs" }, { - "description": "default -> This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" }, { - "description": "deny-default -> This denies access to dangerous Tauri relevant files and folders by default.", + "description": "This denies access to dangerous Tauri relevant files and folders by default.", "type": "string", - "enum": [ - "deny-default" - ] + "const": "deny-default" }, { - "description": "deny-webview-data-linux -> This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "enum": [ - "deny-webview-data-linux" - ] + "const": "deny-webview-data-linux" }, { - "description": "deny-webview-data-windows -> This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", - "enum": [ - "deny-webview-data-windows" - ] + "const": "deny-webview-data-windows" }, { - "description": "read-all -> This enables all read related commands without any pre-configured accessible paths.", + "description": "This enables all read related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "read-all" - ] + "const": "read-all" }, { - "description": "read-app-specific-dirs-recursive -> This permission allows recursive read functionality on the application\nspecific base directories. \n", + "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", "type": "string", - "enum": [ - "read-app-specific-dirs-recursive" - ] + "const": "read-app-specific-dirs-recursive" }, { - "description": "read-dirs -> This enables directory read and file metadata related commands without any pre-configured accessible paths.", + "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "read-dirs" - ] + "const": "read-dirs" }, { - "description": "read-files -> This enables file read related commands without any pre-configured accessible paths.", + "description": "This enables file read related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "read-files" - ] + "const": "read-files" }, { - "description": "read-meta -> This enables all index or metadata related commands without any pre-configured accessible paths.", + "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "read-meta" - ] + "const": "read-meta" }, { - "description": "scope -> An empty permission you can use to modify the global scope.", + "description": "An empty permission you can use to modify the global scope.", "type": "string", - "enum": [ - "scope" - ] + "const": "scope" }, { - "description": "write-all -> This enables all write related commands without any pre-configured accessible paths.", + "description": "This enables all write related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "write-all" - ] + "const": "write-all" }, { - "description": "write-files -> This enables all file write related commands without any pre-configured accessible paths.", + "description": "This enables all file write related commands without any pre-configured accessible paths.", "type": "string", - "enum": [ - "write-files" - ] + "const": "write-files" } ] } diff --git a/plugins/geolocation/permissions/schemas/schema.json b/plugins/geolocation/permissions/schemas/schema.json index bb3a98ee6..b39d39f6f 100644 --- a/plugins/geolocation/permissions/schemas/schema.json +++ b/plugins/geolocation/permissions/schemas/schema.json @@ -295,88 +295,64 @@ "type": "string", "oneOf": [ { - "description": "allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", + "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-check-permissions" - ] + "const": "allow-check-permissions" }, { - "description": "deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", + "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-check-permissions" - ] + "const": "deny-check-permissions" }, { - "description": "allow-clear-permissions -> Enables the clear_permissions command without any pre-configured scope.", + "description": "Enables the clear_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-clear-permissions" - ] + "const": "allow-clear-permissions" }, { - "description": "deny-clear-permissions -> Denies the clear_permissions command without any pre-configured scope.", + "description": "Denies the clear_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-clear-permissions" - ] + "const": "deny-clear-permissions" }, { - "description": "allow-clear-positions -> Enables the clear_positions command without any pre-configured scope.", + "description": "Enables the clear_positions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-clear-positions" - ] + "const": "allow-clear-positions" }, { - "description": "deny-clear-positions -> Denies the clear_positions command without any pre-configured scope.", + "description": "Denies the clear_positions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-clear-positions" - ] + "const": "deny-clear-positions" }, { - "description": "allow-clear-watch -> Enables the clear_watch command without any pre-configured scope.", + "description": "Enables the clear_watch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-clear-watch" - ] + "const": "allow-clear-watch" }, { - "description": "deny-clear-watch -> Denies the clear_watch command without any pre-configured scope.", + "description": "Denies the clear_watch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-clear-watch" - ] + "const": "deny-clear-watch" }, { - "description": "allow-get-current-position -> Enables the get_current_position command without any pre-configured scope.", + "description": "Enables the get_current_position command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get-current-position" - ] + "const": "allow-get-current-position" }, { - "description": "deny-get-current-position -> Denies the get_current_position command without any pre-configured scope.", + "description": "Denies the get_current_position command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get-current-position" - ] + "const": "deny-get-current-position" }, { - "description": "allow-watch-position -> Enables the watch_position command without any pre-configured scope.", + "description": "Enables the watch_position command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-watch-position" - ] + "const": "allow-watch-position" }, { - "description": "deny-watch-position -> Denies the watch_position command without any pre-configured scope.", + "description": "Denies the watch_position command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-watch-position" - ] + "const": "deny-watch-position" } ] } diff --git a/plugins/global-shortcut/permissions/schemas/schema.json b/plugins/global-shortcut/permissions/schemas/schema.json index ef165a3ce..66b92b072 100644 --- a/plugins/global-shortcut/permissions/schemas/schema.json +++ b/plugins/global-shortcut/permissions/schemas/schema.json @@ -295,81 +295,59 @@ "type": "string", "oneOf": [ { - "description": "allow-is-registered -> Enables the is_registered command without any pre-configured scope.", + "description": "Enables the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-is-registered" - ] + "const": "allow-is-registered" }, { - "description": "deny-is-registered -> Denies the is_registered command without any pre-configured scope.", + "description": "Denies the is_registered command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-is-registered" - ] + "const": "deny-is-registered" }, { - "description": "allow-register -> Enables the register command without any pre-configured scope.", + "description": "Enables the register command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-register" - ] + "const": "allow-register" }, { - "description": "deny-register -> Denies the register command without any pre-configured scope.", + "description": "Denies the register command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-register" - ] + "const": "deny-register" }, { - "description": "allow-register-all -> Enables the register_all command without any pre-configured scope.", + "description": "Enables the register_all command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-register-all" - ] + "const": "allow-register-all" }, { - "description": "deny-register-all -> Denies the register_all command without any pre-configured scope.", + "description": "Denies the register_all command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-register-all" - ] + "const": "deny-register-all" }, { - "description": "allow-unregister -> Enables the unregister command without any pre-configured scope.", + "description": "Enables the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-unregister" - ] + "const": "allow-unregister" }, { - "description": "deny-unregister -> Denies the unregister command without any pre-configured scope.", + "description": "Denies the unregister command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-unregister" - ] + "const": "deny-unregister" }, { - "description": "allow-unregister-all -> Enables the unregister_all command without any pre-configured scope.", + "description": "Enables the unregister_all command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-unregister-all" - ] + "const": "allow-unregister-all" }, { - "description": "deny-unregister-all -> Denies the unregister_all command without any pre-configured scope.", + "description": "Denies the unregister_all command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-unregister-all" - ] + "const": "deny-unregister-all" }, { - "description": "default -> No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", + "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/haptics/permissions/schemas/schema.json b/plugins/haptics/permissions/schemas/schema.json index 92c1a7626..763e0a722 100644 --- a/plugins/haptics/permissions/schemas/schema.json +++ b/plugins/haptics/permissions/schemas/schema.json @@ -295,60 +295,44 @@ "type": "string", "oneOf": [ { - "description": "allow-impact-feedback -> Enables the impact_feedback command without any pre-configured scope.", + "description": "Enables the impact_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-impact-feedback" - ] + "const": "allow-impact-feedback" }, { - "description": "deny-impact-feedback -> Denies the impact_feedback command without any pre-configured scope.", + "description": "Denies the impact_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-impact-feedback" - ] + "const": "deny-impact-feedback" }, { - "description": "allow-notification-feedback -> Enables the notification_feedback command without any pre-configured scope.", + "description": "Enables the notification_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-notification-feedback" - ] + "const": "allow-notification-feedback" }, { - "description": "deny-notification-feedback -> Denies the notification_feedback command without any pre-configured scope.", + "description": "Denies the notification_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-notification-feedback" - ] + "const": "deny-notification-feedback" }, { - "description": "allow-selection-feedback -> Enables the selection_feedback command without any pre-configured scope.", + "description": "Enables the selection_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-selection-feedback" - ] + "const": "allow-selection-feedback" }, { - "description": "deny-selection-feedback -> Denies the selection_feedback command without any pre-configured scope.", + "description": "Denies the selection_feedback command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-selection-feedback" - ] + "const": "deny-selection-feedback" }, { - "description": "allow-vibrate -> Enables the vibrate command without any pre-configured scope.", + "description": "Enables the vibrate command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-vibrate" - ] + "const": "allow-vibrate" }, { - "description": "deny-vibrate -> Denies the vibrate command without any pre-configured scope.", + "description": "Denies the vibrate command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-vibrate" - ] + "const": "deny-vibrate" } ] } diff --git a/plugins/http/permissions/schemas/schema.json b/plugins/http/permissions/schemas/schema.json index 88617be05..794ee2048 100644 --- a/plugins/http/permissions/schemas/schema.json +++ b/plugins/http/permissions/schemas/schema.json @@ -295,67 +295,49 @@ "type": "string", "oneOf": [ { - "description": "allow-fetch -> Enables the fetch command without any pre-configured scope.", + "description": "Enables the fetch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-fetch" - ] + "const": "allow-fetch" }, { - "description": "deny-fetch -> Denies the fetch command without any pre-configured scope.", + "description": "Denies the fetch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-fetch" - ] + "const": "deny-fetch" }, { - "description": "allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", + "description": "Enables the fetch_cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-fetch-cancel" - ] + "const": "allow-fetch-cancel" }, { - "description": "deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", + "description": "Denies the fetch_cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-fetch-cancel" - ] + "const": "deny-fetch-cancel" }, { - "description": "allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", + "description": "Enables the fetch_read_body command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-fetch-read-body" - ] + "const": "allow-fetch-read-body" }, { - "description": "deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", + "description": "Denies the fetch_read_body command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-fetch-read-body" - ] + "const": "deny-fetch-read-body" }, { - "description": "allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", + "description": "Enables the fetch_send command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-fetch-send" - ] + "const": "allow-fetch-send" }, { - "description": "deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", + "description": "Denies the fetch_send command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-fetch-send" - ] + "const": "deny-fetch-send" }, { - "description": "default -> This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", + "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/log/permissions/schemas/schema.json b/plugins/log/permissions/schemas/schema.json index e1489b68f..78d888267 100644 --- a/plugins/log/permissions/schemas/schema.json +++ b/plugins/log/permissions/schemas/schema.json @@ -295,25 +295,19 @@ "type": "string", "oneOf": [ { - "description": "allow-log -> Enables the log command without any pre-configured scope.", + "description": "Enables the log command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-log" - ] + "const": "allow-log" }, { - "description": "deny-log -> Denies the log command without any pre-configured scope.", + "description": "Denies the log command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-log" - ] + "const": "deny-log" }, { - "description": "default -> Allows the log command", + "description": "Allows the log command", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/nfc/permissions/schemas/schema.json b/plugins/nfc/permissions/schemas/schema.json index 0add3642c..5fe3743c0 100644 --- a/plugins/nfc/permissions/schemas/schema.json +++ b/plugins/nfc/permissions/schemas/schema.json @@ -295,53 +295,39 @@ "type": "string", "oneOf": [ { - "description": "allow-is-available -> Enables the is_available command without any pre-configured scope.", + "description": "Enables the is_available command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-is-available" - ] + "const": "allow-is-available" }, { - "description": "deny-is-available -> Denies the is_available command without any pre-configured scope.", + "description": "Denies the is_available command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-is-available" - ] + "const": "deny-is-available" }, { - "description": "allow-scan -> Enables the scan command without any pre-configured scope.", + "description": "Enables the scan command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-scan" - ] + "const": "allow-scan" }, { - "description": "deny-scan -> Denies the scan command without any pre-configured scope.", + "description": "Denies the scan command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-scan" - ] + "const": "deny-scan" }, { - "description": "allow-write -> Enables the write command without any pre-configured scope.", + "description": "Enables the write command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-write" - ] + "const": "allow-write" }, { - "description": "deny-write -> Denies the write command without any pre-configured scope.", + "description": "Denies the write command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-write" - ] + "const": "deny-write" }, { - "description": "default -> This permission set configures what kind of\noperations are available from the nfc plugin.\n\n#### Granted Permissions\n\nChecking if the NFC functionality is available\nand scanning nearby tags is allowed.\nWriting to tags needs to be manually enabled.\n\n", + "description": "This permission set configures what kind of\noperations are available from the nfc plugin.\n\n#### Granted Permissions\n\nChecking if the NFC functionality is available\nand scanning nearby tags is allowed.\nWriting to tags needs to be manually enabled.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/notification/permissions/schemas/schema.json b/plugins/notification/permissions/schemas/schema.json index 5c0aa2445..433f367f3 100644 --- a/plugins/notification/permissions/schemas/schema.json +++ b/plugins/notification/permissions/schemas/schema.json @@ -295,235 +295,169 @@ "type": "string", "oneOf": [ { - "description": "allow-batch -> Enables the batch command without any pre-configured scope.", + "description": "Enables the batch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-batch" - ] + "const": "allow-batch" }, { - "description": "deny-batch -> Denies the batch command without any pre-configured scope.", + "description": "Denies the batch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-batch" - ] + "const": "deny-batch" }, { - "description": "allow-cancel -> Enables the cancel command without any pre-configured scope.", + "description": "Enables the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-cancel" - ] + "const": "allow-cancel" }, { - "description": "deny-cancel -> Denies the cancel command without any pre-configured scope.", + "description": "Denies the cancel command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-cancel" - ] + "const": "deny-cancel" }, { - "description": "allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", + "description": "Enables the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-check-permissions" - ] + "const": "allow-check-permissions" }, { - "description": "deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", + "description": "Denies the check_permissions command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-check-permissions" - ] + "const": "deny-check-permissions" }, { - "description": "allow-create-channel -> Enables the create_channel command without any pre-configured scope.", + "description": "Enables the create_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-create-channel" - ] + "const": "allow-create-channel" }, { - "description": "deny-create-channel -> Denies the create_channel command without any pre-configured scope.", + "description": "Denies the create_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-create-channel" - ] + "const": "deny-create-channel" }, { - "description": "allow-delete-channel -> Enables the delete_channel command without any pre-configured scope.", + "description": "Enables the delete_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-delete-channel" - ] + "const": "allow-delete-channel" }, { - "description": "deny-delete-channel -> Denies the delete_channel command without any pre-configured scope.", + "description": "Denies the delete_channel command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-delete-channel" - ] + "const": "deny-delete-channel" }, { - "description": "allow-get-active -> Enables the get_active command without any pre-configured scope.", + "description": "Enables the get_active command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get-active" - ] + "const": "allow-get-active" }, { - "description": "deny-get-active -> Denies the get_active command without any pre-configured scope.", + "description": "Denies the get_active command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get-active" - ] + "const": "deny-get-active" }, { - "description": "allow-get-pending -> Enables the get_pending command without any pre-configured scope.", + "description": "Enables the get_pending command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get-pending" - ] + "const": "allow-get-pending" }, { - "description": "deny-get-pending -> Denies the get_pending command without any pre-configured scope.", + "description": "Denies the get_pending command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get-pending" - ] + "const": "deny-get-pending" }, { - "description": "allow-is-permission-granted -> Enables the is_permission_granted command without any pre-configured scope.", + "description": "Enables the is_permission_granted command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-is-permission-granted" - ] + "const": "allow-is-permission-granted" }, { - "description": "deny-is-permission-granted -> Denies the is_permission_granted command without any pre-configured scope.", + "description": "Denies the is_permission_granted command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-is-permission-granted" - ] + "const": "deny-is-permission-granted" }, { - "description": "allow-list-channels -> Enables the list_channels command without any pre-configured scope.", + "description": "Enables the list_channels command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-list-channels" - ] + "const": "allow-list-channels" }, { - "description": "deny-list-channels -> Denies the list_channels command without any pre-configured scope.", + "description": "Denies the list_channels command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-list-channels" - ] + "const": "deny-list-channels" }, { - "description": "allow-notify -> Enables the notify command without any pre-configured scope.", + "description": "Enables the notify command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-notify" - ] + "const": "allow-notify" }, { - "description": "deny-notify -> Denies the notify command without any pre-configured scope.", + "description": "Denies the notify command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-notify" - ] + "const": "deny-notify" }, { - "description": "allow-permission-state -> Enables the permission_state command without any pre-configured scope.", + "description": "Enables the permission_state command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-permission-state" - ] + "const": "allow-permission-state" }, { - "description": "deny-permission-state -> Denies the permission_state command without any pre-configured scope.", + "description": "Denies the permission_state command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-permission-state" - ] + "const": "deny-permission-state" }, { - "description": "allow-register-action-types -> Enables the register_action_types command without any pre-configured scope.", + "description": "Enables the register_action_types command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-register-action-types" - ] + "const": "allow-register-action-types" }, { - "description": "deny-register-action-types -> Denies the register_action_types command without any pre-configured scope.", + "description": "Denies the register_action_types command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-register-action-types" - ] + "const": "deny-register-action-types" }, { - "description": "allow-register-listener -> Enables the register_listener command without any pre-configured scope.", + "description": "Enables the register_listener command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-register-listener" - ] + "const": "allow-register-listener" }, { - "description": "deny-register-listener -> Denies the register_listener command without any pre-configured scope.", + "description": "Denies the register_listener command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-register-listener" - ] + "const": "deny-register-listener" }, { - "description": "allow-remove-active -> Enables the remove_active command without any pre-configured scope.", + "description": "Enables the remove_active command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-remove-active" - ] + "const": "allow-remove-active" }, { - "description": "deny-remove-active -> Denies the remove_active command without any pre-configured scope.", + "description": "Denies the remove_active command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-remove-active" - ] + "const": "deny-remove-active" }, { - "description": "allow-request-permission -> Enables the request_permission command without any pre-configured scope.", + "description": "Enables the request_permission command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-request-permission" - ] + "const": "allow-request-permission" }, { - "description": "deny-request-permission -> Denies the request_permission command without any pre-configured scope.", + "description": "Denies the request_permission command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-request-permission" - ] + "const": "deny-request-permission" }, { - "description": "allow-show -> Enables the show command without any pre-configured scope.", + "description": "Enables the show command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-show" - ] + "const": "allow-show" }, { - "description": "deny-show -> Denies the show command without any pre-configured scope.", + "description": "Denies the show command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-show" - ] + "const": "deny-show" }, { - "description": "default -> This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", + "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/notification/src/commands.rs b/plugins/notification/src/commands.rs index 58dc5d843..99b96c5b0 100644 --- a/plugins/notification/src/commands.rs +++ b/plugins/notification/src/commands.rs @@ -15,7 +15,7 @@ pub(crate) async fn is_permission_granted( match state { PermissionState::Granted => Ok(Some(true)), PermissionState::Denied => Ok(Some(false)), - PermissionState::Unknown | PermissionState::PromptWithRationale => Ok(None), + PermissionState::Prompt | PermissionState::PromptWithRationale => Ok(None), } } diff --git a/plugins/os/permissions/schemas/schema.json b/plugins/os/permissions/schemas/schema.json index 3d069d188..ad0535324 100644 --- a/plugins/os/permissions/schemas/schema.json +++ b/plugins/os/permissions/schemas/schema.json @@ -295,123 +295,89 @@ "type": "string", "oneOf": [ { - "description": "allow-arch -> Enables the arch command without any pre-configured scope.", + "description": "Enables the arch command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-arch" - ] + "const": "allow-arch" }, { - "description": "deny-arch -> Denies the arch command without any pre-configured scope.", + "description": "Denies the arch command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-arch" - ] + "const": "deny-arch" }, { - "description": "allow-exe-extension -> Enables the exe_extension command without any pre-configured scope.", + "description": "Enables the exe_extension command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-exe-extension" - ] + "const": "allow-exe-extension" }, { - "description": "deny-exe-extension -> Denies the exe_extension command without any pre-configured scope.", + "description": "Denies the exe_extension command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-exe-extension" - ] + "const": "deny-exe-extension" }, { - "description": "allow-family -> Enables the family command without any pre-configured scope.", + "description": "Enables the family command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-family" - ] + "const": "allow-family" }, { - "description": "deny-family -> Denies the family command without any pre-configured scope.", + "description": "Denies the family command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-family" - ] + "const": "deny-family" }, { - "description": "allow-hostname -> Enables the hostname command without any pre-configured scope.", + "description": "Enables the hostname command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-hostname" - ] + "const": "allow-hostname" }, { - "description": "deny-hostname -> Denies the hostname command without any pre-configured scope.", + "description": "Denies the hostname command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-hostname" - ] + "const": "deny-hostname" }, { - "description": "allow-locale -> Enables the locale command without any pre-configured scope.", + "description": "Enables the locale command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-locale" - ] + "const": "allow-locale" }, { - "description": "deny-locale -> Denies the locale command without any pre-configured scope.", + "description": "Denies the locale command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-locale" - ] + "const": "deny-locale" }, { - "description": "allow-os-type -> Enables the os_type command without any pre-configured scope.", + "description": "Enables the os_type command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-os-type" - ] + "const": "allow-os-type" }, { - "description": "deny-os-type -> Denies the os_type command without any pre-configured scope.", + "description": "Denies the os_type command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-os-type" - ] + "const": "deny-os-type" }, { - "description": "allow-platform -> Enables the platform command without any pre-configured scope.", + "description": "Enables the platform command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-platform" - ] + "const": "allow-platform" }, { - "description": "deny-platform -> Denies the platform command without any pre-configured scope.", + "description": "Denies the platform command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-platform" - ] + "const": "deny-platform" }, { - "description": "allow-version -> Enables the version command without any pre-configured scope.", + "description": "Enables the version command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-version" - ] + "const": "allow-version" }, { - "description": "deny-version -> Denies the version command without any pre-configured scope.", + "description": "Denies the version command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-version" - ] + "const": "deny-version" }, { - "description": "default -> This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", + "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/positioner/permissions/schemas/schema.json b/plugins/positioner/permissions/schemas/schema.json index 9a70b8472..f55148878 100644 --- a/plugins/positioner/permissions/schemas/schema.json +++ b/plugins/positioner/permissions/schemas/schema.json @@ -295,25 +295,19 @@ "type": "string", "oneOf": [ { - "description": "allow-move-window -> Enables the move_window command without any pre-configured scope.", + "description": "Enables the move_window command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-move-window" - ] + "const": "allow-move-window" }, { - "description": "deny-move-window -> Denies the move_window command without any pre-configured scope.", + "description": "Denies the move_window command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-move-window" - ] + "const": "deny-move-window" }, { - "description": "default -> Allows the move_window command", + "description": "Allows the move_window command", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/process/permissions/schemas/schema.json b/plugins/process/permissions/schemas/schema.json index 55b9dd9fe..bb885bff7 100644 --- a/plugins/process/permissions/schemas/schema.json +++ b/plugins/process/permissions/schemas/schema.json @@ -295,39 +295,29 @@ "type": "string", "oneOf": [ { - "description": "allow-exit -> Enables the exit command without any pre-configured scope.", + "description": "Enables the exit command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-exit" - ] + "const": "allow-exit" }, { - "description": "deny-exit -> Denies the exit command without any pre-configured scope.", + "description": "Denies the exit command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-exit" - ] + "const": "deny-exit" }, { - "description": "allow-restart -> Enables the restart command without any pre-configured scope.", + "description": "Enables the restart command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-restart" - ] + "const": "allow-restart" }, { - "description": "deny-restart -> Denies the restart command without any pre-configured scope.", + "description": "Denies the restart command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-restart" - ] + "const": "deny-restart" }, { - "description": "default -> This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", + "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/shell/permissions/schemas/schema.json b/plugins/shell/permissions/schemas/schema.json index 93c399568..e70c39262 100644 --- a/plugins/shell/permissions/schemas/schema.json +++ b/plugins/shell/permissions/schemas/schema.json @@ -295,81 +295,59 @@ "type": "string", "oneOf": [ { - "description": "allow-execute -> Enables the execute command without any pre-configured scope.", + "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-execute" - ] + "const": "allow-execute" }, { - "description": "deny-execute -> Denies the execute command without any pre-configured scope.", + "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-execute" - ] + "const": "deny-execute" }, { - "description": "allow-kill -> Enables the kill command without any pre-configured scope.", + "description": "Enables the kill command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-kill" - ] + "const": "allow-kill" }, { - "description": "deny-kill -> Denies the kill command without any pre-configured scope.", + "description": "Denies the kill command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-kill" - ] + "const": "deny-kill" }, { - "description": "allow-open -> Enables the open command without any pre-configured scope.", + "description": "Enables the open command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-open" - ] + "const": "allow-open" }, { - "description": "deny-open -> Denies the open command without any pre-configured scope.", + "description": "Denies the open command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-open" - ] + "const": "deny-open" }, { - "description": "allow-spawn -> Enables the spawn command without any pre-configured scope.", + "description": "Enables the spawn command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-spawn" - ] + "const": "allow-spawn" }, { - "description": "deny-spawn -> Denies the spawn command without any pre-configured scope.", + "description": "Denies the spawn command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-spawn" - ] + "const": "deny-spawn" }, { - "description": "allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", + "description": "Enables the stdin_write command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-stdin-write" - ] + "const": "allow-stdin-write" }, { - "description": "deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", + "description": "Denies the stdin_write command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-stdin-write" - ] + "const": "deny-stdin-write" }, { - "description": "default -> This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/sql/permissions/schemas/schema.json b/plugins/sql/permissions/schemas/schema.json index 9b1988f5a..e14f5cea8 100644 --- a/plugins/sql/permissions/schemas/schema.json +++ b/plugins/sql/permissions/schemas/schema.json @@ -295,67 +295,49 @@ "type": "string", "oneOf": [ { - "description": "allow-close -> Enables the close command without any pre-configured scope.", + "description": "Enables the close command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-close" - ] + "const": "allow-close" }, { - "description": "deny-close -> Denies the close command without any pre-configured scope.", + "description": "Denies the close command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-close" - ] + "const": "deny-close" }, { - "description": "allow-execute -> Enables the execute command without any pre-configured scope.", + "description": "Enables the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-execute" - ] + "const": "allow-execute" }, { - "description": "deny-execute -> Denies the execute command without any pre-configured scope.", + "description": "Denies the execute command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-execute" - ] + "const": "deny-execute" }, { - "description": "allow-load -> Enables the load command without any pre-configured scope.", + "description": "Enables the load command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-load" - ] + "const": "allow-load" }, { - "description": "deny-load -> Denies the load command without any pre-configured scope.", + "description": "Denies the load command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-load" - ] + "const": "deny-load" }, { - "description": "allow-select -> Enables the select command without any pre-configured scope.", + "description": "Enables the select command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-select" - ] + "const": "allow-select" }, { - "description": "deny-select -> Denies the select command without any pre-configured scope.", + "description": "Denies the select command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-select" - ] + "const": "deny-select" }, { - "description": "default -> # Tauri SQL Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n", + "description": "# Tauri SQL Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/store/permissions/schemas/schema.json b/plugins/store/permissions/schemas/schema.json index 01b67fe1f..56bced91a 100644 --- a/plugins/store/permissions/schemas/schema.json +++ b/plugins/store/permissions/schemas/schema.json @@ -295,179 +295,129 @@ "type": "string", "oneOf": [ { - "description": "allow-clear -> Enables the clear command without any pre-configured scope.", + "description": "Enables the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-clear" - ] + "const": "allow-clear" }, { - "description": "deny-clear -> Denies the clear command without any pre-configured scope.", + "description": "Denies the clear command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-clear" - ] + "const": "deny-clear" }, { - "description": "allow-delete -> Enables the delete command without any pre-configured scope.", + "description": "Enables the delete command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-delete" - ] + "const": "allow-delete" }, { - "description": "deny-delete -> Denies the delete command without any pre-configured scope.", + "description": "Denies the delete command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-delete" - ] + "const": "deny-delete" }, { - "description": "allow-entries -> Enables the entries command without any pre-configured scope.", + "description": "Enables the entries command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-entries" - ] + "const": "allow-entries" }, { - "description": "deny-entries -> Denies the entries command without any pre-configured scope.", + "description": "Denies the entries command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-entries" - ] + "const": "deny-entries" }, { - "description": "allow-get -> Enables the get command without any pre-configured scope.", + "description": "Enables the get command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get" - ] + "const": "allow-get" }, { - "description": "deny-get -> Denies the get command without any pre-configured scope.", + "description": "Denies the get command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get" - ] + "const": "deny-get" }, { - "description": "allow-has -> Enables the has command without any pre-configured scope.", + "description": "Enables the has command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-has" - ] + "const": "allow-has" }, { - "description": "deny-has -> Denies the has command without any pre-configured scope.", + "description": "Denies the has command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-has" - ] + "const": "deny-has" }, { - "description": "allow-keys -> Enables the keys command without any pre-configured scope.", + "description": "Enables the keys command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-keys" - ] + "const": "allow-keys" }, { - "description": "deny-keys -> Denies the keys command without any pre-configured scope.", + "description": "Denies the keys command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-keys" - ] + "const": "deny-keys" }, { - "description": "allow-length -> Enables the length command without any pre-configured scope.", + "description": "Enables the length command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-length" - ] + "const": "allow-length" }, { - "description": "deny-length -> Denies the length command without any pre-configured scope.", + "description": "Denies the length command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-length" - ] + "const": "deny-length" }, { - "description": "allow-load -> Enables the load command without any pre-configured scope.", + "description": "Enables the load command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-load" - ] + "const": "allow-load" }, { - "description": "deny-load -> Denies the load command without any pre-configured scope.", + "description": "Denies the load command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-load" - ] + "const": "deny-load" }, { - "description": "allow-reset -> Enables the reset command without any pre-configured scope.", + "description": "Enables the reset command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-reset" - ] + "const": "allow-reset" }, { - "description": "deny-reset -> Denies the reset command without any pre-configured scope.", + "description": "Denies the reset command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-reset" - ] + "const": "deny-reset" }, { - "description": "allow-save -> Enables the save command without any pre-configured scope.", + "description": "Enables the save command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save" - ] + "const": "allow-save" }, { - "description": "deny-save -> Denies the save command without any pre-configured scope.", + "description": "Denies the save command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save" - ] + "const": "deny-save" }, { - "description": "allow-set -> Enables the set command without any pre-configured scope.", + "description": "Enables the set command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-set" - ] + "const": "allow-set" }, { - "description": "deny-set -> Denies the set command without any pre-configured scope.", + "description": "Denies the set command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-set" - ] + "const": "deny-set" }, { - "description": "allow-values -> Enables the values command without any pre-configured scope.", + "description": "Enables the values command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-values" - ] + "const": "allow-values" }, { - "description": "deny-values -> Denies the values command without any pre-configured scope.", + "description": "Denies the values command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-values" - ] + "const": "deny-values" }, { - "description": "default -> This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "description": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/stronghold/permissions/schemas/schema.json b/plugins/stronghold/permissions/schemas/schema.json index 84d7ad479..5657e9bbd 100644 --- a/plugins/stronghold/permissions/schemas/schema.json +++ b/plugins/stronghold/permissions/schemas/schema.json @@ -295,165 +295,119 @@ "type": "string", "oneOf": [ { - "description": "allow-create-client -> Enables the create_client command without any pre-configured scope.", + "description": "Enables the create_client command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-create-client" - ] + "const": "allow-create-client" }, { - "description": "deny-create-client -> Denies the create_client command without any pre-configured scope.", + "description": "Denies the create_client command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-create-client" - ] + "const": "deny-create-client" }, { - "description": "allow-destroy -> Enables the destroy command without any pre-configured scope.", + "description": "Enables the destroy command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-destroy" - ] + "const": "allow-destroy" }, { - "description": "deny-destroy -> Denies the destroy command without any pre-configured scope.", + "description": "Denies the destroy command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-destroy" - ] + "const": "deny-destroy" }, { - "description": "allow-execute-procedure -> Enables the execute_procedure command without any pre-configured scope.", + "description": "Enables the execute_procedure command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-execute-procedure" - ] + "const": "allow-execute-procedure" }, { - "description": "deny-execute-procedure -> Denies the execute_procedure command without any pre-configured scope.", + "description": "Denies the execute_procedure command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-execute-procedure" - ] + "const": "deny-execute-procedure" }, { - "description": "allow-get-store-record -> Enables the get_store_record command without any pre-configured scope.", + "description": "Enables the get_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-get-store-record" - ] + "const": "allow-get-store-record" }, { - "description": "deny-get-store-record -> Denies the get_store_record command without any pre-configured scope.", + "description": "Denies the get_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-get-store-record" - ] + "const": "deny-get-store-record" }, { - "description": "allow-initialize -> Enables the initialize command without any pre-configured scope.", + "description": "Enables the initialize command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-initialize" - ] + "const": "allow-initialize" }, { - "description": "deny-initialize -> Denies the initialize command without any pre-configured scope.", + "description": "Denies the initialize command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-initialize" - ] + "const": "deny-initialize" }, { - "description": "allow-load-client -> Enables the load_client command without any pre-configured scope.", + "description": "Enables the load_client command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-load-client" - ] + "const": "allow-load-client" }, { - "description": "deny-load-client -> Denies the load_client command without any pre-configured scope.", + "description": "Denies the load_client command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-load-client" - ] + "const": "deny-load-client" }, { - "description": "allow-remove-secret -> Enables the remove_secret command without any pre-configured scope.", + "description": "Enables the remove_secret command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-remove-secret" - ] + "const": "allow-remove-secret" }, { - "description": "deny-remove-secret -> Denies the remove_secret command without any pre-configured scope.", + "description": "Denies the remove_secret command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-remove-secret" - ] + "const": "deny-remove-secret" }, { - "description": "allow-remove-store-record -> Enables the remove_store_record command without any pre-configured scope.", + "description": "Enables the remove_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-remove-store-record" - ] + "const": "allow-remove-store-record" }, { - "description": "deny-remove-store-record -> Denies the remove_store_record command without any pre-configured scope.", + "description": "Denies the remove_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-remove-store-record" - ] + "const": "deny-remove-store-record" }, { - "description": "allow-save -> Enables the save command without any pre-configured scope.", + "description": "Enables the save command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save" - ] + "const": "allow-save" }, { - "description": "deny-save -> Denies the save command without any pre-configured scope.", + "description": "Denies the save command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save" - ] + "const": "deny-save" }, { - "description": "allow-save-secret -> Enables the save_secret command without any pre-configured scope.", + "description": "Enables the save_secret command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save-secret" - ] + "const": "allow-save-secret" }, { - "description": "deny-save-secret -> Denies the save_secret command without any pre-configured scope.", + "description": "Denies the save_secret command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save-secret" - ] + "const": "deny-save-secret" }, { - "description": "allow-save-store-record -> Enables the save_store_record command without any pre-configured scope.", + "description": "Enables the save_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save-store-record" - ] + "const": "allow-save-store-record" }, { - "description": "deny-save-store-record -> Denies the save_store_record command without any pre-configured scope.", + "description": "Denies the save_store_record command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save-store-record" - ] + "const": "deny-save-store-record" }, { - "description": "default -> This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n", + "description": "This permission set configures what kind of\noperations are available from the stronghold plugin.\n\n#### Granted Permissions\n\nAll non-destructive operations are enabled by default.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/updater/permissions/schemas/schema.json b/plugins/updater/permissions/schemas/schema.json index 9d1671f1f..2df800dac 100644 --- a/plugins/updater/permissions/schemas/schema.json +++ b/plugins/updater/permissions/schemas/schema.json @@ -295,67 +295,49 @@ "type": "string", "oneOf": [ { - "description": "allow-check -> Enables the check command without any pre-configured scope.", + "description": "Enables the check command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-check" - ] + "const": "allow-check" }, { - "description": "deny-check -> Denies the check command without any pre-configured scope.", + "description": "Denies the check command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-check" - ] + "const": "deny-check" }, { - "description": "allow-download -> Enables the download command without any pre-configured scope.", + "description": "Enables the download command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-download" - ] + "const": "allow-download" }, { - "description": "deny-download -> Denies the download command without any pre-configured scope.", + "description": "Denies the download command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-download" - ] + "const": "deny-download" }, { - "description": "allow-download-and-install -> Enables the download_and_install command without any pre-configured scope.", + "description": "Enables the download_and_install command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-download-and-install" - ] + "const": "allow-download-and-install" }, { - "description": "deny-download-and-install -> Denies the download_and_install command without any pre-configured scope.", + "description": "Denies the download_and_install command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-download-and-install" - ] + "const": "deny-download-and-install" }, { - "description": "allow-install -> Enables the install command without any pre-configured scope.", + "description": "Enables the install command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-install" - ] + "const": "allow-install" }, { - "description": "deny-install -> Denies the install command without any pre-configured scope.", + "description": "Denies the install command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-install" - ] + "const": "deny-install" }, { - "description": "default -> This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", + "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/upload/permissions/schemas/schema.json b/plugins/upload/permissions/schemas/schema.json index 30e93b6e8..abe3a09f9 100644 --- a/plugins/upload/permissions/schemas/schema.json +++ b/plugins/upload/permissions/schemas/schema.json @@ -295,39 +295,29 @@ "type": "string", "oneOf": [ { - "description": "allow-download -> Enables the download command without any pre-configured scope.", + "description": "Enables the download command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-download" - ] + "const": "allow-download" }, { - "description": "deny-download -> Denies the download command without any pre-configured scope.", + "description": "Denies the download command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-download" - ] + "const": "deny-download" }, { - "description": "allow-upload -> Enables the upload command without any pre-configured scope.", + "description": "Enables the upload command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-upload" - ] + "const": "allow-upload" }, { - "description": "deny-upload -> Denies the upload command without any pre-configured scope.", + "description": "Denies the upload command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-upload" - ] + "const": "deny-upload" }, { - "description": "default -> This permission set configures what kind of\noperations are available from the upload plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "description": "This permission set configures what kind of\noperations are available from the upload plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/websocket/permissions/schemas/schema.json b/plugins/websocket/permissions/schemas/schema.json index 62ceff2cf..9f5746508 100644 --- a/plugins/websocket/permissions/schemas/schema.json +++ b/plugins/websocket/permissions/schemas/schema.json @@ -295,39 +295,29 @@ "type": "string", "oneOf": [ { - "description": "allow-connect -> Enables the connect command without any pre-configured scope.", + "description": "Enables the connect command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-connect" - ] + "const": "allow-connect" }, { - "description": "deny-connect -> Denies the connect command without any pre-configured scope.", + "description": "Denies the connect command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-connect" - ] + "const": "deny-connect" }, { - "description": "allow-send -> Enables the send command without any pre-configured scope.", + "description": "Enables the send command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-send" - ] + "const": "allow-send" }, { - "description": "deny-send -> Denies the send command without any pre-configured scope.", + "description": "Denies the send command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-send" - ] + "const": "deny-send" }, { - "description": "default -> Allows connecting and sending data to a WebSocket server", + "description": "Allows connecting and sending data to a WebSocket server", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } diff --git a/plugins/window-state/permissions/schemas/schema.json b/plugins/window-state/permissions/schemas/schema.json index 1b23652dd..67888bc64 100644 --- a/plugins/window-state/permissions/schemas/schema.json +++ b/plugins/window-state/permissions/schemas/schema.json @@ -295,53 +295,39 @@ "type": "string", "oneOf": [ { - "description": "allow-filename -> Enables the filename command without any pre-configured scope.", + "description": "Enables the filename command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-filename" - ] + "const": "allow-filename" }, { - "description": "deny-filename -> Denies the filename command without any pre-configured scope.", + "description": "Denies the filename command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-filename" - ] + "const": "deny-filename" }, { - "description": "allow-restore-state -> Enables the restore_state command without any pre-configured scope.", + "description": "Enables the restore_state command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-restore-state" - ] + "const": "allow-restore-state" }, { - "description": "deny-restore-state -> Denies the restore_state command without any pre-configured scope.", + "description": "Denies the restore_state command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-restore-state" - ] + "const": "deny-restore-state" }, { - "description": "allow-save-window-state -> Enables the save_window_state command without any pre-configured scope.", + "description": "Enables the save_window_state command without any pre-configured scope.", "type": "string", - "enum": [ - "allow-save-window-state" - ] + "const": "allow-save-window-state" }, { - "description": "deny-save-window-state -> Denies the save_window_state command without any pre-configured scope.", + "description": "Denies the save_window_state command without any pre-configured scope.", "type": "string", - "enum": [ - "deny-save-window-state" - ] + "const": "deny-save-window-state" }, { - "description": "default -> This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", + "description": "This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", "type": "string", - "enum": [ - "default" - ] + "const": "default" } ] } From f7600b5fff269ae620ff93bd4e074dd3ef3fd7c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 11:37:09 -0300 Subject: [PATCH 558/643] chore(deps): update dependency @tauri-apps/cli to v2.0.0-rc.14 (#1786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++--------- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index c96e879a1..fb7b31004 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.13", + "@tauri-apps/cli": "2.0.0-rc.14", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 7febcae92..23da8e15a 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.13", + "@tauri-apps/cli": "2.0.0-rc.14", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 56716752d..c6ef8747d 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.13" + "@tauri-apps/cli": "2.0.0-rc.14" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 867def04f..14be654a0 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.13", + "@tauri-apps/cli": "2.0.0-rc.14", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index ed4367c33..30134a433 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.13", + "@tauri-apps/cli": "2.0.0-rc.14", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b169b78f4..14085681a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -119,8 +119,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) '@tauri-apps/cli': - specifier: 2.0.0-rc.13 - version: 2.0.0-rc.13 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.3 @@ -180,8 +180,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.13 - version: 2.0.0-rc.13 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -270,8 +270,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.13 - version: 2.0.0-rc.13 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 plugins/sql: dependencies: @@ -288,8 +288,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.13 - version: 2.0.0-rc.13 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -328,8 +328,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.13 - version: 2.0.0-rc.13 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -1054,68 +1054,68 @@ packages: '@tauri-apps/api@2.0.0-rc.4': resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.13': - resolution: {integrity: sha512-j2BTeqq0b5073SUr5jLUGWwmQ0Q7/T1uXQZd0hLynYgbL6ZR83afex2ct7i50Qui03er49188EoBWy3vDE/9Kg==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.14': + resolution: {integrity: sha512-QBdzhwj+ewRi2tA+3jCiEMp5y9WYR3p33bwVHPC33oyrDFlXMNOpwsJa9VBHUU04pr6mq1ujrouHNBAlj78Lvw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.13': - resolution: {integrity: sha512-xj9O2G2aC4XdQtNefJRlk3M+mLchHphefMpkmhxAeeHIFspt24Cr15WO4FnUF/BcSkpIt1Pxdy3XTISECzx3eA==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.14': + resolution: {integrity: sha512-m48s2+EIUYoq5T26CKq11TThRBlY5LorCmUKDO+OzIL87h5sXhYwAYKkskJ1aDc8gf3incq+cQhw2FfCkHk60A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.13': - resolution: {integrity: sha512-n/moJC9pP1qDrqxgi825jjlubCQVRQ3D9VVriFaFOJ0mO4uPy+RTf27HLHWxe0MCk92Kxox2v3wzuDF5ldfy3A==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.14': + resolution: {integrity: sha512-otGNUBERFQhuR+qYTTjMgoMUptc+EefyXsPQap7gFRAY6j5bBTiKOofE4XyOd6wFZ6OLI12uICm9j4kMjiPkzA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.13': - resolution: {integrity: sha512-dFIqAADRGjEiS4aTe02ZmVLXmrV/9b6K2vF3I+N/zaBLHQvfRiGfyooXr4EsmyHmen2hHWErUcHe27g17eB4pA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.14': + resolution: {integrity: sha512-ZCfd2N/IPQCEjrRyIeBK7nII//i34taAS6BbhDMuOXzBAz6r9angQKL42qW89mQDJZwckNHFiVMcOqBrrVo7TQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.13': - resolution: {integrity: sha512-wc3lJNHfFB7ipux582i490h3uniGq2VakRZGvAIJXsUEWR4t4wcd2t77EXW1eaQMLA5UyiZJ7V3o7NiUJ5q0Hw==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.14': + resolution: {integrity: sha512-8zMZGVvehZSSn+TCt0D8uKXDqMviWYMNgfAc+XKWcbEpJKsAaDfC8UEFikpr1HBV/1kGrq0AMko+91f6o5/g6w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.13': - resolution: {integrity: sha512-gC2Bmzqnb0R2lHgZ2tqwXJwaohz/kIBhmg1i+4UtNqJHNk96FSdWOPBX2fjvJsclks6WbI4u6y53jFFe9gzu4g==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.14': + resolution: {integrity: sha512-NgEQ9f/Ce2SLDT0CNSpeew7BikTAOO3I2WM+FPuYyAaDnvrHnC67v3RyC5/j5xTkMMjRPsVPvsedtQNZjlq3tw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.13': - resolution: {integrity: sha512-lh8qZ4UCt3314LPQgO6GxNtlsZs6M9yvUz6TmHo0SPfxQp4iiRVF/g032Bc1QUZEj7LUtvo9psyWRbzRA660/Q==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.14': + resolution: {integrity: sha512-h+/eJqWfwqzBXEJhmdNsYrUII7d9sz8UYWWS1cQFeCQRPW5rMVotySI7TCrmKOx0mZDKd9zWClYwUviBinG6Kg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.13': - resolution: {integrity: sha512-09kTW5EPB1Q/Vnnnqu5v32UcPOjaA/+hey7fG1zIvNjjI4C0SZewvlPpffVpn9CQf9HTeBjPFFcadUu5pfFKAg==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.14': + resolution: {integrity: sha512-bM8kGZJQCahTJQCdaF3h4ta83HvrIA8JEBUEHvrxxpiUpdtymOyW7uSSdjYB0pdmotZx44oEKiXeK2xcc9rZaw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.13': - resolution: {integrity: sha512-LCSeYLqtcNGIax1GD+ss1JbMDN02Xv2Yg6J54exE7xYG8POD5kS6ZRYxpPeKOSr/tAA6OHBb0EOiZyq4T+mn1g==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.14': + resolution: {integrity: sha512-dxzPebtvI9EhqIzP33WbsPKoxyBejozw7Ie6GMpQ8oV2bogYfOgEu2r9hwzZ7nNfVldOD6PWKzgo0rwAvfxnAQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.13': - resolution: {integrity: sha512-lx0QS0pb0jP94k0nzAjd4IdKbchamC0jpfwQ5V0wW7DcW9e2EVGM0HIpQSh2hJgY5M2DBx+ZDnehvzeBxxz3BA==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.14': + resolution: {integrity: sha512-XZ97TfOAL3KFr6pF51oWKZNXueFSmkpjkZdyk2/aVvzsiqGZtfPwGkL7YMCBbUA8q9ysaosdMvcGpBmvhHkLPQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.13': - resolution: {integrity: sha512-Pqn7uqMu3C2X1vnP//dU5TDaE6/PIFH5cbl2FjZiVJErKsjhlIbZMFzrWJTSSBTAK42ZxiEAh+dfw2erTBTjrQ==} + '@tauri-apps/cli@2.0.0-rc.14': + resolution: {integrity: sha512-AQST26ixCoVf32PSsSjfUCQY9SrawzDEgUpKXjelUeD9oROzbxlRw5tOYRTsxg9YDat2uWJ3xz7WXW6T0VEfNw==} engines: {node: '>= 10'} hasBin: true @@ -3192,48 +3192,48 @@ snapshots: '@tauri-apps/api@2.0.0-rc.4': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.13': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.14': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.13': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.14': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.13': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.14': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.13': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.14': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.13': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.14': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.13': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.14': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.13': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.14': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.13': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.14': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.13': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.14': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.13': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.14': optional: true - '@tauri-apps/cli@2.0.0-rc.13': + '@tauri-apps/cli@2.0.0-rc.14': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.13 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.13 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.13 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.13 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.13 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.13 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.13 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.13 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.13 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.13 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.14 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.14 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.14 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.14 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.14 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.14 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.14 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.14 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.14 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.14 '@types/eslint@9.6.1': dependencies: From 5cbd593e7679a8074b64dc009e4d1d867acd5a7e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 11:55:38 -0300 Subject: [PATCH 559/643] publish new versions (#1772) Co-authored-by: lucasfernog --- .changes/pre.json | 9 ++++++++- Cargo.lock | 20 +++++++++--------- examples/api/CHANGELOG.md | 7 +++++++ examples/api/package.json | 6 +++--- examples/api/src-tauri/CHANGELOG.md | 10 +++++++++ examples/api/src-tauri/Cargo.toml | 12 +++++------ plugins/barcode-scanner/CHANGELOG.md | 4 ++++ plugins/barcode-scanner/package.json | 2 +- plugins/clipboard-manager/CHANGELOG.md | 4 ++++ plugins/clipboard-manager/Cargo.toml | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/CHANGELOG.md | 5 +++++ plugins/deep-link/Cargo.toml | 2 +- plugins/dialog/CHANGELOG.md | 6 ++++++ plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 4 ++++ plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 6 ++++++ plugins/http/Cargo.toml | 4 ++-- plugins/notification/CHANGELOG.md | 4 ++++ plugins/notification/Cargo.toml | 2 +- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/single-instance/CHANGELOG.md | 6 ++++++ plugins/single-instance/Cargo.toml | 4 ++-- plugins/window-state/CHANGELOG.md | 8 ++++++++ plugins/window-state/Cargo.toml | 2 +- pnpm-lock.yaml | 28 ++++++++++++++------------ 28 files changed, 127 insertions(+), 48 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 7ddced33f..ee15b2683 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -7,16 +7,21 @@ ".changes/consolidate-permission-state.md", ".changes/deep-link-event.md", ".changes/deep-link-get-current-desktop.md", + ".changes/deep-link-on-new-url.md", ".changes/deep-link-register-all.md", ".changes/dialog-asset-scope.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", + ".changes/fix-barcodae-scanner-imports.md", + ".changes/fix-clipboard-warnings-sdk.md", ".changes/fix-deep-link-config.md", + ".changes/fix-fs-app-scopes.md", ".changes/fix-fs-write-file-android.md", ".changes/fix-http-plugin-abort.md", ".changes/fix-ios-file-dialog-default-mode.md", ".changes/fix-linux-updater-permission-error.md", ".changes/fix-restore-minimized-window-position.md", + ".changes/fix-restore-minimized-window-state.md", ".changes/fs-dialog-file-path-methods.md", ".changes/fs-dialog-file-path-traits.md", ".changes/fs-dialog-non-exhaustive-error.md", @@ -44,8 +49,10 @@ ".changes/swift-build-older-versions.md", ".changes/tauri-rc-8.md", ".changes/update-fs-api-docs.md", + ".changes/update-tauri-rc-12.md", ".changes/update-tauri-rc-3.md", ".changes/updater-js-headers-download-crate.md", - ".changes/updater-js-headers-download.md" + ".changes/updater-js-headers-download.md", + ".changes/window-state-physical-size.md" ] } diff --git a/Cargo.lock b/Cargo.lock index cb289e66c..b05395e97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -212,7 +212,7 @@ checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "api" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" dependencies = [ "log", "serde", @@ -6448,7 +6448,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "arboard", "image 0.24.9", @@ -6462,7 +6462,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "dunce", "log", @@ -6480,7 +6480,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" dependencies = [ "log", "raw-window-handle", @@ -6496,7 +6496,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "anyhow", "dunce", @@ -6556,7 +6556,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "data-url", "http", @@ -6622,7 +6622,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "color-backtrace", "ctor", @@ -6660,7 +6660,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "aho-corasick", "bincode", @@ -6714,7 +6714,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "log", "semver", @@ -6841,7 +6841,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "bitflags 2.6.0", "log", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index e5cd6bf22..07e31aae1 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## \[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 diff --git a/examples/api/package.json b/examples/api/package.json index fb7b31004..2a1c62e50 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0-rc.3", + "version": "2.0.0-rc.4", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -10,10 +10,10 @@ }, "dependencies": { "@tauri-apps/api": "2.0.0-rc.4", - "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.1", + "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.2", "@tauri-apps/plugin-biometric": "2.0.0-rc.1", "@tauri-apps/plugin-cli": "2.0.0-rc.1", - "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.1", + "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.2", "@tauri-apps/plugin-dialog": "2.0.0-rc.1", "@tauri-apps/plugin-fs": "2.0.0-rc.2", "@tauri-apps/plugin-global-shortcut": "2.0.0-rc.1", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 0be241466..63b7e4774 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 551de3b2d..443e50c28 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,15 +20,15 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.4", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.5", features = [ "watch", ] } -tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.3" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.6" } +tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.4" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.7" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.4" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.4", features = [ +], version = "2.0.0-rc.5" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.5", features = [ "windows7-compat", ] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-rc.1" } diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index edc837cd4..878452ca4 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`79d6e19c`](https://github.com/tauri-apps/plugins-workspace/commit/79d6e19c4b38bae0cab29eb88df379e2237d9aac) ([#1777](https://github.com/tauri-apps/plugins-workspace/pull/1777)) Fixed an issue which caused checkPermission and requestPermission to be mixed up. + ## \[2.0.0-rc.4] - [`713c54ef`](https://github.com/tauri-apps/plugins-workspace/commit/713c54ef8365d36afd84585dcabed2fbb751223d) ([#1749](https://github.com/tauri-apps/plugins-workspace/pull/1749) by [@olivierlemasle](https://github.com/tauri-apps/plugins-workspace/../../olivierlemasle)) Remove unused Android dependencies. diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index 38802e699..ec01ad216 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md index d4c310de5..deaf73461 100644 --- a/plugins/clipboard-manager/CHANGELOG.md +++ b/plugins/clipboard-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`341a5320`](https://github.com/tauri-apps/plugins-workspace/commit/341a5320c33d3c7b041abf7eb0ab7ad8009e6c3f) ([#1771](https://github.com/tauri-apps/plugins-workspace/pull/1771)) Fix warnings and clear implementation on Android below SDK 28. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index 36dc67943..db416d777 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Read and write to the system clipboard." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index 4dad50c41..a5fb15e9c 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-clipboard-manager", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index e4995138c..4b1a6c398 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## \[2.0.0-rc.6] + +- [`6f3f6679`](https://github.com/tauri-apps/plugins-workspace/commit/6f3f66794a87ef9d1c16667c425d5ad7091a9c2f) ([#1780](https://github.com/tauri-apps/plugins-workspace/pull/1780)) Added `DeepLink::on_open_url` function to match the JavaScript API implementation, + which wraps the `deep-link://new-url` event and also send the current deep link if there's any. + ## \[2.0.0-rc.5] - [`984110a9`](https://github.com/tauri-apps/plugins-workspace/commit/984110a978774712bad4d746ed06134d54debcd0) ([#1770](https://github.com/tauri-apps/plugins-workspace/pull/1770) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Emit the `deep-link://new-url` event on Linux and Windows when the app is executed with a deep link CLI argument, diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index bcc436f4f..ff7a72955 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 32e4a96a0..54117e16d 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.7] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.5` + ## \[2.0.0-rc.6] - [`2b898f07`](https://github.com/tauri-apps/plugins-workspace/commit/2b898f078688c57309ca17962bf02e665c406514) ([#1769](https://github.com/tauri-apps/plugins-workspace/pull/1769) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update Tauri scopes (asset protocol) when using the `open()` command to select directories. diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 061f0cdba..8759533a8 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 201877369..8f04d8936 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.5] + +- [`cc03ccf5`](https://github.com/tauri-apps/plugins-workspace/commit/cc03ccf5e0e4be8bbf50bbdebe957c84be7f779b) ([#1774](https://github.com/tauri-apps/plugins-workspace/pull/1774)) Fix `scope-app`, `scope-app-recursive` and `scope-index` not properly enabling the application paths. + ## \[2.0.0-rc.4] - [`9291e4d2`](https://github.com/tauri-apps/plugins-workspace/commit/9291e4d2caa31c883c71e55f2193bd8754d72f03) ([#1640](https://github.com/tauri-apps/plugins-workspace/pull/1640) by [@SRutile](https://github.com/tauri-apps/plugins-workspace/../../SRutile)) Support any UTF-8 character in the writeFile API. diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 4e335995e..6576b75ae 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index d605ae78e..864b756c6 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.5] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.5` + ## \[2.0.0-rc.4] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 8591049df..572421c20 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -27,7 +27,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index a13d65f17..a38f1afe8 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.5] + +- [`fb85e5dd`](https://github.com/tauri-apps/plugins-workspace/commit/fb85e5dd76688f3ae836890160f9bde843b70167) ([#1785](https://github.com/tauri-apps/plugins-workspace/pull/1785)) Update to tauri 2.0.0-rc.12. + ## \[2.0.0-rc.4] - [`3d301c65`](https://github.com/tauri-apps/plugins-workspace/commit/3d301c654e6f5e7f343e0e0cbb57648002e98f04) ([#1737](https://github.com/tauri-apps/plugins-workspace/pull/1737) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) The notification body is now optional on iOS to match the other platforms. diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index da6fc5eb8..a817cbadb 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index f42e15074..8ffd0c0e5 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.5] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.5` + ## \[2.0.0-rc.4] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 77dc96ff6..9fb923a28 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -20,7 +20,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.4" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 02d719da8..fbfa610a1 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.4] + +### Dependencies + +- Upgraded to `deep-link@2.0.0-rc.6` + ## \[2.0.0-rc.3] - [`b2269333`](https://github.com/tauri-apps/plugins-workspace/commit/b2269333e39afe32629a11763a8e25d0b12b132b) ([#1766](https://github.com/tauri-apps/plugins-workspace/pull/1766) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Put deep link integration behined a feature diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 50b338c3b..cd8038160 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -19,7 +19,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.5", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.6", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index ba1fb951b..e3a775daf 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0-rc.4] + +- [`204e5aac`](https://github.com/tauri-apps/plugins-workspace/commit/204e5aacad7e8f99a9a08f4a45cfed83643c1cc0) ([#1743](https://github.com/tauri-apps/plugins-workspace/pull/1743)) Fix can't restore a minimized window's size and position properly + +### breaking + +- [`204e5aac`](https://github.com/tauri-apps/plugins-workspace/commit/204e5aacad7e8f99a9a08f4a45cfed83643c1cc0) ([#1743](https://github.com/tauri-apps/plugins-workspace/pull/1743)) Window's size is now stored in physical size instead of logical size + ## \[2.0.0-rc.3] - [`17e8014b`](https://github.com/tauri-apps/plugins-workspace/commit/17e8014b6993602ddad21e8f5dcb625de1eea2c0) ([#1702](https://github.com/tauri-apps/plugins-workspace/pull/1702) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix saving a minimized window's state changes its position to -32000 diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 6b450cf16..0856665dd 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 14085681a..88ff31a05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,7 +61,7 @@ importers: specifier: 2.0.0-rc.4 version: 2.0.0-rc.4 '@tauri-apps/plugin-barcode-scanner': - specifier: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 version: link:../../plugins/barcode-scanner '@tauri-apps/plugin-biometric': specifier: 2.0.0-rc.1 @@ -70,7 +70,7 @@ importers: specifier: 2.0.0-rc.1 version: link:../../plugins/cli '@tauri-apps/plugin-clipboard-manager': - specifier: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': specifier: 2.0.0-rc.1 @@ -2743,9 +2743,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0': + '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2756,9 +2756,10 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/changelog@0.12.0': + '@covector/changelog@0.12.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2768,14 +2769,16 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/command@0.8.0': + '@covector/command@0.8.0(mocha@10.7.3)': dependencies: - '@effection/process': 2.1.4 + '@effection/process': 2.1.4(mocha@10.7.3) effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding + - mocha '@covector/files@0.8.0': dependencies: @@ -2822,10 +2825,8 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 - transitivePeerDependencies: - - encoding - '@effection/process@2.1.4': + '@effection/process@2.1.4(mocha@10.7.3)': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2833,6 +2834,7 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding + - mocha '@effection/stream@2.0.6': dependencies: @@ -3678,9 +3680,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0 - '@covector/changelog': 0.12.0 - '@covector/command': 0.8.0 + '@covector/assemble': 0.12.0(mocha@10.7.3) + '@covector/changelog': 0.12.0(mocha@10.7.3) + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From 7a37355e177772cbddf24397d5a23280e00558af Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 16 Sep 2024 05:01:27 +0800 Subject: [PATCH 560/643] fix(window-state): deadlock when trying to restore window states on initial load (#1787) * Fix deadlock when trying to restore window the size on initial load * Typo --- .changes/fix-restore-window-state-deadlock.md | 5 +++++ plugins/window-state/src/lib.rs | 20 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .changes/fix-restore-window-state-deadlock.md diff --git a/.changes/fix-restore-window-state-deadlock.md b/.changes/fix-restore-window-state-deadlock.md new file mode 100644 index 000000000..b91450647 --- /dev/null +++ b/.changes/fix-restore-window-state-deadlock.md @@ -0,0 +1,5 @@ +--- +"window-state": patch +--- + +Fix deadlock when trying to restore window states on initial load diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index 5d2b5bf42..15599da8a 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -105,6 +105,8 @@ impl Default for WindowState { } struct WindowStateCache(Arc>>); +/// Used to prevent deadlocks from resize and position event listeners setting the cached state on restoring states +struct RestoringWindowState(Mutex<()>); pub trait AppHandleExt { /// Saves all open windows state to disk fn save_window_state(&self, flags: StateFlags) -> Result<()>; @@ -167,6 +169,8 @@ impl WindowExt for Window { .map(|map| map(self.label())) .unwrap_or_else(|| self.label()); + let restoring_window_state = self.state::(); + let _restoring_window_lock = restoring_window_state.0.lock().unwrap(); let cache = self.state::(); let mut c = cache.0.lock().unwrap(); @@ -396,6 +400,7 @@ impl Builder { Default::default() }; app.manage(WindowStateCache(cache)); + app.manage(RestoringWindowState(Mutex::new(()))); app.manage(PluginState { filename, map_label, @@ -443,7 +448,13 @@ impl Builder { } WindowEvent::Moved(position) if flags.contains(StateFlags::POSITION) => { - if !window_clone.is_minimized().unwrap_or_default() { + if window_clone + .state::() + .0 + .try_lock() + .is_ok() + && !window_clone.is_minimized().unwrap_or_default() + { let mut c = cache.lock().unwrap(); if let Some(state) = c.get_mut(&label) { state.prev_x = state.x; @@ -455,7 +466,12 @@ impl Builder { } } WindowEvent::Resized(size) if flags.contains(StateFlags::SIZE) => { - if !window_clone.is_minimized().unwrap_or_default() + if window_clone + .state::() + .0 + .try_lock() + .is_ok() + && !window_clone.is_minimized().unwrap_or_default() && !window_clone.is_maximized().unwrap_or_default() { let mut c = cache.lock().unwrap(); From 1d9741b52bb242d32b2ffd46fb4343a501cbd54b Mon Sep 17 00:00:00 2001 From: Felix Salazar Date: Sun, 15 Sep 2024 23:37:02 +0200 Subject: [PATCH 561/643] [upload - http-extra] fix: download content to file when unsuccessful response (and test) #1750 (#1783) * fix and test * Update Cargo.toml Co-authored-by: Fabian-Lars * Update Cargo.toml Co-authored-by: Fabian-Lars * add .change log * clippy fixes * print test error * fix tests --------- Co-authored-by: Fabian-Lars Co-authored-by: Lucas Nogueira --- .../fix-upload-handle-non-success-download.md | 5 ++ Cargo.lock | 55 +++++++++++++- plugins/upload/Cargo.toml | 4 ++ plugins/upload/src/lib.rs | 71 ++++++++++++++++++- plugins/upload/test/test.txt | 1 + 5 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 .changes/fix-upload-handle-non-success-download.md create mode 100644 plugins/upload/test/test.txt diff --git a/.changes/fix-upload-handle-non-success-download.md b/.changes/fix-upload-handle-non-success-download.md new file mode 100644 index 000000000..0bfc49131 --- /dev/null +++ b/.changes/fix-upload-handle-non-success-download.md @@ -0,0 +1,5 @@ +--- +"upload": 'patch:bug' +--- + +fix download content to file when unsuccessful response diff --git a/Cargo.lock b/Cargo.lock index b05395e97..903454e00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -337,6 +337,16 @@ dependencies = [ "zbus", ] +[[package]] +name = "assert-json-diff" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "async-broadcast" version = "0.7.1" @@ -1088,6 +1098,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + [[package]] name = "combine" version = "4.6.7" @@ -1961,7 +1981,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" dependencies = [ - "colored", + "colored 1.9.4", "log", ] @@ -2808,6 +2828,7 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa 1.0.11", "pin-project-lite", "smallvec", @@ -3623,6 +3644,30 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "mockito" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b34bd91b9e5c5b06338d392463e1318d683cf82ec3d3af4014609be6e2108d" +dependencies = [ + "assert-json-diff", + "bytes", + "colored 2.1.0", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "log", + "rand 0.8.5", + "regex", + "serde_json", + "serde_urlencoded", + "similar", + "tokio", +] + [[package]] name = "muda" version = "0.14.1" @@ -5614,6 +5659,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +[[package]] +name = "similar" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" + [[package]] name = "single-instance-example" version = "0.1.0" @@ -6811,6 +6862,7 @@ version = "2.0.0-rc.1" dependencies = [ "futures-util", "log", + "mockito", "read-progress-stream", "reqwest", "serde", @@ -7113,6 +7165,7 @@ dependencies = [ "bytes", "libc", "mio 1.0.2", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index a80217553..c43487a97 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -35,3 +35,7 @@ read-progress-stream = "1.0.0" native-tls = ["reqwest/native-tls"] native-tls-vendored = ["reqwest/native-tls-vendored"] rustls-tls = ["reqwest/rustls-tls"] + +[dev-dependencies] +mockito = "1.5.0" +tokio = { version = "*", features = ["macros"] } diff --git a/plugins/upload/src/lib.rs b/plugins/upload/src/lib.rs index 453f5665b..9351b246b 100644 --- a/plugins/upload/src/lib.rs +++ b/plugins/upload/src/lib.rs @@ -70,13 +70,19 @@ async fn download( let client = reqwest::Client::new(); let mut request = client.get(url); - // Loop trought the headers keys and values + // Loop through the headers keys and values // and add them to the request object. for (key, value) in headers { request = request.header(&key, value); } let response = request.send().await?; + if !response.status().is_success() { + return Err(Error::HttpErrorCode( + response.status().as_u16(), + response.text().await.unwrap_or_default(), + )); + } let total = response.content_length().unwrap_or(0); let mut file = BufWriter::new(File::create(file_path).await?); @@ -112,7 +118,7 @@ async fn upload( .header(reqwest::header::CONTENT_LENGTH, file_len) .body(file_to_body(on_progress, file)); - // Loop trought the headers keys and values + // Loop through the headers keys and values // and add them to the request object. for (key, value) in headers { request = request.header(&key, value); @@ -145,3 +151,64 @@ pub fn init() -> TauriPlugin { .invoke_handler(tauri::generate_handler![download, upload]) .build() } + +#[cfg(test)] +mod tests { + use super::*; + use mockito::{self, Mock, Server, ServerGuard}; + use tauri::ipc::InvokeResponseBody; + struct MockedServer { + _server: ServerGuard, + url: String, + mocked_endpoint: Mock, + } + + #[tokio::test] + async fn should_error_if_status_not_success() { + let mocked_server = spawn_server_mocked(400).await; + let result = download_file(&mocked_server.url).await; + mocked_server.mocked_endpoint.assert(); + assert!(result.is_err()); + } + + #[tokio::test] + async fn should_download_file_successfully() { + let mocked_server = spawn_server_mocked(200).await; + let result = download_file(&mocked_server.url).await; + mocked_server.mocked_endpoint.assert(); + assert!( + result.is_ok(), + "failed to download file: {}", + result.unwrap_err() + ); + } + + async fn download_file(url: &str) -> Result<()> { + let file_path = concat!(env!("CARGO_MANIFEST_DIR"), "/test/test.txt"); + let headers = HashMap::new(); + let sender: Channel = + Channel::new(|msg: InvokeResponseBody| -> tauri::Result<()> { + let _ = msg; + Ok(()) + }); + download(url, file_path, headers, sender).await + } + + async fn spawn_server_mocked(return_status: usize) -> MockedServer { + let mut _server = Server::new_async().await; + let path = "/mock_test"; + let mock = _server + .mock("GET", path) + .with_status(return_status) + .with_body("mocked response body") + .create_async() + .await; + + let url = _server.url() + path; + MockedServer { + _server, + url, + mocked_endpoint: mock, + } + } +} diff --git a/plugins/upload/test/test.txt b/plugins/upload/test/test.txt new file mode 100644 index 000000000..629b997b3 --- /dev/null +++ b/plugins/upload/test/test.txt @@ -0,0 +1 @@ +mocked response body \ No newline at end of file From dc5721ac134395bc00dbb7c0c06ff651521c0353 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 18:37:58 -0300 Subject: [PATCH 562/643] Publish New Versions (v2) (#1788) Co-authored-by: lucasfernog --- .changes/pre.json | 2 ++ Cargo.lock | 4 ++-- plugins/upload/CHANGELOG.md | 6 ++++++ plugins/upload/Cargo.toml | 2 +- plugins/window-state/CHANGELOG.md | 4 ++++ plugins/window-state/Cargo.toml | 2 +- 6 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index ee15b2683..03b4cf34d 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -22,6 +22,8 @@ ".changes/fix-linux-updater-permission-error.md", ".changes/fix-restore-minimized-window-position.md", ".changes/fix-restore-minimized-window-state.md", + ".changes/fix-restore-window-state-deadlock.md", + ".changes/fix-upload-handle-non-success-download.md", ".changes/fs-dialog-file-path-methods.md", ".changes/fs-dialog-file-path-traits.md", ".changes/fs-dialog-non-exhaustive-error.md", diff --git a/Cargo.lock b/Cargo.lock index 903454e00..d856a7f66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6858,7 +6858,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "futures-util", "log", @@ -6893,7 +6893,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "bitflags 2.6.0", "log", diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index ecaeee239..5dec7a7e1 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.2] + +### bug + +- [`1d9741b5`](https://github.com/tauri-apps/plugins-workspace/commit/1d9741b52bb242d32b2ffd46fb4343a501cbd54b) ([#1783](https://github.com/tauri-apps/plugins-workspace/pull/1783) by [@fxsalazar](https://github.com/tauri-apps/plugins-workspace/../../fxsalazar)) fix download content to file when unsuccessful response + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index c43487a97..05c682a0f 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index e3a775daf..9ffe3bb09 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.5] + +- [`7a37355e`](https://github.com/tauri-apps/plugins-workspace/commit/7a37355e177772cbddf24397d5a23280e00558af) ([#1787](https://github.com/tauri-apps/plugins-workspace/pull/1787) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix deadlock when trying to restore window states on initial load + ## \[2.0.0-rc.4] - [`204e5aac`](https://github.com/tauri-apps/plugins-workspace/commit/204e5aacad7e8f99a9a08f4a45cfed83643c1cc0) ([#1743](https://github.com/tauri-apps/plugins-workspace/pull/1743)) Fix can't restore a minimized window's size and position properly diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 0856665dd..974ef8179 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } From c078f57a09365e637d1f7c766916b20c1c41aa10 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:20:21 +0800 Subject: [PATCH 563/643] Revert "Publish New Versions (v2)" (#1792) This reverts commit dc5721ac134395bc00dbb7c0c06ff651521c0353. --- .changes/pre.json | 2 -- Cargo.lock | 4 ++-- plugins/upload/CHANGELOG.md | 6 ------ plugins/upload/Cargo.toml | 2 +- plugins/window-state/CHANGELOG.md | 4 ---- plugins/window-state/Cargo.toml | 2 +- 6 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 03b4cf34d..ee15b2683 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -22,8 +22,6 @@ ".changes/fix-linux-updater-permission-error.md", ".changes/fix-restore-minimized-window-position.md", ".changes/fix-restore-minimized-window-state.md", - ".changes/fix-restore-window-state-deadlock.md", - ".changes/fix-upload-handle-non-success-download.md", ".changes/fs-dialog-file-path-methods.md", ".changes/fs-dialog-file-path-traits.md", ".changes/fs-dialog-non-exhaustive-error.md", diff --git a/Cargo.lock b/Cargo.lock index d856a7f66..903454e00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6858,7 +6858,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0-rc.2" +version = "2.0.0-rc.1" dependencies = [ "futures-util", "log", @@ -6893,7 +6893,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.5" +version = "2.0.0-rc.4" dependencies = [ "bitflags 2.6.0", "log", diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index 5dec7a7e1..ecaeee239 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,11 +1,5 @@ # Changelog -## \[2.0.0-rc.2] - -### bug - -- [`1d9741b5`](https://github.com/tauri-apps/plugins-workspace/commit/1d9741b52bb242d32b2ffd46fb4343a501cbd54b) ([#1783](https://github.com/tauri-apps/plugins-workspace/pull/1783) by [@fxsalazar](https://github.com/tauri-apps/plugins-workspace/../../fxsalazar)) fix download content to file when unsuccessful response - ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 05c682a0f..c43487a97 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0-rc.2" +version = "2.0.0-rc.1" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index 9ffe3bb09..e3a775daf 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,9 +1,5 @@ # Changelog -## \[2.0.0-rc.5] - -- [`7a37355e`](https://github.com/tauri-apps/plugins-workspace/commit/7a37355e177772cbddf24397d5a23280e00558af) ([#1787](https://github.com/tauri-apps/plugins-workspace/pull/1787) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix deadlock when trying to restore window states on initial load - ## \[2.0.0-rc.4] - [`204e5aac`](https://github.com/tauri-apps/plugins-workspace/commit/204e5aacad7e8f99a9a08f4a45cfed83643c1cc0) ([#1743](https://github.com/tauri-apps/plugins-workspace/pull/1743)) Fix can't restore a minimized window's size and position properly diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 974ef8179..0856665dd 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.5" +version = "2.0.0-rc.4" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } From 2050a3bea20b1f2484ff8affb8d86e914dd32b69 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:20:52 +0800 Subject: [PATCH 564/643] fix(upload): change tokio version to 1 instead of * (#1793) --- plugins/upload/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index c43487a97..64da6a03b 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -38,4 +38,4 @@ rustls-tls = ["reqwest/rustls-tls"] [dev-dependencies] mockito = "1.5.0" -tokio = { version = "*", features = ["macros"] } +tokio = { version = "1", features = ["macros"] } From 5d39ddcf227a4579fe0f4027ee55b9459142944f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:21:19 +0800 Subject: [PATCH 565/643] chore(deps): lock file maintenance (#1791) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 86 ++++++++++++++++++++++++++------------------------ pnpm-lock.yaml | 24 +++++++------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 903454e00..b1e6e7159 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -206,9 +206,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "arboard" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" +checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" dependencies = [ "clipboard-win", "core-graphics 0.23.2", @@ -304,9 +304,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -441,9 +441,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.2.4" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ "async-channel", "async-io", @@ -456,7 +456,6 @@ dependencies = [ "futures-lite", "rustix", "tracing", - "windows-sys 0.59.0", ] [[package]] @@ -893,9 +892,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.18" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" dependencies = [ "shlex", ] @@ -1908,9 +1907,9 @@ dependencies = [ [[package]] name = "error-code" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b" +checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] name = "etcetera" @@ -2546,9 +2545,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "global-hotkey" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b86f7342b0e2abcf5e50ed8afd8bb9ffb6e30619d90f1e1a774b934a61f3e9" +checksum = "d1b75248f33c73df1ed69673f6cb36d2e048ae84d29aa1d3e53199d138ebb1df" dependencies = [ "crossbeam-channel", "keyboard-types", @@ -2873,9 +2872,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" dependencies = [ "bytes", "futures-channel", @@ -3484,9 +3483,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "mac-notification-sys" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +checksum = "dce8f34f3717aa37177e723df6c1fc5fb02b2a1087374ea3fe0ea42316dc8f91" dependencies = [ "cc", "dirs-next", @@ -3816,9 +3815,9 @@ dependencies = [ [[package]] name = "notify-rust" -version = "4.11.1" +version = "4.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a1d03b6305ecefdd9c6c60150179bb8d9f0cd4e64bbcad1e41419e7bf5e414" +checksum = "5134a72dc570b178bff81b01e81ab14a6fcc015391ed4b3b14853090658cd3a3" dependencies = [ "log", "mac-notification-sys", @@ -4059,9 +4058,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" [[package]] name = "opaque-debug" @@ -4878,9 +4877,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" dependencies = [ "bitflags 2.6.0", ] @@ -5183,9 +5182,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -5196,9 +5195,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "once_cell", "ring", @@ -5252,9 +5251,9 @@ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -6312,13 +6311,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e5d4a319f11ae72c77d0f4dbd9703ab6b401eb91d1ca88d89c33d13d4ea20c" +checksum = "0a283cb3d25e46e2f5d99f0068928dadaca4a19558c555f91a5064e3299c691d" dependencies = [ "anyhow", "bytes", - "cocoa", "dirs 5.0.1", "dunce", "embed_plist", @@ -6335,7 +6333,9 @@ dependencies = [ "log", "mime", "muda", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", "plist", "raw-window-handle", @@ -6925,15 +6925,17 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "466c418aef2ddc7d31173a5b00bfae3df9b58ed66644339f3ca55008bfc54f25" +checksum = "e17625b7cf63958d53945e199391d11c9f195fb3d1cb8aeb64dc3084d0091b92" dependencies = [ - "cocoa", "gtk", "http", "jni", "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", "raw-window-handle", "softbuffer", @@ -7544,9 +7546,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -7565,9 +7567,9 @@ checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode_categories" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88ff31a05..9a4e13db1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2743,9 +2743,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0(mocha@10.7.3)': + '@covector/assemble@0.12.0': dependencies: - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2756,10 +2756,9 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/changelog@0.12.0(mocha@10.7.3)': + '@covector/changelog@0.12.0': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2769,16 +2768,14 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/command@0.8.0(mocha@10.7.3)': + '@covector/command@0.8.0': dependencies: - '@effection/process': 2.1.4(mocha@10.7.3) + '@effection/process': 2.1.4 effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding - - mocha '@covector/files@0.8.0': dependencies: @@ -2825,8 +2822,10 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 + transitivePeerDependencies: + - encoding - '@effection/process@2.1.4(mocha@10.7.3)': + '@effection/process@2.1.4': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2834,7 +2833,6 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding - - mocha '@effection/stream@2.0.6': dependencies: @@ -3680,9 +3678,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0(mocha@10.7.3) - '@covector/changelog': 0.12.0(mocha@10.7.3) - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/assemble': 0.12.0 + '@covector/changelog': 0.12.0 + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From d8efd3cd202f1aee47d9cfedfad383762fd8bd18 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 07:00:22 -0300 Subject: [PATCH 566/643] Publish New Versions (v2) (#1794) Co-authored-by: amrbashir --- .changes/pre.json | 2 ++ Cargo.lock | 4 ++-- plugins/upload/CHANGELOG.md | 6 ++++++ plugins/upload/Cargo.toml | 2 +- plugins/window-state/CHANGELOG.md | 4 ++++ plugins/window-state/Cargo.toml | 2 +- 6 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index ee15b2683..03b4cf34d 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -22,6 +22,8 @@ ".changes/fix-linux-updater-permission-error.md", ".changes/fix-restore-minimized-window-position.md", ".changes/fix-restore-minimized-window-state.md", + ".changes/fix-restore-window-state-deadlock.md", + ".changes/fix-upload-handle-non-success-download.md", ".changes/fs-dialog-file-path-methods.md", ".changes/fs-dialog-file-path-traits.md", ".changes/fs-dialog-non-exhaustive-error.md", diff --git a/Cargo.lock b/Cargo.lock index b1e6e7159..9dd3c969d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6858,7 +6858,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "futures-util", "log", @@ -6893,7 +6893,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "bitflags 2.6.0", "log", diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index ecaeee239..5dec7a7e1 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.2] + +### bug + +- [`1d9741b5`](https://github.com/tauri-apps/plugins-workspace/commit/1d9741b52bb242d32b2ffd46fb4343a501cbd54b) ([#1783](https://github.com/tauri-apps/plugins-workspace/pull/1783) by [@fxsalazar](https://github.com/tauri-apps/plugins-workspace/../../fxsalazar)) fix download content to file when unsuccessful response + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 64da6a03b..2e90bfb42 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index e3a775daf..9ffe3bb09 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.5] + +- [`7a37355e`](https://github.com/tauri-apps/plugins-workspace/commit/7a37355e177772cbddf24397d5a23280e00558af) ([#1787](https://github.com/tauri-apps/plugins-workspace/pull/1787) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix deadlock when trying to restore window states on initial load + ## \[2.0.0-rc.4] - [`204e5aac`](https://github.com/tauri-apps/plugins-workspace/commit/204e5aacad7e8f99a9a08f4a45cfed83643c1cc0) ([#1743](https://github.com/tauri-apps/plugins-workspace/pull/1743)) Fix can't restore a minimized window's size and position properly diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 0856665dd..974ef8179 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } From 179184326b123c95a75d4ab41657ac4cd7d41bc8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 12:08:42 +0200 Subject: [PATCH 567/643] chore(deps): update tauri monorepo (v2) (#1789) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 +- Cargo.toml | 2 +- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++--------- 8 files changed, 61 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9dd3c969d..fe11410ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6311,9 +6311,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.13" +version = "2.0.0-rc.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a283cb3d25e46e2f5d99f0068928dadaca4a19558c555f91a5064e3299c691d" +checksum = "2fa32e2741bda64c1da02d93252a466893180052fc6de61c8803b0356504b70d" dependencies = [ "anyhow", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 7f8d0f21c..d759171f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.12", default-features = false } +tauri = { version = "2.0.0-rc.14", default-features = false } tauri-build = "2.0.0-rc.11" tauri-plugin = "2.0.0-rc.11" tauri-utils = "2.0.0-rc.11" diff --git a/examples/api/package.json b/examples/api/package.json index 2a1c62e50..932adc678 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -31,7 +31,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.14", + "@tauri-apps/cli": "2.0.0-rc.15", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 23da8e15a..1d23da99a 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.14", + "@tauri-apps/cli": "2.0.0-rc.15", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index c6ef8747d..489267a1c 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.14" + "@tauri-apps/cli": "2.0.0-rc.15" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 14be654a0..b7c3fcf75 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.14", + "@tauri-apps/cli": "2.0.0-rc.15", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 30134a433..1a9c39609 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.14", + "@tauri-apps/cli": "2.0.0-rc.15", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a4e13db1..bf81c9c78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -119,8 +119,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) '@tauri-apps/cli': - specifier: 2.0.0-rc.14 - version: 2.0.0-rc.14 + specifier: 2.0.0-rc.15 + version: 2.0.0-rc.15 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.3 @@ -180,8 +180,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.14 - version: 2.0.0-rc.14 + specifier: 2.0.0-rc.15 + version: 2.0.0-rc.15 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -270,8 +270,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.14 - version: 2.0.0-rc.14 + specifier: 2.0.0-rc.15 + version: 2.0.0-rc.15 plugins/sql: dependencies: @@ -288,8 +288,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.14 - version: 2.0.0-rc.14 + specifier: 2.0.0-rc.15 + version: 2.0.0-rc.15 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -328,8 +328,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.14 - version: 2.0.0-rc.14 + specifier: 2.0.0-rc.15 + version: 2.0.0-rc.15 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -1054,68 +1054,68 @@ packages: '@tauri-apps/api@2.0.0-rc.4': resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.14': - resolution: {integrity: sha512-QBdzhwj+ewRi2tA+3jCiEMp5y9WYR3p33bwVHPC33oyrDFlXMNOpwsJa9VBHUU04pr6mq1ujrouHNBAlj78Lvw==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15': + resolution: {integrity: sha512-WuzQRELJTeSHe/uLu6IClCCEkwQy4qtZdHUmcAW3baKD217WCytn4jQ5+NFs2GxhK1a2GLHMQtQZSFTLkKiXkw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.14': - resolution: {integrity: sha512-m48s2+EIUYoq5T26CKq11TThRBlY5LorCmUKDO+OzIL87h5sXhYwAYKkskJ1aDc8gf3incq+cQhw2FfCkHk60A==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.15': + resolution: {integrity: sha512-71H1dNWlEr+Hyi096Ir3SnlClw4CSR4MhJ8UG8IUBqYwydJPYFzA+GFWRAgnPgcV6sBzdt8trcV9BLV4teDzEw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.14': - resolution: {integrity: sha512-otGNUBERFQhuR+qYTTjMgoMUptc+EefyXsPQap7gFRAY6j5bBTiKOofE4XyOd6wFZ6OLI12uICm9j4kMjiPkzA==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15': + resolution: {integrity: sha512-hO7AS09l6XZRCu/vqvB/iv6CvIlD//h9njhyw++0tJPCNH3X4rl13ji6SnoO0V6ZUCEeCeQBTAALsanYAlZelQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.14': - resolution: {integrity: sha512-ZCfd2N/IPQCEjrRyIeBK7nII//i34taAS6BbhDMuOXzBAz6r9angQKL42qW89mQDJZwckNHFiVMcOqBrrVo7TQ==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15': + resolution: {integrity: sha512-r9FrwY83TD4w3vX7J9zS3GPSeis0YWq52p/MVLYR1i8sSJppbvYY72EXi5pR2CZ3vb+6z9/w7LpYTv+hOd2RbA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.14': - resolution: {integrity: sha512-8zMZGVvehZSSn+TCt0D8uKXDqMviWYMNgfAc+XKWcbEpJKsAaDfC8UEFikpr1HBV/1kGrq0AMko+91f6o5/g6w==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15': + resolution: {integrity: sha512-PqMn3/GiqLAhs7p0jr5XqwWN1t7SAgvo6+bFuYNL/SWx1Ui6mOck3ncfDkf+dQAnXnrhX2Qfwkl3agiOZxUZtA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.14': - resolution: {integrity: sha512-NgEQ9f/Ce2SLDT0CNSpeew7BikTAOO3I2WM+FPuYyAaDnvrHnC67v3RyC5/j5xTkMMjRPsVPvsedtQNZjlq3tw==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15': + resolution: {integrity: sha512-o8lvgVBGXwthMV8+8EzEwXQY5jk2q+c700xeC/LY+J0lBL5ai3i0revlhO+3RwKnjnRLZMCXatr5K3gGtXIsoQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.14': - resolution: {integrity: sha512-h+/eJqWfwqzBXEJhmdNsYrUII7d9sz8UYWWS1cQFeCQRPW5rMVotySI7TCrmKOx0mZDKd9zWClYwUviBinG6Kg==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15': + resolution: {integrity: sha512-cmANCyhcdInZSfIM3CPjA0eDu1toYABapSttA1rHbNrcJrHIq2KPKRCNuXIjWiBggxfIhJKWX7mTgQCQIyHd/w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.14': - resolution: {integrity: sha512-bM8kGZJQCahTJQCdaF3h4ta83HvrIA8JEBUEHvrxxpiUpdtymOyW7uSSdjYB0pdmotZx44oEKiXeK2xcc9rZaw==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15': + resolution: {integrity: sha512-FyWwCQb+uCCBtEDTDKtILH3wv0TWCQ2mXwMyZlibpbZ4RbaV5yDY82h8h7usfEuPHtBtAJHknHvX5WV1ETl5kw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.14': - resolution: {integrity: sha512-dxzPebtvI9EhqIzP33WbsPKoxyBejozw7Ie6GMpQ8oV2bogYfOgEu2r9hwzZ7nNfVldOD6PWKzgo0rwAvfxnAQ==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15': + resolution: {integrity: sha512-+bOBX7EdpmkCSBxgd9HcC/p9LoG/q1a5dJebWFuL9GhmdPeb5hv4plB/OTUAtg1OnEVGPXhTiSkcdRatZVryfA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.14': - resolution: {integrity: sha512-XZ97TfOAL3KFr6pF51oWKZNXueFSmkpjkZdyk2/aVvzsiqGZtfPwGkL7YMCBbUA8q9ysaosdMvcGpBmvhHkLPQ==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15': + resolution: {integrity: sha512-Phpk18bs1YxC+OFYaZNWiddYRmiZvMjB9Rzjl6M128gIkgnqDGnZyfWtM5GZ85/BmX1HVGgILK/46RU6Q88z1g==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.14': - resolution: {integrity: sha512-AQST26ixCoVf32PSsSjfUCQY9SrawzDEgUpKXjelUeD9oROzbxlRw5tOYRTsxg9YDat2uWJ3xz7WXW6T0VEfNw==} + '@tauri-apps/cli@2.0.0-rc.15': + resolution: {integrity: sha512-w5cq2WBKYRJDCE5wi5gyjM79Cq3AchTFImbcGBB+uyB/m3PDBXEidaTBTHqwiup2hKbMivuBAzGUCHt+OfgBhA==} engines: {node: '>= 10'} hasBin: true @@ -3192,48 +3192,48 @@ snapshots: '@tauri-apps/api@2.0.0-rc.4': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.14': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.14': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.15': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.14': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.14': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.14': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.14': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.14': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.14': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.14': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.14': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15': optional: true - '@tauri-apps/cli@2.0.0-rc.14': + '@tauri-apps/cli@2.0.0-rc.15': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.14 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.14 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.14 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.14 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.14 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.14 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.14 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.14 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.14 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.14 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.15 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.15 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.15 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.15 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.15 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.15 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.15 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.15 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.15 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.15 '@types/eslint@9.6.1': dependencies: From ca3497226675ab12c0db549bf55a134bc3e734ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 13:13:15 +0200 Subject: [PATCH 568/643] fix(deps): update rust crate tokio-tungstenite to 0.24 (v2) (#1781) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- plugins/websocket/Cargo.toml | 2 +- .../websocket/examples/tauri-app/src-tauri/Cargo.toml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fe11410ee..e54a24ed8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7233,15 +7233,15 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", "native-tls", "rustls", - "rustls-native-certs 0.7.3", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", "tokio-native-tls", @@ -7446,9 +7446,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index a36b8761d..19efdfb01 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -27,7 +27,7 @@ http = "1" rand = "0.8" futures-util = "0.3" tokio = { version = "1", features = ["net", "sync"] } -tokio-tungstenite = { version = "0.23" } +tokio-tungstenite = { version = "0.24" } [features] default = ["rustls-tls"] diff --git a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index c80fbb297..3c789abac 100644 --- a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -11,7 +11,7 @@ tauri = { workspace = true, features = ["wry", "compression"] } tokio = { version = "1", features = ["net"] } futures-util = "0.3" tauri-plugin-websocket = { path = "../../../" } -tokio-tungstenite = "0.23" +tokio-tungstenite = "0.24" [build-dependencies] tauri-build = { workspace = true } From fd75401aee66d233a633d9bc9971706da44bbc87 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 13:20:08 +0200 Subject: [PATCH 569/643] fix(deps): update rust crate image to 0.25 (v2) (#1418) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- Cargo.lock | 326 +++++++++++++++++++++-- plugins/clipboard-manager/Cargo.toml | 2 +- plugins/clipboard-manager/src/desktop.rs | 2 +- 3 files changed, 303 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e54a24ed8..f6a869e8d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -102,6 +102,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -292,7 +298,7 @@ checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" dependencies = [ "clipboard-win", "core-graphics 0.23.2", - "image 0.25.2", + "image", "log", "objc2", "objc2-app-kit", @@ -302,6 +308,17 @@ dependencies = [ "x11rb", ] +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -559,6 +576,29 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "av1-grain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +dependencies = [ + "arrayvec", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -634,6 +674,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bitstream-io" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" + [[package]] name = "bitvec" version = "1.0.1" @@ -757,6 +803,12 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "built" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "236e6289eda5a812bc6b53c3b024039382a2895fbbeef2d748b2931546d392c4" + [[package]] name = "bumpalo" version = "3.16.0" @@ -896,6 +948,8 @@ version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" dependencies = [ + "jobserver", + "libc", "shlex", ] @@ -2949,24 +3003,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "image" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "exr", - "gif", - "jpeg-decoder", - "num-traits", - "png", - "qoi", - "tiff", -] - [[package]] name = "image" version = "0.25.2" @@ -2975,11 +3011,37 @@ checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" dependencies = [ "bytemuck", "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", "num-traits", "png", + "qoi", + "ravif", + "rayon", + "rgb", "tiff", + "zune-core", + "zune-jpeg", ] +[[package]] +name = "image-webp" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" +dependencies = [ + "byteorder-lite", + "quick-error 2.0.1", +] + +[[package]] +name = "imgref" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" + [[package]] name = "indexmap" version = "1.9.3" @@ -3050,6 +3112,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "iota-crypto" version = "0.23.2" @@ -3150,6 +3223,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d101775d2bc8f99f4ac18bf29b9ed70c0dd138b9a1e88d7b80179470cbbe8bd2" +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -3207,14 +3289,20 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "jpeg-decoder" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -dependencies = [ - "rayon", -] [[package]] name = "js-sys" @@ -3374,6 +3462,17 @@ dependencies = [ "rle-decode-fast", ] +[[package]] +name = "libfuzzer-sys" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" +dependencies = [ + "arbitrary", + "cc", + "once_cell", +] + [[package]] name = "libloading" version = "0.7.4" @@ -3475,6 +3574,15 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + [[package]] name = "mac" version = "0.1.1" @@ -3538,6 +3646,16 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + [[package]] name = "md-5" version = "0.10.6" @@ -3779,6 +3897,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + [[package]] name = "notify" version = "6.1.1" @@ -3836,6 +3960,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -3859,6 +3993,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "num-integer" version = "0.1.46" @@ -3879,6 +4024,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -4625,6 +4781,25 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" +dependencies = [ + "quote", + "syn 2.0.77", +] + [[package]] name = "psl-types" version = "2.0.11" @@ -4676,6 +4851,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quick-xml" version = "0.31.0" @@ -4838,6 +5019,57 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand 0.8.5", + "rand_chacha 0.3.1", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85be49d628515bb99a01c44200009f0a4167c252f036445b975b35daf952258c" +dependencies = [ + "avif-serialize", + "bitstream-io", + "imgref", + "loop9", + "quick-error 2.0.1", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -5039,6 +5271,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "rgb" +version = "0.8.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" +dependencies = [ + "bytemuck", +] + [[package]] name = "ring" version = "0.17.8" @@ -5273,7 +5514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", - "quick-error", + "quick-error 1.2.3", "tempfile", "wait-timeout", ] @@ -5652,6 +5893,15 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "simdutf8" version = "0.1.4" @@ -6327,7 +6577,7 @@ dependencies = [ "heck 0.5.0", "http", "http-range", - "image 0.25.2", + "image", "jni", "libc", "log", @@ -6502,7 +6752,7 @@ name = "tauri-plugin-clipboard-manager" version = "2.0.0-rc.4" dependencies = [ "arboard", - "image 0.24.9", + "image", "log", "serde", "serde_json", @@ -7669,6 +7919,17 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "v_frame" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.0" @@ -8726,6 +8987,12 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + [[package]] name = "zune-inflate" version = "0.2.54" @@ -8735,6 +9002,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "zune-jpeg" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768" +dependencies = [ + "zune-core", +] + [[package]] name = "zvariant" version = "4.0.0" diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index db416d777..84ee04640 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -29,4 +29,4 @@ tauri = { workspace = true, features = ["wry"] } [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] arboard = "3" -image = "0.24" +image = "0.25" diff --git a/plugins/clipboard-manager/src/desktop.rs b/plugins/clipboard-manager/src/desktop.rs index 899a5b1c6..bb8ba3186 100644 --- a/plugins/clipboard-manager/src/desktop.rs +++ b/plugins/clipboard-manager/src/desktop.rs @@ -91,7 +91,7 @@ impl Clipboard { &image.bytes, image.width as u32, image.height as u32, - image::ColorType::Rgba8, + image::ExtendedColorType::Rgba8, )?; let image = Image::new_owned(buffer, image.width as u32, image.height as u32); From 60765694f54875e22b8eb70b1d2e32dbf0c585c7 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Mon, 16 Sep 2024 11:01:13 -0300 Subject: [PATCH 570/643] refactor(geolocation): simplify API, defer permission checks (#1773) --- .changes/geolocation-permission-refactor.md | 5 + .changes/update-geolocation-api.md | 5 + .gitignore | 8 +- .prettierignore | 1 + Cargo.lock | 2 + examples/api/.gitignore | 2 - examples/api/dist/.gitkeep | 0 examples/api/package.json | 2 + examples/api/src-tauri/Cargo.toml | 2 + .../api/src-tauri/capabilities/mobile.json | 6 +- .../api/src-tauri/gen/android/.idea/misc.xml | 1 - .../src-tauri/gen/schemas/desktop-schema.json | 5713 ------------ .../src-tauri/gen/schemas/mobile-schema.json | 7661 ----------------- examples/api/src-tauri/src/lib.rs | 2 + examples/api/src/App.svelte | 333 +- examples/api/src/views/Geolocation.svelte | 29 + plugins/geolocation/README.md | 31 +- .../src/main/java/GeolocationPlugin.kt | 112 +- plugins/geolocation/api-iife.js | 2 +- plugins/geolocation/build.rs | 2 +- plugins/geolocation/guest-js/bindings.ts | 248 - plugins/geolocation/guest-js/index.ts | 147 +- .../commands/clear_positions.toml | 13 - .../commands/request_permissions.toml | 13 + .../permissions/autogenerated/reference.md | 52 +- .../permissions/schemas/schema.json | 20 +- plugins/geolocation/src/mobile.rs | 5 +- pnpm-lock.yaml | 6 + 28 files changed, 454 insertions(+), 13969 deletions(-) create mode 100644 .changes/geolocation-permission-refactor.md create mode 100644 .changes/update-geolocation-api.md delete mode 100644 examples/api/.gitignore delete mode 100644 examples/api/dist/.gitkeep delete mode 100644 examples/api/src-tauri/gen/schemas/desktop-schema.json delete mode 100644 examples/api/src-tauri/gen/schemas/mobile-schema.json create mode 100644 examples/api/src/views/Geolocation.svelte delete mode 100644 plugins/geolocation/guest-js/bindings.ts delete mode 100644 plugins/geolocation/permissions/autogenerated/commands/clear_positions.toml create mode 100644 plugins/geolocation/permissions/autogenerated/commands/request_permissions.toml diff --git a/.changes/geolocation-permission-refactor.md b/.changes/geolocation-permission-refactor.md new file mode 100644 index 000000000..200146153 --- /dev/null +++ b/.changes/geolocation-permission-refactor.md @@ -0,0 +1,5 @@ +--- +"geolocation": patch +--- + +No longer request permission automatically and leave to the user how to handle the `checkPermissions` and `requestPermissions` APIs. diff --git a/.changes/update-geolocation-api.md b/.changes/update-geolocation-api.md new file mode 100644 index 000000000..709e9fa05 --- /dev/null +++ b/.changes/update-geolocation-api.md @@ -0,0 +1,5 @@ +--- +"geolocation-js": patch +--- + +Update API to match other plugins. diff --git a/.gitignore b/.gitignore index f9d6a360f..72e5a397a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,15 @@ target/ # compiled plugins dist-js/ -# plugins .tauri director +# 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 diff --git a/.prettierignore b/.prettierignore index fa45e2c0a..bc4fca6de 100644 --- a/.prettierignore +++ b/.prettierignore @@ -24,3 +24,4 @@ CHANGELOG.md # mobile build **/ios/.build **/.tauri +plugins/*/android/build diff --git a/Cargo.lock b/Cargo.lock index f6a869e8d..1b1461f60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -231,7 +231,9 @@ dependencies = [ "tauri-plugin-clipboard-manager", "tauri-plugin-dialog", "tauri-plugin-fs", + "tauri-plugin-geolocation", "tauri-plugin-global-shortcut", + "tauri-plugin-haptics", "tauri-plugin-http", "tauri-plugin-log", "tauri-plugin-nfc", diff --git a/examples/api/.gitignore b/examples/api/.gitignore deleted file mode 100644 index fb4eb33ac..000000000 --- a/examples/api/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist/* -!/dist/.gitkeep diff --git a/examples/api/dist/.gitkeep b/examples/api/dist/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/api/package.json b/examples/api/package.json index 932adc678..c3dc0a9e4 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -16,7 +16,9 @@ "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.2", "@tauri-apps/plugin-dialog": "2.0.0-rc.1", "@tauri-apps/plugin-fs": "2.0.0-rc.2", + "@tauri-apps/plugin-geolocation": "2.0.0-rc.1", "@tauri-apps/plugin-global-shortcut": "2.0.0-rc.1", + "@tauri-apps/plugin-haptics": "2.0.0-rc.1", "@tauri-apps/plugin-http": "2.0.0-rc.2", "@tauri-apps/plugin-nfc": "2.0.0-rc.1", "@tauri-apps/plugin-notification": "2.0.0-rc.1", diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 443e50c28..4fdb6fdf7 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -59,6 +59,8 @@ tauri-plugin-window-state = { path = "../../../plugins/window-state", version = tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.4" } tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-rc.3" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-rc.3" } +tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.0-rc.3" } +tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.0-rc.3" } [features] prod = ["tauri/custom-protocol"] diff --git a/examples/api/src-tauri/capabilities/mobile.json b/examples/api/src-tauri/capabilities/mobile.json index 40f547ff1..93d46ad24 100644 --- a/examples/api/src-tauri/capabilities/mobile.json +++ b/examples/api/src-tauri/capabilities/mobile.json @@ -11,6 +11,10 @@ "barcode-scanner:allow-scan", "barcode-scanner:allow-cancel", "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" ] } diff --git a/examples/api/src-tauri/gen/android/.idea/misc.xml b/examples/api/src-tauri/gen/android/.idea/misc.xml index 0ad17cbd3..8978d23db 100644 --- a/examples/api/src-tauri/gen/android/.idea/misc.xml +++ b/examples/api/src-tauri/gen/android/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/examples/api/src-tauri/gen/schemas/desktop-schema.json b/examples/api/src-tauri/gen/schemas/desktop-schema.json deleted file mode 100644 index 6853acb0e..000000000 --- a/examples/api/src-tauri/gen/schemas/desktop-schema.json +++ /dev/null @@ -1,5713 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CapabilityFile", - "description": "Capability formats accepted in a capability file.", - "anyOf": [ - { - "description": "A single capability.", - "allOf": [ - { - "$ref": "#/definitions/Capability" - } - ] - }, - { - "description": "A list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - }, - { - "description": "A list of capabilities.", - "type": "object", - "required": [ - "capabilities" - ], - "properties": { - "capabilities": { - "description": "The list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - } - } - } - ], - "definitions": { - "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, \"platforms\": [\"macOS\",\"windows\"] } ```", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", - "type": "string" - }, - "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", - "anyOf": [ - { - "$ref": "#/definitions/CapabilityRemote" - }, - { - "type": "null" - } - ] - }, - "local": { - "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", - "default": true, - "type": "boolean" - }, - "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - }, - "uniqueItems": true - }, - "platforms": { - "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "CapabilityRemote": { - "description": "Configuration for remote URLs that are associated with the capability.", - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionEntry": { - "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", - "anyOf": [ - { - "description": "Reference a permission or permission set by identifier.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - { - "description": "Reference a permission or permission set by identifier and extends its scope.", - "type": "object", - "allOf": [ - { - "if": { - "properties": { - "identifier": { - "anyOf": [ - { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", - "type": "string", - "const": "fs:default" - }, - { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "const": "fs:allow-app-meta" - }, - { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "const": "fs:allow-app-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the application folders.", - "type": "string", - "const": "fs:allow-app-read" - }, - { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", - "type": "string", - "const": "fs:allow-app-read-recursive" - }, - { - "description": "This allows non-recursive write access to the application folders.", - "type": "string", - "const": "fs:allow-app-write" - }, - { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", - "type": "string", - "const": "fs:allow-app-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appcache-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appcache-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", - "type": "string", - "const": "fs:allow-appcache-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appcache-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", - "type": "string", - "const": "fs:allow-appcache-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appcache-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appconfig-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appconfig-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:allow-appconfig-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appconfig-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:allow-appconfig-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appconfig-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appdata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appdata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", - "type": "string", - "const": "fs:allow-appdata-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appdata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", - "type": "string", - "const": "fs:allow-appdata-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appdata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applocaldata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:allow-applocaldata-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applocaldata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:allow-applocaldata-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applocaldata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applog-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applog-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", - "type": "string", - "const": "fs:allow-applog-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applog-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", - "type": "string", - "const": "fs:allow-applog-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applog-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-audio-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-audio-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", - "type": "string", - "const": "fs:allow-audio-read" - }, - { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-audio-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", - "type": "string", - "const": "fs:allow-audio-write" - }, - { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-audio-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-cache-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-cache-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$CACHE` folder.", - "type": "string", - "const": "fs:allow-cache-read" - }, - { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-cache-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$CACHE` folder.", - "type": "string", - "const": "fs:allow-cache-write" - }, - { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-cache-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-config-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-config-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", - "type": "string", - "const": "fs:allow-config-read" - }, - { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-config-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", - "type": "string", - "const": "fs:allow-config-write" - }, - { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-config-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-data-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-data-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DATA` folder.", - "type": "string", - "const": "fs:allow-data-read" - }, - { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-data-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DATA` folder.", - "type": "string", - "const": "fs:allow-data-write" - }, - { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-data-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-desktop-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-desktop-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", - "type": "string", - "const": "fs:allow-desktop-read" - }, - { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-desktop-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", - "type": "string", - "const": "fs:allow-desktop-write" - }, - { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-desktop-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-document-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-document-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:allow-document-read" - }, - { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-document-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:allow-document-write" - }, - { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-document-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-download-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-download-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:allow-download-read" - }, - { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-download-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:allow-download-write" - }, - { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-download-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-exe-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-exe-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$EXE` folder.", - "type": "string", - "const": "fs:allow-exe-read" - }, - { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-exe-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$EXE` folder.", - "type": "string", - "const": "fs:allow-exe-write" - }, - { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-exe-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-font-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-font-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$FONT` folder.", - "type": "string", - "const": "fs:allow-font-read" - }, - { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-font-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$FONT` folder.", - "type": "string", - "const": "fs:allow-font-write" - }, - { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-font-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-home-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-home-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$HOME` folder.", - "type": "string", - "const": "fs:allow-home-read" - }, - { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-home-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$HOME` folder.", - "type": "string", - "const": "fs:allow-home-write" - }, - { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-home-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-localdata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-localdata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:allow-localdata-read" - }, - { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-localdata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:allow-localdata-write" - }, - { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-localdata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-log-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-log-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$LOG` folder.", - "type": "string", - "const": "fs:allow-log-read" - }, - { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-log-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$LOG` folder.", - "type": "string", - "const": "fs:allow-log-write" - }, - { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-log-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-picture-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-picture-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", - "type": "string", - "const": "fs:allow-picture-read" - }, - { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-picture-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", - "type": "string", - "const": "fs:allow-picture-write" - }, - { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-picture-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-public-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-public-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", - "type": "string", - "const": "fs:allow-public-read" - }, - { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-public-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", - "type": "string", - "const": "fs:allow-public-write" - }, - { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-public-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-resource-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-resource-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", - "type": "string", - "const": "fs:allow-resource-read" - }, - { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-resource-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", - "type": "string", - "const": "fs:allow-resource-write" - }, - { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-resource-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-runtime-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-runtime-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", - "type": "string", - "const": "fs:allow-runtime-read" - }, - { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-runtime-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", - "type": "string", - "const": "fs:allow-runtime-write" - }, - { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-runtime-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-temp-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-temp-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$TEMP` folder.", - "type": "string", - "const": "fs:allow-temp-read" - }, - { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-temp-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$TEMP` folder.", - "type": "string", - "const": "fs:allow-temp-write" - }, - { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-temp-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-template-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-template-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:allow-template-read" - }, - { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-template-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:allow-template-write" - }, - { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-template-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-video-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-video-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", - "type": "string", - "const": "fs:allow-video-read" - }, - { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-video-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", - "type": "string", - "const": "fs:allow-video-write" - }, - { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-video-write-recursive" - }, - { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", - "type": "string", - "const": "fs:deny-default" - }, - { - "description": "Enables the copy_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-copy-file" - }, - { - "description": "Enables the create command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-create" - }, - { - "description": "Enables the exists command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-exists" - }, - { - "description": "Enables the fstat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-fstat" - }, - { - "description": "Enables the ftruncate command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-ftruncate" - }, - { - "description": "Enables the lstat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-lstat" - }, - { - "description": "Enables the mkdir command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-mkdir" - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-open" - }, - { - "description": "Enables the read command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read" - }, - { - "description": "Enables the read_dir command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-dir" - }, - { - "description": "Enables the read_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-file" - }, - { - "description": "Enables the read_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file" - }, - { - "description": "Enables the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file-lines" - }, - { - "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file-lines-next" - }, - { - "description": "Enables the remove command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-remove" - }, - { - "description": "Enables the rename command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-rename" - }, - { - "description": "Enables the seek command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-seek" - }, - { - "description": "Enables the stat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-stat" - }, - { - "description": "Enables the truncate command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-truncate" - }, - { - "description": "Enables the unwatch command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-unwatch" - }, - { - "description": "Enables the watch command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-watch" - }, - { - "description": "Enables the write command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write" - }, - { - "description": "Enables the write_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write-file" - }, - { - "description": "Enables the write_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write-text-file" - }, - { - "description": "This permissions allows to create the application specific directories.\n", - "type": "string", - "const": "fs:create-app-specific-dirs" - }, - { - "description": "Denies the copy_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-copy-file" - }, - { - "description": "Denies the create command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-create" - }, - { - "description": "Denies the exists command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-exists" - }, - { - "description": "Denies the fstat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-fstat" - }, - { - "description": "Denies the ftruncate command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-ftruncate" - }, - { - "description": "Denies the lstat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-lstat" - }, - { - "description": "Denies the mkdir command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-mkdir" - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-open" - }, - { - "description": "Denies the read command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read" - }, - { - "description": "Denies the read_dir command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-dir" - }, - { - "description": "Denies the read_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-file" - }, - { - "description": "Denies the read_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file" - }, - { - "description": "Denies the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file-lines" - }, - { - "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file-lines-next" - }, - { - "description": "Denies the remove command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-remove" - }, - { - "description": "Denies the rename command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-rename" - }, - { - "description": "Denies the seek command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-seek" - }, - { - "description": "Denies the stat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-stat" - }, - { - "description": "Denies the truncate command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-truncate" - }, - { - "description": "Denies the unwatch command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-unwatch" - }, - { - "description": "Denies the watch command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-watch" - }, - { - "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "const": "fs:deny-webview-data-linux" - }, - { - "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "const": "fs:deny-webview-data-windows" - }, - { - "description": "Denies the write command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write" - }, - { - "description": "Denies the write_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write-file" - }, - { - "description": "Denies the write_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write-text-file" - }, - { - "description": "This enables all read related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-all" - }, - { - "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", - "type": "string", - "const": "fs:read-app-specific-dirs-recursive" - }, - { - "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-dirs" - }, - { - "description": "This enables file read related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-files" - }, - { - "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-meta" - }, - { - "description": "An empty permission you can use to modify the global scope.", - "type": "string", - "const": "fs:scope" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the application folders.", - "type": "string", - "const": "fs:scope-app" - }, - { - "description": "This scope permits to list all files and folders in the application directories.", - "type": "string", - "const": "fs:scope-app-index" - }, - { - "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", - "type": "string", - "const": "fs:scope-app-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", - "type": "string", - "const": "fs:scope-appcache" - }, - { - "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", - "type": "string", - "const": "fs:scope-appcache-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appcache-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:scope-appconfig" - }, - { - "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", - "type": "string", - "const": "fs:scope-appconfig-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appconfig-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", - "type": "string", - "const": "fs:scope-appdata" - }, - { - "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", - "type": "string", - "const": "fs:scope-appdata-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appdata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:scope-applocaldata" - }, - { - "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", - "type": "string", - "const": "fs:scope-applocaldata-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-applocaldata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", - "type": "string", - "const": "fs:scope-applog" - }, - { - "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", - "type": "string", - "const": "fs:scope-applog-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-applog-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", - "type": "string", - "const": "fs:scope-audio" - }, - { - "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", - "type": "string", - "const": "fs:scope-audio-index" - }, - { - "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-audio-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", - "type": "string", - "const": "fs:scope-cache" - }, - { - "description": "This scope permits to list all files and folders in the `$CACHE`folder.", - "type": "string", - "const": "fs:scope-cache-index" - }, - { - "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-cache-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", - "type": "string", - "const": "fs:scope-config" - }, - { - "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", - "type": "string", - "const": "fs:scope-config-index" - }, - { - "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-config-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", - "type": "string", - "const": "fs:scope-data" - }, - { - "description": "This scope permits to list all files and folders in the `$DATA`folder.", - "type": "string", - "const": "fs:scope-data-index" - }, - { - "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-data-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", - "type": "string", - "const": "fs:scope-desktop" - }, - { - "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", - "type": "string", - "const": "fs:scope-desktop-index" - }, - { - "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-desktop-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:scope-document" - }, - { - "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", - "type": "string", - "const": "fs:scope-document-index" - }, - { - "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-document-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:scope-download" - }, - { - "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", - "type": "string", - "const": "fs:scope-download-index" - }, - { - "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-download-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", - "type": "string", - "const": "fs:scope-exe" - }, - { - "description": "This scope permits to list all files and folders in the `$EXE`folder.", - "type": "string", - "const": "fs:scope-exe-index" - }, - { - "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-exe-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", - "type": "string", - "const": "fs:scope-font" - }, - { - "description": "This scope permits to list all files and folders in the `$FONT`folder.", - "type": "string", - "const": "fs:scope-font-index" - }, - { - "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-font-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", - "type": "string", - "const": "fs:scope-home" - }, - { - "description": "This scope permits to list all files and folders in the `$HOME`folder.", - "type": "string", - "const": "fs:scope-home-index" - }, - { - "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-home-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:scope-localdata" - }, - { - "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", - "type": "string", - "const": "fs:scope-localdata-index" - }, - { - "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-localdata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", - "type": "string", - "const": "fs:scope-log" - }, - { - "description": "This scope permits to list all files and folders in the `$LOG`folder.", - "type": "string", - "const": "fs:scope-log-index" - }, - { - "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-log-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", - "type": "string", - "const": "fs:scope-picture" - }, - { - "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", - "type": "string", - "const": "fs:scope-picture-index" - }, - { - "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-picture-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", - "type": "string", - "const": "fs:scope-public" - }, - { - "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", - "type": "string", - "const": "fs:scope-public-index" - }, - { - "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-public-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", - "type": "string", - "const": "fs:scope-resource" - }, - { - "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", - "type": "string", - "const": "fs:scope-resource-index" - }, - { - "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-resource-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", - "type": "string", - "const": "fs:scope-runtime" - }, - { - "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", - "type": "string", - "const": "fs:scope-runtime-index" - }, - { - "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-runtime-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", - "type": "string", - "const": "fs:scope-temp" - }, - { - "description": "This scope permits to list all files and folders in the `$TEMP`folder.", - "type": "string", - "const": "fs:scope-temp-index" - }, - { - "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-temp-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:scope-template" - }, - { - "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", - "type": "string", - "const": "fs:scope-template-index" - }, - { - "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-template-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", - "type": "string", - "const": "fs:scope-video" - }, - { - "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", - "type": "string", - "const": "fs:scope-video-index" - }, - { - "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-video-recursive" - }, - { - "description": "This enables all write related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:write-all" - }, - { - "description": "This enables all file write related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:write-files" - } - ] - } - } - }, - "then": { - "properties": { - "allow": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", - "anyOf": [ - { - "description": "FS scope path.", - "type": "string" - }, - { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", - "anyOf": [ - { - "description": "FS scope path.", - "type": "string" - }, - { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } - } - ] - } - } - } - }, - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - } - } - }, - { - "if": { - "properties": { - "identifier": { - "anyOf": [ - { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", - "type": "string", - "const": "http:default" - }, - { - "description": "Enables the fetch command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch" - }, - { - "description": "Enables the fetch_cancel command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-cancel" - }, - { - "description": "Enables the fetch_read_body command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-read-body" - }, - { - "description": "Enables the fetch_send command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-send" - }, - { - "description": "Denies the fetch command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch" - }, - { - "description": "Denies the fetch_cancel command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-cancel" - }, - { - "description": "Denies the fetch_read_body command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-read-body" - }, - { - "description": "Denies the fetch_send command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-send" - } - ] - } - } - }, - "then": { - "properties": { - "allow": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } - } - } - }, - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - } - } - }, - { - "if": { - "properties": { - "identifier": { - "anyOf": [ - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", - "type": "string", - "const": "shell:default" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute" - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill" - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open" - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn" - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write" - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute" - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill" - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open" - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn" - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write" - } - ] - } - } - }, - "then": { - "properties": { - "allow": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - }, - "deny": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - } - } - }, - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - } - } - }, - { - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - } - ], - "required": [ - "identifier" - ] - } - ] - }, - "Identifier": { - "description": "Permission identifier", - "oneOf": [ - { - "description": "Allows reading the CLI matches", - "type": "string", - "const": "cli:default" - }, - { - "description": "Enables the cli_matches command without any pre-configured scope.", - "type": "string", - "const": "cli:allow-cli-matches" - }, - { - "description": "Denies the cli_matches command without any pre-configured scope.", - "type": "string", - "const": "cli:deny-cli-matches" - }, - { - "description": "No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", - "type": "string", - "const": "clipboard-manager:default" - }, - { - "description": "Enables the clear command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-clear" - }, - { - "description": "Enables the read_image command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-read-image" - }, - { - "description": "Enables the read_text command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-read-text" - }, - { - "description": "Enables the write_html command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-write-html" - }, - { - "description": "Enables the write_image command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-write-image" - }, - { - "description": "Enables the write_text command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:allow-write-text" - }, - { - "description": "Denies the clear command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-clear" - }, - { - "description": "Denies the read_image command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-read-image" - }, - { - "description": "Denies the read_text command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-read-text" - }, - { - "description": "Denies the write_html command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-write-html" - }, - { - "description": "Denies the write_image command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-write-image" - }, - { - "description": "Denies the write_text command without any pre-configured scope.", - "type": "string", - "const": "clipboard-manager:deny-write-text" - }, - { - "description": "Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n", - "type": "string", - "const": "core:default" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:app:default" - }, - { - "description": "Enables the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-hide" - }, - { - "description": "Enables the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-show" - }, - { - "description": "Enables the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-default-window-icon" - }, - { - "description": "Enables the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-name" - }, - { - "description": "Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-tauri-version" - }, - { - "description": "Enables the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-version" - }, - { - "description": "Denies the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-hide" - }, - { - "description": "Denies the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-show" - }, - { - "description": "Denies the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-default-window-icon" - }, - { - "description": "Denies the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-name" - }, - { - "description": "Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-tauri-version" - }, - { - "description": "Denies the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-version" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:event:default" - }, - { - "description": "Enables the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit" - }, - { - "description": "Enables the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit-to" - }, - { - "description": "Enables the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-listen" - }, - { - "description": "Enables the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-unlisten" - }, - { - "description": "Denies the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit" - }, - { - "description": "Denies the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit-to" - }, - { - "description": "Denies the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-listen" - }, - { - "description": "Denies the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-unlisten" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:image:default" - }, - { - "description": "Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-bytes" - }, - { - "description": "Enables the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-path" - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-new" - }, - { - "description": "Enables the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-rgba" - }, - { - "description": "Enables the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-size" - }, - { - "description": "Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-bytes" - }, - { - "description": "Denies the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-path" - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-new" - }, - { - "description": "Denies the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-rgba" - }, - { - "description": "Denies the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-size" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:menu:default" - }, - { - "description": "Enables the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-append" - }, - { - "description": "Enables the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-create-default" - }, - { - "description": "Enables the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-get" - }, - { - "description": "Enables the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-insert" - }, - { - "description": "Enables the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-checked" - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-enabled" - }, - { - "description": "Enables the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-items" - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-new" - }, - { - "description": "Enables the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-popup" - }, - { - "description": "Enables the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-prepend" - }, - { - "description": "Enables the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove" - }, - { - "description": "Enables the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove-at" - }, - { - "description": "Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-accelerator" - }, - { - "description": "Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-app-menu" - }, - { - "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-help-menu-for-nsapp" - }, - { - "description": "Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-window-menu" - }, - { - "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-windows-menu-for-nsapp" - }, - { - "description": "Enables the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-checked" - }, - { - "description": "Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-enabled" - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-icon" - }, - { - "description": "Enables the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-text" - }, - { - "description": "Enables the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-text" - }, - { - "description": "Denies the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-append" - }, - { - "description": "Denies the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-create-default" - }, - { - "description": "Denies the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-get" - }, - { - "description": "Denies the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-insert" - }, - { - "description": "Denies the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-checked" - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-enabled" - }, - { - "description": "Denies the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-items" - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-new" - }, - { - "description": "Denies the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-popup" - }, - { - "description": "Denies the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-prepend" - }, - { - "description": "Denies the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove" - }, - { - "description": "Denies the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove-at" - }, - { - "description": "Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-accelerator" - }, - { - "description": "Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-app-menu" - }, - { - "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-help-menu-for-nsapp" - }, - { - "description": "Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-window-menu" - }, - { - "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-windows-menu-for-nsapp" - }, - { - "description": "Denies the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-checked" - }, - { - "description": "Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-enabled" - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-icon" - }, - { - "description": "Denies the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-text" - }, - { - "description": "Denies the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-text" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:path:default" - }, - { - "description": "Enables the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-basename" - }, - { - "description": "Enables the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-dirname" - }, - { - "description": "Enables the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-extname" - }, - { - "description": "Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-is-absolute" - }, - { - "description": "Enables the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-join" - }, - { - "description": "Enables the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-normalize" - }, - { - "description": "Enables the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve" - }, - { - "description": "Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve-directory" - }, - { - "description": "Denies the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-basename" - }, - { - "description": "Denies the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-dirname" - }, - { - "description": "Denies the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-extname" - }, - { - "description": "Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-is-absolute" - }, - { - "description": "Denies the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-join" - }, - { - "description": "Denies the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-normalize" - }, - { - "description": "Denies the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve" - }, - { - "description": "Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve-directory" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:resources:default" - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:allow-close" - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:deny-close" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:tray:default" - }, - { - "description": "Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-get-by-id" - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-new" - }, - { - "description": "Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-remove-by-id" - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon" - }, - { - "description": "Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon-as-template" - }, - { - "description": "Enables the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-menu" - }, - { - "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-show-menu-on-left-click" - }, - { - "description": "Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-temp-dir-path" - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-title" - }, - { - "description": "Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-tooltip" - }, - { - "description": "Enables the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-visible" - }, - { - "description": "Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-get-by-id" - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-new" - }, - { - "description": "Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-remove-by-id" - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon" - }, - { - "description": "Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon-as-template" - }, - { - "description": "Denies the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-menu" - }, - { - "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-show-menu-on-left-click" - }, - { - "description": "Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-temp-dir-path" - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-title" - }, - { - "description": "Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-tooltip" - }, - { - "description": "Denies the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-visible" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:webview:default" - }, - { - "description": "Enables the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview" - }, - { - "description": "Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview-window" - }, - { - "description": "Enables the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-get-all-webviews" - }, - { - "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-internal-toggle-devtools" - }, - { - "description": "Enables the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-print" - }, - { - "description": "Enables the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-reparent" - }, - { - "description": "Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-focus" - }, - { - "description": "Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-position" - }, - { - "description": "Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-size" - }, - { - "description": "Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-zoom" - }, - { - "description": "Enables the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-close" - }, - { - "description": "Enables the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-position" - }, - { - "description": "Enables the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-size" - }, - { - "description": "Denies the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview" - }, - { - "description": "Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview-window" - }, - { - "description": "Denies the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-get-all-webviews" - }, - { - "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-internal-toggle-devtools" - }, - { - "description": "Denies the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-print" - }, - { - "description": "Denies the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-reparent" - }, - { - "description": "Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-focus" - }, - { - "description": "Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-position" - }, - { - "description": "Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-size" - }, - { - "description": "Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-zoom" - }, - { - "description": "Denies the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-close" - }, - { - "description": "Denies the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-position" - }, - { - "description": "Denies the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-size" - }, - { - "description": "Default permissions for the plugin.", - "type": "string", - "const": "core:window:default" - }, - { - "description": "Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-available-monitors" - }, - { - "description": "Enables the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-center" - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-close" - }, - { - "description": "Enables the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-create" - }, - { - "description": "Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-current-monitor" - }, - { - "description": "Enables the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-cursor-position" - }, - { - "description": "Enables the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-destroy" - }, - { - "description": "Enables the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-get-all-windows" - }, - { - "description": "Enables the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-hide" - }, - { - "description": "Enables the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-position" - }, - { - "description": "Enables the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-size" - }, - { - "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-internal-toggle-maximize" - }, - { - "description": "Enables the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-closable" - }, - { - "description": "Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-decorated" - }, - { - "description": "Enables the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-focused" - }, - { - "description": "Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-fullscreen" - }, - { - "description": "Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximizable" - }, - { - "description": "Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximized" - }, - { - "description": "Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimizable" - }, - { - "description": "Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimized" - }, - { - "description": "Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-resizable" - }, - { - "description": "Enables the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-visible" - }, - { - "description": "Enables the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-maximize" - }, - { - "description": "Enables the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-minimize" - }, - { - "description": "Enables the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-monitor-from-point" - }, - { - "description": "Enables the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-position" - }, - { - "description": "Enables the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-size" - }, - { - "description": "Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-primary-monitor" - }, - { - "description": "Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-request-user-attention" - }, - { - "description": "Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-scale-factor" - }, - { - "description": "Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-bottom" - }, - { - "description": "Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-top" - }, - { - "description": "Enables the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-closable" - }, - { - "description": "Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-content-protected" - }, - { - "description": "Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-grab" - }, - { - "description": "Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-icon" - }, - { - "description": "Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-position" - }, - { - "description": "Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-visible" - }, - { - "description": "Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-decorations" - }, - { - "description": "Enables the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-effects" - }, - { - "description": "Enables the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-focus" - }, - { - "description": "Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-fullscreen" - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-icon" - }, - { - "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-ignore-cursor-events" - }, - { - "description": "Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-max-size" - }, - { - "description": "Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-maximizable" - }, - { - "description": "Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-min-size" - }, - { - "description": "Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-minimizable" - }, - { - "description": "Enables the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-position" - }, - { - "description": "Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-progress-bar" - }, - { - "description": "Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-resizable" - }, - { - "description": "Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-shadow" - }, - { - "description": "Enables the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size" - }, - { - "description": "Enables the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size-constraints" - }, - { - "description": "Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-skip-taskbar" - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title" - }, - { - "description": "Enables the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title-bar-style" - }, - { - "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-visible-on-all-workspaces" - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-show" - }, - { - "description": "Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-dragging" - }, - { - "description": "Enables the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-resize-dragging" - }, - { - "description": "Enables the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-theme" - }, - { - "description": "Enables the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-title" - }, - { - "description": "Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-toggle-maximize" - }, - { - "description": "Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unmaximize" - }, - { - "description": "Enables the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unminimize" - }, - { - "description": "Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-available-monitors" - }, - { - "description": "Denies the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-center" - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-close" - }, - { - "description": "Denies the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-create" - }, - { - "description": "Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-current-monitor" - }, - { - "description": "Denies the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-cursor-position" - }, - { - "description": "Denies the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-destroy" - }, - { - "description": "Denies the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-get-all-windows" - }, - { - "description": "Denies the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-hide" - }, - { - "description": "Denies the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-position" - }, - { - "description": "Denies the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-size" - }, - { - "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-internal-toggle-maximize" - }, - { - "description": "Denies the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-closable" - }, - { - "description": "Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-decorated" - }, - { - "description": "Denies the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-focused" - }, - { - "description": "Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-fullscreen" - }, - { - "description": "Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximizable" - }, - { - "description": "Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximized" - }, - { - "description": "Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimizable" - }, - { - "description": "Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimized" - }, - { - "description": "Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-resizable" - }, - { - "description": "Denies the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-visible" - }, - { - "description": "Denies the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-maximize" - }, - { - "description": "Denies the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-minimize" - }, - { - "description": "Denies the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-monitor-from-point" - }, - { - "description": "Denies the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-position" - }, - { - "description": "Denies the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-size" - }, - { - "description": "Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-primary-monitor" - }, - { - "description": "Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-request-user-attention" - }, - { - "description": "Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-scale-factor" - }, - { - "description": "Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-bottom" - }, - { - "description": "Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-top" - }, - { - "description": "Denies the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-closable" - }, - { - "description": "Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-content-protected" - }, - { - "description": "Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-grab" - }, - { - "description": "Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-icon" - }, - { - "description": "Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-position" - }, - { - "description": "Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-visible" - }, - { - "description": "Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-decorations" - }, - { - "description": "Denies the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-effects" - }, - { - "description": "Denies the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-focus" - }, - { - "description": "Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-fullscreen" - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-icon" - }, - { - "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-ignore-cursor-events" - }, - { - "description": "Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-max-size" - }, - { - "description": "Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-maximizable" - }, - { - "description": "Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-min-size" - }, - { - "description": "Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-minimizable" - }, - { - "description": "Denies the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-position" - }, - { - "description": "Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-progress-bar" - }, - { - "description": "Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-resizable" - }, - { - "description": "Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-shadow" - }, - { - "description": "Denies the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size" - }, - { - "description": "Denies the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size-constraints" - }, - { - "description": "Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-skip-taskbar" - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title" - }, - { - "description": "Denies the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title-bar-style" - }, - { - "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-visible-on-all-workspaces" - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-show" - }, - { - "description": "Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-dragging" - }, - { - "description": "Denies the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-resize-dragging" - }, - { - "description": "Denies the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-theme" - }, - { - "description": "Denies the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-title" - }, - { - "description": "Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-toggle-maximize" - }, - { - "description": "Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unmaximize" - }, - { - "description": "Denies the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unminimize" - }, - { - "description": "This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", - "type": "string", - "const": "dialog:default" - }, - { - "description": "Enables the ask command without any pre-configured scope.", - "type": "string", - "const": "dialog:allow-ask" - }, - { - "description": "Enables the confirm command without any pre-configured scope.", - "type": "string", - "const": "dialog:allow-confirm" - }, - { - "description": "Enables the message command without any pre-configured scope.", - "type": "string", - "const": "dialog:allow-message" - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "dialog:allow-open" - }, - { - "description": "Enables the save command without any pre-configured scope.", - "type": "string", - "const": "dialog:allow-save" - }, - { - "description": "Denies the ask command without any pre-configured scope.", - "type": "string", - "const": "dialog:deny-ask" - }, - { - "description": "Denies the confirm command without any pre-configured scope.", - "type": "string", - "const": "dialog:deny-confirm" - }, - { - "description": "Denies the message command without any pre-configured scope.", - "type": "string", - "const": "dialog:deny-message" - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "dialog:deny-open" - }, - { - "description": "Denies the save command without any pre-configured scope.", - "type": "string", - "const": "dialog:deny-save" - }, - { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", - "type": "string", - "const": "fs:default" - }, - { - "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "const": "fs:allow-app-meta" - }, - { - "description": "This allows full recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "const": "fs:allow-app-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the application folders.", - "type": "string", - "const": "fs:allow-app-read" - }, - { - "description": "This allows full recursive read access to the complete application folders, files and subdirectories.", - "type": "string", - "const": "fs:allow-app-read-recursive" - }, - { - "description": "This allows non-recursive write access to the application folders.", - "type": "string", - "const": "fs:allow-app-write" - }, - { - "description": "This allows full recursive write access to the complete application folders, files and subdirectories.", - "type": "string", - "const": "fs:allow-app-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appcache-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appcache-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPCACHE` folder.", - "type": "string", - "const": "fs:allow-appcache-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appcache-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPCACHE` folder.", - "type": "string", - "const": "fs:allow-appcache-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appcache-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appconfig-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appconfig-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:allow-appconfig-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appconfig-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:allow-appconfig-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appconfig-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appdata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-appdata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPDATA` folder.", - "type": "string", - "const": "fs:allow-appdata-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appdata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPDATA` folder.", - "type": "string", - "const": "fs:allow-appdata-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-appdata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applocaldata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applocaldata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:allow-applocaldata-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applocaldata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:allow-applocaldata-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applocaldata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applog-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-applog-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$APPLOG` folder.", - "type": "string", - "const": "fs:allow-applog-read" - }, - { - "description": "This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applog-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$APPLOG` folder.", - "type": "string", - "const": "fs:allow-applog-write" - }, - { - "description": "This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-applog-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-audio-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-audio-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$AUDIO` folder.", - "type": "string", - "const": "fs:allow-audio-read" - }, - { - "description": "This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-audio-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$AUDIO` folder.", - "type": "string", - "const": "fs:allow-audio-write" - }, - { - "description": "This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-audio-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-cache-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-cache-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$CACHE` folder.", - "type": "string", - "const": "fs:allow-cache-read" - }, - { - "description": "This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-cache-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$CACHE` folder.", - "type": "string", - "const": "fs:allow-cache-write" - }, - { - "description": "This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-cache-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-config-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-config-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$CONFIG` folder.", - "type": "string", - "const": "fs:allow-config-read" - }, - { - "description": "This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-config-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$CONFIG` folder.", - "type": "string", - "const": "fs:allow-config-write" - }, - { - "description": "This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-config-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-data-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-data-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DATA` folder.", - "type": "string", - "const": "fs:allow-data-read" - }, - { - "description": "This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-data-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DATA` folder.", - "type": "string", - "const": "fs:allow-data-write" - }, - { - "description": "This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-data-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-desktop-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-desktop-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DESKTOP` folder.", - "type": "string", - "const": "fs:allow-desktop-read" - }, - { - "description": "This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-desktop-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DESKTOP` folder.", - "type": "string", - "const": "fs:allow-desktop-write" - }, - { - "description": "This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-desktop-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-document-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-document-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:allow-document-read" - }, - { - "description": "This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-document-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:allow-document-write" - }, - { - "description": "This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-document-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-download-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-download-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:allow-download-read" - }, - { - "description": "This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-download-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:allow-download-write" - }, - { - "description": "This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-download-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-exe-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-exe-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$EXE` folder.", - "type": "string", - "const": "fs:allow-exe-read" - }, - { - "description": "This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-exe-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$EXE` folder.", - "type": "string", - "const": "fs:allow-exe-write" - }, - { - "description": "This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-exe-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-font-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-font-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$FONT` folder.", - "type": "string", - "const": "fs:allow-font-read" - }, - { - "description": "This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-font-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$FONT` folder.", - "type": "string", - "const": "fs:allow-font-write" - }, - { - "description": "This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-font-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-home-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-home-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$HOME` folder.", - "type": "string", - "const": "fs:allow-home-read" - }, - { - "description": "This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-home-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$HOME` folder.", - "type": "string", - "const": "fs:allow-home-write" - }, - { - "description": "This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-home-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-localdata-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-localdata-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:allow-localdata-read" - }, - { - "description": "This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-localdata-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:allow-localdata-write" - }, - { - "description": "This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-localdata-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-log-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-log-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$LOG` folder.", - "type": "string", - "const": "fs:allow-log-read" - }, - { - "description": "This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-log-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$LOG` folder.", - "type": "string", - "const": "fs:allow-log-write" - }, - { - "description": "This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-log-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-picture-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-picture-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$PICTURE` folder.", - "type": "string", - "const": "fs:allow-picture-read" - }, - { - "description": "This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-picture-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$PICTURE` folder.", - "type": "string", - "const": "fs:allow-picture-write" - }, - { - "description": "This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-picture-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-public-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-public-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$PUBLIC` folder.", - "type": "string", - "const": "fs:allow-public-read" - }, - { - "description": "This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-public-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$PUBLIC` folder.", - "type": "string", - "const": "fs:allow-public-write" - }, - { - "description": "This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-public-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-resource-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-resource-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$RESOURCE` folder.", - "type": "string", - "const": "fs:allow-resource-read" - }, - { - "description": "This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-resource-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$RESOURCE` folder.", - "type": "string", - "const": "fs:allow-resource-write" - }, - { - "description": "This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-resource-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-runtime-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-runtime-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$RUNTIME` folder.", - "type": "string", - "const": "fs:allow-runtime-read" - }, - { - "description": "This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-runtime-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$RUNTIME` folder.", - "type": "string", - "const": "fs:allow-runtime-write" - }, - { - "description": "This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-runtime-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-temp-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-temp-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$TEMP` folder.", - "type": "string", - "const": "fs:allow-temp-read" - }, - { - "description": "This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-temp-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$TEMP` folder.", - "type": "string", - "const": "fs:allow-temp-write" - }, - { - "description": "This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-temp-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-template-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-template-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:allow-template-read" - }, - { - "description": "This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-template-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:allow-template-write" - }, - { - "description": "This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-template-write-recursive" - }, - { - "description": "This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-video-meta" - }, - { - "description": "This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "const": "fs:allow-video-meta-recursive" - }, - { - "description": "This allows non-recursive read access to the `$VIDEO` folder.", - "type": "string", - "const": "fs:allow-video-read" - }, - { - "description": "This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-video-read-recursive" - }, - { - "description": "This allows non-recursive write access to the `$VIDEO` folder.", - "type": "string", - "const": "fs:allow-video-write" - }, - { - "description": "This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "const": "fs:allow-video-write-recursive" - }, - { - "description": "This denies access to dangerous Tauri relevant files and folders by default.", - "type": "string", - "const": "fs:deny-default" - }, - { - "description": "Enables the copy_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-copy-file" - }, - { - "description": "Enables the create command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-create" - }, - { - "description": "Enables the exists command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-exists" - }, - { - "description": "Enables the fstat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-fstat" - }, - { - "description": "Enables the ftruncate command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-ftruncate" - }, - { - "description": "Enables the lstat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-lstat" - }, - { - "description": "Enables the mkdir command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-mkdir" - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-open" - }, - { - "description": "Enables the read command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read" - }, - { - "description": "Enables the read_dir command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-dir" - }, - { - "description": "Enables the read_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-file" - }, - { - "description": "Enables the read_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file" - }, - { - "description": "Enables the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file-lines" - }, - { - "description": "Enables the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-read-text-file-lines-next" - }, - { - "description": "Enables the remove command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-remove" - }, - { - "description": "Enables the rename command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-rename" - }, - { - "description": "Enables the seek command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-seek" - }, - { - "description": "Enables the stat command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-stat" - }, - { - "description": "Enables the truncate command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-truncate" - }, - { - "description": "Enables the unwatch command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-unwatch" - }, - { - "description": "Enables the watch command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-watch" - }, - { - "description": "Enables the write command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write" - }, - { - "description": "Enables the write_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write-file" - }, - { - "description": "Enables the write_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:allow-write-text-file" - }, - { - "description": "This permissions allows to create the application specific directories.\n", - "type": "string", - "const": "fs:create-app-specific-dirs" - }, - { - "description": "Denies the copy_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-copy-file" - }, - { - "description": "Denies the create command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-create" - }, - { - "description": "Denies the exists command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-exists" - }, - { - "description": "Denies the fstat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-fstat" - }, - { - "description": "Denies the ftruncate command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-ftruncate" - }, - { - "description": "Denies the lstat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-lstat" - }, - { - "description": "Denies the mkdir command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-mkdir" - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-open" - }, - { - "description": "Denies the read command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read" - }, - { - "description": "Denies the read_dir command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-dir" - }, - { - "description": "Denies the read_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-file" - }, - { - "description": "Denies the read_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file" - }, - { - "description": "Denies the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file-lines" - }, - { - "description": "Denies the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-read-text-file-lines-next" - }, - { - "description": "Denies the remove command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-remove" - }, - { - "description": "Denies the rename command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-rename" - }, - { - "description": "Denies the seek command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-seek" - }, - { - "description": "Denies the stat command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-stat" - }, - { - "description": "Denies the truncate command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-truncate" - }, - { - "description": "Denies the unwatch command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-unwatch" - }, - { - "description": "Denies the watch command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-watch" - }, - { - "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "const": "fs:deny-webview-data-linux" - }, - { - "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "const": "fs:deny-webview-data-windows" - }, - { - "description": "Denies the write command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write" - }, - { - "description": "Denies the write_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write-file" - }, - { - "description": "Denies the write_text_file command without any pre-configured scope.", - "type": "string", - "const": "fs:deny-write-text-file" - }, - { - "description": "This enables all read related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-all" - }, - { - "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", - "type": "string", - "const": "fs:read-app-specific-dirs-recursive" - }, - { - "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-dirs" - }, - { - "description": "This enables file read related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-files" - }, - { - "description": "This enables all index or metadata related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:read-meta" - }, - { - "description": "An empty permission you can use to modify the global scope.", - "type": "string", - "const": "fs:scope" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the application folders.", - "type": "string", - "const": "fs:scope-app" - }, - { - "description": "This scope permits to list all files and folders in the application directories.", - "type": "string", - "const": "fs:scope-app-index" - }, - { - "description": "This scope permits recursive access to the complete application folders, including sub directories and files.", - "type": "string", - "const": "fs:scope-app-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", - "type": "string", - "const": "fs:scope-appcache" - }, - { - "description": "This scope permits to list all files and folders in the `$APPCACHE`folder.", - "type": "string", - "const": "fs:scope-appcache-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appcache-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", - "type": "string", - "const": "fs:scope-appconfig" - }, - { - "description": "This scope permits to list all files and folders in the `$APPCONFIG`folder.", - "type": "string", - "const": "fs:scope-appconfig-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appconfig-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", - "type": "string", - "const": "fs:scope-appdata" - }, - { - "description": "This scope permits to list all files and folders in the `$APPDATA`folder.", - "type": "string", - "const": "fs:scope-appdata-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-appdata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", - "type": "string", - "const": "fs:scope-applocaldata" - }, - { - "description": "This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", - "type": "string", - "const": "fs:scope-applocaldata-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-applocaldata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", - "type": "string", - "const": "fs:scope-applog" - }, - { - "description": "This scope permits to list all files and folders in the `$APPLOG`folder.", - "type": "string", - "const": "fs:scope-applog-index" - }, - { - "description": "This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-applog-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", - "type": "string", - "const": "fs:scope-audio" - }, - { - "description": "This scope permits to list all files and folders in the `$AUDIO`folder.", - "type": "string", - "const": "fs:scope-audio-index" - }, - { - "description": "This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-audio-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", - "type": "string", - "const": "fs:scope-cache" - }, - { - "description": "This scope permits to list all files and folders in the `$CACHE`folder.", - "type": "string", - "const": "fs:scope-cache-index" - }, - { - "description": "This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-cache-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", - "type": "string", - "const": "fs:scope-config" - }, - { - "description": "This scope permits to list all files and folders in the `$CONFIG`folder.", - "type": "string", - "const": "fs:scope-config-index" - }, - { - "description": "This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-config-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DATA` folder.", - "type": "string", - "const": "fs:scope-data" - }, - { - "description": "This scope permits to list all files and folders in the `$DATA`folder.", - "type": "string", - "const": "fs:scope-data-index" - }, - { - "description": "This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-data-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", - "type": "string", - "const": "fs:scope-desktop" - }, - { - "description": "This scope permits to list all files and folders in the `$DESKTOP`folder.", - "type": "string", - "const": "fs:scope-desktop-index" - }, - { - "description": "This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-desktop-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", - "type": "string", - "const": "fs:scope-document" - }, - { - "description": "This scope permits to list all files and folders in the `$DOCUMENT`folder.", - "type": "string", - "const": "fs:scope-document-index" - }, - { - "description": "This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-document-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", - "type": "string", - "const": "fs:scope-download" - }, - { - "description": "This scope permits to list all files and folders in the `$DOWNLOAD`folder.", - "type": "string", - "const": "fs:scope-download-index" - }, - { - "description": "This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-download-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$EXE` folder.", - "type": "string", - "const": "fs:scope-exe" - }, - { - "description": "This scope permits to list all files and folders in the `$EXE`folder.", - "type": "string", - "const": "fs:scope-exe-index" - }, - { - "description": "This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-exe-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$FONT` folder.", - "type": "string", - "const": "fs:scope-font" - }, - { - "description": "This scope permits to list all files and folders in the `$FONT`folder.", - "type": "string", - "const": "fs:scope-font-index" - }, - { - "description": "This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-font-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$HOME` folder.", - "type": "string", - "const": "fs:scope-home" - }, - { - "description": "This scope permits to list all files and folders in the `$HOME`folder.", - "type": "string", - "const": "fs:scope-home-index" - }, - { - "description": "This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-home-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", - "type": "string", - "const": "fs:scope-localdata" - }, - { - "description": "This scope permits to list all files and folders in the `$LOCALDATA`folder.", - "type": "string", - "const": "fs:scope-localdata-index" - }, - { - "description": "This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-localdata-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$LOG` folder.", - "type": "string", - "const": "fs:scope-log" - }, - { - "description": "This scope permits to list all files and folders in the `$LOG`folder.", - "type": "string", - "const": "fs:scope-log-index" - }, - { - "description": "This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-log-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", - "type": "string", - "const": "fs:scope-picture" - }, - { - "description": "This scope permits to list all files and folders in the `$PICTURE`folder.", - "type": "string", - "const": "fs:scope-picture-index" - }, - { - "description": "This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-picture-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", - "type": "string", - "const": "fs:scope-public" - }, - { - "description": "This scope permits to list all files and folders in the `$PUBLIC`folder.", - "type": "string", - "const": "fs:scope-public-index" - }, - { - "description": "This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-public-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", - "type": "string", - "const": "fs:scope-resource" - }, - { - "description": "This scope permits to list all files and folders in the `$RESOURCE`folder.", - "type": "string", - "const": "fs:scope-resource-index" - }, - { - "description": "This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-resource-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", - "type": "string", - "const": "fs:scope-runtime" - }, - { - "description": "This scope permits to list all files and folders in the `$RUNTIME`folder.", - "type": "string", - "const": "fs:scope-runtime-index" - }, - { - "description": "This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-runtime-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", - "type": "string", - "const": "fs:scope-temp" - }, - { - "description": "This scope permits to list all files and folders in the `$TEMP`folder.", - "type": "string", - "const": "fs:scope-temp-index" - }, - { - "description": "This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-temp-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", - "type": "string", - "const": "fs:scope-template" - }, - { - "description": "This scope permits to list all files and folders in the `$TEMPLATE`folder.", - "type": "string", - "const": "fs:scope-template-index" - }, - { - "description": "This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-template-recursive" - }, - { - "description": "This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", - "type": "string", - "const": "fs:scope-video" - }, - { - "description": "This scope permits to list all files and folders in the `$VIDEO`folder.", - "type": "string", - "const": "fs:scope-video-index" - }, - { - "description": "This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", - "type": "string", - "const": "fs:scope-video-recursive" - }, - { - "description": "This enables all write related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:write-all" - }, - { - "description": "This enables all file write related commands without any pre-configured accessible paths.", - "type": "string", - "const": "fs:write-files" - }, - { - "description": "No features are enabled by default, as we believe\nthe shortcuts can be inherently dangerous and it is\napplication specific if specific shortcuts should be\nregistered or unregistered.\n", - "type": "string", - "const": "global-shortcut:default" - }, - { - "description": "Enables the is_registered command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:allow-is-registered" - }, - { - "description": "Enables the register command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:allow-register" - }, - { - "description": "Enables the register_all command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:allow-register-all" - }, - { - "description": "Enables the unregister command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:allow-unregister" - }, - { - "description": "Enables the unregister_all command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:allow-unregister-all" - }, - { - "description": "Denies the is_registered command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:deny-is-registered" - }, - { - "description": "Denies the register command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:deny-register" - }, - { - "description": "Denies the register_all command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:deny-register-all" - }, - { - "description": "Denies the unregister command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:deny-unregister" - }, - { - "description": "Denies the unregister_all command without any pre-configured scope.", - "type": "string", - "const": "global-shortcut:deny-unregister-all" - }, - { - "description": "This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", - "type": "string", - "const": "http:default" - }, - { - "description": "Enables the fetch command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch" - }, - { - "description": "Enables the fetch_cancel command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-cancel" - }, - { - "description": "Enables the fetch_read_body command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-read-body" - }, - { - "description": "Enables the fetch_send command without any pre-configured scope.", - "type": "string", - "const": "http:allow-fetch-send" - }, - { - "description": "Denies the fetch command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch" - }, - { - "description": "Denies the fetch_cancel command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-cancel" - }, - { - "description": "Denies the fetch_read_body command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-read-body" - }, - { - "description": "Denies the fetch_send command without any pre-configured scope.", - "type": "string", - "const": "http:deny-fetch-send" - }, - { - "description": "Allows the log command", - "type": "string", - "const": "log:default" - }, - { - "description": "Enables the log command without any pre-configured scope.", - "type": "string", - "const": "log:allow-log" - }, - { - "description": "Denies the log command without any pre-configured scope.", - "type": "string", - "const": "log:deny-log" - }, - { - "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", - "type": "string", - "const": "notification:default" - }, - { - "description": "Enables the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-batch" - }, - { - "description": "Enables the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-cancel" - }, - { - "description": "Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-check-permissions" - }, - { - "description": "Enables the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-create-channel" - }, - { - "description": "Enables the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-delete-channel" - }, - { - "description": "Enables the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-active" - }, - { - "description": "Enables the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-pending" - }, - { - "description": "Enables the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-is-permission-granted" - }, - { - "description": "Enables the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-list-channels" - }, - { - "description": "Enables the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-notify" - }, - { - "description": "Enables the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-permission-state" - }, - { - "description": "Enables the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-action-types" - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-listener" - }, - { - "description": "Enables the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-remove-active" - }, - { - "description": "Enables the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-request-permission" - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-show" - }, - { - "description": "Denies the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-batch" - }, - { - "description": "Denies the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-cancel" - }, - { - "description": "Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-check-permissions" - }, - { - "description": "Denies the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-create-channel" - }, - { - "description": "Denies the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-delete-channel" - }, - { - "description": "Denies the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-active" - }, - { - "description": "Denies the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-pending" - }, - { - "description": "Denies the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-is-permission-granted" - }, - { - "description": "Denies the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-list-channels" - }, - { - "description": "Denies the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-notify" - }, - { - "description": "Denies the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-permission-state" - }, - { - "description": "Denies the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-action-types" - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-listener" - }, - { - "description": "Denies the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-remove-active" - }, - { - "description": "Denies the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-request-permission" - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-show" - }, - { - "description": "This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", - "type": "string", - "const": "os:default" - }, - { - "description": "Enables the arch command without any pre-configured scope.", - "type": "string", - "const": "os:allow-arch" - }, - { - "description": "Enables the exe_extension command without any pre-configured scope.", - "type": "string", - "const": "os:allow-exe-extension" - }, - { - "description": "Enables the family command without any pre-configured scope.", - "type": "string", - "const": "os:allow-family" - }, - { - "description": "Enables the hostname command without any pre-configured scope.", - "type": "string", - "const": "os:allow-hostname" - }, - { - "description": "Enables the locale command without any pre-configured scope.", - "type": "string", - "const": "os:allow-locale" - }, - { - "description": "Enables the os_type command without any pre-configured scope.", - "type": "string", - "const": "os:allow-os-type" - }, - { - "description": "Enables the platform command without any pre-configured scope.", - "type": "string", - "const": "os:allow-platform" - }, - { - "description": "Enables the version command without any pre-configured scope.", - "type": "string", - "const": "os:allow-version" - }, - { - "description": "Denies the arch command without any pre-configured scope.", - "type": "string", - "const": "os:deny-arch" - }, - { - "description": "Denies the exe_extension command without any pre-configured scope.", - "type": "string", - "const": "os:deny-exe-extension" - }, - { - "description": "Denies the family command without any pre-configured scope.", - "type": "string", - "const": "os:deny-family" - }, - { - "description": "Denies the hostname command without any pre-configured scope.", - "type": "string", - "const": "os:deny-hostname" - }, - { - "description": "Denies the locale command without any pre-configured scope.", - "type": "string", - "const": "os:deny-locale" - }, - { - "description": "Denies the os_type command without any pre-configured scope.", - "type": "string", - "const": "os:deny-os-type" - }, - { - "description": "Denies the platform command without any pre-configured scope.", - "type": "string", - "const": "os:deny-platform" - }, - { - "description": "Denies the version command without any pre-configured scope.", - "type": "string", - "const": "os:deny-version" - }, - { - "description": "This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", - "type": "string", - "const": "process:default" - }, - { - "description": "Enables the exit command without any pre-configured scope.", - "type": "string", - "const": "process:allow-exit" - }, - { - "description": "Enables the restart command without any pre-configured scope.", - "type": "string", - "const": "process:allow-restart" - }, - { - "description": "Denies the exit command without any pre-configured scope.", - "type": "string", - "const": "process:deny-exit" - }, - { - "description": "Denies the restart command without any pre-configured scope.", - "type": "string", - "const": "process:deny-restart" - }, - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", - "type": "string", - "const": "shell:default" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute" - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill" - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open" - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn" - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write" - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute" - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill" - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open" - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn" - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write" - }, - { - "description": "This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", - "type": "string", - "const": "store:default" - }, - { - "description": "Enables the clear command without any pre-configured scope.", - "type": "string", - "const": "store:allow-clear" - }, - { - "description": "Enables the delete command without any pre-configured scope.", - "type": "string", - "const": "store:allow-delete" - }, - { - "description": "Enables the entries command without any pre-configured scope.", - "type": "string", - "const": "store:allow-entries" - }, - { - "description": "Enables the get command without any pre-configured scope.", - "type": "string", - "const": "store:allow-get" - }, - { - "description": "Enables the has command without any pre-configured scope.", - "type": "string", - "const": "store:allow-has" - }, - { - "description": "Enables the keys command without any pre-configured scope.", - "type": "string", - "const": "store:allow-keys" - }, - { - "description": "Enables the length command without any pre-configured scope.", - "type": "string", - "const": "store:allow-length" - }, - { - "description": "Enables the load command without any pre-configured scope.", - "type": "string", - "const": "store:allow-load" - }, - { - "description": "Enables the reset command without any pre-configured scope.", - "type": "string", - "const": "store:allow-reset" - }, - { - "description": "Enables the save command without any pre-configured scope.", - "type": "string", - "const": "store:allow-save" - }, - { - "description": "Enables the set command without any pre-configured scope.", - "type": "string", - "const": "store:allow-set" - }, - { - "description": "Enables the values command without any pre-configured scope.", - "type": "string", - "const": "store:allow-values" - }, - { - "description": "Denies the clear command without any pre-configured scope.", - "type": "string", - "const": "store:deny-clear" - }, - { - "description": "Denies the delete command without any pre-configured scope.", - "type": "string", - "const": "store:deny-delete" - }, - { - "description": "Denies the entries command without any pre-configured scope.", - "type": "string", - "const": "store:deny-entries" - }, - { - "description": "Denies the get command without any pre-configured scope.", - "type": "string", - "const": "store:deny-get" - }, - { - "description": "Denies the has command without any pre-configured scope.", - "type": "string", - "const": "store:deny-has" - }, - { - "description": "Denies the keys command without any pre-configured scope.", - "type": "string", - "const": "store:deny-keys" - }, - { - "description": "Denies the length command without any pre-configured scope.", - "type": "string", - "const": "store:deny-length" - }, - { - "description": "Denies the load command without any pre-configured scope.", - "type": "string", - "const": "store:deny-load" - }, - { - "description": "Denies the reset command without any pre-configured scope.", - "type": "string", - "const": "store:deny-reset" - }, - { - "description": "Denies the save command without any pre-configured scope.", - "type": "string", - "const": "store:deny-save" - }, - { - "description": "Denies the set command without any pre-configured scope.", - "type": "string", - "const": "store:deny-set" - }, - { - "description": "Denies the values command without any pre-configured scope.", - "type": "string", - "const": "store:deny-values" - }, - { - "description": "This permission set configures which kind of\nupdater functions are exposed to the frontend.\n\n#### Granted Permissions\n\nThe full workflow from checking for updates to installing them\nis enabled.\n\n", - "type": "string", - "const": "updater:default" - }, - { - "description": "Enables the check command without any pre-configured scope.", - "type": "string", - "const": "updater:allow-check" - }, - { - "description": "Enables the download command without any pre-configured scope.", - "type": "string", - "const": "updater:allow-download" - }, - { - "description": "Enables the download_and_install command without any pre-configured scope.", - "type": "string", - "const": "updater:allow-download-and-install" - }, - { - "description": "Enables the install command without any pre-configured scope.", - "type": "string", - "const": "updater:allow-install" - }, - { - "description": "Denies the check command without any pre-configured scope.", - "type": "string", - "const": "updater:deny-check" - }, - { - "description": "Denies the download command without any pre-configured scope.", - "type": "string", - "const": "updater:deny-download" - }, - { - "description": "Denies the download_and_install command without any pre-configured scope.", - "type": "string", - "const": "updater:deny-download-and-install" - }, - { - "description": "Denies the install command without any pre-configured scope.", - "type": "string", - "const": "updater:deny-install" - }, - { - "description": "This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", - "type": "string", - "const": "window-state:default" - }, - { - "description": "Enables the filename command without any pre-configured scope.", - "type": "string", - "const": "window-state:allow-filename" - }, - { - "description": "Enables the restore_state command without any pre-configured scope.", - "type": "string", - "const": "window-state:allow-restore-state" - }, - { - "description": "Enables the save_window_state command without any pre-configured scope.", - "type": "string", - "const": "window-state:allow-save-window-state" - }, - { - "description": "Denies the filename command without any pre-configured scope.", - "type": "string", - "const": "window-state:deny-filename" - }, - { - "description": "Denies the restore_state command without any pre-configured scope.", - "type": "string", - "const": "window-state:deny-restore-state" - }, - { - "description": "Denies the save_window_state command without any pre-configured scope.", - "type": "string", - "const": "window-state:deny-save-window-state" - } - ] - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "ShellAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "raw": { - "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", - "default": false, - "type": "boolean" - }, - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/examples/api/src-tauri/gen/schemas/mobile-schema.json b/examples/api/src-tauri/gen/schemas/mobile-schema.json deleted file mode 100644 index 82c9e0ca2..000000000 --- a/examples/api/src-tauri/gen/schemas/mobile-schema.json +++ /dev/null @@ -1,7661 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CapabilityFile", - "description": "Capability formats accepted in a capability file.", - "anyOf": [ - { - "description": "A single capability.", - "allOf": [ - { - "$ref": "#/definitions/Capability" - } - ] - }, - { - "description": "A list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - }, - { - "description": "A list of capabilities.", - "type": "object", - "required": [ - "capabilities" - ], - "properties": { - "capabilities": { - "description": "The list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - } - } - } - ], - "definitions": { - "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, \"platforms\": [\"macOS\",\"windows\"] } ```", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", - "type": "string" - }, - "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", - "anyOf": [ - { - "$ref": "#/definitions/CapabilityRemote" - }, - { - "type": "null" - } - ] - }, - "local": { - "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", - "default": true, - "type": "boolean" - }, - "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - }, - "uniqueItems": true - }, - "platforms": { - "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "CapabilityRemote": { - "description": "Configuration for remote URLs that are associated with the capability.", - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionEntry": { - "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", - "anyOf": [ - { - "description": "Reference a permission or permission set by identifier.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - { - "description": "Reference a permission or permission set by identifier and extends its scope.", - "type": "object", - "oneOf": [ - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "description": "fs:default -> This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", - "type": "string", - "enum": [ - "fs:default" - ] - }, - { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta" - ] - }, - { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta-recursive" - ] - }, - { - "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-read" - ] - }, - { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-read-recursive" - ] - }, - { - "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-write" - ] - }, - { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-write-recursive" - ] - }, - { - "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta" - ] - }, - { - "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta-recursive" - ] - }, - { - "description": "fs:allow-appcache-read -> This allows non-recursive read access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-read" - ] - }, - { - "description": "fs:allow-appcache-read-recursive -> This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-read-recursive" - ] - }, - { - "description": "fs:allow-appcache-write -> This allows non-recursive write access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-write" - ] - }, - { - "description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-write-recursive" - ] - }, - { - "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta" - ] - }, - { - "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta-recursive" - ] - }, - { - "description": "fs:allow-appconfig-read -> This allows non-recursive read access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read" - ] - }, - { - "description": "fs:allow-appconfig-read-recursive -> This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read-recursive" - ] - }, - { - "description": "fs:allow-appconfig-write -> This allows non-recursive write access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write" - ] - }, - { - "description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write-recursive" - ] - }, - { - "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta" - ] - }, - { - "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta-recursive" - ] - }, - { - "description": "fs:allow-appdata-read -> This allows non-recursive read access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-read" - ] - }, - { - "description": "fs:allow-appdata-read-recursive -> This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-read-recursive" - ] - }, - { - "description": "fs:allow-appdata-write -> This allows non-recursive write access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-write" - ] - }, - { - "description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-write-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta" - ] - }, - { - "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-read -> This allows non-recursive read access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read" - ] - }, - { - "description": "fs:allow-applocaldata-read-recursive -> This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-write -> This allows non-recursive write access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write" - ] - }, - { - "description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write-recursive" - ] - }, - { - "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta" - ] - }, - { - "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta-recursive" - ] - }, - { - "description": "fs:allow-applog-read -> This allows non-recursive read access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-read" - ] - }, - { - "description": "fs:allow-applog-read-recursive -> This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-read-recursive" - ] - }, - { - "description": "fs:allow-applog-write -> This allows non-recursive write access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-write" - ] - }, - { - "description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-write-recursive" - ] - }, - { - "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta" - ] - }, - { - "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta-recursive" - ] - }, - { - "description": "fs:allow-audio-read -> This allows non-recursive read access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-read" - ] - }, - { - "description": "fs:allow-audio-read-recursive -> This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-read-recursive" - ] - }, - { - "description": "fs:allow-audio-write -> This allows non-recursive write access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-write" - ] - }, - { - "description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-write-recursive" - ] - }, - { - "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta" - ] - }, - { - "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta-recursive" - ] - }, - { - "description": "fs:allow-cache-read -> This allows non-recursive read access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-read" - ] - }, - { - "description": "fs:allow-cache-read-recursive -> This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-read-recursive" - ] - }, - { - "description": "fs:allow-cache-write -> This allows non-recursive write access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-write" - ] - }, - { - "description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-write-recursive" - ] - }, - { - "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta" - ] - }, - { - "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta-recursive" - ] - }, - { - "description": "fs:allow-config-read -> This allows non-recursive read access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-read" - ] - }, - { - "description": "fs:allow-config-read-recursive -> This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-read-recursive" - ] - }, - { - "description": "fs:allow-config-write -> This allows non-recursive write access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-write" - ] - }, - { - "description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-write-recursive" - ] - }, - { - "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta" - ] - }, - { - "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta-recursive" - ] - }, - { - "description": "fs:allow-data-read -> This allows non-recursive read access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-read" - ] - }, - { - "description": "fs:allow-data-read-recursive -> This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-read-recursive" - ] - }, - { - "description": "fs:allow-data-write -> This allows non-recursive write access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-write" - ] - }, - { - "description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-write-recursive" - ] - }, - { - "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta" - ] - }, - { - "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta-recursive" - ] - }, - { - "description": "fs:allow-desktop-read -> This allows non-recursive read access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-read" - ] - }, - { - "description": "fs:allow-desktop-read-recursive -> This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-read-recursive" - ] - }, - { - "description": "fs:allow-desktop-write -> This allows non-recursive write access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-write" - ] - }, - { - "description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-write-recursive" - ] - }, - { - "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta" - ] - }, - { - "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta-recursive" - ] - }, - { - "description": "fs:allow-document-read -> This allows non-recursive read access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-read" - ] - }, - { - "description": "fs:allow-document-read-recursive -> This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-read-recursive" - ] - }, - { - "description": "fs:allow-document-write -> This allows non-recursive write access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-write" - ] - }, - { - "description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-write-recursive" - ] - }, - { - "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta" - ] - }, - { - "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta-recursive" - ] - }, - { - "description": "fs:allow-download-read -> This allows non-recursive read access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-read" - ] - }, - { - "description": "fs:allow-download-read-recursive -> This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-read-recursive" - ] - }, - { - "description": "fs:allow-download-write -> This allows non-recursive write access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-write" - ] - }, - { - "description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-write-recursive" - ] - }, - { - "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta" - ] - }, - { - "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta-recursive" - ] - }, - { - "description": "fs:allow-exe-read -> This allows non-recursive read access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-read" - ] - }, - { - "description": "fs:allow-exe-read-recursive -> This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-read-recursive" - ] - }, - { - "description": "fs:allow-exe-write -> This allows non-recursive write access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-write" - ] - }, - { - "description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-write-recursive" - ] - }, - { - "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta" - ] - }, - { - "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta-recursive" - ] - }, - { - "description": "fs:allow-font-read -> This allows non-recursive read access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-read" - ] - }, - { - "description": "fs:allow-font-read-recursive -> This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-read-recursive" - ] - }, - { - "description": "fs:allow-font-write -> This allows non-recursive write access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-write" - ] - }, - { - "description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-write-recursive" - ] - }, - { - "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta" - ] - }, - { - "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta-recursive" - ] - }, - { - "description": "fs:allow-home-read -> This allows non-recursive read access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-read" - ] - }, - { - "description": "fs:allow-home-read-recursive -> This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-read-recursive" - ] - }, - { - "description": "fs:allow-home-write -> This allows non-recursive write access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-write" - ] - }, - { - "description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-write-recursive" - ] - }, - { - "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta" - ] - }, - { - "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta-recursive" - ] - }, - { - "description": "fs:allow-localdata-read -> This allows non-recursive read access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-read" - ] - }, - { - "description": "fs:allow-localdata-read-recursive -> This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-read-recursive" - ] - }, - { - "description": "fs:allow-localdata-write -> This allows non-recursive write access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-write" - ] - }, - { - "description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-write-recursive" - ] - }, - { - "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta" - ] - }, - { - "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta-recursive" - ] - }, - { - "description": "fs:allow-log-read -> This allows non-recursive read access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-read" - ] - }, - { - "description": "fs:allow-log-read-recursive -> This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-read-recursive" - ] - }, - { - "description": "fs:allow-log-write -> This allows non-recursive write access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-write" - ] - }, - { - "description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-write-recursive" - ] - }, - { - "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta" - ] - }, - { - "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta-recursive" - ] - }, - { - "description": "fs:allow-picture-read -> This allows non-recursive read access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-read" - ] - }, - { - "description": "fs:allow-picture-read-recursive -> This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-read-recursive" - ] - }, - { - "description": "fs:allow-picture-write -> This allows non-recursive write access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-write" - ] - }, - { - "description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-write-recursive" - ] - }, - { - "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta" - ] - }, - { - "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta-recursive" - ] - }, - { - "description": "fs:allow-public-read -> This allows non-recursive read access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-read" - ] - }, - { - "description": "fs:allow-public-read-recursive -> This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-read-recursive" - ] - }, - { - "description": "fs:allow-public-write -> This allows non-recursive write access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-write" - ] - }, - { - "description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-write-recursive" - ] - }, - { - "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta" - ] - }, - { - "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta-recursive" - ] - }, - { - "description": "fs:allow-resource-read -> This allows non-recursive read access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-read" - ] - }, - { - "description": "fs:allow-resource-read-recursive -> This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-read-recursive" - ] - }, - { - "description": "fs:allow-resource-write -> This allows non-recursive write access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-write" - ] - }, - { - "description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-write-recursive" - ] - }, - { - "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta" - ] - }, - { - "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta-recursive" - ] - }, - { - "description": "fs:allow-runtime-read -> This allows non-recursive read access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-read" - ] - }, - { - "description": "fs:allow-runtime-read-recursive -> This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-read-recursive" - ] - }, - { - "description": "fs:allow-runtime-write -> This allows non-recursive write access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-write" - ] - }, - { - "description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-write-recursive" - ] - }, - { - "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta" - ] - }, - { - "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta-recursive" - ] - }, - { - "description": "fs:allow-temp-read -> This allows non-recursive read access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-read" - ] - }, - { - "description": "fs:allow-temp-read-recursive -> This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-read-recursive" - ] - }, - { - "description": "fs:allow-temp-write -> This allows non-recursive write access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-write" - ] - }, - { - "description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-write-recursive" - ] - }, - { - "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta" - ] - }, - { - "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta-recursive" - ] - }, - { - "description": "fs:allow-template-read -> This allows non-recursive read access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-read" - ] - }, - { - "description": "fs:allow-template-read-recursive -> This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-read-recursive" - ] - }, - { - "description": "fs:allow-template-write -> This allows non-recursive write access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-write" - ] - }, - { - "description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-write-recursive" - ] - }, - { - "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta" - ] - }, - { - "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta-recursive" - ] - }, - { - "description": "fs:allow-video-read -> This allows non-recursive read access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-read" - ] - }, - { - "description": "fs:allow-video-read-recursive -> This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-read-recursive" - ] - }, - { - "description": "fs:allow-video-write -> This allows non-recursive write access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-write" - ] - }, - { - "description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-write-recursive" - ] - }, - { - "description": "fs:deny-default -> This denies access to dangerous Tauri relevant files and folders by default.", - "type": "string", - "enum": [ - "fs:deny-default" - ] - }, - { - "description": "fs:allow-copy-file -> Enables the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-copy-file" - ] - }, - { - "description": "fs:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-create" - ] - }, - { - "description": "fs:allow-exists -> Enables the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-exists" - ] - }, - { - "description": "fs:allow-fstat -> Enables the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-fstat" - ] - }, - { - "description": "fs:allow-ftruncate -> Enables the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-ftruncate" - ] - }, - { - "description": "fs:allow-lstat -> Enables the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-lstat" - ] - }, - { - "description": "fs:allow-mkdir -> Enables the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-mkdir" - ] - }, - { - "description": "fs:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-open" - ] - }, - { - "description": "fs:allow-read -> Enables the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read" - ] - }, - { - "description": "fs:allow-read-dir -> Enables the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-dir" - ] - }, - { - "description": "fs:allow-read-file -> Enables the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-file" - ] - }, - { - "description": "fs:allow-read-text-file -> Enables the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file" - ] - }, - { - "description": "fs:allow-read-text-file-lines -> Enables the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines" - ] - }, - { - "description": "fs:allow-read-text-file-lines-next -> Enables the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines-next" - ] - }, - { - "description": "fs:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-remove" - ] - }, - { - "description": "fs:allow-rename -> Enables the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-rename" - ] - }, - { - "description": "fs:allow-seek -> Enables the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-seek" - ] - }, - { - "description": "fs:allow-stat -> Enables the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-stat" - ] - }, - { - "description": "fs:allow-truncate -> Enables the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-truncate" - ] - }, - { - "description": "fs:allow-unwatch -> Enables the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-unwatch" - ] - }, - { - "description": "fs:allow-watch -> Enables the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-watch" - ] - }, - { - "description": "fs:allow-write -> Enables the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write" - ] - }, - { - "description": "fs:allow-write-file -> Enables the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-file" - ] - }, - { - "description": "fs:allow-write-text-file -> Enables the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-text-file" - ] - }, - { - "description": "fs:create-app-specific-dirs -> This permissions allows to create the application specific directories.\n", - "type": "string", - "enum": [ - "fs:create-app-specific-dirs" - ] - }, - { - "description": "fs:deny-copy-file -> Denies the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-copy-file" - ] - }, - { - "description": "fs:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-create" - ] - }, - { - "description": "fs:deny-exists -> Denies the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-exists" - ] - }, - { - "description": "fs:deny-fstat -> Denies the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-fstat" - ] - }, - { - "description": "fs:deny-ftruncate -> Denies the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-ftruncate" - ] - }, - { - "description": "fs:deny-lstat -> Denies the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-lstat" - ] - }, - { - "description": "fs:deny-mkdir -> Denies the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-mkdir" - ] - }, - { - "description": "fs:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-open" - ] - }, - { - "description": "fs:deny-read -> Denies the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read" - ] - }, - { - "description": "fs:deny-read-dir -> Denies the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-dir" - ] - }, - { - "description": "fs:deny-read-file -> Denies the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-file" - ] - }, - { - "description": "fs:deny-read-text-file -> Denies the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file" - ] - }, - { - "description": "fs:deny-read-text-file-lines -> Denies the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines" - ] - }, - { - "description": "fs:deny-read-text-file-lines-next -> Denies the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines-next" - ] - }, - { - "description": "fs:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-remove" - ] - }, - { - "description": "fs:deny-rename -> Denies the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-rename" - ] - }, - { - "description": "fs:deny-seek -> Denies the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-seek" - ] - }, - { - "description": "fs:deny-stat -> Denies the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-stat" - ] - }, - { - "description": "fs:deny-truncate -> Denies the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-truncate" - ] - }, - { - "description": "fs:deny-unwatch -> Denies the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-unwatch" - ] - }, - { - "description": "fs:deny-watch -> Denies the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-watch" - ] - }, - { - "description": "fs:deny-webview-data-linux -> This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-linux" - ] - }, - { - "description": "fs:deny-webview-data-windows -> This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-windows" - ] - }, - { - "description": "fs:deny-write -> Denies the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write" - ] - }, - { - "description": "fs:deny-write-file -> Denies the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-file" - ] - }, - { - "description": "fs:deny-write-text-file -> Denies the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-text-file" - ] - }, - { - "description": "fs:read-all -> This enables all read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-all" - ] - }, - { - "description": "fs:read-app-specific-dirs-recursive -> This permission allows recursive read functionality on the application\nspecific base directories. \n", - "type": "string", - "enum": [ - "fs:read-app-specific-dirs-recursive" - ] - }, - { - "description": "fs:read-dirs -> This enables directory read and file metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-dirs" - ] - }, - { - "description": "fs:read-files -> This enables file read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-files" - ] - }, - { - "description": "fs:read-meta -> This enables all index or metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-meta" - ] - }, - { - "description": "fs:scope -> An empty permission you can use to modify the global scope.", - "type": "string", - "enum": [ - "fs:scope" - ] - }, - { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", - "type": "string", - "enum": [ - "fs:scope-app" - ] - }, - { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", - "type": "string", - "enum": [ - "fs:scope-app-index" - ] - }, - { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-app-recursive" - ] - }, - { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-appcache" - ] - }, - { - "description": "fs:scope-appcache-index -> This scope permits to list all files and folders in the `$APPCACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-appcache-index" - ] - }, - { - "description": "fs:scope-appcache-recursive -> This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appcache-recursive" - ] - }, - { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig" - ] - }, - { - "description": "fs:scope-appconfig-index -> This scope permits to list all files and folders in the `$APPCONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig-index" - ] - }, - { - "description": "fs:scope-appconfig-recursive -> This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appconfig-recursive" - ] - }, - { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-appdata" - ] - }, - { - "description": "fs:scope-appdata-index -> This scope permits to list all files and folders in the `$APPDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-appdata-index" - ] - }, - { - "description": "fs:scope-appdata-recursive -> This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appdata-recursive" - ] - }, - { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata" - ] - }, - { - "description": "fs:scope-applocaldata-index -> This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-index" - ] - }, - { - "description": "fs:scope-applocaldata-recursive -> This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-recursive" - ] - }, - { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:scope-applog" - ] - }, - { - "description": "fs:scope-applog-index -> This scope permits to list all files and folders in the `$APPLOG`folder.", - "type": "string", - "enum": [ - "fs:scope-applog-index" - ] - }, - { - "description": "fs:scope-applog-recursive -> This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applog-recursive" - ] - }, - { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:scope-audio" - ] - }, - { - "description": "fs:scope-audio-index -> This scope permits to list all files and folders in the `$AUDIO`folder.", - "type": "string", - "enum": [ - "fs:scope-audio-index" - ] - }, - { - "description": "fs:scope-audio-recursive -> This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-audio-recursive" - ] - }, - { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-cache" - ] - }, - { - "description": "fs:scope-cache-index -> This scope permits to list all files and folders in the `$CACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-cache-index" - ] - }, - { - "description": "fs:scope-cache-recursive -> This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-cache-recursive" - ] - }, - { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-config" - ] - }, - { - "description": "fs:scope-config-index -> This scope permits to list all files and folders in the `$CONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-config-index" - ] - }, - { - "description": "fs:scope-config-recursive -> This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-config-recursive" - ] - }, - { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:scope-data" - ] - }, - { - "description": "fs:scope-data-index -> This scope permits to list all files and folders in the `$DATA`folder.", - "type": "string", - "enum": [ - "fs:scope-data-index" - ] - }, - { - "description": "fs:scope-data-recursive -> This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-data-recursive" - ] - }, - { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:scope-desktop" - ] - }, - { - "description": "fs:scope-desktop-index -> This scope permits to list all files and folders in the `$DESKTOP`folder.", - "type": "string", - "enum": [ - "fs:scope-desktop-index" - ] - }, - { - "description": "fs:scope-desktop-recursive -> This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-desktop-recursive" - ] - }, - { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:scope-document" - ] - }, - { - "description": "fs:scope-document-index -> This scope permits to list all files and folders in the `$DOCUMENT`folder.", - "type": "string", - "enum": [ - "fs:scope-document-index" - ] - }, - { - "description": "fs:scope-document-recursive -> This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-document-recursive" - ] - }, - { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:scope-download" - ] - }, - { - "description": "fs:scope-download-index -> This scope permits to list all files and folders in the `$DOWNLOAD`folder.", - "type": "string", - "enum": [ - "fs:scope-download-index" - ] - }, - { - "description": "fs:scope-download-recursive -> This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-download-recursive" - ] - }, - { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:scope-exe" - ] - }, - { - "description": "fs:scope-exe-index -> This scope permits to list all files and folders in the `$EXE`folder.", - "type": "string", - "enum": [ - "fs:scope-exe-index" - ] - }, - { - "description": "fs:scope-exe-recursive -> This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-exe-recursive" - ] - }, - { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:scope-font" - ] - }, - { - "description": "fs:scope-font-index -> This scope permits to list all files and folders in the `$FONT`folder.", - "type": "string", - "enum": [ - "fs:scope-font-index" - ] - }, - { - "description": "fs:scope-font-recursive -> This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-font-recursive" - ] - }, - { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:scope-home" - ] - }, - { - "description": "fs:scope-home-index -> This scope permits to list all files and folders in the `$HOME`folder.", - "type": "string", - "enum": [ - "fs:scope-home-index" - ] - }, - { - "description": "fs:scope-home-recursive -> This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-home-recursive" - ] - }, - { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-localdata" - ] - }, - { - "description": "fs:scope-localdata-index -> This scope permits to list all files and folders in the `$LOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-localdata-index" - ] - }, - { - "description": "fs:scope-localdata-recursive -> This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-localdata-recursive" - ] - }, - { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:scope-log" - ] - }, - { - "description": "fs:scope-log-index -> This scope permits to list all files and folders in the `$LOG`folder.", - "type": "string", - "enum": [ - "fs:scope-log-index" - ] - }, - { - "description": "fs:scope-log-recursive -> This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-log-recursive" - ] - }, - { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:scope-picture" - ] - }, - { - "description": "fs:scope-picture-index -> This scope permits to list all files and folders in the `$PICTURE`folder.", - "type": "string", - "enum": [ - "fs:scope-picture-index" - ] - }, - { - "description": "fs:scope-picture-recursive -> This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-picture-recursive" - ] - }, - { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:scope-public" - ] - }, - { - "description": "fs:scope-public-index -> This scope permits to list all files and folders in the `$PUBLIC`folder.", - "type": "string", - "enum": [ - "fs:scope-public-index" - ] - }, - { - "description": "fs:scope-public-recursive -> This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-public-recursive" - ] - }, - { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:scope-resource" - ] - }, - { - "description": "fs:scope-resource-index -> This scope permits to list all files and folders in the `$RESOURCE`folder.", - "type": "string", - "enum": [ - "fs:scope-resource-index" - ] - }, - { - "description": "fs:scope-resource-recursive -> This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-resource-recursive" - ] - }, - { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:scope-runtime" - ] - }, - { - "description": "fs:scope-runtime-index -> This scope permits to list all files and folders in the `$RUNTIME`folder.", - "type": "string", - "enum": [ - "fs:scope-runtime-index" - ] - }, - { - "description": "fs:scope-runtime-recursive -> This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-runtime-recursive" - ] - }, - { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:scope-temp" - ] - }, - { - "description": "fs:scope-temp-index -> This scope permits to list all files and folders in the `$TEMP`folder.", - "type": "string", - "enum": [ - "fs:scope-temp-index" - ] - }, - { - "description": "fs:scope-temp-recursive -> This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-temp-recursive" - ] - }, - { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:scope-template" - ] - }, - { - "description": "fs:scope-template-index -> This scope permits to list all files and folders in the `$TEMPLATE`folder.", - "type": "string", - "enum": [ - "fs:scope-template-index" - ] - }, - { - "description": "fs:scope-template-recursive -> This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-template-recursive" - ] - }, - { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:scope-video" - ] - }, - { - "description": "fs:scope-video-index -> This scope permits to list all files and folders in the `$VIDEO`folder.", - "type": "string", - "enum": [ - "fs:scope-video-index" - ] - }, - { - "description": "fs:scope-video-recursive -> This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-video-recursive" - ] - }, - { - "description": "fs:write-all -> This enables all write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-all" - ] - }, - { - "description": "fs:write-files -> This enables all file write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-files" - ] - } - ] - }, - "allow": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", - "anyOf": [ - { - "description": "FS scope path.", - "type": "string" - }, - { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "FsScopeEntry", - "description": "FS scope entry.", - "anyOf": [ - { - "description": "FS scope path.", - "type": "string" - }, - { - "type": "object", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "FS scope path.", - "type": "string" - } - } - } - ] - } - } - } - }, - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "description": "http:default -> This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", - "type": "string", - "enum": [ - "http:default" - ] - }, - { - "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch" - ] - }, - { - "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-cancel" - ] - }, - { - "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-read-body" - ] - }, - { - "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-send" - ] - }, - { - "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch" - ] - }, - { - "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-cancel" - ] - }, - { - "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-read-body" - ] - }, - { - "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-send" - ] - } - ] - }, - "allow": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } - }, - "deny": { - "items": { - "title": "HttpScopeEntry", - "description": "HTTP scope entry.", - "anyOf": [ - { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - }, - { - "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "description": "A URL that can be accessed by the webview when using the HTTP APIs. Wildcards can be used following the URL pattern standard.\n\nSee [the URL Pattern spec](https://urlpattern.spec.whatwg.org/) for more information.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin on port 443\n\n- \"https://*:*\" : allows all HTTPS origin on any port\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", - "type": "string" - } - } - } - ] - } - } - } - }, - { - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "identifier": { - "oneOf": [ - { - "description": "shell:default -> This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-spawn" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-spawn" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - } - ] - }, - "allow": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - }, - "deny": { - "items": { - "title": "Entry", - "description": "A command allowed to be executed by the webview API.", - "type": "object", - "required": [ - "args", - "cmd", - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - } - } - } - } - } - ] - } - ] - }, - "Identifier": { - "oneOf": [ - { - "description": "barcode-scanner:default -> This permission set configures which\nbarcode scanning features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all barcode related features.\n\n", - "type": "string", - "enum": [ - "barcode-scanner:default" - ] - }, - { - "description": "barcode-scanner:allow-cancel -> Enables the cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-cancel" - ] - }, - { - "description": "barcode-scanner:allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-check-permissions" - ] - }, - { - "description": "barcode-scanner:allow-open-app-settings -> Enables the open_app_settings command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-open-app-settings" - ] - }, - { - "description": "barcode-scanner:allow-request-permissions -> Enables the request_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-request-permissions" - ] - }, - { - "description": "barcode-scanner:allow-scan -> Enables the scan command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-scan" - ] - }, - { - "description": "barcode-scanner:allow-vibrate -> Enables the vibrate command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:allow-vibrate" - ] - }, - { - "description": "barcode-scanner:deny-cancel -> Denies the cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-cancel" - ] - }, - { - "description": "barcode-scanner:deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-check-permissions" - ] - }, - { - "description": "barcode-scanner:deny-open-app-settings -> Denies the open_app_settings command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-open-app-settings" - ] - }, - { - "description": "barcode-scanner:deny-request-permissions -> Denies the request_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-request-permissions" - ] - }, - { - "description": "barcode-scanner:deny-scan -> Denies the scan command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-scan" - ] - }, - { - "description": "barcode-scanner:deny-vibrate -> Denies the vibrate command without any pre-configured scope.", - "type": "string", - "enum": [ - "barcode-scanner:deny-vibrate" - ] - }, - { - "description": "biometric:default -> This permission set configures which\nbiometric features are by default exposed.\n\n#### Granted Permissions\n\nIt allows acccess to all biometric commands.\n\n", - "type": "string", - "enum": [ - "biometric:default" - ] - }, - { - "description": "biometric:allow-authenticate -> Enables the authenticate command without any pre-configured scope.", - "type": "string", - "enum": [ - "biometric:allow-authenticate" - ] - }, - { - "description": "biometric:allow-status -> Enables the status command without any pre-configured scope.", - "type": "string", - "enum": [ - "biometric:allow-status" - ] - }, - { - "description": "biometric:deny-authenticate -> Denies the authenticate command without any pre-configured scope.", - "type": "string", - "enum": [ - "biometric:deny-authenticate" - ] - }, - { - "description": "biometric:deny-status -> Denies the status command without any pre-configured scope.", - "type": "string", - "enum": [ - "biometric:deny-status" - ] - }, - { - "description": "clipboard-manager:default -> No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n", - "type": "string", - "enum": [ - "clipboard-manager:default" - ] - }, - { - "description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-clear" - ] - }, - { - "description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-read-image" - ] - }, - { - "description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-read-text" - ] - }, - { - "description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-write-html" - ] - }, - { - "description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-write-image" - ] - }, - { - "description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:allow-write-text" - ] - }, - { - "description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-clear" - ] - }, - { - "description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-read-image" - ] - }, - { - "description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-read-text" - ] - }, - { - "description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-write-html" - ] - }, - { - "description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-write-image" - ] - }, - { - "description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "clipboard-manager:deny-write-text" - ] - }, - { - "description": "core:app:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:app:default" - ] - }, - { - "description": "core:app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-app-hide" - ] - }, - { - "description": "core:app:allow-app-show -> Enables the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-app-show" - ] - }, - { - "description": "core:app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-default-window-icon" - ] - }, - { - "description": "core:app:allow-name -> Enables the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-name" - ] - }, - { - "description": "core:app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-tauri-version" - ] - }, - { - "description": "core:app:allow-version -> Enables the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:allow-version" - ] - }, - { - "description": "core:app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-app-hide" - ] - }, - { - "description": "core:app:deny-app-show -> Denies the app_show command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-app-show" - ] - }, - { - "description": "core:app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-default-window-icon" - ] - }, - { - "description": "core:app:deny-name -> Denies the name command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-name" - ] - }, - { - "description": "core:app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-tauri-version" - ] - }, - { - "description": "core:app:deny-version -> Denies the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:app:deny-version" - ] - }, - { - "description": "core:event:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:event:default" - ] - }, - { - "description": "core:event:allow-emit -> Enables the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:allow-emit" - ] - }, - { - "description": "core:event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:allow-emit-to" - ] - }, - { - "description": "core:event:allow-listen -> Enables the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:allow-listen" - ] - }, - { - "description": "core:event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:allow-unlisten" - ] - }, - { - "description": "core:event:deny-emit -> Denies the emit command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:deny-emit" - ] - }, - { - "description": "core:event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:deny-emit-to" - ] - }, - { - "description": "core:event:deny-listen -> Denies the listen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:deny-listen" - ] - }, - { - "description": "core:event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:event:deny-unlisten" - ] - }, - { - "description": "core:image:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:image:default" - ] - }, - { - "description": "core:image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:allow-from-bytes" - ] - }, - { - "description": "core:image:allow-from-path -> Enables the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:allow-from-path" - ] - }, - { - "description": "core:image:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:allow-new" - ] - }, - { - "description": "core:image:allow-rgba -> Enables the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:allow-rgba" - ] - }, - { - "description": "core:image:allow-size -> Enables the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:allow-size" - ] - }, - { - "description": "core:image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:deny-from-bytes" - ] - }, - { - "description": "core:image:deny-from-path -> Denies the from_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:deny-from-path" - ] - }, - { - "description": "core:image:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:deny-new" - ] - }, - { - "description": "core:image:deny-rgba -> Denies the rgba command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:deny-rgba" - ] - }, - { - "description": "core:image:deny-size -> Denies the size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:image:deny-size" - ] - }, - { - "description": "core:menu:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:menu:default" - ] - }, - { - "description": "core:menu:allow-append -> Enables the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-append" - ] - }, - { - "description": "core:menu:allow-create-default -> Enables the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-create-default" - ] - }, - { - "description": "core:menu:allow-get -> Enables the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-get" - ] - }, - { - "description": "core:menu:allow-insert -> Enables the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-insert" - ] - }, - { - "description": "core:menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-is-checked" - ] - }, - { - "description": "core:menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-is-enabled" - ] - }, - { - "description": "core:menu:allow-items -> Enables the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-items" - ] - }, - { - "description": "core:menu:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-new" - ] - }, - { - "description": "core:menu:allow-popup -> Enables the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-popup" - ] - }, - { - "description": "core:menu:allow-prepend -> Enables the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-prepend" - ] - }, - { - "description": "core:menu:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-remove" - ] - }, - { - "description": "core:menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-remove-at" - ] - }, - { - "description": "core:menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-accelerator" - ] - }, - { - "description": "core:menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-as-app-menu" - ] - }, - { - "description": "core:menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "core:menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-as-window-menu" - ] - }, - { - "description": "core:menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "core:menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-checked" - ] - }, - { - "description": "core:menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-enabled" - ] - }, - { - "description": "core:menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-icon" - ] - }, - { - "description": "core:menu:allow-set-text -> Enables the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-set-text" - ] - }, - { - "description": "core:menu:allow-text -> Enables the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:allow-text" - ] - }, - { - "description": "core:menu:deny-append -> Denies the append command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-append" - ] - }, - { - "description": "core:menu:deny-create-default -> Denies the create_default command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-create-default" - ] - }, - { - "description": "core:menu:deny-get -> Denies the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-get" - ] - }, - { - "description": "core:menu:deny-insert -> Denies the insert command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-insert" - ] - }, - { - "description": "core:menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-is-checked" - ] - }, - { - "description": "core:menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-is-enabled" - ] - }, - { - "description": "core:menu:deny-items -> Denies the items command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-items" - ] - }, - { - "description": "core:menu:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-new" - ] - }, - { - "description": "core:menu:deny-popup -> Denies the popup command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-popup" - ] - }, - { - "description": "core:menu:deny-prepend -> Denies the prepend command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-prepend" - ] - }, - { - "description": "core:menu:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-remove" - ] - }, - { - "description": "core:menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-remove-at" - ] - }, - { - "description": "core:menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-accelerator" - ] - }, - { - "description": "core:menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-as-app-menu" - ] - }, - { - "description": "core:menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-as-help-menu-for-nsapp" - ] - }, - { - "description": "core:menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-as-window-menu" - ] - }, - { - "description": "core:menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-as-windows-menu-for-nsapp" - ] - }, - { - "description": "core:menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-checked" - ] - }, - { - "description": "core:menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-enabled" - ] - }, - { - "description": "core:menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-icon" - ] - }, - { - "description": "core:menu:deny-set-text -> Denies the set_text command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-set-text" - ] - }, - { - "description": "core:menu:deny-text -> Denies the text command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:menu:deny-text" - ] - }, - { - "description": "core:path:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:path:default" - ] - }, - { - "description": "core:path:allow-basename -> Enables the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-basename" - ] - }, - { - "description": "core:path:allow-dirname -> Enables the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-dirname" - ] - }, - { - "description": "core:path:allow-extname -> Enables the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-extname" - ] - }, - { - "description": "core:path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-is-absolute" - ] - }, - { - "description": "core:path:allow-join -> Enables the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-join" - ] - }, - { - "description": "core:path:allow-normalize -> Enables the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-normalize" - ] - }, - { - "description": "core:path:allow-resolve -> Enables the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-resolve" - ] - }, - { - "description": "core:path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:allow-resolve-directory" - ] - }, - { - "description": "core:path:deny-basename -> Denies the basename command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-basename" - ] - }, - { - "description": "core:path:deny-dirname -> Denies the dirname command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-dirname" - ] - }, - { - "description": "core:path:deny-extname -> Denies the extname command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-extname" - ] - }, - { - "description": "core:path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-is-absolute" - ] - }, - { - "description": "core:path:deny-join -> Denies the join command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-join" - ] - }, - { - "description": "core:path:deny-normalize -> Denies the normalize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-normalize" - ] - }, - { - "description": "core:path:deny-resolve -> Denies the resolve command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-resolve" - ] - }, - { - "description": "core:path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:path:deny-resolve-directory" - ] - }, - { - "description": "core:resources:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:resources:default" - ] - }, - { - "description": "core:resources:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:resources:allow-close" - ] - }, - { - "description": "core:resources:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:resources:deny-close" - ] - }, - { - "description": "core:tray:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:tray:default" - ] - }, - { - "description": "core:tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-get-by-id" - ] - }, - { - "description": "core:tray:allow-new -> Enables the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-new" - ] - }, - { - "description": "core:tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-remove-by-id" - ] - }, - { - "description": "core:tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-icon" - ] - }, - { - "description": "core:tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-icon-as-template" - ] - }, - { - "description": "core:tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-menu" - ] - }, - { - "description": "core:tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-show-menu-on-left-click" - ] - }, - { - "description": "core:tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-temp-dir-path" - ] - }, - { - "description": "core:tray:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-title" - ] - }, - { - "description": "core:tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-tooltip" - ] - }, - { - "description": "core:tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:allow-set-visible" - ] - }, - { - "description": "core:tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-get-by-id" - ] - }, - { - "description": "core:tray:deny-new -> Denies the new command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-new" - ] - }, - { - "description": "core:tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-remove-by-id" - ] - }, - { - "description": "core:tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-icon" - ] - }, - { - "description": "core:tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-icon-as-template" - ] - }, - { - "description": "core:tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-menu" - ] - }, - { - "description": "core:tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-show-menu-on-left-click" - ] - }, - { - "description": "core:tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-temp-dir-path" - ] - }, - { - "description": "core:tray:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-title" - ] - }, - { - "description": "core:tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-tooltip" - ] - }, - { - "description": "core:tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:tray:deny-set-visible" - ] - }, - { - "description": "core:webview:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:webview:default" - ] - }, - { - "description": "core:webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-create-webview" - ] - }, - { - "description": "core:webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-create-webview-window" - ] - }, - { - "description": "core:webview:allow-get-all-webviews -> Enables the get_all_webviews command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-get-all-webviews" - ] - }, - { - "description": "core:webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-internal-toggle-devtools" - ] - }, - { - "description": "core:webview:allow-print -> Enables the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-print" - ] - }, - { - "description": "core:webview:allow-reparent -> Enables the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-reparent" - ] - }, - { - "description": "core:webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-set-webview-focus" - ] - }, - { - "description": "core:webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-set-webview-position" - ] - }, - { - "description": "core:webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-set-webview-size" - ] - }, - { - "description": "core:webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-set-webview-zoom" - ] - }, - { - "description": "core:webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-webview-close" - ] - }, - { - "description": "core:webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-webview-position" - ] - }, - { - "description": "core:webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:allow-webview-size" - ] - }, - { - "description": "core:webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-create-webview" - ] - }, - { - "description": "core:webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-create-webview-window" - ] - }, - { - "description": "core:webview:deny-get-all-webviews -> Denies the get_all_webviews command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-get-all-webviews" - ] - }, - { - "description": "core:webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-internal-toggle-devtools" - ] - }, - { - "description": "core:webview:deny-print -> Denies the print command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-print" - ] - }, - { - "description": "core:webview:deny-reparent -> Denies the reparent command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-reparent" - ] - }, - { - "description": "core:webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-set-webview-focus" - ] - }, - { - "description": "core:webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-set-webview-position" - ] - }, - { - "description": "core:webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-set-webview-size" - ] - }, - { - "description": "core:webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-set-webview-zoom" - ] - }, - { - "description": "core:webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-webview-close" - ] - }, - { - "description": "core:webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-webview-position" - ] - }, - { - "description": "core:webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:webview:deny-webview-size" - ] - }, - { - "description": "core:window:default -> Default permissions for the plugin.", - "type": "string", - "enum": [ - "core:window:default" - ] - }, - { - "description": "core:window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-available-monitors" - ] - }, - { - "description": "core:window:allow-center -> Enables the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-center" - ] - }, - { - "description": "core:window:allow-close -> Enables the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-close" - ] - }, - { - "description": "core:window:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-create" - ] - }, - { - "description": "core:window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-current-monitor" - ] - }, - { - "description": "core:window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-cursor-position" - ] - }, - { - "description": "core:window:allow-destroy -> Enables the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-destroy" - ] - }, - { - "description": "core:window:allow-get-all-windows -> Enables the get_all_windows command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-get-all-windows" - ] - }, - { - "description": "core:window:allow-hide -> Enables the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-hide" - ] - }, - { - "description": "core:window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-inner-position" - ] - }, - { - "description": "core:window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-inner-size" - ] - }, - { - "description": "core:window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-internal-toggle-maximize" - ] - }, - { - "description": "core:window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-closable" - ] - }, - { - "description": "core:window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-decorated" - ] - }, - { - "description": "core:window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-focused" - ] - }, - { - "description": "core:window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-fullscreen" - ] - }, - { - "description": "core:window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-maximizable" - ] - }, - { - "description": "core:window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-maximized" - ] - }, - { - "description": "core:window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-minimizable" - ] - }, - { - "description": "core:window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-minimized" - ] - }, - { - "description": "core:window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-resizable" - ] - }, - { - "description": "core:window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-is-visible" - ] - }, - { - "description": "core:window:allow-maximize -> Enables the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-maximize" - ] - }, - { - "description": "core:window:allow-minimize -> Enables the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-minimize" - ] - }, - { - "description": "core:window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-monitor-from-point" - ] - }, - { - "description": "core:window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-outer-position" - ] - }, - { - "description": "core:window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-outer-size" - ] - }, - { - "description": "core:window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-primary-monitor" - ] - }, - { - "description": "core:window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-request-user-attention" - ] - }, - { - "description": "core:window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-scale-factor" - ] - }, - { - "description": "core:window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-always-on-bottom" - ] - }, - { - "description": "core:window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-always-on-top" - ] - }, - { - "description": "core:window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-closable" - ] - }, - { - "description": "core:window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-content-protected" - ] - }, - { - "description": "core:window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-cursor-grab" - ] - }, - { - "description": "core:window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-cursor-icon" - ] - }, - { - "description": "core:window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-cursor-position" - ] - }, - { - "description": "core:window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-cursor-visible" - ] - }, - { - "description": "core:window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-decorations" - ] - }, - { - "description": "core:window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-effects" - ] - }, - { - "description": "core:window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-focus" - ] - }, - { - "description": "core:window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-fullscreen" - ] - }, - { - "description": "core:window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-icon" - ] - }, - { - "description": "core:window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-ignore-cursor-events" - ] - }, - { - "description": "core:window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-max-size" - ] - }, - { - "description": "core:window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-maximizable" - ] - }, - { - "description": "core:window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-min-size" - ] - }, - { - "description": "core:window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-minimizable" - ] - }, - { - "description": "core:window:allow-set-position -> Enables the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-position" - ] - }, - { - "description": "core:window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-progress-bar" - ] - }, - { - "description": "core:window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-resizable" - ] - }, - { - "description": "core:window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-shadow" - ] - }, - { - "description": "core:window:allow-set-size -> Enables the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-size" - ] - }, - { - "description": "core:window:allow-set-size-constraints -> Enables the set_size_constraints command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-size-constraints" - ] - }, - { - "description": "core:window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-skip-taskbar" - ] - }, - { - "description": "core:window:allow-set-title -> Enables the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-title" - ] - }, - { - "description": "core:window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-title-bar-style" - ] - }, - { - "description": "core:window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-set-visible-on-all-workspaces" - ] - }, - { - "description": "core:window:allow-show -> Enables the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-show" - ] - }, - { - "description": "core:window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-start-dragging" - ] - }, - { - "description": "core:window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-start-resize-dragging" - ] - }, - { - "description": "core:window:allow-theme -> Enables the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-theme" - ] - }, - { - "description": "core:window:allow-title -> Enables the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-title" - ] - }, - { - "description": "core:window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-toggle-maximize" - ] - }, - { - "description": "core:window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-unmaximize" - ] - }, - { - "description": "core:window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:allow-unminimize" - ] - }, - { - "description": "core:window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-available-monitors" - ] - }, - { - "description": "core:window:deny-center -> Denies the center command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-center" - ] - }, - { - "description": "core:window:deny-close -> Denies the close command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-close" - ] - }, - { - "description": "core:window:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-create" - ] - }, - { - "description": "core:window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-current-monitor" - ] - }, - { - "description": "core:window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-cursor-position" - ] - }, - { - "description": "core:window:deny-destroy -> Denies the destroy command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-destroy" - ] - }, - { - "description": "core:window:deny-get-all-windows -> Denies the get_all_windows command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-get-all-windows" - ] - }, - { - "description": "core:window:deny-hide -> Denies the hide command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-hide" - ] - }, - { - "description": "core:window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-inner-position" - ] - }, - { - "description": "core:window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-inner-size" - ] - }, - { - "description": "core:window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-internal-toggle-maximize" - ] - }, - { - "description": "core:window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-closable" - ] - }, - { - "description": "core:window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-decorated" - ] - }, - { - "description": "core:window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-focused" - ] - }, - { - "description": "core:window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-fullscreen" - ] - }, - { - "description": "core:window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-maximizable" - ] - }, - { - "description": "core:window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-maximized" - ] - }, - { - "description": "core:window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-minimizable" - ] - }, - { - "description": "core:window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-minimized" - ] - }, - { - "description": "core:window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-resizable" - ] - }, - { - "description": "core:window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-is-visible" - ] - }, - { - "description": "core:window:deny-maximize -> Denies the maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-maximize" - ] - }, - { - "description": "core:window:deny-minimize -> Denies the minimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-minimize" - ] - }, - { - "description": "core:window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-monitor-from-point" - ] - }, - { - "description": "core:window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-outer-position" - ] - }, - { - "description": "core:window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-outer-size" - ] - }, - { - "description": "core:window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-primary-monitor" - ] - }, - { - "description": "core:window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-request-user-attention" - ] - }, - { - "description": "core:window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-scale-factor" - ] - }, - { - "description": "core:window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-always-on-bottom" - ] - }, - { - "description": "core:window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-always-on-top" - ] - }, - { - "description": "core:window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-closable" - ] - }, - { - "description": "core:window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-content-protected" - ] - }, - { - "description": "core:window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-cursor-grab" - ] - }, - { - "description": "core:window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-cursor-icon" - ] - }, - { - "description": "core:window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-cursor-position" - ] - }, - { - "description": "core:window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-cursor-visible" - ] - }, - { - "description": "core:window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-decorations" - ] - }, - { - "description": "core:window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-effects" - ] - }, - { - "description": "core:window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-focus" - ] - }, - { - "description": "core:window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-fullscreen" - ] - }, - { - "description": "core:window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-icon" - ] - }, - { - "description": "core:window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-ignore-cursor-events" - ] - }, - { - "description": "core:window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-max-size" - ] - }, - { - "description": "core:window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-maximizable" - ] - }, - { - "description": "core:window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-min-size" - ] - }, - { - "description": "core:window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-minimizable" - ] - }, - { - "description": "core:window:deny-set-position -> Denies the set_position command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-position" - ] - }, - { - "description": "core:window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-progress-bar" - ] - }, - { - "description": "core:window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-resizable" - ] - }, - { - "description": "core:window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-shadow" - ] - }, - { - "description": "core:window:deny-set-size -> Denies the set_size command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-size" - ] - }, - { - "description": "core:window:deny-set-size-constraints -> Denies the set_size_constraints command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-size-constraints" - ] - }, - { - "description": "core:window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-skip-taskbar" - ] - }, - { - "description": "core:window:deny-set-title -> Denies the set_title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-title" - ] - }, - { - "description": "core:window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-title-bar-style" - ] - }, - { - "description": "core:window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-set-visible-on-all-workspaces" - ] - }, - { - "description": "core:window:deny-show -> Denies the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-show" - ] - }, - { - "description": "core:window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-start-dragging" - ] - }, - { - "description": "core:window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-start-resize-dragging" - ] - }, - { - "description": "core:window:deny-theme -> Denies the theme command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-theme" - ] - }, - { - "description": "core:window:deny-title -> Denies the title command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-title" - ] - }, - { - "description": "core:window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-toggle-maximize" - ] - }, - { - "description": "core:window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-unmaximize" - ] - }, - { - "description": "core:window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.", - "type": "string", - "enum": [ - "core:window:deny-unminimize" - ] - }, - { - "description": "dialog:default -> This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n", - "type": "string", - "enum": [ - "dialog:default" - ] - }, - { - "description": "dialog:allow-ask -> Enables the ask command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:allow-ask" - ] - }, - { - "description": "dialog:allow-confirm -> Enables the confirm command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:allow-confirm" - ] - }, - { - "description": "dialog:allow-message -> Enables the message command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:allow-message" - ] - }, - { - "description": "dialog:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:allow-open" - ] - }, - { - "description": "dialog:allow-save -> Enables the save command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:allow-save" - ] - }, - { - "description": "dialog:deny-ask -> Denies the ask command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:deny-ask" - ] - }, - { - "description": "dialog:deny-confirm -> Denies the confirm command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:deny-confirm" - ] - }, - { - "description": "dialog:deny-message -> Denies the message command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:deny-message" - ] - }, - { - "description": "dialog:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:deny-open" - ] - }, - { - "description": "dialog:deny-save -> Denies the save command without any pre-configured scope.", - "type": "string", - "enum": [ - "dialog:deny-save" - ] - }, - { - "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta" - ] - }, - { - "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the application folders, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-app-meta-recursive" - ] - }, - { - "description": "fs:allow-app-read -> This allows non-recursive read access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-read" - ] - }, - { - "description": "fs:allow-app-read-recursive -> This allows full recursive read access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-read-recursive" - ] - }, - { - "description": "fs:allow-app-write -> This allows non-recursive write access to the application folders.", - "type": "string", - "enum": [ - "fs:allow-app-write" - ] - }, - { - "description": "fs:allow-app-write-recursive -> This allows full recursive write access to the complete application folders, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-app-write-recursive" - ] - }, - { - "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta" - ] - }, - { - "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appcache-meta-recursive" - ] - }, - { - "description": "fs:allow-appcache-read -> This allows non-recursive read access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-read" - ] - }, - { - "description": "fs:allow-appcache-read-recursive -> This allows full recursive read access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-read-recursive" - ] - }, - { - "description": "fs:allow-appcache-write -> This allows non-recursive write access to the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-appcache-write" - ] - }, - { - "description": "fs:allow-appcache-write-recursive -> This allows full recursive write access to the complete `$APPCACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appcache-write-recursive" - ] - }, - { - "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta" - ] - }, - { - "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appconfig-meta-recursive" - ] - }, - { - "description": "fs:allow-appconfig-read -> This allows non-recursive read access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read" - ] - }, - { - "description": "fs:allow-appconfig-read-recursive -> This allows full recursive read access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-read-recursive" - ] - }, - { - "description": "fs:allow-appconfig-write -> This allows non-recursive write access to the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write" - ] - }, - { - "description": "fs:allow-appconfig-write-recursive -> This allows full recursive write access to the complete `$APPCONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appconfig-write-recursive" - ] - }, - { - "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta" - ] - }, - { - "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-appdata-meta-recursive" - ] - }, - { - "description": "fs:allow-appdata-read -> This allows non-recursive read access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-read" - ] - }, - { - "description": "fs:allow-appdata-read-recursive -> This allows full recursive read access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-read-recursive" - ] - }, - { - "description": "fs:allow-appdata-write -> This allows non-recursive write access to the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-appdata-write" - ] - }, - { - "description": "fs:allow-appdata-write-recursive -> This allows full recursive write access to the complete `$APPDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-appdata-write-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta" - ] - }, - { - "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-meta-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-read -> This allows non-recursive read access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read" - ] - }, - { - "description": "fs:allow-applocaldata-read-recursive -> This allows full recursive read access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-read-recursive" - ] - }, - { - "description": "fs:allow-applocaldata-write -> This allows non-recursive write access to the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write" - ] - }, - { - "description": "fs:allow-applocaldata-write-recursive -> This allows full recursive write access to the complete `$APPLOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applocaldata-write-recursive" - ] - }, - { - "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta" - ] - }, - { - "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-applog-meta-recursive" - ] - }, - { - "description": "fs:allow-applog-read -> This allows non-recursive read access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-read" - ] - }, - { - "description": "fs:allow-applog-read-recursive -> This allows full recursive read access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-read-recursive" - ] - }, - { - "description": "fs:allow-applog-write -> This allows non-recursive write access to the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:allow-applog-write" - ] - }, - { - "description": "fs:allow-applog-write-recursive -> This allows full recursive write access to the complete `$APPLOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-applog-write-recursive" - ] - }, - { - "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta" - ] - }, - { - "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-audio-meta-recursive" - ] - }, - { - "description": "fs:allow-audio-read -> This allows non-recursive read access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-read" - ] - }, - { - "description": "fs:allow-audio-read-recursive -> This allows full recursive read access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-read-recursive" - ] - }, - { - "description": "fs:allow-audio-write -> This allows non-recursive write access to the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:allow-audio-write" - ] - }, - { - "description": "fs:allow-audio-write-recursive -> This allows full recursive write access to the complete `$AUDIO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-audio-write-recursive" - ] - }, - { - "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta" - ] - }, - { - "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-cache-meta-recursive" - ] - }, - { - "description": "fs:allow-cache-read -> This allows non-recursive read access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-read" - ] - }, - { - "description": "fs:allow-cache-read-recursive -> This allows full recursive read access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-read-recursive" - ] - }, - { - "description": "fs:allow-cache-write -> This allows non-recursive write access to the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:allow-cache-write" - ] - }, - { - "description": "fs:allow-cache-write-recursive -> This allows full recursive write access to the complete `$CACHE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-cache-write-recursive" - ] - }, - { - "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta" - ] - }, - { - "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-config-meta-recursive" - ] - }, - { - "description": "fs:allow-config-read -> This allows non-recursive read access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-read" - ] - }, - { - "description": "fs:allow-config-read-recursive -> This allows full recursive read access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-read-recursive" - ] - }, - { - "description": "fs:allow-config-write -> This allows non-recursive write access to the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:allow-config-write" - ] - }, - { - "description": "fs:allow-config-write-recursive -> This allows full recursive write access to the complete `$CONFIG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-config-write-recursive" - ] - }, - { - "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta" - ] - }, - { - "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-data-meta-recursive" - ] - }, - { - "description": "fs:allow-data-read -> This allows non-recursive read access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-read" - ] - }, - { - "description": "fs:allow-data-read-recursive -> This allows full recursive read access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-read-recursive" - ] - }, - { - "description": "fs:allow-data-write -> This allows non-recursive write access to the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:allow-data-write" - ] - }, - { - "description": "fs:allow-data-write-recursive -> This allows full recursive write access to the complete `$DATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-data-write-recursive" - ] - }, - { - "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta" - ] - }, - { - "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-desktop-meta-recursive" - ] - }, - { - "description": "fs:allow-desktop-read -> This allows non-recursive read access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-read" - ] - }, - { - "description": "fs:allow-desktop-read-recursive -> This allows full recursive read access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-read-recursive" - ] - }, - { - "description": "fs:allow-desktop-write -> This allows non-recursive write access to the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:allow-desktop-write" - ] - }, - { - "description": "fs:allow-desktop-write-recursive -> This allows full recursive write access to the complete `$DESKTOP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-desktop-write-recursive" - ] - }, - { - "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta" - ] - }, - { - "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-document-meta-recursive" - ] - }, - { - "description": "fs:allow-document-read -> This allows non-recursive read access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-read" - ] - }, - { - "description": "fs:allow-document-read-recursive -> This allows full recursive read access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-read-recursive" - ] - }, - { - "description": "fs:allow-document-write -> This allows non-recursive write access to the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:allow-document-write" - ] - }, - { - "description": "fs:allow-document-write-recursive -> This allows full recursive write access to the complete `$DOCUMENT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-document-write-recursive" - ] - }, - { - "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta" - ] - }, - { - "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-download-meta-recursive" - ] - }, - { - "description": "fs:allow-download-read -> This allows non-recursive read access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-read" - ] - }, - { - "description": "fs:allow-download-read-recursive -> This allows full recursive read access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-read-recursive" - ] - }, - { - "description": "fs:allow-download-write -> This allows non-recursive write access to the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:allow-download-write" - ] - }, - { - "description": "fs:allow-download-write-recursive -> This allows full recursive write access to the complete `$DOWNLOAD` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-download-write-recursive" - ] - }, - { - "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta" - ] - }, - { - "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-exe-meta-recursive" - ] - }, - { - "description": "fs:allow-exe-read -> This allows non-recursive read access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-read" - ] - }, - { - "description": "fs:allow-exe-read-recursive -> This allows full recursive read access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-read-recursive" - ] - }, - { - "description": "fs:allow-exe-write -> This allows non-recursive write access to the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:allow-exe-write" - ] - }, - { - "description": "fs:allow-exe-write-recursive -> This allows full recursive write access to the complete `$EXE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-exe-write-recursive" - ] - }, - { - "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta" - ] - }, - { - "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-font-meta-recursive" - ] - }, - { - "description": "fs:allow-font-read -> This allows non-recursive read access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-read" - ] - }, - { - "description": "fs:allow-font-read-recursive -> This allows full recursive read access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-read-recursive" - ] - }, - { - "description": "fs:allow-font-write -> This allows non-recursive write access to the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:allow-font-write" - ] - }, - { - "description": "fs:allow-font-write-recursive -> This allows full recursive write access to the complete `$FONT` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-font-write-recursive" - ] - }, - { - "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta" - ] - }, - { - "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-home-meta-recursive" - ] - }, - { - "description": "fs:allow-home-read -> This allows non-recursive read access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-read" - ] - }, - { - "description": "fs:allow-home-read-recursive -> This allows full recursive read access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-read-recursive" - ] - }, - { - "description": "fs:allow-home-write -> This allows non-recursive write access to the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:allow-home-write" - ] - }, - { - "description": "fs:allow-home-write-recursive -> This allows full recursive write access to the complete `$HOME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-home-write-recursive" - ] - }, - { - "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta" - ] - }, - { - "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-localdata-meta-recursive" - ] - }, - { - "description": "fs:allow-localdata-read -> This allows non-recursive read access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-read" - ] - }, - { - "description": "fs:allow-localdata-read-recursive -> This allows full recursive read access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-read-recursive" - ] - }, - { - "description": "fs:allow-localdata-write -> This allows non-recursive write access to the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:allow-localdata-write" - ] - }, - { - "description": "fs:allow-localdata-write-recursive -> This allows full recursive write access to the complete `$LOCALDATA` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-localdata-write-recursive" - ] - }, - { - "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta" - ] - }, - { - "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-log-meta-recursive" - ] - }, - { - "description": "fs:allow-log-read -> This allows non-recursive read access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-read" - ] - }, - { - "description": "fs:allow-log-read-recursive -> This allows full recursive read access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-read-recursive" - ] - }, - { - "description": "fs:allow-log-write -> This allows non-recursive write access to the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:allow-log-write" - ] - }, - { - "description": "fs:allow-log-write-recursive -> This allows full recursive write access to the complete `$LOG` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-log-write-recursive" - ] - }, - { - "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta" - ] - }, - { - "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-picture-meta-recursive" - ] - }, - { - "description": "fs:allow-picture-read -> This allows non-recursive read access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-read" - ] - }, - { - "description": "fs:allow-picture-read-recursive -> This allows full recursive read access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-read-recursive" - ] - }, - { - "description": "fs:allow-picture-write -> This allows non-recursive write access to the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:allow-picture-write" - ] - }, - { - "description": "fs:allow-picture-write-recursive -> This allows full recursive write access to the complete `$PICTURE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-picture-write-recursive" - ] - }, - { - "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta" - ] - }, - { - "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-public-meta-recursive" - ] - }, - { - "description": "fs:allow-public-read -> This allows non-recursive read access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-read" - ] - }, - { - "description": "fs:allow-public-read-recursive -> This allows full recursive read access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-read-recursive" - ] - }, - { - "description": "fs:allow-public-write -> This allows non-recursive write access to the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:allow-public-write" - ] - }, - { - "description": "fs:allow-public-write-recursive -> This allows full recursive write access to the complete `$PUBLIC` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-public-write-recursive" - ] - }, - { - "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta" - ] - }, - { - "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-resource-meta-recursive" - ] - }, - { - "description": "fs:allow-resource-read -> This allows non-recursive read access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-read" - ] - }, - { - "description": "fs:allow-resource-read-recursive -> This allows full recursive read access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-read-recursive" - ] - }, - { - "description": "fs:allow-resource-write -> This allows non-recursive write access to the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:allow-resource-write" - ] - }, - { - "description": "fs:allow-resource-write-recursive -> This allows full recursive write access to the complete `$RESOURCE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-resource-write-recursive" - ] - }, - { - "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta" - ] - }, - { - "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-runtime-meta-recursive" - ] - }, - { - "description": "fs:allow-runtime-read -> This allows non-recursive read access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-read" - ] - }, - { - "description": "fs:allow-runtime-read-recursive -> This allows full recursive read access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-read-recursive" - ] - }, - { - "description": "fs:allow-runtime-write -> This allows non-recursive write access to the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:allow-runtime-write" - ] - }, - { - "description": "fs:allow-runtime-write-recursive -> This allows full recursive write access to the complete `$RUNTIME` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-runtime-write-recursive" - ] - }, - { - "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta" - ] - }, - { - "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-temp-meta-recursive" - ] - }, - { - "description": "fs:allow-temp-read -> This allows non-recursive read access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-read" - ] - }, - { - "description": "fs:allow-temp-read-recursive -> This allows full recursive read access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-read-recursive" - ] - }, - { - "description": "fs:allow-temp-write -> This allows non-recursive write access to the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:allow-temp-write" - ] - }, - { - "description": "fs:allow-temp-write-recursive -> This allows full recursive write access to the complete `$TEMP` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-temp-write-recursive" - ] - }, - { - "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta" - ] - }, - { - "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-template-meta-recursive" - ] - }, - { - "description": "fs:allow-template-read -> This allows non-recursive read access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-read" - ] - }, - { - "description": "fs:allow-template-read-recursive -> This allows full recursive read access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-read-recursive" - ] - }, - { - "description": "fs:allow-template-write -> This allows non-recursive write access to the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:allow-template-write" - ] - }, - { - "description": "fs:allow-template-write-recursive -> This allows full recursive write access to the complete `$TEMPLATE` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-template-write-recursive" - ] - }, - { - "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta" - ] - }, - { - "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.", - "type": "string", - "enum": [ - "fs:allow-video-meta-recursive" - ] - }, - { - "description": "fs:allow-video-read -> This allows non-recursive read access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-read" - ] - }, - { - "description": "fs:allow-video-read-recursive -> This allows full recursive read access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-read-recursive" - ] - }, - { - "description": "fs:allow-video-write -> This allows non-recursive write access to the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:allow-video-write" - ] - }, - { - "description": "fs:allow-video-write-recursive -> This allows full recursive write access to the complete `$VIDEO` folder, files and subdirectories.", - "type": "string", - "enum": [ - "fs:allow-video-write-recursive" - ] - }, - { - "description": "fs:deny-default -> This denies access to dangerous Tauri relevant files and folders by default.", - "type": "string", - "enum": [ - "fs:deny-default" - ] - }, - { - "description": "fs:default -> This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n", - "type": "string", - "enum": [ - "fs:default" - ] - }, - { - "description": "fs:allow-copy-file -> Enables the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-copy-file" - ] - }, - { - "description": "fs:allow-create -> Enables the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-create" - ] - }, - { - "description": "fs:allow-exists -> Enables the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-exists" - ] - }, - { - "description": "fs:allow-fstat -> Enables the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-fstat" - ] - }, - { - "description": "fs:allow-ftruncate -> Enables the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-ftruncate" - ] - }, - { - "description": "fs:allow-lstat -> Enables the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-lstat" - ] - }, - { - "description": "fs:allow-mkdir -> Enables the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-mkdir" - ] - }, - { - "description": "fs:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-open" - ] - }, - { - "description": "fs:allow-read -> Enables the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read" - ] - }, - { - "description": "fs:allow-read-dir -> Enables the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-dir" - ] - }, - { - "description": "fs:allow-read-file -> Enables the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-file" - ] - }, - { - "description": "fs:allow-read-text-file -> Enables the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file" - ] - }, - { - "description": "fs:allow-read-text-file-lines -> Enables the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines" - ] - }, - { - "description": "fs:allow-read-text-file-lines-next -> Enables the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-read-text-file-lines-next" - ] - }, - { - "description": "fs:allow-remove -> Enables the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-remove" - ] - }, - { - "description": "fs:allow-rename -> Enables the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-rename" - ] - }, - { - "description": "fs:allow-seek -> Enables the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-seek" - ] - }, - { - "description": "fs:allow-stat -> Enables the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-stat" - ] - }, - { - "description": "fs:allow-truncate -> Enables the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-truncate" - ] - }, - { - "description": "fs:allow-unwatch -> Enables the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-unwatch" - ] - }, - { - "description": "fs:allow-watch -> Enables the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-watch" - ] - }, - { - "description": "fs:allow-write -> Enables the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write" - ] - }, - { - "description": "fs:allow-write-file -> Enables the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-file" - ] - }, - { - "description": "fs:allow-write-text-file -> Enables the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:allow-write-text-file" - ] - }, - { - "description": "fs:create-app-specific-dirs -> This permissions allows to create the application specific directories.\n", - "type": "string", - "enum": [ - "fs:create-app-specific-dirs" - ] - }, - { - "description": "fs:deny-copy-file -> Denies the copy_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-copy-file" - ] - }, - { - "description": "fs:deny-create -> Denies the create command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-create" - ] - }, - { - "description": "fs:deny-exists -> Denies the exists command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-exists" - ] - }, - { - "description": "fs:deny-fstat -> Denies the fstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-fstat" - ] - }, - { - "description": "fs:deny-ftruncate -> Denies the ftruncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-ftruncate" - ] - }, - { - "description": "fs:deny-lstat -> Denies the lstat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-lstat" - ] - }, - { - "description": "fs:deny-mkdir -> Denies the mkdir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-mkdir" - ] - }, - { - "description": "fs:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-open" - ] - }, - { - "description": "fs:deny-read -> Denies the read command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read" - ] - }, - { - "description": "fs:deny-read-dir -> Denies the read_dir command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-dir" - ] - }, - { - "description": "fs:deny-read-file -> Denies the read_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-file" - ] - }, - { - "description": "fs:deny-read-text-file -> Denies the read_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file" - ] - }, - { - "description": "fs:deny-read-text-file-lines -> Denies the read_text_file_lines command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines" - ] - }, - { - "description": "fs:deny-read-text-file-lines-next -> Denies the read_text_file_lines_next command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-read-text-file-lines-next" - ] - }, - { - "description": "fs:deny-remove -> Denies the remove command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-remove" - ] - }, - { - "description": "fs:deny-rename -> Denies the rename command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-rename" - ] - }, - { - "description": "fs:deny-seek -> Denies the seek command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-seek" - ] - }, - { - "description": "fs:deny-stat -> Denies the stat command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-stat" - ] - }, - { - "description": "fs:deny-truncate -> Denies the truncate command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-truncate" - ] - }, - { - "description": "fs:deny-unwatch -> Denies the unwatch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-unwatch" - ] - }, - { - "description": "fs:deny-watch -> Denies the watch command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-watch" - ] - }, - { - "description": "fs:deny-webview-data-linux -> This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-linux" - ] - }, - { - "description": "fs:deny-webview-data-windows -> This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", - "type": "string", - "enum": [ - "fs:deny-webview-data-windows" - ] - }, - { - "description": "fs:deny-write -> Denies the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write" - ] - }, - { - "description": "fs:deny-write-file -> Denies the write_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-file" - ] - }, - { - "description": "fs:deny-write-text-file -> Denies the write_text_file command without any pre-configured scope.", - "type": "string", - "enum": [ - "fs:deny-write-text-file" - ] - }, - { - "description": "fs:read-all -> This enables all read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-all" - ] - }, - { - "description": "fs:read-app-specific-dirs-recursive -> This permission allows recursive read functionality on the application\nspecific base directories. \n", - "type": "string", - "enum": [ - "fs:read-app-specific-dirs-recursive" - ] - }, - { - "description": "fs:read-dirs -> This enables directory read and file metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-dirs" - ] - }, - { - "description": "fs:read-files -> This enables file read related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-files" - ] - }, - { - "description": "fs:read-meta -> This enables all index or metadata related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:read-meta" - ] - }, - { - "description": "fs:scope -> An empty permission you can use to modify the global scope.", - "type": "string", - "enum": [ - "fs:scope" - ] - }, - { - "description": "fs:scope-app -> This scope permits access to all files and list content of top level directories in the application folders.", - "type": "string", - "enum": [ - "fs:scope-app" - ] - }, - { - "description": "fs:scope-app-index -> This scope permits to list all files and folders in the application directories.", - "type": "string", - "enum": [ - "fs:scope-app-index" - ] - }, - { - "description": "fs:scope-app-recursive -> This scope permits recursive access to the complete application folders, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-app-recursive" - ] - }, - { - "description": "fs:scope-appcache -> This scope permits access to all files and list content of top level directories in the `$APPCACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-appcache" - ] - }, - { - "description": "fs:scope-appcache-index -> This scope permits to list all files and folders in the `$APPCACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-appcache-index" - ] - }, - { - "description": "fs:scope-appcache-recursive -> This scope permits recursive access to the complete `$APPCACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appcache-recursive" - ] - }, - { - "description": "fs:scope-appconfig -> This scope permits access to all files and list content of top level directories in the `$APPCONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig" - ] - }, - { - "description": "fs:scope-appconfig-index -> This scope permits to list all files and folders in the `$APPCONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-appconfig-index" - ] - }, - { - "description": "fs:scope-appconfig-recursive -> This scope permits recursive access to the complete `$APPCONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appconfig-recursive" - ] - }, - { - "description": "fs:scope-appdata -> This scope permits access to all files and list content of top level directories in the `$APPDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-appdata" - ] - }, - { - "description": "fs:scope-appdata-index -> This scope permits to list all files and folders in the `$APPDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-appdata-index" - ] - }, - { - "description": "fs:scope-appdata-recursive -> This scope permits recursive access to the complete `$APPDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-appdata-recursive" - ] - }, - { - "description": "fs:scope-applocaldata -> This scope permits access to all files and list content of top level directories in the `$APPLOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata" - ] - }, - { - "description": "fs:scope-applocaldata-index -> This scope permits to list all files and folders in the `$APPLOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-index" - ] - }, - { - "description": "fs:scope-applocaldata-recursive -> This scope permits recursive access to the complete `$APPLOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applocaldata-recursive" - ] - }, - { - "description": "fs:scope-applog -> This scope permits access to all files and list content of top level directories in the `$APPLOG` folder.", - "type": "string", - "enum": [ - "fs:scope-applog" - ] - }, - { - "description": "fs:scope-applog-index -> This scope permits to list all files and folders in the `$APPLOG`folder.", - "type": "string", - "enum": [ - "fs:scope-applog-index" - ] - }, - { - "description": "fs:scope-applog-recursive -> This scope permits recursive access to the complete `$APPLOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-applog-recursive" - ] - }, - { - "description": "fs:scope-audio -> This scope permits access to all files and list content of top level directories in the `$AUDIO` folder.", - "type": "string", - "enum": [ - "fs:scope-audio" - ] - }, - { - "description": "fs:scope-audio-index -> This scope permits to list all files and folders in the `$AUDIO`folder.", - "type": "string", - "enum": [ - "fs:scope-audio-index" - ] - }, - { - "description": "fs:scope-audio-recursive -> This scope permits recursive access to the complete `$AUDIO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-audio-recursive" - ] - }, - { - "description": "fs:scope-cache -> This scope permits access to all files and list content of top level directories in the `$CACHE` folder.", - "type": "string", - "enum": [ - "fs:scope-cache" - ] - }, - { - "description": "fs:scope-cache-index -> This scope permits to list all files and folders in the `$CACHE`folder.", - "type": "string", - "enum": [ - "fs:scope-cache-index" - ] - }, - { - "description": "fs:scope-cache-recursive -> This scope permits recursive access to the complete `$CACHE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-cache-recursive" - ] - }, - { - "description": "fs:scope-config -> This scope permits access to all files and list content of top level directories in the `$CONFIG` folder.", - "type": "string", - "enum": [ - "fs:scope-config" - ] - }, - { - "description": "fs:scope-config-index -> This scope permits to list all files and folders in the `$CONFIG`folder.", - "type": "string", - "enum": [ - "fs:scope-config-index" - ] - }, - { - "description": "fs:scope-config-recursive -> This scope permits recursive access to the complete `$CONFIG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-config-recursive" - ] - }, - { - "description": "fs:scope-data -> This scope permits access to all files and list content of top level directories in the `$DATA` folder.", - "type": "string", - "enum": [ - "fs:scope-data" - ] - }, - { - "description": "fs:scope-data-index -> This scope permits to list all files and folders in the `$DATA`folder.", - "type": "string", - "enum": [ - "fs:scope-data-index" - ] - }, - { - "description": "fs:scope-data-recursive -> This scope permits recursive access to the complete `$DATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-data-recursive" - ] - }, - { - "description": "fs:scope-desktop -> This scope permits access to all files and list content of top level directories in the `$DESKTOP` folder.", - "type": "string", - "enum": [ - "fs:scope-desktop" - ] - }, - { - "description": "fs:scope-desktop-index -> This scope permits to list all files and folders in the `$DESKTOP`folder.", - "type": "string", - "enum": [ - "fs:scope-desktop-index" - ] - }, - { - "description": "fs:scope-desktop-recursive -> This scope permits recursive access to the complete `$DESKTOP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-desktop-recursive" - ] - }, - { - "description": "fs:scope-document -> This scope permits access to all files and list content of top level directories in the `$DOCUMENT` folder.", - "type": "string", - "enum": [ - "fs:scope-document" - ] - }, - { - "description": "fs:scope-document-index -> This scope permits to list all files and folders in the `$DOCUMENT`folder.", - "type": "string", - "enum": [ - "fs:scope-document-index" - ] - }, - { - "description": "fs:scope-document-recursive -> This scope permits recursive access to the complete `$DOCUMENT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-document-recursive" - ] - }, - { - "description": "fs:scope-download -> This scope permits access to all files and list content of top level directories in the `$DOWNLOAD` folder.", - "type": "string", - "enum": [ - "fs:scope-download" - ] - }, - { - "description": "fs:scope-download-index -> This scope permits to list all files and folders in the `$DOWNLOAD`folder.", - "type": "string", - "enum": [ - "fs:scope-download-index" - ] - }, - { - "description": "fs:scope-download-recursive -> This scope permits recursive access to the complete `$DOWNLOAD` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-download-recursive" - ] - }, - { - "description": "fs:scope-exe -> This scope permits access to all files and list content of top level directories in the `$EXE` folder.", - "type": "string", - "enum": [ - "fs:scope-exe" - ] - }, - { - "description": "fs:scope-exe-index -> This scope permits to list all files and folders in the `$EXE`folder.", - "type": "string", - "enum": [ - "fs:scope-exe-index" - ] - }, - { - "description": "fs:scope-exe-recursive -> This scope permits recursive access to the complete `$EXE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-exe-recursive" - ] - }, - { - "description": "fs:scope-font -> This scope permits access to all files and list content of top level directories in the `$FONT` folder.", - "type": "string", - "enum": [ - "fs:scope-font" - ] - }, - { - "description": "fs:scope-font-index -> This scope permits to list all files and folders in the `$FONT`folder.", - "type": "string", - "enum": [ - "fs:scope-font-index" - ] - }, - { - "description": "fs:scope-font-recursive -> This scope permits recursive access to the complete `$FONT` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-font-recursive" - ] - }, - { - "description": "fs:scope-home -> This scope permits access to all files and list content of top level directories in the `$HOME` folder.", - "type": "string", - "enum": [ - "fs:scope-home" - ] - }, - { - "description": "fs:scope-home-index -> This scope permits to list all files and folders in the `$HOME`folder.", - "type": "string", - "enum": [ - "fs:scope-home-index" - ] - }, - { - "description": "fs:scope-home-recursive -> This scope permits recursive access to the complete `$HOME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-home-recursive" - ] - }, - { - "description": "fs:scope-localdata -> This scope permits access to all files and list content of top level directories in the `$LOCALDATA` folder.", - "type": "string", - "enum": [ - "fs:scope-localdata" - ] - }, - { - "description": "fs:scope-localdata-index -> This scope permits to list all files and folders in the `$LOCALDATA`folder.", - "type": "string", - "enum": [ - "fs:scope-localdata-index" - ] - }, - { - "description": "fs:scope-localdata-recursive -> This scope permits recursive access to the complete `$LOCALDATA` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-localdata-recursive" - ] - }, - { - "description": "fs:scope-log -> This scope permits access to all files and list content of top level directories in the `$LOG` folder.", - "type": "string", - "enum": [ - "fs:scope-log" - ] - }, - { - "description": "fs:scope-log-index -> This scope permits to list all files and folders in the `$LOG`folder.", - "type": "string", - "enum": [ - "fs:scope-log-index" - ] - }, - { - "description": "fs:scope-log-recursive -> This scope permits recursive access to the complete `$LOG` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-log-recursive" - ] - }, - { - "description": "fs:scope-picture -> This scope permits access to all files and list content of top level directories in the `$PICTURE` folder.", - "type": "string", - "enum": [ - "fs:scope-picture" - ] - }, - { - "description": "fs:scope-picture-index -> This scope permits to list all files and folders in the `$PICTURE`folder.", - "type": "string", - "enum": [ - "fs:scope-picture-index" - ] - }, - { - "description": "fs:scope-picture-recursive -> This scope permits recursive access to the complete `$PICTURE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-picture-recursive" - ] - }, - { - "description": "fs:scope-public -> This scope permits access to all files and list content of top level directories in the `$PUBLIC` folder.", - "type": "string", - "enum": [ - "fs:scope-public" - ] - }, - { - "description": "fs:scope-public-index -> This scope permits to list all files and folders in the `$PUBLIC`folder.", - "type": "string", - "enum": [ - "fs:scope-public-index" - ] - }, - { - "description": "fs:scope-public-recursive -> This scope permits recursive access to the complete `$PUBLIC` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-public-recursive" - ] - }, - { - "description": "fs:scope-resource -> This scope permits access to all files and list content of top level directories in the `$RESOURCE` folder.", - "type": "string", - "enum": [ - "fs:scope-resource" - ] - }, - { - "description": "fs:scope-resource-index -> This scope permits to list all files and folders in the `$RESOURCE`folder.", - "type": "string", - "enum": [ - "fs:scope-resource-index" - ] - }, - { - "description": "fs:scope-resource-recursive -> This scope permits recursive access to the complete `$RESOURCE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-resource-recursive" - ] - }, - { - "description": "fs:scope-runtime -> This scope permits access to all files and list content of top level directories in the `$RUNTIME` folder.", - "type": "string", - "enum": [ - "fs:scope-runtime" - ] - }, - { - "description": "fs:scope-runtime-index -> This scope permits to list all files and folders in the `$RUNTIME`folder.", - "type": "string", - "enum": [ - "fs:scope-runtime-index" - ] - }, - { - "description": "fs:scope-runtime-recursive -> This scope permits recursive access to the complete `$RUNTIME` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-runtime-recursive" - ] - }, - { - "description": "fs:scope-temp -> This scope permits access to all files and list content of top level directories in the `$TEMP` folder.", - "type": "string", - "enum": [ - "fs:scope-temp" - ] - }, - { - "description": "fs:scope-temp-index -> This scope permits to list all files and folders in the `$TEMP`folder.", - "type": "string", - "enum": [ - "fs:scope-temp-index" - ] - }, - { - "description": "fs:scope-temp-recursive -> This scope permits recursive access to the complete `$TEMP` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-temp-recursive" - ] - }, - { - "description": "fs:scope-template -> This scope permits access to all files and list content of top level directories in the `$TEMPLATE` folder.", - "type": "string", - "enum": [ - "fs:scope-template" - ] - }, - { - "description": "fs:scope-template-index -> This scope permits to list all files and folders in the `$TEMPLATE`folder.", - "type": "string", - "enum": [ - "fs:scope-template-index" - ] - }, - { - "description": "fs:scope-template-recursive -> This scope permits recursive access to the complete `$TEMPLATE` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-template-recursive" - ] - }, - { - "description": "fs:scope-video -> This scope permits access to all files and list content of top level directories in the `$VIDEO` folder.", - "type": "string", - "enum": [ - "fs:scope-video" - ] - }, - { - "description": "fs:scope-video-index -> This scope permits to list all files and folders in the `$VIDEO`folder.", - "type": "string", - "enum": [ - "fs:scope-video-index" - ] - }, - { - "description": "fs:scope-video-recursive -> This scope permits recursive access to the complete `$VIDEO` folder, including sub directories and files.", - "type": "string", - "enum": [ - "fs:scope-video-recursive" - ] - }, - { - "description": "fs:write-all -> This enables all write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-all" - ] - }, - { - "description": "fs:write-files -> This enables all file write related commands without any pre-configured accessible paths.", - "type": "string", - "enum": [ - "fs:write-files" - ] - }, - { - "description": "http:default -> This permission set configures what kind of\nfetch operations are available from the http plugin.\n\nThis enables all fetch operations but does not\nallow explicitly any origins to be fetched. This needs to\nbe manually configured before usage.\n\n#### Granted Permissions\n\nAll fetch operations are enabled.\n\n", - "type": "string", - "enum": [ - "http:default" - ] - }, - { - "description": "http:allow-fetch -> Enables the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch" - ] - }, - { - "description": "http:allow-fetch-cancel -> Enables the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-cancel" - ] - }, - { - "description": "http:allow-fetch-read-body -> Enables the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-read-body" - ] - }, - { - "description": "http:allow-fetch-send -> Enables the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:allow-fetch-send" - ] - }, - { - "description": "http:deny-fetch -> Denies the fetch command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch" - ] - }, - { - "description": "http:deny-fetch-cancel -> Denies the fetch_cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-cancel" - ] - }, - { - "description": "http:deny-fetch-read-body -> Denies the fetch_read_body command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-read-body" - ] - }, - { - "description": "http:deny-fetch-send -> Denies the fetch_send command without any pre-configured scope.", - "type": "string", - "enum": [ - "http:deny-fetch-send" - ] - }, - { - "description": "log:default -> Allows the log command", - "type": "string", - "enum": [ - "log:default" - ] - }, - { - "description": "log:allow-log -> Enables the log command without any pre-configured scope.", - "type": "string", - "enum": [ - "log:allow-log" - ] - }, - { - "description": "log:deny-log -> Denies the log command without any pre-configured scope.", - "type": "string", - "enum": [ - "log:deny-log" - ] - }, - { - "description": "nfc:default -> This permission set configures what kind of\noperations are available from the nfc plugin.\n\n#### Granted Permissions\n\nChecking if the NFC functionality is available\nand scanning nearby tags is allowed.\nWriting to tags needs to be manually enabled.\n\n", - "type": "string", - "enum": [ - "nfc:default" - ] - }, - { - "description": "nfc:allow-is-available -> Enables the is_available command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:allow-is-available" - ] - }, - { - "description": "nfc:allow-scan -> Enables the scan command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:allow-scan" - ] - }, - { - "description": "nfc:allow-write -> Enables the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:allow-write" - ] - }, - { - "description": "nfc:deny-is-available -> Denies the is_available command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:deny-is-available" - ] - }, - { - "description": "nfc:deny-scan -> Denies the scan command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:deny-scan" - ] - }, - { - "description": "nfc:deny-write -> Denies the write command without any pre-configured scope.", - "type": "string", - "enum": [ - "nfc:deny-write" - ] - }, - { - "description": "notification:default -> This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n", - "type": "string", - "enum": [ - "notification:default" - ] - }, - { - "description": "notification:allow-batch -> Enables the batch command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-batch" - ] - }, - { - "description": "notification:allow-cancel -> Enables the cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-cancel" - ] - }, - { - "description": "notification:allow-check-permissions -> Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-check-permissions" - ] - }, - { - "description": "notification:allow-create-channel -> Enables the create_channel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-create-channel" - ] - }, - { - "description": "notification:allow-delete-channel -> Enables the delete_channel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-delete-channel" - ] - }, - { - "description": "notification:allow-get-active -> Enables the get_active command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-get-active" - ] - }, - { - "description": "notification:allow-get-pending -> Enables the get_pending command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-get-pending" - ] - }, - { - "description": "notification:allow-is-permission-granted -> Enables the is_permission_granted command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-is-permission-granted" - ] - }, - { - "description": "notification:allow-list-channels -> Enables the list_channels command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-list-channels" - ] - }, - { - "description": "notification:allow-notify -> Enables the notify command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-notify" - ] - }, - { - "description": "notification:allow-permission-state -> Enables the permission_state command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-permission-state" - ] - }, - { - "description": "notification:allow-register-action-types -> Enables the register_action_types command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-register-action-types" - ] - }, - { - "description": "notification:allow-register-listener -> Enables the register_listener command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-register-listener" - ] - }, - { - "description": "notification:allow-remove-active -> Enables the remove_active command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-remove-active" - ] - }, - { - "description": "notification:allow-request-permission -> Enables the request_permission command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-request-permission" - ] - }, - { - "description": "notification:allow-show -> Enables the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:allow-show" - ] - }, - { - "description": "notification:deny-batch -> Denies the batch command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-batch" - ] - }, - { - "description": "notification:deny-cancel -> Denies the cancel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-cancel" - ] - }, - { - "description": "notification:deny-check-permissions -> Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-check-permissions" - ] - }, - { - "description": "notification:deny-create-channel -> Denies the create_channel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-create-channel" - ] - }, - { - "description": "notification:deny-delete-channel -> Denies the delete_channel command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-delete-channel" - ] - }, - { - "description": "notification:deny-get-active -> Denies the get_active command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-get-active" - ] - }, - { - "description": "notification:deny-get-pending -> Denies the get_pending command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-get-pending" - ] - }, - { - "description": "notification:deny-is-permission-granted -> Denies the is_permission_granted command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-is-permission-granted" - ] - }, - { - "description": "notification:deny-list-channels -> Denies the list_channels command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-list-channels" - ] - }, - { - "description": "notification:deny-notify -> Denies the notify command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-notify" - ] - }, - { - "description": "notification:deny-permission-state -> Denies the permission_state command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-permission-state" - ] - }, - { - "description": "notification:deny-register-action-types -> Denies the register_action_types command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-register-action-types" - ] - }, - { - "description": "notification:deny-register-listener -> Denies the register_listener command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-register-listener" - ] - }, - { - "description": "notification:deny-remove-active -> Denies the remove_active command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-remove-active" - ] - }, - { - "description": "notification:deny-request-permission -> Denies the request_permission command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-request-permission" - ] - }, - { - "description": "notification:deny-show -> Denies the show command without any pre-configured scope.", - "type": "string", - "enum": [ - "notification:deny-show" - ] - }, - { - "description": "os:default -> This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n", - "type": "string", - "enum": [ - "os:default" - ] - }, - { - "description": "os:allow-arch -> Enables the arch command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-arch" - ] - }, - { - "description": "os:allow-exe-extension -> Enables the exe_extension command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-exe-extension" - ] - }, - { - "description": "os:allow-family -> Enables the family command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-family" - ] - }, - { - "description": "os:allow-hostname -> Enables the hostname command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-hostname" - ] - }, - { - "description": "os:allow-locale -> Enables the locale command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-locale" - ] - }, - { - "description": "os:allow-os-type -> Enables the os_type command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-os-type" - ] - }, - { - "description": "os:allow-platform -> Enables the platform command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-platform" - ] - }, - { - "description": "os:allow-version -> Enables the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:allow-version" - ] - }, - { - "description": "os:deny-arch -> Denies the arch command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-arch" - ] - }, - { - "description": "os:deny-exe-extension -> Denies the exe_extension command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-exe-extension" - ] - }, - { - "description": "os:deny-family -> Denies the family command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-family" - ] - }, - { - "description": "os:deny-hostname -> Denies the hostname command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-hostname" - ] - }, - { - "description": "os:deny-locale -> Denies the locale command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-locale" - ] - }, - { - "description": "os:deny-os-type -> Denies the os_type command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-os-type" - ] - }, - { - "description": "os:deny-platform -> Denies the platform command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-platform" - ] - }, - { - "description": "os:deny-version -> Denies the version command without any pre-configured scope.", - "type": "string", - "enum": [ - "os:deny-version" - ] - }, - { - "description": "process:default -> This permission set configures which\nprocess feeatures are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n", - "type": "string", - "enum": [ - "process:default" - ] - }, - { - "description": "process:allow-exit -> Enables the exit command without any pre-configured scope.", - "type": "string", - "enum": [ - "process:allow-exit" - ] - }, - { - "description": "process:allow-restart -> Enables the restart command without any pre-configured scope.", - "type": "string", - "enum": [ - "process:allow-restart" - ] - }, - { - "description": "process:deny-exit -> Denies the exit command without any pre-configured scope.", - "type": "string", - "enum": [ - "process:deny-exit" - ] - }, - { - "description": "process:deny-restart -> Denies the restart command without any pre-configured scope.", - "type": "string", - "enum": [ - "process:deny-restart" - ] - }, - { - "description": "shell:default -> This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n", - "type": "string", - "enum": [ - "shell:default" - ] - }, - { - "description": "shell:allow-execute -> Enables the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-execute" - ] - }, - { - "description": "shell:allow-kill -> Enables the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-kill" - ] - }, - { - "description": "shell:allow-open -> Enables the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-open" - ] - }, - { - "description": "shell:allow-spawn -> Enables the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-spawn" - ] - }, - { - "description": "shell:allow-stdin-write -> Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:allow-stdin-write" - ] - }, - { - "description": "shell:deny-execute -> Denies the execute command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-execute" - ] - }, - { - "description": "shell:deny-kill -> Denies the kill command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-kill" - ] - }, - { - "description": "shell:deny-open -> Denies the open command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-open" - ] - }, - { - "description": "shell:deny-spawn -> Denies the spawn command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-spawn" - ] - }, - { - "description": "shell:deny-stdin-write -> Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "enum": [ - "shell:deny-stdin-write" - ] - }, - { - "description": "store:default -> This permission set configures what kind of\noperations are available from the store plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n", - "type": "string", - "enum": [ - "store:default" - ] - }, - { - "description": "store:allow-clear -> Enables the clear command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-clear" - ] - }, - { - "description": "store:allow-delete -> Enables the delete command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-delete" - ] - }, - { - "description": "store:allow-entries -> Enables the entries command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-entries" - ] - }, - { - "description": "store:allow-get -> Enables the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-get" - ] - }, - { - "description": "store:allow-has -> Enables the has command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-has" - ] - }, - { - "description": "store:allow-keys -> Enables the keys command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-keys" - ] - }, - { - "description": "store:allow-length -> Enables the length command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-length" - ] - }, - { - "description": "store:allow-load -> Enables the load command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-load" - ] - }, - { - "description": "store:allow-reset -> Enables the reset command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-reset" - ] - }, - { - "description": "store:allow-save -> Enables the save command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-save" - ] - }, - { - "description": "store:allow-set -> Enables the set command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-set" - ] - }, - { - "description": "store:allow-values -> Enables the values command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:allow-values" - ] - }, - { - "description": "store:deny-clear -> Denies the clear command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-clear" - ] - }, - { - "description": "store:deny-delete -> Denies the delete command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-delete" - ] - }, - { - "description": "store:deny-entries -> Denies the entries command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-entries" - ] - }, - { - "description": "store:deny-get -> Denies the get command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-get" - ] - }, - { - "description": "store:deny-has -> Denies the has command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-has" - ] - }, - { - "description": "store:deny-keys -> Denies the keys command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-keys" - ] - }, - { - "description": "store:deny-length -> Denies the length command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-length" - ] - }, - { - "description": "store:deny-load -> Denies the load command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-load" - ] - }, - { - "description": "store:deny-reset -> Denies the reset command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-reset" - ] - }, - { - "description": "store:deny-save -> Denies the save command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-save" - ] - }, - { - "description": "store:deny-set -> Denies the set command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-set" - ] - }, - { - "description": "store:deny-values -> Denies the values command without any pre-configured scope.", - "type": "string", - "enum": [ - "store:deny-values" - ] - } - ] - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "ShellAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "raw": { - "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", - "default": false, - "type": "boolean" - }, - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index 077e56ea7..f3cacc434 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -55,6 +55,8 @@ pub fn run() { app.handle().plugin(tauri_plugin_barcode_scanner::init())?; app.handle().plugin(tauri_plugin_nfc::init())?; app.handle().plugin(tauri_plugin_biometric::init())?; + app.handle().plugin(tauri_plugin_geolocation::init())?; + app.handle().plugin(tauri_plugin_haptics::init())?; } let mut webview_window_builder = diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index a4b6334d9..ea626fa2b 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -1,203 +1,208 @@ @@ -332,7 +335,7 @@ children:items-center children:justify-center" > @@ -350,7 +353,7 @@
@@ -393,7 +396,7 @@ bg-darkPrimaryLighter transition-colors-250 overflow-hidden grid select-none px-2" > open("https://tauri.app/")} + on:click={() => open('https://tauri.app/')} class="self-center p-7 cursor-pointer" src="tauri_logo.png" alt="Tauri logo" @@ -449,8 +452,8 @@ href="##" class="nv {selected === view ? 'nv_selected' : ''}" on:click={() => { - select(view); - isSideBarOpen = false; + select(view) + isSideBarOpen = false }} >
diff --git a/examples/api/src/views/Geolocation.svelte b/examples/api/src/views/Geolocation.svelte new file mode 100644 index 000000000..cd181dfbe --- /dev/null +++ b/examples/api/src/views/Geolocation.svelte @@ -0,0 +1,29 @@ + + + diff --git a/plugins/geolocation/README.md b/plugins/geolocation/README.md index d6f2baded..57de24dd8 100644 --- a/plugins/geolocation/README.md +++ b/plugins/geolocation/README.md @@ -87,16 +87,31 @@ fn main() { Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript -import { getCurrentPosition, watchPosition } from '@tauri-apps/plugin-log' +import { + checkPermissions, + requestPermissions, + getCurrentPosition, + watchPosition +} from '@tauri-apps/plugin-log' -const pos = await getCurrentPosition() +let permissions = await checkPermissions() +if ( + permissions.location === 'prompt' || + permissions.location === 'prompt-with-rationale' +) { + permissions = await requestPermissions(['location']) +} -await watchPosition( - { enableHighAccuracy: true, timeout: 10000, maximumAge: 0 }, - (pos) => { - console.log(pos) - } -) +if (permissions.location === 'granted') { + const pos = await getCurrentPosition() + + await watchPosition( + { enableHighAccuracy: true, timeout: 10000, maximumAge: 0 }, + (pos) => { + console.log(pos) + } + ) +} ``` ## Contributing diff --git a/plugins/geolocation/android/src/main/java/GeolocationPlugin.kt b/plugins/geolocation/android/src/main/java/GeolocationPlugin.kt index f96433fff..cf81f5e3b 100644 --- a/plugins/geolocation/android/src/main/java/GeolocationPlugin.kt +++ b/plugins/geolocation/android/src/main/java/GeolocationPlugin.kt @@ -60,18 +60,8 @@ private const val ALIAS_COARSE_LOCATION: String = "coarseLocation" ] ) class GeolocationPlugin(private val activity: Activity): Plugin(activity) { - private lateinit var implementation: Geolocation// = Geolocation(activity.applicationContext) - private var watchers = hashMapOf() - - // If multiple permissions get requested in quick succession not all callbacks will be fired, - // So we'll store all requests ourselves instead of using the callback argument. - private var positionRequests = mutableListOf() - private var watchRequests = mutableListOf() - // If getCurrentPosition or watchPosition are called before a prior call is done requesting permission, - // the callback will be called with denied for the prior call(s) so we keep track of them to make sure - // to only run the logic on the last request. - // TODO: Find a better solution after switching to explicit requestPermissions call - likely needs changes in Tauri - private var ongoingPermissionRequests = 0; + private lateinit var implementation: Geolocation + private var watchers = hashMapOf>() override fun load(webView: WebView) { super.load(webView) @@ -86,8 +76,9 @@ class GeolocationPlugin(private val activity: Activity): Plugin(activity) { override fun onResume() { super.onResume() - for (watcher in watchers.values) { - startWatch(watcher) + // resume watchers + for ((watcher, args) in watchers.values) { + startWatch(watcher, args) } } @@ -112,83 +103,39 @@ class GeolocationPlugin(private val activity: Activity): Plugin(activity) { @Command fun getCurrentPosition(invoke: Invoke) { val args = invoke.parseArgs(PositionOptions::class.java) - val alias = getAlias(args.enableHighAccuracy) - if (getPermissionState(alias) != PermissionState.GRANTED) { - Logger.error("NOT GRANTED"); - this.positionRequests.add(invoke) - this.ongoingPermissionRequests += 1 - requestPermissionForAlias(alias, invoke, "positionPermissionCallback") + val location = implementation.getLastLocation(args.maximumAge) + if (location != null) { + invoke.resolve(convertLocation(location)) } else { - Logger.error("GRANTED"); - getPosition(invoke, args) + implementation.sendLocation(args.enableHighAccuracy, + { loc -> invoke.resolve(convertLocation(loc)) }, + { error -> invoke.reject(error) }) } } @PermissionCallback private fun positionPermissionCallback(invoke: Invoke) { - Logger.error("positionPermissionCallback - ongoingRequests: " + this.ongoingPermissionRequests.toString()) - - this.ongoingPermissionRequests -= 1 - - if (this.ongoingPermissionRequests > 0) { - return - } - - val pRequests = this.positionRequests.toTypedArray() - val wRequests = this.watchRequests.toTypedArray() - this.positionRequests.clear() - this.watchRequests.clear() - - // TODO: capacitor only checks for coarse here - val permissionGranted = getPermissionState(ALIAS_COARSE_LOCATION) == PermissionState.GRANTED; - Logger.error("positionPermissionCallback - permissionGranted: $permissionGranted"); - - for (inv in pRequests) { - if (permissionGranted) { - val args = inv.parseArgs(PositionOptions::class.java) - - implementation.sendLocation(args.enableHighAccuracy, - { location -> inv.resolve(convertLocation(location)) }, - { error -> inv.reject(error) }) - } else { - inv.reject("Location permission was denied.") - } - } - - for (inv in wRequests) { - if (permissionGranted) { - startWatch(invoke) - } else { - inv.reject("Location permission was denied.") - } - } + val permissionsResultJSON = JSObject() + permissionsResultJSON.put("location", getPermissionState(ALIAS_LOCATION)) + permissionsResultJSON.put("coarseLocation", getPermissionState(ALIAS_COARSE_LOCATION)) + invoke.resolve(permissionsResultJSON) } @Command fun watchPosition(invoke: Invoke) { val args = invoke.parseArgs(WatchArgs::class.java) - val alias = getAlias(args.options.enableHighAccuracy) - - if (getPermissionState(alias) != PermissionState.GRANTED) { - this.watchRequests.add(invoke) - this.ongoingPermissionRequests += 1 - requestPermissionForAlias(alias, invoke, "positionPermissionCallback") - } else { - startWatch(invoke) - } + startWatch(invoke, args) } - private fun startWatch(invoke: Invoke) { - val args = invoke.parseArgs(WatchArgs::class.java) - + private fun startWatch(invoke: Invoke, args: WatchArgs) { implementation.requestLocationUpdates( args.options.enableHighAccuracy, args.options.timeout, { location -> args.channel.send(convertLocation(location)) }, { error -> args.channel.sendObject(error) }) - watchers[args.channel.id] = invoke + watchers[args.channel.id] = Pair(invoke, args) } @Command @@ -204,19 +151,6 @@ class GeolocationPlugin(private val activity: Activity): Plugin(activity) { invoke.resolve() } - private fun getPosition(invoke: Invoke, options: PositionOptions) { - val location = implementation.getLastLocation(options.maximumAge) - if (location != null) { - Logger.error("getPosition location non-null") - invoke.resolve(convertLocation(location)) - } else { - Logger.error("getPosition location null") - implementation.sendLocation(options.enableHighAccuracy, - { loc -> invoke.resolve(convertLocation(loc)) }, - { error -> invoke.reject(error) }) - } - } - private fun convertLocation(location: Location): JSObject { val ret = JSObject() val coords = JSObject() @@ -235,14 +169,4 @@ class GeolocationPlugin(private val activity: Activity): Plugin(activity) { return ret } - - private fun getAlias(enableHighAccuracy: Boolean): String { - var alias = ALIAS_LOCATION; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - if (!enableHighAccuracy) { - alias = ALIAS_COARSE_LOCATION; - } - } - return alias - } } diff --git a/plugins/geolocation/api-iife.js b/plugins/geolocation/api-iife.js index d653e7231..912c073ea 100644 --- a/plugins/geolocation/api-iife.js +++ b/plugins/geolocation/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_GEOLOCATION__=function(t){"use strict";function r(t,r,e,s){if("a"===e&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof r?t!==r||!s:!r.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?s:"a"===e?s.call(t):s?s.value:r.get(t)}function e(t,r,e,s,o){if("function"==typeof r?t!==r||!o:!r.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r.set(t,e),e}var s,o,i,a;"function"==typeof SuppressedError&&SuppressedError;class n{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,s.set(this,(()=>{})),o.set(this,0),i.set(this,{}),this.id=function(t,r=!1){return window.__TAURI_INTERNALS__.transformCallback(t,r)}((({message:t,id:a})=>{if(a===r(this,o,"f")){e(this,o,a+1),r(this,s,"f").call(this,t);const n=Object.keys(r(this,i,"f"));if(n.length>0){let t=a+1;for(const e of n.sort()){if(parseInt(e)!==t)break;{const o=r(this,i,"f")[e];delete r(this,i,"f")[e],r(this,s,"f").call(this,o),t+=1}}e(this,o,t)}}else r(this,i,"f")[a.toString()]=t}))}set onmessage(t){e(this,s,t)}get onmessage(){return r(this,s,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function c(t,r={},e){return window.__TAURI_INTERNALS__.invoke(t,r,e)}s=new WeakMap,o=new WeakMap,i=new WeakMap,function(t){t.WINDOW_RESIZED="tauri://resize",t.WINDOW_MOVED="tauri://move",t.WINDOW_CLOSE_REQUESTED="tauri://close-requested",t.WINDOW_DESTROYED="tauri://destroyed",t.WINDOW_FOCUS="tauri://focus",t.WINDOW_BLUR="tauri://blur",t.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",t.WINDOW_THEME_CHANGED="tauri://theme-changed",t.WINDOW_CREATED="tauri://window-created",t.WEBVIEW_CREATED="tauri://webview-created",t.DRAG_ENTER="tauri://drag-enter",t.DRAG_OVER="tauri://drag-over",t.DRAG_DROP="tauri://drag-drop",t.DRAG_LEAVE="tauri://drag-leave"}(a||(a={}));const u={async getCurrentPosition(t){try{return{status:"ok",data:await c("plugin:geolocation|get_current_position",{options:t})}}catch(t){if(t instanceof Error)throw t;return{status:"error",error:t}}},async watchPosition(t,r){try{return{status:"ok",data:await c("plugin:geolocation|watch_position",{options:t,channel:r})}}catch(t){if(t instanceof Error)throw t;return{status:"error",error:t}}},async clearWatch(t){try{return{status:"ok",data:await c("plugin:geolocation|clear_watch",{channelId:t})}}catch(t){if(t instanceof Error)throw t;return{status:"error",error:t}}},async checkPermissions(){try{return{status:"ok",data:await c("plugin:geolocation|check_permissions")}}catch(t){if(t instanceof Error)throw t;return{status:"error",error:t}}},async requestPermissions(t){try{return{status:"ok",data:await c("plugin:geolocation|request_permissions",{permissions:t})}}catch(t){if(t instanceof Error)throw t;return{status:"error",error:t}}}};const{getCurrentPosition:_,clearWatch:h,checkPermissions:f,requestPermissions:w}=u;return t.checkPermissions=f,t.clearWatch=h,t.getCurrentPosition=_,t.requestPermissions=w,t.watchPosition=async function(t,r){const e=new n;return e.onmessage=r,await u.watchPosition(t,e),e.id},t}({});Object.defineProperty(window.__TAURI__,"geolocation",{value:__TAURI_PLUGIN_GEOLOCATION__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_GEOLOCATION__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,s;"function"==typeof SuppressedError&&SuppressedError;class r{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),s.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:r})=>{if(r===e(this,o,"f")){n(this,o,r+1),e(this,i,"f").call(this,t);const a=Object.keys(e(this,s,"f"));if(a.length>0){let t=r+1;for(const n of a.sort()){if(parseInt(n)!==t)break;{const o=e(this,s,"f")[n];delete e(this,s,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,s,"f")[r.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function a(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}return i=new WeakMap,o=new WeakMap,s=new WeakMap,t.checkPermissions=async function(){return await async function(t){return a(`plugin:${t}|check_permissions`)}("geolocation")},t.clearWatch=async function(t){await a("plugin:geolocation|clear_watch",{channelId:t})},t.getCurrentPosition=async function(t){return await a("plugin:geolocation|get_current_position",{options:t})},t.requestPermissions=async function(t){return await a("plugin:geolocation|request_permissions",{permissions:t})},t.watchPosition=async function(t,e){const n=new r;return n.onmessage=t=>{"string"==typeof t?e(null,t):e(t)},await a("plugin:geolocation|watch_position",{options:t,channel:n}),n.id},t}({});Object.defineProperty(window.__TAURI__,"geolocation",{value:__TAURI_PLUGIN_GEOLOCATION__})} diff --git a/plugins/geolocation/build.rs b/plugins/geolocation/build.rs index d9b63afa6..b52497618 100644 --- a/plugins/geolocation/build.rs +++ b/plugins/geolocation/build.rs @@ -7,7 +7,7 @@ const COMMANDS: &[&str] = &[ "watch_position", "clear_watch", "check_permissions", - "clear_permissions", + "request_permissions", ]; fn main() { diff --git a/plugins/geolocation/guest-js/bindings.ts b/plugins/geolocation/guest-js/bindings.ts deleted file mode 100644 index f68ecbc32..000000000 --- a/plugins/geolocation/guest-js/bindings.ts +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -// @ts-nocheck -// This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually. - -/** user-defined commands **/ - -export const commands = { - async getCurrentPosition( - options: PositionOptions | null - ): Promise> { - try { - return { - status: 'ok', - data: await TAURI_INVOKE('plugin:geolocation|get_current_position', { - options - }) - } - } catch (e) { - if (e instanceof Error) throw e - else return { status: 'error', error: e as any } - } - }, - async watchPosition( - options: PositionOptions, - channel: any - ): Promise> { - try { - return { - status: 'ok', - data: await TAURI_INVOKE('plugin:geolocation|watch_position', { - options, - channel - }) - } - } catch (e) { - if (e instanceof Error) throw e - else return { status: 'error', error: e as any } - } - }, - async clearWatch(channelId: number): Promise> { - try { - return { - status: 'ok', - data: await TAURI_INVOKE('plugin:geolocation|clear_watch', { - channelId - }) - } - } catch (e) { - if (e instanceof Error) throw e - else return { status: 'error', error: e as any } - } - }, - async checkPermissions(): Promise> { - try { - return { - status: 'ok', - data: await TAURI_INVOKE('plugin:geolocation|check_permissions') - } - } catch (e) { - if (e instanceof Error) throw e - else return { status: 'error', error: e as any } - } - }, - async requestPermissions( - permissions: PermissionType[] | null - ): Promise> { - try { - return { - status: 'ok', - data: await TAURI_INVOKE('plugin:geolocation|request_permissions', { - permissions - }) - } - } catch (e) { - if (e instanceof Error) throw e - else return { status: 'error', error: e as any } - } - } -} - -/** user-defined events **/ - -/* export const events = __makeEvents__<{ - randomNumber: RandomNumber; -}>({ - randomNumber: "plugin:geolocation:random-number", -}); */ - -/** user-defined statics **/ - -/** user-defined types **/ - -export type Coordinates = { - /** - * Latitude in decimal degrees. - */ - latitude: number - /** - * Longitude in decimal degrees. - */ - longitude: number - /** - * Accuracy level of the latitude and longitude coordinates in meters. - */ - accuracy: number - /** - * Accuracy level of the altitude coordinate in meters, if available. - * Available on all iOS versions and on Android 8 and above. - */ - altitudeAccuracy: number | null - /** - * The altitude the user is at, if available. - */ - altitude: number | null - speed: number | null - /** - * The heading the user is facing, if available. - */ - heading: number | null -} -export type Error = never -/** - * Permission state. - */ -export type PermissionState = - /** - * Permission access has been granted. - */ - | 'granted' - /** - * Permission access has been denied. - */ - | 'denied' - /** - * The end user should be prompted for permission. - */ - | 'prompt' -export type PermissionStatus = { - /** - * Permission state for the location alias. - * - * On Android it requests/checks both ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION permissions. - * - * On iOS it requests/checks location permissions. - */ - location: PermissionState - /** - * Permissions state for the coarseLoaction alias. - * - * On Android it requests/checks ACCESS_COARSE_LOCATION. - * - * On Android 12+, users can choose between Approximate location (ACCESS_COARSE_LOCATION) and Precise location (ACCESS_FINE_LOCATION). - * - * On iOS it will have the same value as the `location` alias. - */ - coarseLocation: PermissionState -} -export type PermissionType = 'location' | 'coarseLocation' -export type Position = { - /** - * Creation time for these coordinates. - */ - timestamp: number - /** - * The GPD coordinates along with the accuracy of the data. - */ - coords: Coordinates -} -export type PositionOptions = { - /** - * High accuracy mode (such as GPS, if available) - * Will be ignored on Android 12+ if users didn't grant the ACCESS_FINE_LOCATION permission. - */ - enableHighAccuracy: boolean - /** - * The maximum wait time in milliseconds for location updates. - * On Android the timeout gets ignored for getCurrentPosition. - * Ignored on iOS - */ - timeout: number - /** - * The maximum age in milliseconds of a possible cached position that is acceptable to return. - * Default: 0 - * Ignored on iOS - */ - maximumAge: number -} -//export type RandomNumber = number; - -/** tauri-specta globals **/ - -import { invoke as TAURI_INVOKE } from '@tauri-apps/api/core' -import * as TAURI_API_EVENT from '@tauri-apps/api/event' -import { type WebviewWindow as __WebviewWindow__ } from '@tauri-apps/api/webviewWindow' - -type __EventObj__ = { - listen: ( - cb: TAURI_API_EVENT.EventCallback - ) => ReturnType> - once: ( - cb: TAURI_API_EVENT.EventCallback - ) => ReturnType> - emit: T extends null - ? (payload?: T) => ReturnType - : (payload: T) => ReturnType -} - -export type Result = - | { status: 'ok'; data: T } - | { status: 'error'; error: E } - -function __makeEvents__>( - mappings: Record -) { - return new Proxy( - {} as unknown as { - [K in keyof T]: __EventObj__ & { - (handle: __WebviewWindow__): __EventObj__ - } - }, - { - get: (_, event) => { - const name = mappings[event as keyof T] - - return new Proxy((() => {}) as any, { - apply: (_, __, [window]: [__WebviewWindow__]) => ({ - listen: (arg: any) => window.listen(name, arg), - once: (arg: any) => window.once(name, arg), - emit: (arg: any) => window.emit(name, arg) - }), - get: (_, command: keyof __EventObj__) => { - switch (command) { - case 'listen': - return (arg: any) => TAURI_API_EVENT.listen(name, arg) - case 'once': - return (arg: any) => TAURI_API_EVENT.once(name, arg) - case 'emit': - return (arg: any) => TAURI_API_EVENT.emit(name, arg) - } - } - }) - } - } - ) -} diff --git a/plugins/geolocation/guest-js/index.ts b/plugins/geolocation/guest-js/index.ts index ffda74837..8ef5c5330 100644 --- a/plugins/geolocation/guest-js/index.ts +++ b/plugins/geolocation/guest-js/index.ts @@ -2,36 +2,137 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -/* eslint-disable @typescript-eslint/unbound-method */ +import { + Channel, + invoke, + PermissionState, + checkPermissions as checkPluginPermissions +} from '@tauri-apps/api/core' -import { Channel } from '@tauri-apps/api/core' -import { commands, type PositionOptions, type Position } from './bindings' +export type Coordinates = { + /** + * Latitude in decimal degrees. + */ + latitude: number + /** + * Longitude in decimal degrees. + */ + longitude: number + /** + * Accuracy level of the latitude and longitude coordinates in meters. + */ + accuracy: number + /** + * Accuracy level of the altitude coordinate in meters, if available. + * Available on all iOS versions and on Android 8 and above. + */ + altitudeAccuracy: number | null + /** + * The altitude the user is at, if available. + */ + altitude: number | null + speed: number | null + /** + * The heading the user is facing, if available. + */ + heading: number | null +} + +export type PermissionStatus = { + /** + * Permission state for the location alias. + * + * On Android it requests/checks both ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION permissions. + * + * On iOS it requests/checks location permissions. + */ + location: PermissionState + /** + * Permissions state for the coarseLoaction alias. + * + * On Android it requests/checks ACCESS_COARSE_LOCATION. + * + * On Android 12+, users can choose between Approximate location (ACCESS_COARSE_LOCATION) and Precise location (ACCESS_FINE_LOCATION). + * + * On iOS it will have the same value as the `location` alias. + */ + coarseLocation: PermissionState +} + +export type PermissionType = 'location' | 'coarseLocation' + +export type Position = { + /** + * Creation time for these coordinates. + */ + timestamp: number + /** + * The GPD coordinates along with the accuracy of the data. + */ + coords: Coordinates +} + +export type PositionOptions = { + /** + * High accuracy mode (such as GPS, if available) + * Will be ignored on Android 12+ if users didn't grant the ACCESS_FINE_LOCATION permission (`coarseLocation` permission). + */ + enableHighAccuracy: boolean + /** + * The maximum wait time in milliseconds for location updates. + * On Android the timeout gets ignored for getCurrentPosition. + * Ignored on iOS + */ + timeout: number + /** + * The maximum age in milliseconds of a possible cached position that is acceptable to return. + * Default: 0 + * Ignored on iOS + */ + maximumAge: number +} export async function watchPosition( options: PositionOptions, - // TODO: This can receive errors too - cb: (location: Position | string) => void + cb: (location: Position | null, error?: string) => void ): Promise { - const channel = new Channel() - channel.onmessage = cb - await commands.watchPosition(options, channel) + const channel = new Channel() + channel.onmessage = (message) => { + if (typeof message === 'string') { + cb(null, message) + } else { + cb(message) + } + } + await invoke('plugin:geolocation|watch_position', { + options, + channel + }) return channel.id } -export const { - getCurrentPosition, - clearWatch, - checkPermissions, - requestPermissions -} = commands +export async function getCurrentPosition( + options?: PositionOptions +): Promise { + return await invoke('plugin:geolocation|get_current_position', { + options + }) +} -export type { - PermissionState, - PermissionStatus, - PermissionType, - Position, - PositionOptions, - Coordinates -} from './bindings' +export async function clearWatch(channelId: number): Promise { + await invoke('plugin:geolocation|clear_watch', { + channelId + }) +} -// export { events }; +export async function checkPermissions(): Promise { + return await checkPluginPermissions('geolocation') +} + +export async function requestPermissions( + permissions: PermissionType[] | null +): Promise { + return await invoke('plugin:geolocation|request_permissions', { + permissions + }) +} diff --git a/plugins/geolocation/permissions/autogenerated/commands/clear_positions.toml b/plugins/geolocation/permissions/autogenerated/commands/clear_positions.toml deleted file mode 100644 index dc5c3e59a..000000000 --- a/plugins/geolocation/permissions/autogenerated/commands/clear_positions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-clear-positions" -description = "Enables the clear_positions command without any pre-configured scope." -commands.allow = ["clear_positions"] - -[[permission]] -identifier = "deny-clear-positions" -description = "Denies the clear_positions command without any pre-configured scope." -commands.deny = ["clear_positions"] diff --git a/plugins/geolocation/permissions/autogenerated/commands/request_permissions.toml b/plugins/geolocation/permissions/autogenerated/commands/request_permissions.toml new file mode 100644 index 000000000..02dcd6271 --- /dev/null +++ b/plugins/geolocation/permissions/autogenerated/commands/request_permissions.toml @@ -0,0 +1,13 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-request-permissions" +description = "Enables the request_permissions command without any pre-configured scope." +commands.allow = ["request_permissions"] + +[[permission]] +identifier = "deny-request-permissions" +description = "Denies the request_permissions command without any pre-configured scope." +commands.deny = ["request_permissions"] diff --git a/plugins/geolocation/permissions/autogenerated/reference.md b/plugins/geolocation/permissions/autogenerated/reference.md index e8768210e..e0417c80e 100644 --- a/plugins/geolocation/permissions/autogenerated/reference.md +++ b/plugins/geolocation/permissions/autogenerated/reference.md @@ -63,32 +63,6 @@ Denies the clear_permissions command without any pre-configured scope. -`geolocation:allow-clear-positions` - - - - -Enables the clear_positions command without any pre-configured scope. - - - - - - - -`geolocation:deny-clear-positions` - - - - -Denies the clear_positions command without any pre-configured scope. - - - - - - - `geolocation:allow-clear-watch` @@ -141,6 +115,32 @@ Denies the get_current_position command without any pre-configured scope. +`geolocation:allow-request-permissions` + + + + +Enables the request_permissions command without any pre-configured scope. + + + + + + + +`geolocation:deny-request-permissions` + + + + +Denies the request_permissions command without any pre-configured scope. + + + + + + + `geolocation:allow-watch-position` diff --git a/plugins/geolocation/permissions/schemas/schema.json b/plugins/geolocation/permissions/schemas/schema.json index b39d39f6f..4474ec6bd 100644 --- a/plugins/geolocation/permissions/schemas/schema.json +++ b/plugins/geolocation/permissions/schemas/schema.json @@ -314,16 +314,6 @@ "type": "string", "const": "deny-clear-permissions" }, - { - "description": "Enables the clear_positions command without any pre-configured scope.", - "type": "string", - "const": "allow-clear-positions" - }, - { - "description": "Denies the clear_positions command without any pre-configured scope.", - "type": "string", - "const": "deny-clear-positions" - }, { "description": "Enables the clear_watch command without any pre-configured scope.", "type": "string", @@ -344,6 +334,16 @@ "type": "string", "const": "deny-get-current-position" }, + { + "description": "Enables the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "allow-request-permissions" + }, + { + "description": "Denies the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "deny-request-permissions" + }, { "description": "Enables the watch_position command without any pre-configured scope.", "type": "string", diff --git a/plugins/geolocation/src/mobile.rs b/plugins/geolocation/src/mobile.rs index c7c5bc4e5..48a3f5ded 100644 --- a/plugins/geolocation/src/mobile.rs +++ b/plugins/geolocation/src/mobile.rs @@ -98,7 +98,10 @@ impl Geolocation { permissions: Option>, ) -> crate::Result { self.0 - .run_mobile_plugin("requestPermissions", permissions) + .run_mobile_plugin( + "requestPermissions", + serde_json::json!({ "permissions": permissions }), + ) .map_err(Into::into) } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf81c9c78..43e0632ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,9 +78,15 @@ importers: '@tauri-apps/plugin-fs': specifier: 2.0.0-rc.2 version: link:../../plugins/fs + '@tauri-apps/plugin-geolocation': + specifier: 2.0.0-rc.1 + version: link:../../plugins/geolocation '@tauri-apps/plugin-global-shortcut': specifier: 2.0.0-rc.1 version: link:../../plugins/global-shortcut + '@tauri-apps/plugin-haptics': + specifier: 2.0.0-rc.1 + version: link:../../plugins/haptics '@tauri-apps/plugin-http': specifier: 2.0.0-rc.2 version: link:../../plugins/http From 3cbb55aa7b966c6d2aa6e401f41d0ff459fdb290 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:29:07 -0300 Subject: [PATCH 571/643] publish new versions (#1796) --- .changes/pre.json | 2 ++ Cargo.lock | 2 +- plugins/geolocation/CHANGELOG.md | 5 +++++ plugins/geolocation/Cargo.toml | 2 +- plugins/geolocation/package.json | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 03b4cf34d..72d4ed594 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -31,6 +31,7 @@ ".changes/fs-scope-recursive-allow-read-dir.md", ".changes/fs-windows-path.md", ".changes/fs-write-file-utf8-chars.md", + ".changes/geolocation-permission-refactor.md", ".changes/geolocation-release.md", ".changes/global-shortcut-0.6.md", ".changes/haptics-release.md", @@ -51,6 +52,7 @@ ".changes/swift-build-older-versions.md", ".changes/tauri-rc-8.md", ".changes/update-fs-api-docs.md", + ".changes/update-geolocation-api.md", ".changes/update-tauri-rc-12.md", ".changes/update-tauri-rc-3.md", ".changes/updater-js-headers-download-crate.md", diff --git a/Cargo.lock b/Cargo.lock index 1b1461f60..38c9d7546 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6820,7 +6820,7 @@ dependencies = [ [[package]] name = "tauri-plugin-geolocation" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "log", "serde", diff --git a/plugins/geolocation/CHANGELOG.md b/plugins/geolocation/CHANGELOG.md index dd75222d8..5a4b19f4d 100644 --- a/plugins/geolocation/CHANGELOG.md +++ b/plugins/geolocation/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`60765694`](https://github.com/tauri-apps/plugins-workspace/commit/60765694f54875e22b8eb70b1d2e32dbf0c585c7) ([#1773](https://github.com/tauri-apps/plugins-workspace/pull/1773) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update API to match other plugins. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Use `PermissionState` from the `tauri` crate, which now also includes a "prompt with rationale" variant for Android (returned when your app must explain to the user why it needs the permission). @@ -21,3 +25,4 @@ - [`9606089b`](https://github.com/tauri-apps/plugins-workspace/commit/9606089b2add4a17f80ed5a09d59ce94824bd672) ([#1599](https://github.com/tauri-apps/plugins-workspace/pull/1599)) Initial release. - [`9887d1`](https://github.com/tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC. +tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC. diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index 9b13a7fc5..f41fb8044 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-geolocation" description = "Get and track the device's current position" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json index 79801b88c..c846a61d0 100644 --- a/plugins/geolocation/package.json +++ b/plugins/geolocation/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-geolocation", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "license": "MIT or APACHE-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" From 59c63f31ccd89df3ef592531f79a6c3dd3448182 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 21:39:26 +0200 Subject: [PATCH 572/643] chore(deps): update dependency typescript-eslint to v8.6.0 (v2) (#1798) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 111 ++++++++++++++++++++++++++----------------------- 2 files changed, 60 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index abacb0bae..95fd3d24f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.21.3", "tslib": "2.7.0", "typescript": "5.6.2", - "typescript-eslint": "8.5.0" + "typescript-eslint": "8.6.0" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43e0632ed..487a37b09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.6.2 version: 5.6.2 typescript-eslint: - specifier: 8.5.0 - version: 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + specifier: 8.6.0 + version: 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) examples/api: dependencies: @@ -80,7 +80,7 @@ importers: version: link:../../plugins/fs '@tauri-apps/plugin-geolocation': specifier: 2.0.0-rc.1 - version: link:../../plugins/geolocation + version: 2.0.0-rc.1 '@tauri-apps/plugin-global-shortcut': specifier: 2.0.0-rc.1 version: link:../../plugins/global-shortcut @@ -1125,6 +1125,9 @@ packages: engines: {node: '>= 10'} hasBin: true + '@tauri-apps/plugin-geolocation@2.0.0-rc.1': + resolution: {integrity: sha512-k4mtFp+ox7GU29cKWeNU0cJStbjBiC77mX9yKHRGE1F6Bsbd4YaOUxWX6eZRZt7fFbNWvnNhJtR7Zhn/yAqLBg==} + '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} @@ -1146,8 +1149,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.5.0': - resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + '@typescript-eslint/eslint-plugin@8.6.0': + resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1157,8 +1160,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.5.0': - resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + '@typescript-eslint/parser@8.6.0': + resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1167,12 +1170,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.5.0': - resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + '@typescript-eslint/scope-manager@8.6.0': + resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.5.0': - resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + '@typescript-eslint/type-utils@8.6.0': + resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1180,12 +1183,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.5.0': - resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + '@typescript-eslint/types@8.6.0': + resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.5.0': - resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + '@typescript-eslint/typescript-estree@8.6.0': + resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1193,14 +1196,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.5.0': - resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + '@typescript-eslint/utils@8.6.0': + resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.5.0': - resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + '@typescript-eslint/visitor-keys@8.6.0': + resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.62.3': @@ -2352,8 +2355,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.5.0: - resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + typescript-eslint@8.6.0: + resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3241,6 +3244,10 @@ snapshots: '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.15 '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.15 + '@tauri-apps/plugin-geolocation@2.0.0-rc.1': + dependencies: + '@tauri-apps/api': 2.0.0-rc.4 + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 @@ -3262,14 +3269,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/type-utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.6.0 eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 @@ -3280,12 +3287,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.10.0(jiti@1.21.6) optionalDependencies: @@ -3293,15 +3300,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.5.0': + '@typescript-eslint/scope-manager@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 - '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -3310,12 +3317,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.5.0': {} + '@typescript-eslint/types@8.6.0': {} - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.6.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3327,20 +3334,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.5.0': + '@typescript-eslint/visitor-keys@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6))': @@ -4618,11 +4625,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From fd1c7c8dbbbeabe621a182ec6f6bb44bc3eee019 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 11:09:53 +0200 Subject: [PATCH 573/643] fix(deps): update dependency @tauri-apps/plugin-geolocation to v2.0.0-rc.2 (v2) (#1799) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/api/package.json | 2 +- pnpm-lock.yaml | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index c3dc0a9e4..ca5a931d1 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -16,7 +16,7 @@ "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.2", "@tauri-apps/plugin-dialog": "2.0.0-rc.1", "@tauri-apps/plugin-fs": "2.0.0-rc.2", - "@tauri-apps/plugin-geolocation": "2.0.0-rc.1", + "@tauri-apps/plugin-geolocation": "2.0.0-rc.2", "@tauri-apps/plugin-global-shortcut": "2.0.0-rc.1", "@tauri-apps/plugin-haptics": "2.0.0-rc.1", "@tauri-apps/plugin-http": "2.0.0-rc.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 487a37b09..ab23c9fa8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,8 +79,8 @@ importers: specifier: 2.0.0-rc.2 version: link:../../plugins/fs '@tauri-apps/plugin-geolocation': - specifier: 2.0.0-rc.1 - version: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 + version: link:../../plugins/geolocation '@tauri-apps/plugin-global-shortcut': specifier: 2.0.0-rc.1 version: link:../../plugins/global-shortcut @@ -1125,9 +1125,6 @@ packages: engines: {node: '>= 10'} hasBin: true - '@tauri-apps/plugin-geolocation@2.0.0-rc.1': - resolution: {integrity: sha512-k4mtFp+ox7GU29cKWeNU0cJStbjBiC77mX9yKHRGE1F6Bsbd4YaOUxWX6eZRZt7fFbNWvnNhJtR7Zhn/yAqLBg==} - '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} @@ -3244,10 +3241,6 @@ snapshots: '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.15 '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.15 - '@tauri-apps/plugin-geolocation@2.0.0-rc.1': - dependencies: - '@tauri-apps/api': 2.0.0-rc.4 - '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 From 6e142b4230b44b9f23b36eb6f7788b8e8372fcd9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 17:24:18 +0200 Subject: [PATCH 574/643] fix(deps): update tauri monorepo (v2) (#1801) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 32 ++-- Cargo.toml | 8 +- examples/api/package.json | 4 +- plugins/deep-link/examples/app/package.json | 4 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 172 +++++++++--------- 8 files changed, 113 insertions(+), 113 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 38c9d7546..f3693890d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6563,9 +6563,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.14" +version = "2.0.0-rc.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fa32e2741bda64c1da02d93252a466893180052fc6de61c8803b0356504b70d" +checksum = "eb3c3b1c7ac5b72d59da307b84af900a0098c74c9d7369f65018cd8ec0eb50fb" dependencies = [ "anyhow", "bytes", @@ -6618,9 +6618,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "148441d64674b2885c1ba5baf3ae61662bb8753859ffcfb541962cbc6b847f39" +checksum = "6ff5713e81e02e0b99f5219b275abbd7d2c0cc0f30180e25b1b650e08feeac63" dependencies = [ "anyhow", "cargo_toml", @@ -6642,9 +6642,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a15c3f9282c82871c69ddb65d02ae552738bbac848c8adcab521bf14d8b9e6" +checksum = "5370f2591dcc93d4ff08d9dd168f5097f79b34e859883586a409c627544190e3" dependencies = [ "base64 0.22.1", "brotli", @@ -6669,9 +6669,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12d1aa317bec56f78388cf6012d788876d838595a48f95cbd7835642db356a0" +checksum = "19442dc8ee002ab1926586f6aecb90114f3a1226766008b0c9ac2d9fec9eeb7e" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6683,9 +6683,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82a2adea16b8a71b7a5ad23f720bb13f8d2830b820cc1c266512314ba99bf67" +checksum = "5e3368e91a98aa55ea4e3e8ccff516bc1ed2f85872c335ec35e9b345469032e0" dependencies = [ "anyhow", "glob", @@ -7158,9 +7158,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389f78c8e8e6eff3897d8d9581087943b5976ea96a0ab5036be691f28c2b0df0" +checksum = "c5f38d8aaa1e81d20e8e208e3e317f81b59fb75c530fbae8a90e72d02001d687" dependencies = [ "dpi", "gtk", @@ -7177,9 +7177,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17625b7cf63958d53945e199391d11c9f195fb3d1cb8aeb64dc3084d0091b92" +checksum = "cf1ef5171e14c8fe3b5a63e75004c20d057747bc3e7fdc5f8ded625f0b29f5c7" dependencies = [ "gtk", "http", @@ -7203,9 +7203,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3019641087c9039b57ebfca95fa42a93c07056845b7d8d57c8966061bcee83b4" +checksum = "31fe4c9148e1b35225e1c00753f24b517ce00041d02eb4b4d6fd10613a47736c" dependencies = [ "aes-gcm", "brotli", diff --git a/Cargo.toml b/Cargo.toml index d759171f0..95a89d361 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.14", default-features = false } -tauri-build = "2.0.0-rc.11" -tauri-plugin = "2.0.0-rc.11" -tauri-utils = "2.0.0-rc.11" +tauri = { version = "2.0.0-rc.15", default-features = false } +tauri-build = "2.0.0-rc.12" +tauri-plugin = "2.0.0-rc.12" +tauri-utils = "2.0.0-rc.12" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index ca5a931d1..2ebcac8af 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.4", + "@tauri-apps/api": "2.0.0-rc.5", "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.2", "@tauri-apps/plugin-biometric": "2.0.0-rc.1", "@tauri-apps/plugin-cli": "2.0.0-rc.1", @@ -33,7 +33,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.15", + "@tauri-apps/cli": "2.0.0-rc.16", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 1d23da99a..65e11d9e3 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -10,11 +10,11 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.4", + "@tauri-apps/api": "2.0.0-rc.5", "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.15", + "@tauri-apps/cli": "2.0.0-rc.16", "typescript": "^5.2.2", "vite": "^5.0.13" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 489267a1c..08f8da029 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.15" + "@tauri-apps/cli": "2.0.0-rc.16" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index b7c3fcf75..557f5e096 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.15", + "@tauri-apps/cli": "2.0.0-rc.16", "vite": "^5.0.12", "typescript": "^5.3.3" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 1a9c39609..f92f98f31 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.15", + "@tauri-apps/cli": "2.0.0-rc.16", "typescript": "^5.3.3", "vite": "^5.0.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab23c9fa8..41c195cf4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.4 - version: 2.0.0-rc.4 + specifier: 2.0.0-rc.5 + version: 2.0.0-rc.5 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0-rc.2 version: link:../../plugins/barcode-scanner @@ -125,8 +125,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) '@tauri-apps/cli': - specifier: 2.0.0-rc.15 - version: 2.0.0-rc.15 + specifier: 2.0.0-rc.16 + version: 2.0.0-rc.16 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.3 @@ -144,50 +144,50 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/barcode-scanner: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/biometric: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/cli: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/clipboard-manager: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/deep-link: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.4 - version: 2.0.0-rc.4 + specifier: 2.0.0-rc.5 + version: 2.0.0-rc.5 '@tauri-apps/plugin-deep-link': specifier: 2.0.0-rc.2 version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.15 - version: 2.0.0-rc.15 + specifier: 2.0.0-rc.16 + version: 2.0.0-rc.16 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -199,103 +199,103 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/fs: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/geolocation: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/global-shortcut: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/haptics: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/http: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/log: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/nfc: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/notification: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/os: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/positioner: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/process: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/shell: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.15 - version: 2.0.0-rc.15 + specifier: 2.0.0-rc.16 + version: 2.0.0-rc.16 plugins/sql: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/store: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.15 - version: 2.0.0-rc.15 + specifier: 2.0.0-rc.16 + version: 2.0.0-rc.16 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -307,25 +307,25 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/updater: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/upload: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/websocket: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 plugins/websocket/examples/tauri-app: dependencies: @@ -334,8 +334,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.15 - version: 2.0.0-rc.15 + specifier: 2.0.0-rc.16 + version: 2.0.0-rc.16 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -347,7 +347,7 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.4 + version: 2.0.0-rc.5 packages: @@ -1057,71 +1057,71 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tauri-apps/api@2.0.0-rc.4': - resolution: {integrity: sha512-UNiIhhKG08j4ooss2oEEVexffmWkgkYlC2M3GcX3VPtNsqFgVNL8Mcw/4Y7rO9M9S+ffAMnLOF5ypzyuyb8tyg==} + '@tauri-apps/api@2.0.0-rc.5': + resolution: {integrity: sha512-JWs69pE9NsQdcqTpEVBepAZ08+jgQWuthIiTiaWRq/YlCLgnqq0KfC9sDem55uJ0YpgsytZuyj+m6b6q8oiD2g==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15': - resolution: {integrity: sha512-WuzQRELJTeSHe/uLu6IClCCEkwQy4qtZdHUmcAW3baKD217WCytn4jQ5+NFs2GxhK1a2GLHMQtQZSFTLkKiXkw==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.16': + resolution: {integrity: sha512-lISZU4gG0c9PbY7h/j/gW7nJLxZEygNBrYEET6zN8R99Znf5rSO+CfjenaMcJUUj6yTAd8gzdakRpLqNSAWegA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.15': - resolution: {integrity: sha512-71H1dNWlEr+Hyi096Ir3SnlClw4CSR4MhJ8UG8IUBqYwydJPYFzA+GFWRAgnPgcV6sBzdt8trcV9BLV4teDzEw==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.16': + resolution: {integrity: sha512-D9uxPCxpyYcTSQulJGFX3POAKPOJd8WcWHFH8x6YVM1cIx6EWRXIE1sZnPUOjFr7qCg+bSdYdr8/BFHcZGcApQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15': - resolution: {integrity: sha512-hO7AS09l6XZRCu/vqvB/iv6CvIlD//h9njhyw++0tJPCNH3X4rl13ji6SnoO0V6ZUCEeCeQBTAALsanYAlZelQ==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.16': + resolution: {integrity: sha512-WsVdKm4D1I1XV8I9yRnmOINZRwwWfh6xcLV3m19+B9g6TohK8RkRxWfxvs3TLQlWOLQ6lo8BzS9rzXB+KtjDpg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15': - resolution: {integrity: sha512-r9FrwY83TD4w3vX7J9zS3GPSeis0YWq52p/MVLYR1i8sSJppbvYY72EXi5pR2CZ3vb+6z9/w7LpYTv+hOd2RbA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.16': + resolution: {integrity: sha512-2jpZDagNs6rrqposHJihHBayttgOl5aB2+bYiVEC6ye+haiFtmYmpdaPOaVIw+YVQs6lepf5PVrisCoU9DmYsg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15': - resolution: {integrity: sha512-PqMn3/GiqLAhs7p0jr5XqwWN1t7SAgvo6+bFuYNL/SWx1Ui6mOck3ncfDkf+dQAnXnrhX2Qfwkl3agiOZxUZtA==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.16': + resolution: {integrity: sha512-SNEDcB+sWOls/B0a+UpUHVa/oegvlXXKYWsTxuXtgWIr5VbWG7rXLZ3fZpLLP3SpRVGTGTnABcyqshFbWSqqKQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15': - resolution: {integrity: sha512-o8lvgVBGXwthMV8+8EzEwXQY5jk2q+c700xeC/LY+J0lBL5ai3i0revlhO+3RwKnjnRLZMCXatr5K3gGtXIsoQ==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.16': + resolution: {integrity: sha512-Zsq29MM1ooeH1+chQBa7ffDFnzAZebBBFdsvs4e05tS1H8gn4oKE+PSMn9p/okzVXykEk9ri2/n7BG1XFeifMA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15': - resolution: {integrity: sha512-cmANCyhcdInZSfIM3CPjA0eDu1toYABapSttA1rHbNrcJrHIq2KPKRCNuXIjWiBggxfIhJKWX7mTgQCQIyHd/w==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.16': + resolution: {integrity: sha512-g+pwSuis2YMxhJJ/pJYwp/Nps5CWvlv/5MV5UfDvClkCkeAyzIqVX+HbBLPcs5S0CePUQNeP0j4d4jBWUqZZQg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15': - resolution: {integrity: sha512-FyWwCQb+uCCBtEDTDKtILH3wv0TWCQ2mXwMyZlibpbZ4RbaV5yDY82h8h7usfEuPHtBtAJHknHvX5WV1ETl5kw==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.16': + resolution: {integrity: sha512-PpPqdMTwJSDAK4KnNjvh77ShSkY+7pih1f6e50EtXar8bjC17e3XcEqFhDNne5mxEVTLYhibs6p1JLPad0ZjRA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15': - resolution: {integrity: sha512-+bOBX7EdpmkCSBxgd9HcC/p9LoG/q1a5dJebWFuL9GhmdPeb5hv4plB/OTUAtg1OnEVGPXhTiSkcdRatZVryfA==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.16': + resolution: {integrity: sha512-io2yIcEcG7YLP+9n13NbilB93SjcB7jIl8GbURC4XZT4/4t9D1PWHpJr5hySVsGRLCz5e8NzwC5RlnenNzmpPQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15': - resolution: {integrity: sha512-Phpk18bs1YxC+OFYaZNWiddYRmiZvMjB9Rzjl6M128gIkgnqDGnZyfWtM5GZ85/BmX1HVGgILK/46RU6Q88z1g==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.16': + resolution: {integrity: sha512-Rfkmxe3k+cBVA/kVYt8O25QrQqWKJlH9AiH7Q3C6xBzzG9PCSRMBszCp+JhBF8jhVlwNmOBv6UG+lm85kspwGg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.15': - resolution: {integrity: sha512-w5cq2WBKYRJDCE5wi5gyjM79Cq3AchTFImbcGBB+uyB/m3PDBXEidaTBTHqwiup2hKbMivuBAzGUCHt+OfgBhA==} + '@tauri-apps/cli@2.0.0-rc.16': + resolution: {integrity: sha512-wdjZg/M3dcxiqgWG6VRnABpX0dYxRww93t0d1MYoZxFDrnyoUz5kYwFQ0v4J9u0qenEgskjoypvon7V/Nj9qrg==} engines: {node: '>= 10'} hasBin: true @@ -3196,50 +3196,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@tauri-apps/api@2.0.0-rc.4': {} + '@tauri-apps/api@2.0.0-rc.5': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.15': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.16': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.15': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.16': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.15': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.16': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.15': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.16': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.15': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.16': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.15': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.16': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.15': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.16': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.15': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.16': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.15': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.16': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.15': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.16': optional: true - '@tauri-apps/cli@2.0.0-rc.15': + '@tauri-apps/cli@2.0.0-rc.16': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.15 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.15 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.15 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.15 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.15 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.15 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.15 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.15 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.15 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.15 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.16 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.16 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.16 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.16 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.16 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.16 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.16 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.16 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.16 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.16 '@types/eslint@9.6.1': dependencies: From dd514e7a88664297f3cc0e8db1cad75b82f8533a Mon Sep 17 00:00:00 2001 From: Jaken Herman Date: Tue, 17 Sep 2024 11:31:55 -0500 Subject: [PATCH 575/643] Docs: contaiend -> contained typos (#1802) --- plugins/fs/src/file_path.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/fs/src/file_path.rs b/plugins/fs/src/file_path.rs index 967696b9a..9ff7a9476 100644 --- a/plugins/fs/src/file_path.rs +++ b/plugins/fs/src/file_path.rs @@ -35,7 +35,7 @@ pub enum SafeFilePath { } impl FilePath { - /// Get a reference to the contaiend [`Path`] if the variant is [`FilePath::Path`]. + /// Get a reference to the contained [`Path`] if the variant is [`FilePath::Path`]. /// /// Use [`FilePath::into_path`] to try to convert the [`FilePath::Url`] variant as well. #[inline] @@ -73,7 +73,7 @@ impl FilePath { } impl SafeFilePath { - /// Get a reference to the contaiend [`Path`] if the variant is [`SafeFilePath::Path`]. + /// Get a reference to the contained [`Path`] if the variant is [`SafeFilePath::Path`]. /// /// Use [`SafeFilePath::into_path`] to try to convert the [`SafeFilePath::Url`] variant as well. #[inline] From 3168e176031a61215be542595ba90ca51f8f2d97 Mon Sep 17 00:00:00 2001 From: Austin Bennett <157770486+auggiebennett@users.noreply.github.com> Date: Wed, 18 Sep 2024 20:59:54 -0500 Subject: [PATCH 576/643] Added quotes for cmd (#1806) * Added quotes for cmd * Add change file --------- Co-authored-by: Tony --- .changes/deep-link-space-in-path.md | 5 +++++ plugins/deep-link/src/lib.rs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changes/deep-link-space-in-path.md diff --git a/.changes/deep-link-space-in-path.md b/.changes/deep-link-space-in-path.md new file mode 100644 index 000000000..53fa8822c --- /dev/null +++ b/.changes/deep-link-space-in-path.md @@ -0,0 +1,5 @@ +--- +"deep-link": patch +--- + +Fix fails to start when having spaces in the main binary path on Windows diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index ea265504b..bd53ebc14 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -278,7 +278,7 @@ mod imp { let cmd_reg = CURRENT_USER.create(format!("{key_base}\\shell\\open\\command"))?; - cmd_reg.set_string("", &format!("{} \"%1\"", &exe))?; + cmd_reg.set_string("", &format!("\"{}\" \"%1\"", &exe))?; Ok(()) } From 27bb5d9a273b9f89f16f373a1ea2f18ffda9e33b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 12:40:55 +0200 Subject: [PATCH 577/643] chore(deps): update dependency rollup to v4.22.0 (v2) (#1810) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 188 ++++++++++++++++++++++++------------------------- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index 95fd3d24f..614783b1e 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", - "rollup": "4.21.3", + "rollup": "4.22.0", "tslib": "2.7.0", "typescript": "5.6.2", "typescript-eslint": "8.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41c195cf4..0b6197db7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,13 +17,13 @@ importers: version: 9.10.0 '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.21.3) + version: 15.2.3(rollup@4.22.0) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.21.3) + version: 0.4.4(rollup@4.22.0) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.21.3)(tslib@2.7.0)(typescript@5.6.2) + version: 11.1.6(rollup@4.22.0)(tslib@2.7.0)(typescript@5.6.2) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -43,8 +43,8 @@ importers: specifier: 3.3.3 version: 3.3.3 rollup: - specifier: 4.21.3 - version: 4.21.3 + specifier: 4.22.0 + version: 4.22.0 tslib: specifier: 2.7.0 version: 2.7.0 @@ -135,7 +135,7 @@ importers: version: 4.2.19 unocss: specifier: ^0.62.0 - version: 0.62.3(postcss@8.4.45)(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) + version: 0.62.3(postcss@8.4.45)(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) vite: specifier: ^5.0.13 version: 5.4.3(terser@5.31.6) @@ -962,83 +962,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.3': - resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==} + '@rollup/rollup-android-arm-eabi@4.22.0': + resolution: {integrity: sha512-/IZQvg6ZR0tAkEi4tdXOraQoWeJy9gbQ/cx4I7k9dJaCk9qrXEcdouxRVz5kZXt5C2bQ9pILoAA+KB4C/d3pfw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.3': - resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==} + '@rollup/rollup-android-arm64@4.22.0': + resolution: {integrity: sha512-ETHi4bxrYnvOtXeM7d4V4kZWixib2jddFacJjsOjwbgYSRsyXYtZHC4ht134OsslPIcnkqT+TKV4eU8rNBKyyQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.3': - resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==} + '@rollup/rollup-darwin-arm64@4.22.0': + resolution: {integrity: sha512-ZWgARzhSKE+gVUX7QWaECoRQsPwaD8ZR0Oxb3aUpzdErTvlEadfQpORPXkKSdKbFci9v8MJfkTtoEHnnW9Ulng==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.3': - resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==} + '@rollup/rollup-darwin-x64@4.22.0': + resolution: {integrity: sha512-h0ZAtOfHyio8Az6cwIGS+nHUfRMWBDO5jXB8PQCARVF6Na/G6XS2SFxDl8Oem+S5ZsHQgtsI7RT4JQnI1qrlaw==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': - resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==} + '@rollup/rollup-linux-arm-gnueabihf@4.22.0': + resolution: {integrity: sha512-9pxQJSPwFsVi0ttOmqLY4JJ9pg9t1gKhK0JDbV1yUEETSx55fdyCjt39eBQ54OQCzAF0nVGO6LfEH1KnCPvelA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.3': - resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==} + '@rollup/rollup-linux-arm-musleabihf@4.22.0': + resolution: {integrity: sha512-YJ5Ku5BmNJZb58A4qSEo3JlIG4d3G2lWyBi13ABlXzO41SsdnUKi3HQHe83VpwBVG4jHFTW65jOQb8qyoR+qzg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.3': - resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==} + '@rollup/rollup-linux-arm64-gnu@4.22.0': + resolution: {integrity: sha512-U4G4u7f+QCqHlVg1Nlx+qapZy+QoG+NV6ux+upo/T7arNGwKvKP2kmGM4W5QTbdewWFgudQxi3kDNST9GT1/mg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.3': - resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==} + '@rollup/rollup-linux-arm64-musl@4.22.0': + resolution: {integrity: sha512-aQpNlKmx3amwkA3a5J6nlXSahE1ijl0L9KuIjVOUhfOh7uw2S4piR3mtpxpRtbnK809SBtyPsM9q15CPTsY7HQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': - resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': + resolution: {integrity: sha512-9fx6Zj/7vve/Fp4iexUFRKb5+RjLCff6YTRQl4CoDhdMfDoobWmhAxQWV3NfShMzQk1Q/iCnageFyGfqnsmeqQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.3': - resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==} + '@rollup/rollup-linux-riscv64-gnu@4.22.0': + resolution: {integrity: sha512-VWQiCcN7zBgZYLjndIEh5tamtnKg5TGxyZPWcN9zBtXBwfcGSZ5cHSdQZfQH/GB4uRxk0D3VYbOEe/chJhPGLQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.3': - resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==} + '@rollup/rollup-linux-s390x-gnu@4.22.0': + resolution: {integrity: sha512-EHmPnPWvyYqncObwqrosb/CpH3GOjE76vWVs0g4hWsDRUVhg61hBmlVg5TPXqF+g+PvIbqkC7i3h8wbn4Gp2Fg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.3': - resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==} + '@rollup/rollup-linux-x64-gnu@4.22.0': + resolution: {integrity: sha512-tsSWy3YQzmpjDKnQ1Vcpy3p9Z+kMFbSIesCdMNgLizDWFhrLZIoN21JSq01g+MZMDFF+Y1+4zxgrlqPjid5ohg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.3': - resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==} + '@rollup/rollup-linux-x64-musl@4.22.0': + resolution: {integrity: sha512-anr1Y11uPOQrpuU8XOikY5lH4Qu94oS6j0xrulHk3NkLDq19MlX8Ng/pVipjxBJ9a2l3+F39REZYyWQFkZ4/fw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.3': - resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==} + '@rollup/rollup-win32-arm64-msvc@4.22.0': + resolution: {integrity: sha512-7LB+Bh+Ut7cfmO0m244/asvtIGQr5pG5Rvjz/l1Rnz1kDzM02pSX9jPaS0p+90H5I1x4d1FkCew+B7MOnoatNw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.3': - resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==} + '@rollup/rollup-win32-ia32-msvc@4.22.0': + resolution: {integrity: sha512-+3qZ4rer7t/QsC5JwMpcvCVPRcJt1cJrYS/TMJZzXIJbxWFQEVhrIc26IhB+5Z9fT9umfVc+Es2mOZgl+7jdJQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.3': - resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==} + '@rollup/rollup-win32-x64-msvc@4.22.0': + resolution: {integrity: sha512-YdicNOSJONVx/vuPkgPTyRoAPx3GbknBZRCOUkK84FJ/YTfs/F0vl/YsMscrB6Y177d+yDRcj+JWMPMCgshwrA==} cpu: [x64] os: [win32] @@ -2180,8 +2180,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.21.3: - resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==} + rollup@4.22.0: + resolution: {integrity: sha512-W21MUIFPZ4+O2Je/EU+GP3iz7PH4pVPUXSbEZdatQnxo29+3rsUjgrJmzuAZU24z7yRAnFN6ukxeAhZh/c7hzg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3089,88 +3089,88 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.3)': + '@rollup/plugin-node-resolve@15.2.3(rollup@4.22.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@4.22.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.0 - '@rollup/plugin-terser@0.4.4(rollup@4.21.3)': + '@rollup/plugin-terser@0.4.4(rollup@4.22.0)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.31.6 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.0 - '@rollup/plugin-typescript@11.1.6(rollup@4.21.3)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.22.0)(tslib@2.7.0)(typescript@5.6.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@4.22.0) resolve: 1.22.8 typescript: 5.6.2 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.0 tslib: 2.7.0 - '@rollup/pluginutils@5.1.0(rollup@4.21.3)': + '@rollup/pluginutils@5.1.0(rollup@4.22.0)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.0 - '@rollup/rollup-android-arm-eabi@4.21.3': + '@rollup/rollup-android-arm-eabi@4.22.0': optional: true - '@rollup/rollup-android-arm64@4.21.3': + '@rollup/rollup-android-arm64@4.22.0': optional: true - '@rollup/rollup-darwin-arm64@4.21.3': + '@rollup/rollup-darwin-arm64@4.22.0': optional: true - '@rollup/rollup-darwin-x64@4.21.3': + '@rollup/rollup-darwin-x64@4.22.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + '@rollup/rollup-linux-arm-gnueabihf@4.22.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.3': + '@rollup/rollup-linux-arm-musleabihf@4.22.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.3': + '@rollup/rollup-linux-arm64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.3': + '@rollup/rollup-linux-arm64-musl@4.22.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.3': + '@rollup/rollup-linux-riscv64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.3': + '@rollup/rollup-linux-s390x-gnu@4.22.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.3': + '@rollup/rollup-linux-x64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-x64-musl@4.21.3': + '@rollup/rollup-linux-x64-musl@4.22.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.3': + '@rollup/rollup-win32-arm64-msvc@4.22.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.3': + '@rollup/rollup-win32-ia32-msvc@4.22.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.3': + '@rollup/rollup-win32-x64-msvc@4.22.0': optional: true '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': @@ -3343,21 +3343,21 @@ snapshots: '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6))': + '@unocss/astro@0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6))': dependencies: '@unocss/core': 0.62.3 '@unocss/reset': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.62.3(rollup@4.21.3)': + '@unocss/cli@0.62.3(rollup@4.22.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@4.22.0) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/preset-uno': 0.62.3 @@ -3488,10 +3488,10 @@ snapshots: dependencies: '@unocss/core': 0.62.3 - '@unocss/vite@0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6))': + '@unocss/vite@0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6))': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@4.22.0) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/inspector': 0.62.3 @@ -4437,26 +4437,26 @@ snapshots: reusify@1.0.4: {} - rollup@4.21.3: + rollup@4.22.0: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.3 - '@rollup/rollup-android-arm64': 4.21.3 - '@rollup/rollup-darwin-arm64': 4.21.3 - '@rollup/rollup-darwin-x64': 4.21.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 - '@rollup/rollup-linux-arm-musleabihf': 4.21.3 - '@rollup/rollup-linux-arm64-gnu': 4.21.3 - '@rollup/rollup-linux-arm64-musl': 4.21.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 - '@rollup/rollup-linux-riscv64-gnu': 4.21.3 - '@rollup/rollup-linux-s390x-gnu': 4.21.3 - '@rollup/rollup-linux-x64-gnu': 4.21.3 - '@rollup/rollup-linux-x64-musl': 4.21.3 - '@rollup/rollup-win32-arm64-msvc': 4.21.3 - '@rollup/rollup-win32-ia32-msvc': 4.21.3 - '@rollup/rollup-win32-x64-msvc': 4.21.3 + '@rollup/rollup-android-arm-eabi': 4.22.0 + '@rollup/rollup-android-arm64': 4.22.0 + '@rollup/rollup-darwin-arm64': 4.22.0 + '@rollup/rollup-darwin-x64': 4.22.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.0 + '@rollup/rollup-linux-arm-musleabihf': 4.22.0 + '@rollup/rollup-linux-arm64-gnu': 4.22.0 + '@rollup/rollup-linux-arm64-musl': 4.22.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.0 + '@rollup/rollup-linux-riscv64-gnu': 4.22.0 + '@rollup/rollup-linux-s390x-gnu': 4.22.0 + '@rollup/rollup-linux-x64-gnu': 4.22.0 + '@rollup/rollup-linux-x64-musl': 4.22.0 + '@rollup/rollup-win32-arm64-msvc': 4.22.0 + '@rollup/rollup-win32-ia32-msvc': 4.22.0 + '@rollup/rollup-win32-x64-msvc': 4.22.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4655,10 +4655,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.62.3(postcss@8.4.45)(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)): + unocss@0.62.3(postcss@8.4.45)(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)): dependencies: - '@unocss/astro': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) - '@unocss/cli': 0.62.3(rollup@4.21.3) + '@unocss/astro': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) + '@unocss/cli': 0.62.3(rollup@4.22.0) '@unocss/core': 0.62.3 '@unocss/extractor-arbitrary-variants': 0.62.3 '@unocss/postcss': 0.62.3(postcss@8.4.45) @@ -4676,7 +4676,7 @@ snapshots: '@unocss/transformer-compile-class': 0.62.3 '@unocss/transformer-directives': 0.62.3 '@unocss/transformer-variant-group': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.21.3)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: @@ -4710,7 +4710,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.45 - rollup: 4.21.3 + rollup: 4.22.0 optionalDependencies: fsevents: 2.3.3 terser: 5.31.6 From 41fe9053a05133fe2d884be6f3bb74b6b30b3e9c Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 19 Sep 2024 19:58:13 +0800 Subject: [PATCH 578/643] fix(deep-link): `is_registered` check on windows --- plugins/deep-link/src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs index bd53ebc14..25cdd317e 100644 --- a/plugins/deep-link/src/lib.rs +++ b/plugins/deep-link/src/lib.rs @@ -274,11 +274,11 @@ mod imp { key_reg.set_string("URL Protocol", "")?; let icon_reg = CURRENT_USER.create(format!("{key_base}\\DefaultIcon"))?; - icon_reg.set_string("", &format!("{},0", &exe))?; + icon_reg.set_string("", &format!("{exe},0"))?; let cmd_reg = CURRENT_USER.create(format!("{key_base}\\shell\\open\\command"))?; - cmd_reg.set_string("", &format!("\"{}\" \"%1\"", &exe))?; + cmd_reg.set_string("", &format!("\"{exe}\" \"%1\""))?; Ok(()) } @@ -408,13 +408,13 @@ mod imp { _protocol.as_ref() ))?; - let registered_cmd: String = cmd_reg.get_string("")?; + let registered_cmd = cmd_reg.get_string("")?; let exe = dunce::simplified(&tauri::utils::platform::current_exe()?) .display() .to_string(); - Ok(registered_cmd == format!("{} \"%1\"", &exe)) + Ok(registered_cmd == format!("\"{exe}\" \"%1\"")) } #[cfg(target_os = "linux")] { From 6bf1bd8d44bb95618590aa066e638509b014e0f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 20:04:02 +0800 Subject: [PATCH 579/643] fix(deps): update rust crate rfd to 0.15 (v2) (#1805) * fix(deps): update rust crate rfd to 0.15 * Fix compilation * Add change file * Remove platform specific note --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- .changes/dialog-rfd-015.md | 5 ++ Cargo.lock | 106 ++++++++++++++++++++++++++++++--- plugins/dialog/Cargo.toml | 2 +- plugins/dialog/src/commands.rs | 4 +- plugins/dialog/src/desktop.rs | 31 ++++++++-- plugins/dialog/src/lib.rs | 38 ++++++++---- 6 files changed, 157 insertions(+), 29 deletions(-) create mode 100644 .changes/dialog-rfd-015.md diff --git a/.changes/dialog-rfd-015.md b/.changes/dialog-rfd-015.md new file mode 100644 index 000000000..c434c802b --- /dev/null +++ b/.changes/dialog-rfd-015.md @@ -0,0 +1,5 @@ +--- +"dialog": patch +--- + +Update rfd to 0.15 diff --git a/Cargo.lock b/Cargo.lock index f3693890d..5b1125d4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -341,18 +341,22 @@ checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "ashpd" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" +checksum = "bfe7e0dd0ac5a401dc116ed9f9119cf9decc625600474cb41f0fc0a0050abc9a" dependencies = [ "enumflags2", "futures-channel", "futures-util", "rand 0.8.5", + "raw-window-handle", "serde", "serde_repr", "tokio", "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", "zbus", ] @@ -1729,6 +1733,15 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + [[package]] name = "dlopen2" version = "0.7.0" @@ -1767,6 +1780,12 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "dpi" version = "0.1.1" @@ -4167,6 +4186,7 @@ checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.6.0", "block2", + "dispatch", "libc", "objc2", ] @@ -4877,6 +4897,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +dependencies = [ + "memchr", +] + [[package]] name = "quinn" version = "0.11.5" @@ -5251,21 +5280,20 @@ dependencies = [ [[package]] name = "rfd" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251" +checksum = "8af382a047821a08aa6bfc09ab0d80ff48d45d8726f7cd8e44891f7cb4a4278e" dependencies = [ "ashpd", - "block", - "dispatch", + "block2", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc", - "objc-foundation", - "objc_id", + "objc2", + "objc2-app-kit", + "objc2-foundation", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", @@ -8108,6 +8136,66 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wayland-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +dependencies = [ + "bitflags 2.6.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +dependencies = [ + "proc-macro2", + "quick-xml 0.36.1", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + [[package]] name = "web-sys" version = "0.3.70" diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 8759533a8..b08c5cda7 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -33,7 +33,7 @@ tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } tauri = { workspace = true, features = ["wry"] } [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -rfd = { version = "0.14", default-features = false, features = [ +rfd = { version = "0.15", default-features = false, features = [ "tokio", "gtk3", "common-controls-v6", diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 8eb5b173b..9173e83e9 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -205,7 +205,7 @@ pub(crate) async fn save( options: SaveDialogOptions, ) -> Result> { let mut dialog_builder = dialog.file(); - #[cfg(any(windows, target_os = "macos"))] + #[cfg(desktop)] { dialog_builder = dialog_builder.set_parent(&window); } @@ -253,7 +253,7 @@ fn message_dialog( builder = builder.title(title); } - #[cfg(any(windows, target_os = "macos"))] + #[cfg(desktop)] { builder = builder.parent(&window); } diff --git a/plugins/dialog/src/desktop.rs b/plugins/dialog/src/desktop.rs index efd62ecc2..be19b49a9 100644 --- a/plugins/dialog/src/desktop.rs +++ b/plugins/dialog/src/desktop.rs @@ -8,7 +8,7 @@ //! to give results back. This is particularly useful when running dialogs from the main thread. //! When using on asynchronous contexts such as async commands, the [`blocking`] APIs are recommended. -use raw_window_handle::{HasWindowHandle, RawWindowHandle}; +use raw_window_handle::{HasDisplayHandle, HasWindowHandle, RawDisplayHandle, RawWindowHandle}; use rfd::{AsyncFileDialog, AsyncMessageDialog}; use serde::de::DeserializeOwned; use tauri::{plugin::PluginApi, AppHandle, Runtime}; @@ -50,13 +50,34 @@ impl From for rfd::MessageLevel { } } -struct WindowHandle(RawWindowHandle); +#[derive(Debug)] +pub(crate) struct WindowHandle { + window_handle: RawWindowHandle, + display_handle: RawDisplayHandle, +} + +impl WindowHandle { + pub(crate) fn new(window_handle: RawWindowHandle, display_handle: RawDisplayHandle) -> Self { + Self { + window_handle, + display_handle, + } + } +} impl HasWindowHandle for WindowHandle { fn window_handle( &self, ) -> Result, raw_window_handle::HandleError> { - Ok(unsafe { raw_window_handle::WindowHandle::borrow_raw(self.0) }) + Ok(unsafe { raw_window_handle::WindowHandle::borrow_raw(self.window_handle) }) + } +} + +impl HasDisplayHandle for WindowHandle { + fn display_handle( + &self, + ) -> Result, raw_window_handle::HandleError> { + Ok(unsafe { raw_window_handle::DisplayHandle::borrow_raw(self.display_handle) }) } } @@ -79,7 +100,7 @@ impl From> for AsyncFileDialog { } #[cfg(desktop)] if let Some(parent) = d.parent { - builder = builder.set_parent(&WindowHandle(parent)); + builder = builder.set_parent(&parent); } builder = builder.set_can_create_directories(d.can_create_directories.unwrap_or(true)); @@ -106,7 +127,7 @@ impl From> for AsyncMessageDialog { } if let Some(parent) = d.parent { - dialog = dialog.set_parent(&WindowHandle(parent)); + dialog = dialog.set_parent(&parent); } dialog diff --git a/plugins/dialog/src/lib.rs b/plugins/dialog/src/lib.rs index 26048eca5..5f2b35b02 100644 --- a/plugins/dialog/src/lib.rs +++ b/plugins/dialog/src/lib.rs @@ -199,7 +199,7 @@ pub struct MessageDialogBuilder { pub(crate) ok_button_label: Option, pub(crate) cancel_button_label: Option, #[cfg(desktop)] - pub(crate) parent: Option, + pub(crate) parent: Option, } /// Payload for the message dialog mobile API. @@ -250,14 +250,18 @@ impl MessageDialogBuilder { } /// Set parent windows explicitly (optional) - /// - /// ## Platform-specific - /// - /// - **Linux:** Unsupported. #[cfg(desktop)] - pub fn parent(mut self, parent: &W) -> Self { - if let Ok(h) = parent.window_handle() { - self.parent.replace(h.as_raw()); + pub fn parent( + mut self, + parent: &W, + ) -> Self { + if let (Ok(window_handle), Ok(display_handle)) = + (parent.window_handle(), parent.display_handle()) + { + self.parent.replace(crate::desktop::WindowHandle::new( + window_handle.as_raw(), + display_handle.as_raw(), + )); } self } @@ -314,7 +318,7 @@ pub struct FileDialogBuilder { pub(crate) title: Option, pub(crate) can_create_directories: Option, #[cfg(desktop)] - pub(crate) parent: Option, + pub(crate) parent: Option, } #[cfg(mobile)] @@ -380,9 +384,19 @@ impl FileDialogBuilder { /// Sets the parent window of the dialog. #[cfg(desktop)] #[must_use] - pub fn set_parent(mut self, parent: &W) -> Self { - if let Ok(h) = parent.window_handle() { - self.parent.replace(h.as_raw()); + pub fn set_parent< + W: raw_window_handle::HasWindowHandle + raw_window_handle::HasDisplayHandle, + >( + mut self, + parent: &W, + ) -> Self { + if let (Ok(window_handle), Ok(display_handle)) = + (parent.window_handle(), parent.display_handle()) + { + self.parent.replace(crate::desktop::WindowHandle::new( + window_handle.as_raw(), + display_handle.as_raw(), + )); } self } From 221f50f53bd7a87dbd404e4cb1aaf502a5047785 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Fri, 20 Sep 2024 13:57:40 +0300 Subject: [PATCH 580/643] fix(updater): encode version when making requests (#1816) * fix(updater): encode version when making requests ref: https://github.com/tauri-apps/tauri/issues/10908 * Update .changes/updater-endpoint-version-encoded.md * only skip `+` * fmt * use normal const --- .changes/updater-endpoint-version-encoded.md | 5 +++++ Cargo.lock | 1 + plugins/updater/Cargo.toml | 1 + plugins/updater/src/updater.rs | 14 +++++++++----- 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 .changes/updater-endpoint-version-encoded.md diff --git a/.changes/updater-endpoint-version-encoded.md b/.changes/updater-endpoint-version-encoded.md new file mode 100644 index 000000000..8445c5e3b --- /dev/null +++ b/.changes/updater-endpoint-version-encoded.md @@ -0,0 +1,5 @@ +--- +'updater': 'patch' +--- + +Encode `+` when making updater requests which can be cause incorrectly interpolating the endpoint when using `{{current_version}}` in the endpoint where the current version contains a build number, for example `1.8.0+1`. diff --git a/Cargo.lock b/Cargo.lock index 5b1125d4e..403aff98b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7120,6 +7120,7 @@ dependencies = [ "http", "infer", "minisign-verify", + "percent-encoding", "reqwest", "semver", "serde", diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 000a7b348..a98304462 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -37,6 +37,7 @@ semver = { version = "1", features = ["serde"] } futures-util = "0.3" tempfile = "3" infer = "0.16" +percent-encoding = "2.3" [target."cfg(target_os = \"windows\")".dependencies] zip = { version = "2", default-features = false, optional = true } diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 51a187290..5883bdaa6 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -16,6 +16,7 @@ use base64::Engine; use futures_util::StreamExt; use http::HeaderName; use minisign_verify::{PublicKey, Signature}; +use percent_encoding::{AsciiSet, CONTROLS}; use reqwest::{ header::{HeaderMap, HeaderValue}, ClientBuilder, StatusCode, @@ -322,17 +323,20 @@ impl Updater { // https://releases.myapp.com/update/darwin/aarch64/1.0.0 // The main objective is if the update URL is defined via the Cargo.toml // the URL will be generated dynamically + let version = self.current_version.to_string(); + let version = version.as_bytes(); + const CONTROLS_ADD: &AsciiSet = &CONTROLS.add(b'+'); + let encoded_version = percent_encoding::percent_encode(version, CONTROLS_ADD); + let encoded_version = encoded_version.to_string(); + let url: Url = url .to_string() // url::Url automatically url-encodes the path components - .replace( - "%7B%7Bcurrent_version%7D%7D", - &self.current_version.to_string(), - ) + .replace("%7B%7Bcurrent_version%7D%7D", &encoded_version) .replace("%7B%7Btarget%7D%7D", &self.target) .replace("%7B%7Barch%7D%7D", self.arch) // but not query parameters - .replace("{{current_version}}", &self.current_version.to_string()) + .replace("{{current_version}}", &encoded_version) .replace("{{target}}", &self.target) .replace("{{arch}}", self.arch) .parse()?; From 025210be28bd544be6d621fd752c26aeea13c54a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:07:35 +0800 Subject: [PATCH 581/643] chore(deps): update eslint monorepo to v9.11.0 (#1820) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 76 +++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 614783b1e..c0fd4cc99 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ "format:check": "prettier --check ." }, "devDependencies": { - "@eslint/js": "9.10.0", + "@eslint/js": "9.11.0", "@rollup/plugin-node-resolve": "15.2.3", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", "covector": "^0.12.0", - "eslint": "9.10.0", + "eslint": "9.11.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b6197db7..662b08ec9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.10.0 - version: 9.10.0 + specifier: 9.11.0 + version: 9.11.0 '@rollup/plugin-node-resolve': specifier: 15.2.3 version: 15.2.3(rollup@4.22.0) @@ -31,11 +31,11 @@ importers: specifier: ^0.12.0 version: 0.12.3(mocha@10.7.3) eslint: - specifier: 9.10.0 - version: 9.10.0(jiti@1.21.6) + specifier: 9.11.0 + version: 9.11.0(jiti@1.21.6) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.10.0(jiti@1.21.6)) + version: 9.1.0(eslint@9.11.0(jiti@1.21.6)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.6.2 typescript-eslint: specifier: 8.6.0 - version: 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + version: 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) examples/api: dependencies: @@ -854,16 +854,16 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.10.0': - resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + '@eslint/js@9.11.0': + resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.1.0': - resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanwhocodes/module-importer@1.0.1': @@ -1590,8 +1590,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.10.0: - resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} + eslint@9.11.0: + resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2990,9 +2990,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.0(jiti@1.21.6))': dependencies: - eslint: 9.10.0(jiti@1.21.6) + eslint: 9.11.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -3019,11 +3019,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.10.0': {} + '@eslint/js@9.11.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.1.0': + '@eslint/plugin-kit@0.2.0': dependencies: levn: 0.4.1 @@ -3262,15 +3262,15 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.6.0 - '@typescript-eslint/type-utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.6.0 - eslint: 9.10.0(jiti@1.21.6) + eslint: 9.11.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3280,14 +3280,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/types': 8.6.0 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7(supports-color@8.1.1) - eslint: 9.10.0(jiti@1.21.6) + eslint: 9.11.0(jiti@1.21.6) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -3298,10 +3298,10 @@ snapshots: '@typescript-eslint/types': 8.6.0 '@typescript-eslint/visitor-keys': 8.6.0 - '@typescript-eslint/type-utils@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -3327,13 +3327,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/types': 8.6.0 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - eslint: 9.10.0(jiti@1.21.6) + eslint: 9.11.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -3822,9 +3822,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.10.0(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.11.0(jiti@1.21.6)): dependencies: - eslint: 9.10.0(jiti@1.21.6) + eslint: 9.11.0(jiti@1.21.6) eslint-plugin-security@3.0.1: dependencies: @@ -3839,14 +3839,14 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.10.0(jiti@1.21.6): + eslint@9.11.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.10.0 - '@eslint/plugin-kit': 0.1.0 + '@eslint/js': 9.11.0 + '@eslint/plugin-kit': 0.2.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -4618,11 +4618,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From 27979547992047a47ec4a7c4c5f939391cdb6ff2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:08:15 +0800 Subject: [PATCH 582/643] chore(deps): update dependency rollup to v4.22.4 (#1818) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 188 ++++++++++++++++++++++++------------------------- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index c0fd4cc99..e794f61cf 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", - "rollup": "4.22.0", + "rollup": "4.22.4", "tslib": "2.7.0", "typescript": "5.6.2", "typescript-eslint": "8.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 662b08ec9..e3af05b20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,13 +17,13 @@ importers: version: 9.11.0 '@rollup/plugin-node-resolve': specifier: 15.2.3 - version: 15.2.3(rollup@4.22.0) + version: 15.2.3(rollup@4.22.4) '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.22.0) + version: 0.4.4(rollup@4.22.4) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.22.0)(tslib@2.7.0)(typescript@5.6.2) + version: 11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.2) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -43,8 +43,8 @@ importers: specifier: 3.3.3 version: 3.3.3 rollup: - specifier: 4.22.0 - version: 4.22.0 + specifier: 4.22.4 + version: 4.22.4 tslib: specifier: 2.7.0 version: 2.7.0 @@ -135,7 +135,7 @@ importers: version: 4.2.19 unocss: specifier: ^0.62.0 - version: 0.62.3(postcss@8.4.45)(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) + version: 0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) vite: specifier: ^5.0.13 version: 5.4.3(terser@5.31.6) @@ -962,83 +962,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.22.0': - resolution: {integrity: sha512-/IZQvg6ZR0tAkEi4tdXOraQoWeJy9gbQ/cx4I7k9dJaCk9qrXEcdouxRVz5kZXt5C2bQ9pILoAA+KB4C/d3pfw==} + '@rollup/rollup-android-arm-eabi@4.22.4': + resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.22.0': - resolution: {integrity: sha512-ETHi4bxrYnvOtXeM7d4V4kZWixib2jddFacJjsOjwbgYSRsyXYtZHC4ht134OsslPIcnkqT+TKV4eU8rNBKyyQ==} + '@rollup/rollup-android-arm64@4.22.4': + resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.22.0': - resolution: {integrity: sha512-ZWgARzhSKE+gVUX7QWaECoRQsPwaD8ZR0Oxb3aUpzdErTvlEadfQpORPXkKSdKbFci9v8MJfkTtoEHnnW9Ulng==} + '@rollup/rollup-darwin-arm64@4.22.4': + resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.22.0': - resolution: {integrity: sha512-h0ZAtOfHyio8Az6cwIGS+nHUfRMWBDO5jXB8PQCARVF6Na/G6XS2SFxDl8Oem+S5ZsHQgtsI7RT4JQnI1qrlaw==} + '@rollup/rollup-darwin-x64@4.22.4': + resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.22.0': - resolution: {integrity: sha512-9pxQJSPwFsVi0ttOmqLY4JJ9pg9t1gKhK0JDbV1yUEETSx55fdyCjt39eBQ54OQCzAF0nVGO6LfEH1KnCPvelA==} + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': + resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.0': - resolution: {integrity: sha512-YJ5Ku5BmNJZb58A4qSEo3JlIG4d3G2lWyBi13ABlXzO41SsdnUKi3HQHe83VpwBVG4jHFTW65jOQb8qyoR+qzg==} + '@rollup/rollup-linux-arm-musleabihf@4.22.4': + resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.0': - resolution: {integrity: sha512-U4G4u7f+QCqHlVg1Nlx+qapZy+QoG+NV6ux+upo/T7arNGwKvKP2kmGM4W5QTbdewWFgudQxi3kDNST9GT1/mg==} + '@rollup/rollup-linux-arm64-gnu@4.22.4': + resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.0': - resolution: {integrity: sha512-aQpNlKmx3amwkA3a5J6nlXSahE1ijl0L9KuIjVOUhfOh7uw2S4piR3mtpxpRtbnK809SBtyPsM9q15CPTsY7HQ==} + '@rollup/rollup-linux-arm64-musl@4.22.4': + resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': - resolution: {integrity: sha512-9fx6Zj/7vve/Fp4iexUFRKb5+RjLCff6YTRQl4CoDhdMfDoobWmhAxQWV3NfShMzQk1Q/iCnageFyGfqnsmeqQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': + resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.0': - resolution: {integrity: sha512-VWQiCcN7zBgZYLjndIEh5tamtnKg5TGxyZPWcN9zBtXBwfcGSZ5cHSdQZfQH/GB4uRxk0D3VYbOEe/chJhPGLQ==} + '@rollup/rollup-linux-riscv64-gnu@4.22.4': + resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.0': - resolution: {integrity: sha512-EHmPnPWvyYqncObwqrosb/CpH3GOjE76vWVs0g4hWsDRUVhg61hBmlVg5TPXqF+g+PvIbqkC7i3h8wbn4Gp2Fg==} + '@rollup/rollup-linux-s390x-gnu@4.22.4': + resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.0': - resolution: {integrity: sha512-tsSWy3YQzmpjDKnQ1Vcpy3p9Z+kMFbSIesCdMNgLizDWFhrLZIoN21JSq01g+MZMDFF+Y1+4zxgrlqPjid5ohg==} + '@rollup/rollup-linux-x64-gnu@4.22.4': + resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.0': - resolution: {integrity: sha512-anr1Y11uPOQrpuU8XOikY5lH4Qu94oS6j0xrulHk3NkLDq19MlX8Ng/pVipjxBJ9a2l3+F39REZYyWQFkZ4/fw==} + '@rollup/rollup-linux-x64-musl@4.22.4': + resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.22.0': - resolution: {integrity: sha512-7LB+Bh+Ut7cfmO0m244/asvtIGQr5pG5Rvjz/l1Rnz1kDzM02pSX9jPaS0p+90H5I1x4d1FkCew+B7MOnoatNw==} + '@rollup/rollup-win32-arm64-msvc@4.22.4': + resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.0': - resolution: {integrity: sha512-+3qZ4rer7t/QsC5JwMpcvCVPRcJt1cJrYS/TMJZzXIJbxWFQEVhrIc26IhB+5Z9fT9umfVc+Es2mOZgl+7jdJQ==} + '@rollup/rollup-win32-ia32-msvc@4.22.4': + resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.0': - resolution: {integrity: sha512-YdicNOSJONVx/vuPkgPTyRoAPx3GbknBZRCOUkK84FJ/YTfs/F0vl/YsMscrB6Y177d+yDRcj+JWMPMCgshwrA==} + '@rollup/rollup-win32-x64-msvc@4.22.4': + resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} cpu: [x64] os: [win32] @@ -2180,8 +2180,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.22.0: - resolution: {integrity: sha512-W21MUIFPZ4+O2Je/EU+GP3iz7PH4pVPUXSbEZdatQnxo29+3rsUjgrJmzuAZU24z7yRAnFN6ukxeAhZh/c7hzg==} + rollup@4.22.4: + resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3089,88 +3089,88 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@rollup/plugin-node-resolve@15.2.3(rollup@4.22.0)': + '@rollup/plugin-node-resolve@15.2.3(rollup@4.22.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.22.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.22.0 + rollup: 4.22.4 - '@rollup/plugin-terser@0.4.4(rollup@4.22.0)': + '@rollup/plugin-terser@0.4.4(rollup@4.22.4)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.31.6 optionalDependencies: - rollup: 4.22.0 + rollup: 4.22.4 - '@rollup/plugin-typescript@11.1.6(rollup@4.22.0)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.22.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.4) resolve: 1.22.8 typescript: 5.6.2 optionalDependencies: - rollup: 4.22.0 + rollup: 4.22.4 tslib: 2.7.0 - '@rollup/pluginutils@5.1.0(rollup@4.22.0)': + '@rollup/pluginutils@5.1.0(rollup@4.22.4)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.22.0 + rollup: 4.22.4 - '@rollup/rollup-android-arm-eabi@4.22.0': + '@rollup/rollup-android-arm-eabi@4.22.4': optional: true - '@rollup/rollup-android-arm64@4.22.0': + '@rollup/rollup-android-arm64@4.22.4': optional: true - '@rollup/rollup-darwin-arm64@4.22.0': + '@rollup/rollup-darwin-arm64@4.22.4': optional: true - '@rollup/rollup-darwin-x64@4.22.0': + '@rollup/rollup-darwin-x64@4.22.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.0': + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.0': + '@rollup/rollup-linux-arm-musleabihf@4.22.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.0': + '@rollup/rollup-linux-arm64-gnu@4.22.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.22.0': + '@rollup/rollup-linux-arm64-musl@4.22.4': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.0': + '@rollup/rollup-linux-riscv64-gnu@4.22.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.0': + '@rollup/rollup-linux-s390x-gnu@4.22.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.22.0': + '@rollup/rollup-linux-x64-gnu@4.22.4': optional: true - '@rollup/rollup-linux-x64-musl@4.22.0': + '@rollup/rollup-linux-x64-musl@4.22.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.0': + '@rollup/rollup-win32-arm64-msvc@4.22.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.0': + '@rollup/rollup-win32-ia32-msvc@4.22.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.22.0': + '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': @@ -3343,21 +3343,21 @@ snapshots: '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6))': + '@unocss/astro@0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6))': dependencies: '@unocss/core': 0.62.3 '@unocss/reset': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.62.3(rollup@4.22.0)': + '@unocss/cli@0.62.3(rollup@4.22.4)': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.22.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.4) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/preset-uno': 0.62.3 @@ -3488,10 +3488,10 @@ snapshots: dependencies: '@unocss/core': 0.62.3 - '@unocss/vite@0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6))': + '@unocss/vite@0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6))': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.22.0) + '@rollup/pluginutils': 5.1.0(rollup@4.22.4) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/inspector': 0.62.3 @@ -4437,26 +4437,26 @@ snapshots: reusify@1.0.4: {} - rollup@4.22.0: + rollup@4.22.4: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.0 - '@rollup/rollup-android-arm64': 4.22.0 - '@rollup/rollup-darwin-arm64': 4.22.0 - '@rollup/rollup-darwin-x64': 4.22.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.0 - '@rollup/rollup-linux-arm-musleabihf': 4.22.0 - '@rollup/rollup-linux-arm64-gnu': 4.22.0 - '@rollup/rollup-linux-arm64-musl': 4.22.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.0 - '@rollup/rollup-linux-riscv64-gnu': 4.22.0 - '@rollup/rollup-linux-s390x-gnu': 4.22.0 - '@rollup/rollup-linux-x64-gnu': 4.22.0 - '@rollup/rollup-linux-x64-musl': 4.22.0 - '@rollup/rollup-win32-arm64-msvc': 4.22.0 - '@rollup/rollup-win32-ia32-msvc': 4.22.0 - '@rollup/rollup-win32-x64-msvc': 4.22.0 + '@rollup/rollup-android-arm-eabi': 4.22.4 + '@rollup/rollup-android-arm64': 4.22.4 + '@rollup/rollup-darwin-arm64': 4.22.4 + '@rollup/rollup-darwin-x64': 4.22.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.4 + '@rollup/rollup-linux-arm-musleabihf': 4.22.4 + '@rollup/rollup-linux-arm64-gnu': 4.22.4 + '@rollup/rollup-linux-arm64-musl': 4.22.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.4 + '@rollup/rollup-linux-riscv64-gnu': 4.22.4 + '@rollup/rollup-linux-s390x-gnu': 4.22.4 + '@rollup/rollup-linux-x64-gnu': 4.22.4 + '@rollup/rollup-linux-x64-musl': 4.22.4 + '@rollup/rollup-win32-arm64-msvc': 4.22.4 + '@rollup/rollup-win32-ia32-msvc': 4.22.4 + '@rollup/rollup-win32-x64-msvc': 4.22.4 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4655,10 +4655,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.62.3(postcss@8.4.45)(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)): + unocss@0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)): dependencies: - '@unocss/astro': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) - '@unocss/cli': 0.62.3(rollup@4.22.0) + '@unocss/astro': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) + '@unocss/cli': 0.62.3(rollup@4.22.4) '@unocss/core': 0.62.3 '@unocss/extractor-arbitrary-variants': 0.62.3 '@unocss/postcss': 0.62.3(postcss@8.4.45) @@ -4676,7 +4676,7 @@ snapshots: '@unocss/transformer-compile-class': 0.62.3 '@unocss/transformer-directives': 0.62.3 '@unocss/transformer-variant-group': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.0)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) optionalDependencies: vite: 5.4.3(terser@5.31.6) transitivePeerDependencies: @@ -4710,7 +4710,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.45 - rollup: 4.22.0 + rollup: 4.22.4 optionalDependencies: fsevents: 2.3.3 terser: 5.31.6 From dd09e3c3f4105b53aca18ec01f9585aff21a88bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:13:16 +0800 Subject: [PATCH 583/643] chore(deps): update dependency @rollup/plugin-node-resolve to v15.2.4 (#1824) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 25 +++++-------------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index e794f61cf..59359fa98 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "@eslint/js": "9.11.0", - "@rollup/plugin-node-resolve": "15.2.3", + "@rollup/plugin-node-resolve": "15.2.4", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3af05b20..22f363aa2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 9.11.0 version: 9.11.0 '@rollup/plugin-node-resolve': - specifier: 15.2.3 - version: 15.2.3(rollup@4.22.4) + specifier: 15.2.4 + version: 15.2.4(rollup@4.22.4) '@rollup/plugin-terser': specifier: 0.4.4 version: 0.4.4(rollup@4.22.4) @@ -922,8 +922,8 @@ packages: '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - '@rollup/plugin-node-resolve@15.2.3': - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + '@rollup/plugin-node-resolve@15.2.4': + resolution: {integrity: sha512-wnKAGisav1m2vgVK2/2mNowK5DCqff7kpz76cY1pECVE0qRQTCAIcWP5xmdGDi8X8K9SYeeC98i6cD3fk6qkDg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -1389,10 +1389,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - bundle-require@5.0.0: resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1804,10 +1800,6 @@ packages: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - is-core-module@2.15.1: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} @@ -3089,12 +3081,11 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@rollup/plugin-node-resolve@15.2.3(rollup@4.22.4)': + '@rollup/plugin-node-resolve@15.2.4(rollup@4.22.4)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.22.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 - is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: @@ -3592,8 +3583,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - bundle-require@5.0.0(esbuild@0.23.1): dependencies: esbuild: 0.23.1 @@ -4065,10 +4054,6 @@ snapshots: is-buffer@2.0.5: {} - is-builtin-module@3.2.1: - dependencies: - builtin-modules: 3.3.0 - is-core-module@2.15.1: dependencies: hasown: 2.0.2 From 52e3bdab26b5270f102e67bdaa2a73d111175242 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 22:45:24 +0200 Subject: [PATCH 584/643] fix(deps): update dependency @zerodevx/svelte-json-view to v1.0.11 (v2) (#1830) * fix(deps): update dependency @zerodevx/svelte-json-view to v1.0.11 * audit fix --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: fabianlars --- examples/api/package.json | 4 +- package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 127 +++++++++--------- 6 files changed, 72 insertions(+), 67 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index 2ebcac8af..e3cf39bf4 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -27,7 +27,7 @@ "@tauri-apps/plugin-shell": "2.0.0-rc.1", "@tauri-apps/plugin-store": "2.0.0-rc.1", "@tauri-apps/plugin-updater": "2.0.0-rc.2", - "@zerodevx/svelte-json-view": "1.0.10" + "@zerodevx/svelte-json-view": "1.0.11" }, "devDependencies": { "@iconify-json/codicon": "^1.1.37", @@ -37,6 +37,6 @@ "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", - "vite": "^5.0.13" + "vite": "^5.4.7" } } diff --git a/package.json b/package.json index 59359fa98..a38a4f0eb 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", - "covector": "^0.12.0", + "covector": "^0.12.3", "eslint": "9.11.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 65e11d9e3..145ade168 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@tauri-apps/cli": "2.0.0-rc.16", "typescript": "^5.2.2", - "vite": "^5.0.13" + "vite": "^5.4.7" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 557f5e096..c242ba898 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -10,6 +10,6 @@ "devDependencies": { "@tauri-apps/cli": "2.0.0-rc.16", "vite": "^5.0.12", - "typescript": "^5.3.3" + "typescript": "^5.4.7" } } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index f92f98f31..2ede55c31 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@tauri-apps/cli": "2.0.0-rc.16", "typescript": "^5.3.3", - "vite": "^5.0.13" + "vite": "^5.4.7" }, "dependencies": { "tauri-plugin-websocket-api": "link:..\\.." diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22f363aa2..7992a1c81 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: specifier: 8.42.3 version: 8.42.3 covector: - specifier: ^0.12.0 + specifier: ^0.12.3 version: 0.12.3(mocha@10.7.3) eslint: specifier: 9.11.0 @@ -112,8 +112,8 @@ importers: specifier: 2.0.0-rc.2 version: link:../../plugins/updater '@zerodevx/svelte-json-view': - specifier: 1.0.10 - version: 1.0.10(svelte@4.2.19) + specifier: 1.0.11 + version: 1.0.11(svelte@4.2.19) devDependencies: '@iconify-json/codicon': specifier: ^1.1.37 @@ -123,7 +123,7 @@ importers: version: 1.2.0 '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) '@tauri-apps/cli': specifier: 2.0.0-rc.16 version: 2.0.0-rc.16 @@ -135,10 +135,10 @@ importers: version: 4.2.19 unocss: specifier: ^0.62.0 - version: 0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) + version: 0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) vite: - specifier: ^5.0.13 - version: 5.4.3(terser@5.31.6) + specifier: ^5.4.7 + version: 5.4.7(terser@5.33.0) plugins/autostart: dependencies: @@ -192,8 +192,8 @@ importers: specifier: ^5.2.2 version: 5.6.2 vite: - specifier: ^5.0.13 - version: 5.4.3(terser@5.31.6) + specifier: ^5.4.7 + version: 5.4.7(terser@5.33.0) plugins/dialog: dependencies: @@ -297,11 +297,11 @@ importers: specifier: 2.0.0-rc.16 version: 2.0.0-rc.16 typescript: - specifier: ^5.3.3 + specifier: ^5.4.7 version: 5.6.2 vite: specifier: ^5.0.12 - version: 5.4.3(terser@5.31.6) + version: 5.4.7(terser@5.33.0) plugins/stronghold: dependencies: @@ -340,8 +340,8 @@ importers: specifier: ^5.3.3 version: 5.6.2 vite: - specifier: ^5.0.13 - version: 5.4.3(terser@5.31.6) + specifier: ^5.4.7 + version: 5.4.7(terser@5.33.0) plugins/window-state: dependencies: @@ -842,8 +842,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.18.0': @@ -953,8 +953,8 @@ packages: tslib: optional: true - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@rollup/pluginutils@5.1.2': + resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -1134,6 +1134,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1292,8 +1295,8 @@ packages: peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 - '@zerodevx/svelte-json-view@1.0.10': - resolution: {integrity: sha512-7RUUD0i+iKy7SeZ8UP2SfrPyVMXkCHyLhee9Y9Ni1U6HWjP9TXgaKqdfiAiB91ZQQQDaTAXzYkgTLiSNGrxXyg==} + '@zerodevx/svelte-json-view@1.0.11': + resolution: {integrity: sha512-mIjj0H1al/P4FPlbeDoiey93lNEUqBEAe5LIdD5GttZfEYt3awexD2lHwKNfUeY4jHizOJkoWTPN/2iO0GBqpw==} peerDependencies: svelte: ^3.57.0 || ^4.0.0 || ^5.0.0 @@ -2286,8 +2289,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - terser@5.31.6: - resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + terser@5.33.0: + resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} engines: {node: '>=10'} hasBin: true @@ -2397,8 +2400,8 @@ packages: vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - vite@5.4.3: - resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} + vite@5.4.7: + resolution: {integrity: sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2987,7 +2990,7 @@ snapshots: eslint: 9.11.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.11.1': {} '@eslint/config-array@0.18.0': dependencies: @@ -3083,7 +3086,7 @@ snapshots: '@rollup/plugin-node-resolve@15.2.4(rollup@4.22.4)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.22.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 @@ -3095,22 +3098,22 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.31.6 + terser: 5.33.0 optionalDependencies: rollup: 4.22.4 '@rollup/plugin-typescript@11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.22.4) resolve: 1.22.8 typescript: 5.6.2 optionalDependencies: rollup: 4.22.4 tslib: 2.7.0 - '@rollup/pluginutils@5.1.0(rollup@4.22.4)': + '@rollup/pluginutils@5.1.2(rollup@4.22.4)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: @@ -3164,26 +3167,26 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)))(svelte@4.2.19)(vite@5.4.7(terser@5.33.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) debug: 4.3.7(supports-color@8.1.1) svelte: 4.2.19 - vite: 5.4.3(terser@5.31.6) + vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)))(svelte@4.2.19)(vite@5.4.3(terser@5.31.6)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)))(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) debug: 4.3.7(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.3(terser@5.31.6) - vitefu: 0.2.5(vite@5.4.3(terser@5.31.6)) + vite: 5.4.7(terser@5.33.0) + vitefu: 0.2.5(vite@5.4.7(terser@5.33.0)) transitivePeerDependencies: - supports-color @@ -3234,7 +3237,7 @@ snapshots: '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/eslint__js@8.42.3': @@ -3243,6 +3246,8 @@ snapshots: '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/json-schema@7.0.15': {} '@types/mdast@3.0.15': @@ -3255,7 +3260,7 @@ snapshots: '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.11.1 '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) @@ -3334,13 +3339,13 @@ snapshots: '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6))': + '@unocss/astro@0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': dependencies: '@unocss/core': 0.62.3 '@unocss/reset': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) optionalDependencies: - vite: 5.4.3(terser@5.31.6) + vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: - rollup - supports-color @@ -3348,7 +3353,7 @@ snapshots: '@unocss/cli@0.62.3(rollup@4.22.4)': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.22.4) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/preset-uno': 0.62.3 @@ -3479,10 +3484,10 @@ snapshots: dependencies: '@unocss/core': 0.62.3 - '@unocss/vite@0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6))': + '@unocss/vite@0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': dependencies: '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.22.4) '@unocss/config': 0.62.3 '@unocss/core': 0.62.3 '@unocss/inspector': 0.62.3 @@ -3491,12 +3496,12 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.11 tinyglobby: 0.2.6 - vite: 5.4.3(terser@5.31.6) + vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: - rollup - supports-color - '@zerodevx/svelte-json-view@1.0.10(svelte@4.2.19)': + '@zerodevx/svelte-json-view@1.0.11(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -3640,7 +3645,7 @@ snapshots: code-red@1.0.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 acorn: 8.12.1 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -3831,7 +3836,7 @@ snapshots: eslint@9.11.0(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 '@eslint/js': 9.11.0 @@ -3889,7 +3894,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -4080,7 +4085,7 @@ snapshots: is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-unicode-supported@0.1.0: {} @@ -4314,7 +4319,7 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -4540,7 +4545,7 @@ snapshots: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 acorn: 8.12.1 aria-query: 5.3.0 axobject-query: 4.1.0 @@ -4552,7 +4557,7 @@ snapshots: magic-string: 0.30.11 periscopic: 3.1.0 - terser@5.31.6: + terser@5.33.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -4640,9 +4645,9 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)): + unocss@0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)): dependencies: - '@unocss/astro': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) + '@unocss/astro': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) '@unocss/cli': 0.62.3(rollup@4.22.4) '@unocss/core': 0.62.3 '@unocss/extractor-arbitrary-variants': 0.62.3 @@ -4661,9 +4666,9 @@ snapshots: '@unocss/transformer-compile-class': 0.62.3 '@unocss/transformer-directives': 0.62.3 '@unocss/transformer-variant-group': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.3(terser@5.31.6)) + '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) optionalDependencies: - vite: 5.4.3(terser@5.31.6) + vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: - postcss - rollup @@ -4691,18 +4696,18 @@ snapshots: unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite@5.4.3(terser@5.31.6): + vite@5.4.7(terser@5.33.0): dependencies: esbuild: 0.21.5 postcss: 8.4.45 rollup: 4.22.4 optionalDependencies: fsevents: 2.3.3 - terser: 5.31.6 + terser: 5.33.0 - vitefu@0.2.5(vite@5.4.3(terser@5.31.6)): + vitefu@0.2.5(vite@5.4.7(terser@5.33.0)): optionalDependencies: - vite: 5.4.3(terser@5.31.6) + vite: 5.4.7(terser@5.33.0) webidl-conversions@3.0.1: {} From fd0a52aa86bd93ca03bde2a3c863112f58ce0aab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 22:49:03 +0200 Subject: [PATCH 585/643] chore(deps): update eslint monorepo to v9.11.1 (#1829) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 77 ++++++++++++++++++++++++++++---------------------- 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index a38a4f0eb..371013f38 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ "format:check": "prettier --check ." }, "devDependencies": { - "@eslint/js": "9.11.0", + "@eslint/js": "9.11.1", "@rollup/plugin-node-resolve": "15.2.4", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", "covector": "^0.12.3", - "eslint": "9.11.0", + "eslint": "9.11.1", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7992a1c81..36c0dc9b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.11.0 - version: 9.11.0 + specifier: 9.11.1 + version: 9.11.1 '@rollup/plugin-node-resolve': specifier: 15.2.4 version: 15.2.4(rollup@4.22.4) @@ -31,11 +31,11 @@ importers: specifier: ^0.12.3 version: 0.12.3(mocha@10.7.3) eslint: - specifier: 9.11.0 - version: 9.11.0(jiti@1.21.6) + specifier: 9.11.1 + version: 9.11.1(jiti@1.21.6) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.11.0(jiti@1.21.6)) + version: 9.1.0(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.6.2 typescript-eslint: specifier: 8.6.0 - version: 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + version: 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) examples/api: dependencies: @@ -850,12 +850,16 @@ packages: resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.11.0': - resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==} + '@eslint/js@9.11.1': + resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1589,8 +1593,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.11.0: - resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==} + eslint@9.11.1: + resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2985,9 +2989,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@1.21.6))': dependencies: - eslint: 9.11.0(jiti@1.21.6) + eslint: 9.11.1(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -3000,6 +3004,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/core@0.6.0': {} + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 @@ -3014,7 +3020,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.11.0': {} + '@eslint/js@9.11.1': {} '@eslint/object-schema@2.1.4': {} @@ -3258,15 +3264,15 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.6.0 - '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.6.0 - eslint: 9.11.0(jiti@1.21.6) + eslint: 9.11.1(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3276,14 +3282,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/types': 8.6.0 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7(supports-color@8.1.1) - eslint: 9.11.0(jiti@1.21.6) + eslint: 9.11.1(jiti@1.21.6) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -3294,10 +3300,10 @@ snapshots: '@typescript-eslint/types': 8.6.0 '@typescript-eslint/visitor-keys': 8.6.0 - '@typescript-eslint/type-utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -3323,13 +3329,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/types': 8.6.0 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - eslint: 9.11.0(jiti@1.21.6) + eslint: 9.11.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -3816,9 +3822,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.11.0(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@1.21.6)): dependencies: - eslint: 9.11.0(jiti@1.21.6) + eslint: 9.11.1(jiti@1.21.6) eslint-plugin-security@3.0.1: dependencies: @@ -3833,17 +3839,20 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.11.0(jiti@1.21.6): + eslint@9.11.1(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.11.0 + '@eslint/js': 9.11.1 '@eslint/plugin-kit': 0.2.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -4608,11 +4617,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From 118f6b43340dd8fedaf76389709b69f952e78dba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:11:01 +0200 Subject: [PATCH 586/643] chore(deps): update dependency @rollup/plugin-node-resolve to v15.3.0 (#1831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 371013f38..5e81bcaad 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "@eslint/js": "9.11.1", - "@rollup/plugin-node-resolve": "15.2.4", + "@rollup/plugin-node-resolve": "15.3.0", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36c0dc9b6..16cb54603 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 9.11.1 version: 9.11.1 '@rollup/plugin-node-resolve': - specifier: 15.2.4 - version: 15.2.4(rollup@4.22.4) + specifier: 15.3.0 + version: 15.3.0(rollup@4.22.4) '@rollup/plugin-terser': specifier: 0.4.4 version: 0.4.4(rollup@4.22.4) @@ -926,8 +926,8 @@ packages: '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - '@rollup/plugin-node-resolve@15.2.4': - resolution: {integrity: sha512-wnKAGisav1m2vgVK2/2mNowK5DCqff7kpz76cY1pECVE0qRQTCAIcWP5xmdGDi8X8K9SYeeC98i6cD3fk6qkDg==} + '@rollup/plugin-node-resolve@15.3.0': + resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -3090,7 +3090,7 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@rollup/plugin-node-resolve@15.2.4(rollup@4.22.4)': + '@rollup/plugin-node-resolve@15.3.0(rollup@4.22.4)': dependencies: '@rollup/pluginutils': 5.1.2(rollup@4.22.4) '@types/resolve': 1.20.2 From e564e2aa91131e54af9701416ec92ecc01c33750 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:25:24 +0200 Subject: [PATCH 587/643] chore(deps): update dependency typescript-eslint to v8.7.0 (#1832) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 5e81bcaad..1cd01f8cb 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.22.4", "tslib": "2.7.0", "typescript": "5.6.2", - "typescript-eslint": "8.6.0" + "typescript-eslint": "8.7.0" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16cb54603..6a6064f98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.6.2 version: 5.6.2 typescript-eslint: - specifier: 8.6.0 - version: 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + specifier: 8.7.0 + version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) examples/api: dependencies: @@ -1153,8 +1153,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.6.0': - resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1164,8 +1164,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.6.0': - resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==} + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1174,12 +1174,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.6.0': - resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.6.0': - resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==} + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1187,12 +1187,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.6.0': - resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.6.0': - resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1200,14 +1200,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.6.0': - resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.6.0': - resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.62.3': @@ -2351,8 +2351,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.6.0: - resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} + typescript-eslint@8.7.0: + resolution: {integrity: sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3264,14 +3264,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.6.0 - '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.6.0 + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 eslint: 9.11.1(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 @@ -3282,12 +3282,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.6.0 - '@typescript-eslint/types': 8.6.0 - '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.6.0 + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.11.1(jiti@1.21.6) optionalDependencies: @@ -3295,15 +3295,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.6.0': + '@typescript-eslint/scope-manager@8.7.0': dependencies: - '@typescript-eslint/types': 8.6.0 - '@typescript-eslint/visitor-keys': 8.6.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 - '@typescript-eslint/type-utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -3312,12 +3312,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.6.0': {} + '@typescript-eslint/types@8.7.0': {} - '@typescript-eslint/typescript-estree@8.6.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.6.0 - '@typescript-eslint/visitor-keys': 8.6.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3329,20 +3329,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.6.0 - '@typescript-eslint/types': 8.6.0 - '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) eslint: 9.11.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.6.0': + '@typescript-eslint/visitor-keys@8.7.0': dependencies: - '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': @@ -4617,11 +4617,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.6.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From 04a0aea0ab9f8750200bc2fe5aff99c1c488082d Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Tue, 24 Sep 2024 18:38:53 +0300 Subject: [PATCH 588/643] feat(updater)!: add option to use insecure transport protocol (#1814) --- .changes/updater-endpoints-result.md | 5 ++ .../updater-insecure-transport-protocol.md | 5 ++ plugins/updater/src/config.rs | 78 ++++++++++++------- plugins/updater/src/error.rs | 3 + plugins/updater/src/updater.rs | 11 ++- 5 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 .changes/updater-endpoints-result.md create mode 100644 .changes/updater-insecure-transport-protocol.md diff --git a/.changes/updater-endpoints-result.md b/.changes/updater-endpoints-result.md new file mode 100644 index 000000000..d257d7939 --- /dev/null +++ b/.changes/updater-endpoints-result.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +**Breaking change**, Changed `UpdaterBuilder::endpoints` method to return a `Result`. \ No newline at end of file diff --git a/.changes/updater-insecure-transport-protocol.md b/.changes/updater-insecure-transport-protocol.md new file mode 100644 index 000000000..b95aad570 --- /dev/null +++ b/.changes/updater-insecure-transport-protocol.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +Add `dangerousInsecureTransportProtocol` config option to allow using insecure transport protocols, like `http` \ No newline at end of file diff --git a/plugins/updater/src/config.rs b/plugins/updater/src/config.rs index 3c6f5d422..b95c6ae4f 100644 --- a/plugins/updater/src/config.rs +++ b/plugins/updater/src/config.rs @@ -91,47 +91,69 @@ where } /// Updater configuration. -#[derive(Debug, Clone, Deserialize, Default)] -#[serde(rename_all = "camelCase")] +#[derive(Debug, Clone, Default)] pub struct Config { + /// Dangerously allow using insecure transport protocols for update endpoints. + pub dangerous_insecure_transport_protocol: bool, /// Updater endpoints. - #[serde(default)] - pub endpoints: Vec, + pub endpoints: Vec, /// Signature public key. pub pubkey: String, /// The Windows configuration for the updater. pub windows: Option, } -/// A URL to an updater server. -/// -/// The URL must use the `https` scheme on production. -#[derive(Debug, PartialEq, Eq, Clone)] -pub struct UpdaterEndpoint(pub Url); - -impl std::fmt::Display for UpdaterEndpoint { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}", self.0) - } -} - -impl<'de> Deserialize<'de> for UpdaterEndpoint { +impl<'de> Deserialize<'de> for Config { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { - let url = Url::deserialize(deserializer)?; - - if url.scheme() != "https" { - #[cfg(debug_assertions)] - eprintln!("[\x1b[33mWARNING\x1b[0m] The configured updater endpoint doesn't use `https` protocol. This is allowed in development but will fail in release builds."); - - #[cfg(not(debug_assertions))] - return Err(serde::de::Error::custom( - "The configured updater endpoint must use the `https` protocol.", - )); + #[derive(Deserialize)] + #[serde(rename_all = "camelCase")] + pub struct Config { + #[serde(default, alias = "dangerous-insecure-transport-protocol")] + pub dangerous_insecure_transport_protocol: bool, + #[serde(default)] + pub endpoints: Vec, + pub pubkey: String, + pub windows: Option, } - Ok(Self(url)) + let config = Config::deserialize(deserializer)?; + + validate_endpoints( + &config.endpoints, + config.dangerous_insecure_transport_protocol, + ) + .map_err(serde::de::Error::custom)?; + + Ok(Self { + dangerous_insecure_transport_protocol: config.dangerous_insecure_transport_protocol, + endpoints: config.endpoints, + pubkey: config.pubkey, + windows: config.windows, + }) } } + +pub(crate) fn validate_endpoints( + endpoints: &[Url], + dangerous_insecure_transport_protocol: bool, +) -> crate::Result<()> { + if !dangerous_insecure_transport_protocol { + for url in endpoints { + #[cfg(debug_assertions)] + #[cfg(debug_assertions)] + eprintln!("[\x1b[33mWARNING\x1b[0m] The updater endpoint \"{url}\" doesn't use `https` protocol. This is allowed in development but will fail in release builds."); + #[cfg(debug_assertions)] + eprintln!("[\x1b[33mWARNING\x1b[0m] if this is a desired behavior, you can enable `dangerousInsecureTransportProtocol` in the plugin configuration"); + + #[cfg(not(debug_assertions))] + if url.scheme() != "https" { + return Err(crate::Error::InsecureTransportProtocol); + } + } + } + + Ok(()) +} diff --git a/plugins/updater/src/error.rs b/plugins/updater/src/error.rs index ef435cb53..1f5d6a15f 100644 --- a/plugins/updater/src/error.rs +++ b/plugins/updater/src/error.rs @@ -71,6 +71,9 @@ pub enum Error { InvalidHeaderValue(#[from] http::header::InvalidHeaderValue), #[error(transparent)] InvalidHeaderName(#[from] http::header::InvalidHeaderName), + /// The configured updater endpoint must use a secure protocol like `https` + #[error("The configured updater endpoint must use a secure protocol like `https`.")] + InsecureTransportProtocol, #[error(transparent)] Tauri(#[from] tauri::Error), } diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 5883bdaa6..b1dadd6d2 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -148,9 +148,14 @@ impl UpdaterBuilder { self } - pub fn endpoints(mut self, endpoints: Vec) -> Self { + pub fn endpoints(mut self, endpoints: Vec) -> Result { + crate::config::validate_endpoints( + &endpoints, + self.config.dangerous_insecure_transport_protocol, + )?; + self.endpoints.replace(endpoints); - self + Ok(self) } pub fn executable_path>(mut self, p: P) -> Self { @@ -219,7 +224,7 @@ impl UpdaterBuilder { pub fn build(self) -> Result { let endpoints = self .endpoints - .unwrap_or_else(|| self.config.endpoints.iter().map(|e| e.0.clone()).collect()); + .unwrap_or_else(|| self.config.endpoints.clone()); if endpoints.is_empty() { return Err(Error::EmptyEndpoints); From b7ff3a6bdb6805cbadd06b1a0309464f4954f533 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:44:41 +0200 Subject: [PATCH 589/643] fix(deps): update rust crate windows-registry to 0.3 (v2) (#1841) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: FabianLars --- Cargo.lock | 28 ++++++++++++++++++++++++---- plugins/deep-link/Cargo.toml | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 403aff98b..9c3f85dd0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5265,7 +5265,7 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "windows-registry", + "windows-registry 0.2.0", ] [[package]] @@ -6805,7 +6805,7 @@ dependencies = [ "tauri-utils", "thiserror", "url", - "windows-registry", + "windows-registry 0.3.0", "windows-result 0.2.0", ] @@ -8453,7 +8453,7 @@ dependencies = [ "windows-implement 0.58.0", "windows-interface 0.58.0", "windows-result 0.2.0", - "windows-strings", + "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -8508,7 +8508,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result 0.2.0", - "windows-strings", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" +dependencies = [ + "windows-result 0.2.0", + "windows-strings 0.2.0", "windows-targets 0.52.6", ] @@ -8540,6 +8551,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index ff7a72955..4f5f57766 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -31,7 +31,7 @@ url = { workspace = true } [target."cfg(windows)".dependencies] dunce = "1" -windows-registry = "0.2" +windows-registry = "0.3" windows-result = "0.2" [target."cfg(target_os = \"linux\")".dependencies] From fc9b189e83a29bd750714ec6336133c6eabdfa20 Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Thu, 26 Sep 2024 01:43:33 +0200 Subject: [PATCH 590/643] fix(fs): ignore OS specific paths in scope deserialization (#1837) --- .changes/fix-fs-scope-unknown-path.md | 5 +++++ plugins/fs/src/commands.rs | 8 ++++---- plugins/fs/src/lib.rs | 18 +++++++++--------- plugins/fs/src/scope.rs | 2 +- 4 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 .changes/fix-fs-scope-unknown-path.md diff --git a/.changes/fix-fs-scope-unknown-path.md b/.changes/fix-fs-scope-unknown-path.md new file mode 100644 index 000000000..5e63a6fc1 --- /dev/null +++ b/.changes/fix-fs-scope-unknown-path.md @@ -0,0 +1,5 @@ +--- +fs: patch +--- + +Fix failing to deserialize capability file when using an OS specific path in the scope that is not available on the current OS. \ No newline at end of file diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index 8f7a9ac0f..cb40c3eea 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -993,8 +993,8 @@ pub fn resolve_path( .unwrap() .clone() .into_iter() - .chain(global_scope.allows().iter().map(|e| e.path.clone())) - .chain(command_scope.allows().iter().map(|e| e.path.clone())) + .chain(global_scope.allows().iter().filter_map(|e| e.path.clone())) + .chain(command_scope.allows().iter().filter_map(|e| e.path.clone())) .collect(), deny: webview .fs_scope() @@ -1003,8 +1003,8 @@ pub fn resolve_path( .unwrap() .clone() .into_iter() - .chain(global_scope.denies().iter().map(|e| e.path.clone())) - .chain(command_scope.denies().iter().map(|e| e.path.clone())) + .chain(global_scope.denies().iter().filter_map(|e| e.path.clone())) + .chain(command_scope.denies().iter().filter_map(|e| e.path.clone())) .collect(), require_literal_leading_dot: webview.fs_scope().require_literal_leading_dot, }, diff --git a/plugins/fs/src/lib.rs b/plugins/fs/src/lib.rs index 5cb903f8e..a1cf27669 100644 --- a/plugins/fs/src/lib.rs +++ b/plugins/fs/src/lib.rs @@ -353,17 +353,17 @@ impl ScopeObject for scope::Entry { app: &AppHandle, raw: Value, ) -> std::result::Result { - let entry = serde_json::from_value(raw.into()).map(|raw| { - let path = match raw { - scope::EntryRaw::Value(path) => path, - scope::EntryRaw::Object { path } => path, - }; - Self { path } + let path = serde_json::from_value(raw.into()).map(|raw| match raw { + scope::EntryRaw::Value(path) => path, + scope::EntryRaw::Object { path } => path, })?; - Ok(Self { - path: app.path().parse(entry.path)?, - }) + match app.path().parse(path) { + Ok(path) => Ok(Self { path: Some(path) }), + #[cfg(not(target_os = "android"))] + Err(tauri::Error::UnknownPath) => Ok(Self { path: None }), + Err(err) => Err(err.into()), + } } } diff --git a/plugins/fs/src/scope.rs b/plugins/fs/src/scope.rs index f31c786a6..fd94b0ebb 100644 --- a/plugins/fs/src/scope.rs +++ b/plugins/fs/src/scope.rs @@ -23,7 +23,7 @@ pub enum EntryRaw { #[derive(Debug)] pub struct Entry { - pub path: PathBuf, + pub path: Option, } pub type EventId = u32; From aabc4d3a24e8e240df9b1ee47d5de8d7fd8d5e1b Mon Sep 17 00:00:00 2001 From: Tillmann <112912081+tillmann-crabnebula@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:21:25 +0900 Subject: [PATCH 591/643] Add Metadata for Plugin Compatibility (#1836) Co-authored-by: Tillmann <112912081+tillmann-crabnebula@users.noreply.github.com> Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com> --- plugins/autostart/Cargo.toml | 7 +++++++ plugins/barcode-scanner/Cargo.toml | 8 ++++++++ plugins/biometric/Cargo.toml | 8 ++++++++ plugins/cli/Cargo.toml | 8 ++++++++ plugins/clipboard-manager/Cargo.toml | 8 ++++++++ plugins/deep-link/Cargo.toml | 7 +++++++ plugins/dialog/Cargo.toml | 7 +++++++ plugins/fs/Cargo.toml | 7 +++++++ plugins/geolocation/Cargo.toml | 7 +++++++ plugins/global-shortcut/Cargo.toml | 7 +++++++ plugins/haptics/Cargo.toml | 7 +++++++ plugins/http/Cargo.toml | 7 +++++++ plugins/localhost/Cargo.toml | 7 +++++++ plugins/log/Cargo.toml | 7 +++++++ plugins/nfc/Cargo.toml | 7 +++++++ plugins/notification/Cargo.toml | 7 +++++++ plugins/os/Cargo.toml | 7 +++++++ plugins/persisted-scope/Cargo.toml | 7 +++++++ plugins/positioner/Cargo.toml | 7 +++++++ plugins/process/Cargo.toml | 7 +++++++ plugins/shell/Cargo.toml | 7 +++++++ plugins/single-instance/Cargo.toml | 7 +++++++ plugins/sql/Cargo.toml | 7 +++++++ plugins/store/Cargo.toml | 7 +++++++ plugins/stronghold/Cargo.toml | 7 +++++++ plugins/updater/Cargo.toml | 7 +++++++ plugins/upload/Cargo.toml | 7 +++++++ plugins/websocket/Cargo.toml | 7 +++++++ plugins/window-state/Cargo.toml | 7 +++++++ shared/template/Cargo.toml | 11 +++++++++++ 30 files changed, 218 insertions(+) diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index 5dd503e48..7df265ffe 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-autostart" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 5992f8525..85d5181ca 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -14,6 +14,14 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "none", notes = "" } +linux = { level = "none", notes = "" } +macos = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index 3135d86b7..b242dab1a 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -13,6 +13,14 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "none", notes = "" } +linux = { level = "none", notes = "" } +macos = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index eff2b6f26..ccecff053 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -13,6 +13,14 @@ links = "tauri-plugin-cli" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index 84ee04640..e25aabd54 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -14,6 +14,14 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "partial", notes = "Only plain-text content support" } +ios = { level = "partial", notes = "Only plain-text content support" } + + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 4f5f57766..9a0854932 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -14,6 +14,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "partial", notes = "Runtime deep link registration is not supported" } +android = { level = "partial", notes = "Runtime deep link registration is not supported" } +ios = { level = "partial", notes = "Runtime deep link registration is not supported" } + [build-dependencies] serde = { workspace = true } serde_json = { workspace = true } diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index b08c5cda7..75327f740 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -14,6 +14,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "partial", notes = "Does not support folder picker" } +ios = { level = "partial", notes = "Does not support folder picker" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 6576b75ae..2b4ffcea9 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-fs" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "No write access to `$RESOURCES` folder" } +macos = { level = "full", notes = "No write access to `$RESOURCES` folder" } +android = { level = "partial", notes = "Access is restricted to Application folder by default" } +ios = { level = "partial", notes = "Access is restricted to Application folder by default" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index f41fb8044..876c378cc 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -13,6 +13,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "none", notes = "" } +linux = { level = "none", notes = "" } +macos = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 9da8e7ee8..5b560b75a 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-global-shortcut" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index 97ab3e248..8c8ff1326 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -13,6 +13,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "none", notes = "" } +linux = { level = "none", notes = "" } +macos = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 572421c20..057780c50 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-http" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 075cd5c36..9f0e18531 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -12,6 +12,13 @@ repository = { workspace = true } rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [dependencies] serde = { workspace = true } serde_json = { workspace = true } diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index dbb146d89..57f96b4a7 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-log" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "unknown", notes = "" } +ios = { level = "unknown", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index 852862733..a40c91172 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -13,6 +13,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "none", notes = "" } +linux = { level = "none", notes = "" } +macos = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index a817cbadb..8d0f9270a 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -14,6 +14,13 @@ rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index 017ad0dee..1e36e2209 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-os" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 9fb923a28..df924ea4d 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -12,6 +12,13 @@ repository = { workspace = true } rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [dependencies] serde = { workspace = true } serde_json = { workspace = true } diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 4a3f5b0b5..757bfac09 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-positioner" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index d9b7ecf30..624227079 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-process" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index d226fa4e3..62a3fd9e6 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-shell" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "partial", notes = "Only allows to open URLs via `open`" } +ios = { level = "partial", notes = "Only allows to open URLs via `open`" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } schemars = { workspace = true } diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index cd8038160..1d6f0b954 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -13,6 +13,13 @@ exclude = ["/examples"] rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [dependencies] serde = { workspace = true } serde_json = { workspace = true } diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index dba0c4332..bfcfc99ef 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -14,6 +14,13 @@ features = ["sqlite"] rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index 9ef49952c..0300b35fe 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-store" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index f13e51769..374134dc2 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-stronghold" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index a98304462..f2de9ecfd 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -15,6 +15,13 @@ rustdoc-args = ["--cfg", "docsrs"] no-default-features = true features = ["zip"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 2e90bfb42..d01f6bbee 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-upload" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 19efdfb01..67c4a9ae7 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -14,6 +14,13 @@ exclude = ["/examples"] rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 974ef8179..60d7cbd53 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -13,6 +13,13 @@ links = "tauri-plugin-window-state" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.platforms.support] +windows = { level = "full", notes = "" } +linux = { level = "full", notes = "" } +macos = { level = "full", notes = "" } +android = { level = "none", notes = "" } +ios = { level = "none", notes = "" } + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/shared/template/Cargo.toml b/shared/template/Cargo.toml index 97bc04818..a672132db 100644 --- a/shared/template/Cargo.toml +++ b/shared/template/Cargo.toml @@ -11,6 +11,17 @@ links = "tauri-plugin-PLUGIN_NAME" rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] +# Platforms supported by the plugin +# Support levels are "full", "partial", "none", "unknown" +# Details of the support level are left to plugin maintainer +[package.metadata.platforms] +windows = { level = "unknown", notes = "" } +linux = { level = "unknown", notes = "" } +macos = { level = "unknown", notes = "" } +android = { level = "unknown", notes = "" } +ios = { level = "unknown", notes = "" } + + [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } From 4bd1f15bb983c9228f38e3630cf3315aedb86e93 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:44:24 +0800 Subject: [PATCH 592/643] fix(deps): update tauri monorepo (#1846) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 210 +++--------------- Cargo.toml | 8 +- examples/api/package.json | 4 +- plugins/deep-link/examples/app/package.json | 4 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 172 +++++++------- 8 files changed, 130 insertions(+), 274 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9c3f85dd0..69d775926 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2439,19 +2439,6 @@ dependencies = [ "x11", ] -[[package]] -name = "generator" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "windows 0.48.0", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -3580,21 +3567,6 @@ dependencies = [ "value-bag", ] -[[package]] -name = "loom" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "serde", - "serde_json", - "tracing", - "tracing-subscriber", -] - [[package]] name = "loop9" version = "0.1.5" @@ -3652,15 +3624,6 @@ dependencies = [ "tendril", ] -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matches" version = "0.1.10" @@ -3808,16 +3771,17 @@ dependencies = [ [[package]] name = "muda" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba8ac4080fb1e097c2c22acae467e46e4da72d941f02e82b67a87a2a89fa38b1" +checksum = "b8123dfd4996055ac9b15a60ad263b44b01e539007523ad7a4a533a3d93b0591" dependencies = [ - "cocoa", "crossbeam-channel", "dpi", "gtk", "keyboard-types", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", "png", "serde", @@ -3971,16 +3935,6 @@ dependencies = [ "zbus", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -4358,12 +4312,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "pango" version = "0.18.3" @@ -5166,17 +5114,8 @@ checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -5187,15 +5126,9 @@ checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.4" @@ -5531,12 +5464,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - [[package]] name = "rusty-fork" version = "0.3.0" @@ -5594,6 +5521,7 @@ dependencies = [ "serde", "serde_json", "url", + "uuid", ] [[package]] @@ -5873,15 +5801,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - [[package]] name = "shared_child" version = "1.0.1" @@ -6297,15 +6216,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "state" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" -dependencies = [ - "loom", -] - [[package]] name = "static_assertions" version = "1.1.0" @@ -6518,9 +6428,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.30.0" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a93f2c6b8fdaeb7f417bda89b5bc767999745c3052969664ae1fa65892deb7e" +checksum = "06e48d7c56b3f7425d061886e8ce3b6acfab1993682ed70bef50fd133d721ee6" dependencies = [ "bitflags 2.6.0", "cocoa", @@ -6591,9 +6501,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.15" +version = "2.0.0-rc.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3c3b1c7ac5b72d59da307b84af900a0098c74c9d7369f65018cd8ec0eb50fb" +checksum = "246bd333561c5601241b7a09f19957d5f659667f3c1191c869a066fb309e1841" dependencies = [ "anyhow", "bytes", @@ -6625,7 +6535,6 @@ dependencies = [ "serde_repr", "serialize-to-javascript", "specta", - "state", "swift-rs", "tauri-build", "tauri-macros", @@ -6646,9 +6555,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5713e81e02e0b99f5219b275abbd7d2c0cc0f30180e25b1b650e08feeac63" +checksum = "e5bc30f14b3c1548d75dfdf3e40bffe20a53bc4e3381e9bacc21dc765d701d0a" dependencies = [ "anyhow", "cargo_toml", @@ -6670,9 +6579,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5370f2591dcc93d4ff08d9dd168f5097f79b34e859883586a409c627544190e3" +checksum = "b1cfb6089cfc626b81bb8aa4692ede527732011dfd22486d8ac5bf299189841f" dependencies = [ "base64 0.22.1", "brotli", @@ -6697,9 +6606,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.11" +version = "2.0.0-rc.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19442dc8ee002ab1926586f6aecb90114f3a1226766008b0c9ac2d9fec9eeb7e" +checksum = "1f04ed6fadd294ef8061137463fe31abccbb5fa61ff9946aab2896acd140cff1" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6711,9 +6620,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3368e91a98aa55ea4e3e8ccff516bc1ed2f85872c335ec35e9b345469032e0" +checksum = "6de7ffe64afa61c4cc13d450d64643b8db6cbb177a802beb88bf595594505ddf" dependencies = [ "anyhow", "glob", @@ -7187,9 +7096,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f38d8aaa1e81d20e8e208e3e317f81b59fb75c530fbae8a90e72d02001d687" +checksum = "8d9465366fd7f9e9c77385fa8b7cb583b060544e8800bd0309deb100008c312d" dependencies = [ "dpi", "gtk", @@ -7206,9 +7115,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.13" +version = "2.0.0-rc.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1ef5171e14c8fe3b5a63e75004c20d057747bc3e7fdc5f8ded625f0b29f5c7" +checksum = "a03a49d6bcc0e65d64ea4420e2097270a25a9e1ff0fb2ece75e54fbbd54e45f7" dependencies = [ "gtk", "http", @@ -7232,9 +7141,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.12" +version = "2.0.0-rc.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31fe4c9148e1b35225e1c00753f24b517ce00041d02eb4b4d6fd10613a47736c" +checksum = "a271545e4c25b36b922d98cf7e0c1755f64e92355705f656893e352aef0331e3" dependencies = [ "aes-gcm", "brotli", @@ -7265,6 +7174,7 @@ dependencies = [ "toml 0.8.2", "url", "urlpattern", + "uuid", "walkdir", ] @@ -7348,16 +7258,6 @@ dependencies = [ "syn 2.0.77", ] -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - [[package]] name = "tiff" version = "0.9.1" @@ -7660,43 +7560,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", ] [[package]] name = "tray-icon" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "044d7738b3d50f288ddef035b793228740ad4d927f5466b0af55dc15e7e03cfe" +checksum = "533fc2d4105e0e3d96ce1c71f2d308c9fbbe2ef9c587cab63dd627ab5bde218f" dependencies = [ "core-graphics 0.24.0", "crossbeam-channel", @@ -7948,6 +7818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom 0.2.15", + "serde", ] [[package]] @@ -7961,12 +7832,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - [[package]] name = "value-bag" version = "1.9.0" @@ -8394,15 +8259,6 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows" version = "0.56.0" @@ -8843,9 +8699,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.43.1" +version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4d715cf5fe88e9647f3d17b207b6d060d4a88e7171d4ccb2d2c657dd1d44728" +checksum = "440600584cfbd8b0d28eace95c1f2c253db05dae43780b79380aa1e868f04c73" dependencies = [ "base64 0.22.1", "block", diff --git a/Cargo.toml b/Cargo.toml index 95a89d361..40d983a48 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.15", default-features = false } -tauri-build = "2.0.0-rc.12" -tauri-plugin = "2.0.0-rc.12" -tauri-utils = "2.0.0-rc.12" +tauri = { version = "2.0.0-rc.16", default-features = false } +tauri-build = "2.0.0-rc.13" +tauri-plugin = "2.0.0-rc.13" +tauri-utils = "2.0.0-rc.13" serde_json = "1" thiserror = "1" url = "2" diff --git a/examples/api/package.json b/examples/api/package.json index e3cf39bf4..b8600e266 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.5", + "@tauri-apps/api": "2.0.0-rc.6", "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.2", "@tauri-apps/plugin-biometric": "2.0.0-rc.1", "@tauri-apps/plugin-cli": "2.0.0-rc.1", @@ -33,7 +33,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.16", + "@tauri-apps/cli": "2.0.0-rc.17", "@unocss/extractor-svelte": "^0.62.0", "svelte": "^4.2.19", "unocss": "^0.62.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 145ade168..db2b47b6a 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -10,11 +10,11 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.5", + "@tauri-apps/api": "2.0.0-rc.6", "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.16", + "@tauri-apps/cli": "2.0.0-rc.17", "typescript": "^5.2.2", "vite": "^5.4.7" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 08f8da029..705067555 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.16" + "@tauri-apps/cli": "2.0.0-rc.17" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index c242ba898..183de4d86 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.16", + "@tauri-apps/cli": "2.0.0-rc.17", "vite": "^5.0.12", "typescript": "^5.4.7" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 2ede55c31..d71974e5f 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.16", + "@tauri-apps/cli": "2.0.0-rc.17", "typescript": "^5.3.3", "vite": "^5.4.7" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a6064f98..6b1595c63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.5 - version: 2.0.0-rc.5 + specifier: 2.0.0-rc.6 + version: 2.0.0-rc.6 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0-rc.2 version: link:../../plugins/barcode-scanner @@ -125,8 +125,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) '@tauri-apps/cli': - specifier: 2.0.0-rc.16 - version: 2.0.0-rc.16 + specifier: 2.0.0-rc.17 + version: 2.0.0-rc.17 '@unocss/extractor-svelte': specifier: ^0.62.0 version: 0.62.3 @@ -144,50 +144,50 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/barcode-scanner: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/biometric: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/cli: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/clipboard-manager: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/deep-link: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.5 - version: 2.0.0-rc.5 + specifier: 2.0.0-rc.6 + version: 2.0.0-rc.6 '@tauri-apps/plugin-deep-link': specifier: 2.0.0-rc.2 version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.16 - version: 2.0.0-rc.16 + specifier: 2.0.0-rc.17 + version: 2.0.0-rc.17 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -199,103 +199,103 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/fs: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/geolocation: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/global-shortcut: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/haptics: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/http: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/log: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/nfc: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/notification: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/os: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/positioner: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/process: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/shell: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.16 - version: 2.0.0-rc.16 + specifier: 2.0.0-rc.17 + version: 2.0.0-rc.17 plugins/sql: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/store: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.16 - version: 2.0.0-rc.16 + specifier: 2.0.0-rc.17 + version: 2.0.0-rc.17 typescript: specifier: ^5.4.7 version: 5.6.2 @@ -307,25 +307,25 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/updater: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/upload: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/websocket: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 plugins/websocket/examples/tauri-app: dependencies: @@ -334,8 +334,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.16 - version: 2.0.0-rc.16 + specifier: 2.0.0-rc.17 + version: 2.0.0-rc.17 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -347,7 +347,7 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0-rc.4 - version: 2.0.0-rc.5 + version: 2.0.0-rc.6 packages: @@ -1061,71 +1061,71 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tauri-apps/api@2.0.0-rc.5': - resolution: {integrity: sha512-JWs69pE9NsQdcqTpEVBepAZ08+jgQWuthIiTiaWRq/YlCLgnqq0KfC9sDem55uJ0YpgsytZuyj+m6b6q8oiD2g==} + '@tauri-apps/api@2.0.0-rc.6': + resolution: {integrity: sha512-oENxL0C5WqHNSXWjZEbjnzoBwFFyn8do5S0elOg0ME1cLvWJOAKmqdCnWPpAwtzHQZ+xAzMU0/k8nPpJq4OQYA==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.16': - resolution: {integrity: sha512-lISZU4gG0c9PbY7h/j/gW7nJLxZEygNBrYEET6zN8R99Znf5rSO+CfjenaMcJUUj6yTAd8gzdakRpLqNSAWegA==} + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.17': + resolution: {integrity: sha512-LXlLpavNfhvELPBcjCzQ9DOLx7rlAzZM4iltsaKawAewx30Q0EpIjK53Sg5AR3p5/KzNfCsTMjjpeUZg1AcFgw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.16': - resolution: {integrity: sha512-D9uxPCxpyYcTSQulJGFX3POAKPOJd8WcWHFH8x6YVM1cIx6EWRXIE1sZnPUOjFr7qCg+bSdYdr8/BFHcZGcApQ==} + '@tauri-apps/cli-darwin-x64@2.0.0-rc.17': + resolution: {integrity: sha512-86jlpD9DQEMdPCu+foqady2Kov3u151Pgs1uOdA3SQxXph4L31T7j26axIhADLYZH6T1be+lSVPm6+fp0iXGgw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.16': - resolution: {integrity: sha512-WsVdKm4D1I1XV8I9yRnmOINZRwwWfh6xcLV3m19+B9g6TohK8RkRxWfxvs3TLQlWOLQ6lo8BzS9rzXB+KtjDpg==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.17': + resolution: {integrity: sha512-ZFZeVBFdM9ogNebqzU3vo6f662YwmnE5XzeT6UEKUy+df49Fw2Npebmg0t/BPoF9e/nEgK1w1Jy68aK2JISscg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.16': - resolution: {integrity: sha512-2jpZDagNs6rrqposHJihHBayttgOl5aB2+bYiVEC6ye+haiFtmYmpdaPOaVIw+YVQs6lepf5PVrisCoU9DmYsg==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.17': + resolution: {integrity: sha512-GvO7BNJL6y8CumvaidJ+cEXn0KRaCzhmwtrMfTEl9jsqhGYvmNXuOlZR41hgoy6CQtUiu11ZGoBtU37/lxEKaQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.16': - resolution: {integrity: sha512-SNEDcB+sWOls/B0a+UpUHVa/oegvlXXKYWsTxuXtgWIr5VbWG7rXLZ3fZpLLP3SpRVGTGTnABcyqshFbWSqqKQ==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.17': + resolution: {integrity: sha512-DypDS3rJjcKzpgZKqHsCrzVGDbjo17XcYNhAYd2VxvXmGVAq05eZ71jLYHSSofXTxbpLZMcGKaino0jKyX1mOA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.16': - resolution: {integrity: sha512-Zsq29MM1ooeH1+chQBa7ffDFnzAZebBBFdsvs4e05tS1H8gn4oKE+PSMn9p/okzVXykEk9ri2/n7BG1XFeifMA==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.17': + resolution: {integrity: sha512-nKCAJtC4b9HnVpDsCVXASPEXOEIZb/HFmdRPuKiYXmpziL5OByCJLjhVx5EFhpVtqAg1isCmOutqKc8Nmw1QQQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.16': - resolution: {integrity: sha512-g+pwSuis2YMxhJJ/pJYwp/Nps5CWvlv/5MV5UfDvClkCkeAyzIqVX+HbBLPcs5S0CePUQNeP0j4d4jBWUqZZQg==} + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.17': + resolution: {integrity: sha512-cSi3M/hcNo+NubSKJG96Af6o6cL38RCvP0ImFiyIOU/adYmW0bQGWI4u/eL14IpdNCR1pbifgEcQL6dteyod0g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.16': - resolution: {integrity: sha512-PpPqdMTwJSDAK4KnNjvh77ShSkY+7pih1f6e50EtXar8bjC17e3XcEqFhDNne5mxEVTLYhibs6p1JLPad0ZjRA==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.17': + resolution: {integrity: sha512-hMtNtm2zXvUwzzTEJIf/GQplWHNLEeAjiLGaX9sS2Me96X/OzU1PUXcWTYdjVA102cf6q//0/pgpPo/Yn480KA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.16': - resolution: {integrity: sha512-io2yIcEcG7YLP+9n13NbilB93SjcB7jIl8GbURC4XZT4/4t9D1PWHpJr5hySVsGRLCz5e8NzwC5RlnenNzmpPQ==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.17': + resolution: {integrity: sha512-XO+zgvYvpz65aYbXMyFhej4Td5sEK7bSLPr2+8BigiI7F4tHaS7KJpYVtJtjHQtAo6KBy/bT8P9VW6xM4G+YVA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.16': - resolution: {integrity: sha512-Rfkmxe3k+cBVA/kVYt8O25QrQqWKJlH9AiH7Q3C6xBzzG9PCSRMBszCp+JhBF8jhVlwNmOBv6UG+lm85kspwGg==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.17': + resolution: {integrity: sha512-sVV0o9careFJuL3fTtkp6ed8X4FGGfMyK1WbXR5ci4Z2dn94wIJuefzTnGaQnvur4PaEJQ9WmTlQ2Pe3UrokBQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.16': - resolution: {integrity: sha512-wdjZg/M3dcxiqgWG6VRnABpX0dYxRww93t0d1MYoZxFDrnyoUz5kYwFQ0v4J9u0qenEgskjoypvon7V/Nj9qrg==} + '@tauri-apps/cli@2.0.0-rc.17': + resolution: {integrity: sha512-7YQljT+izYmhLqsI5G2xg3AHBPx3gAHc+gB/s+NKqdSL4CuGImLiii8Rw/qBtuJpWFWLJiaGXnpra35zrSlknQ==} engines: {node: '>= 10'} hasBin: true @@ -3196,50 +3196,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@tauri-apps/api@2.0.0-rc.5': {} + '@tauri-apps/api@2.0.0-rc.6': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.16': + '@tauri-apps/cli-darwin-arm64@2.0.0-rc.17': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.16': + '@tauri-apps/cli-darwin-x64@2.0.0-rc.17': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.16': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.17': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.16': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.17': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.16': + '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.17': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.16': + '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.17': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.16': + '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.17': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.16': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.17': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.16': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.17': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.16': + '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.17': optional: true - '@tauri-apps/cli@2.0.0-rc.16': + '@tauri-apps/cli@2.0.0-rc.17': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.16 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.16 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.16 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.16 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.16 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.16 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.16 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.16 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.16 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.16 + '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.17 + '@tauri-apps/cli-darwin-x64': 2.0.0-rc.17 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.17 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.17 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.17 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.17 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.17 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.17 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.17 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.17 '@types/eslint@9.6.1': dependencies: From 34737186fe64a3643166fb28dbcd5b504bb757bf Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Sun, 29 Sep 2024 01:50:57 +0800 Subject: [PATCH 593/643] chore: re-generate reference.md (#1847) --- plugins/autostart/permissions/autogenerated/reference.md | 2 +- plugins/barcode-scanner/permissions/autogenerated/reference.md | 2 +- plugins/biometric/permissions/autogenerated/reference.md | 2 +- plugins/cli/permissions/autogenerated/reference.md | 2 +- .../clipboard-manager/permissions/autogenerated/reference.md | 2 +- plugins/deep-link/permissions/autogenerated/reference.md | 2 +- plugins/dialog/permissions/autogenerated/reference.md | 2 +- plugins/fs/permissions/autogenerated/reference.md | 2 +- plugins/geolocation/permissions/autogenerated/reference.md | 2 +- plugins/global-shortcut/permissions/autogenerated/reference.md | 2 +- plugins/haptics/permissions/autogenerated/reference.md | 2 +- plugins/http/permissions/autogenerated/reference.md | 2 +- plugins/log/permissions/autogenerated/reference.md | 2 +- plugins/nfc/permissions/autogenerated/reference.md | 2 +- plugins/notification/permissions/autogenerated/reference.md | 2 +- plugins/os/permissions/autogenerated/reference.md | 2 +- plugins/positioner/permissions/autogenerated/reference.md | 2 +- plugins/process/permissions/autogenerated/reference.md | 2 +- plugins/shell/permissions/autogenerated/reference.md | 2 +- plugins/sql/permissions/autogenerated/reference.md | 2 +- plugins/store/permissions/autogenerated/reference.md | 2 +- plugins/stronghold/permissions/autogenerated/reference.md | 2 +- plugins/updater/permissions/autogenerated/reference.md | 2 +- plugins/upload/permissions/autogenerated/reference.md | 2 +- plugins/websocket/permissions/autogenerated/reference.md | 2 +- plugins/window-state/permissions/autogenerated/reference.md | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/plugins/autostart/permissions/autogenerated/reference.md b/plugins/autostart/permissions/autogenerated/reference.md index b5e37ac1e..6e40fdb7c 100644 --- a/plugins/autostart/permissions/autogenerated/reference.md +++ b/plugins/autostart/permissions/autogenerated/reference.md @@ -15,7 +15,7 @@ disable the automatic start on boot. - `allow-disable` - `allow-is-enabled` -## Permission Table +## Permission Table diff --git a/plugins/barcode-scanner/permissions/autogenerated/reference.md b/plugins/barcode-scanner/permissions/autogenerated/reference.md index 6b8739c19..50cbcf991 100644 --- a/plugins/barcode-scanner/permissions/autogenerated/reference.md +++ b/plugins/barcode-scanner/permissions/autogenerated/reference.md @@ -16,7 +16,7 @@ It allows all barcode related features. - `allow-scan` - `allow-vibrate` -## Permission Table +## Permission Table
diff --git a/plugins/biometric/permissions/autogenerated/reference.md b/plugins/biometric/permissions/autogenerated/reference.md index 8b3b58c23..37a9fa07e 100644 --- a/plugins/biometric/permissions/autogenerated/reference.md +++ b/plugins/biometric/permissions/autogenerated/reference.md @@ -12,7 +12,7 @@ It allows acccess to all biometric commands. - `allow-authenticate` - `allow-status` -## Permission Table +## Permission Table
diff --git a/plugins/cli/permissions/autogenerated/reference.md b/plugins/cli/permissions/autogenerated/reference.md index 48434ceab..a920b7490 100644 --- a/plugins/cli/permissions/autogenerated/reference.md +++ b/plugins/cli/permissions/autogenerated/reference.md @@ -4,7 +4,7 @@ Allows reading the CLI matches - `allow-cli-matches` -## Permission Table +## Permission Table
diff --git a/plugins/clipboard-manager/permissions/autogenerated/reference.md b/plugins/clipboard-manager/permissions/autogenerated/reference.md index 88c90e415..6b8bf14f4 100644 --- a/plugins/clipboard-manager/permissions/autogenerated/reference.md +++ b/plugins/clipboard-manager/permissions/autogenerated/reference.md @@ -8,7 +8,7 @@ Clipboard interaction needs to be explicitly enabled. -## Permission Table +## Permission Table
diff --git a/plugins/deep-link/permissions/autogenerated/reference.md b/plugins/deep-link/permissions/autogenerated/reference.md index 460960c81..3b84f1c58 100644 --- a/plugins/deep-link/permissions/autogenerated/reference.md +++ b/plugins/deep-link/permissions/autogenerated/reference.md @@ -4,7 +4,7 @@ Allows reading the opened deep link via the get_current command - `allow-get-current` -## Permission Table +## Permission Table
diff --git a/plugins/dialog/permissions/autogenerated/reference.md b/plugins/dialog/permissions/autogenerated/reference.md index 325432e5a..d93595d1a 100644 --- a/plugins/dialog/permissions/autogenerated/reference.md +++ b/plugins/dialog/permissions/autogenerated/reference.md @@ -16,7 +16,7 @@ All dialog types are enabled. - `allow-save` - `allow-open` -## Permission Table +## Permission Table
diff --git a/plugins/fs/permissions/autogenerated/reference.md b/plugins/fs/permissions/autogenerated/reference.md index cc6477f1e..79ec2f557 100644 --- a/plugins/fs/permissions/autogenerated/reference.md +++ b/plugins/fs/permissions/autogenerated/reference.md @@ -30,7 +30,7 @@ On Windows the webview data folder access is denied. - `read-app-specific-dirs-recursive` - `deny-default` -## Permission Table +## Permission Table
diff --git a/plugins/geolocation/permissions/autogenerated/reference.md b/plugins/geolocation/permissions/autogenerated/reference.md index e0417c80e..71d81a724 100644 --- a/plugins/geolocation/permissions/autogenerated/reference.md +++ b/plugins/geolocation/permissions/autogenerated/reference.md @@ -1,5 +1,5 @@ -## Permission Table +## Permission Table
diff --git a/plugins/global-shortcut/permissions/autogenerated/reference.md b/plugins/global-shortcut/permissions/autogenerated/reference.md index 1c91743c0..f8571c046 100644 --- a/plugins/global-shortcut/permissions/autogenerated/reference.md +++ b/plugins/global-shortcut/permissions/autogenerated/reference.md @@ -7,7 +7,7 @@ registered or unregistered. -## Permission Table +## Permission Table
diff --git a/plugins/haptics/permissions/autogenerated/reference.md b/plugins/haptics/permissions/autogenerated/reference.md index 36fbd7d35..c2d0dd5d4 100644 --- a/plugins/haptics/permissions/autogenerated/reference.md +++ b/plugins/haptics/permissions/autogenerated/reference.md @@ -1,5 +1,5 @@ -## Permission Table +## Permission Table
diff --git a/plugins/http/permissions/autogenerated/reference.md b/plugins/http/permissions/autogenerated/reference.md index 85406618b..4126f0b9e 100644 --- a/plugins/http/permissions/autogenerated/reference.md +++ b/plugins/http/permissions/autogenerated/reference.md @@ -18,7 +18,7 @@ All fetch operations are enabled. - `allow-fetch-read-body` - `allow-fetch-send` -## Permission Table +## Permission Table
diff --git a/plugins/log/permissions/autogenerated/reference.md b/plugins/log/permissions/autogenerated/reference.md index f2cdf689b..d59aefa00 100644 --- a/plugins/log/permissions/autogenerated/reference.md +++ b/plugins/log/permissions/autogenerated/reference.md @@ -4,7 +4,7 @@ Allows the log command - `allow-log` -## Permission Table +## Permission Table
diff --git a/plugins/nfc/permissions/autogenerated/reference.md b/plugins/nfc/permissions/autogenerated/reference.md index 8e4960fec..bf4258320 100644 --- a/plugins/nfc/permissions/autogenerated/reference.md +++ b/plugins/nfc/permissions/autogenerated/reference.md @@ -14,7 +14,7 @@ Writing to tags needs to be manually enabled. - `allow-is-available` - `allow-scan` -## Permission Table +## Permission Table
diff --git a/plugins/notification/permissions/autogenerated/reference.md b/plugins/notification/permissions/autogenerated/reference.md index 9e26eb8bb..b6130d606 100644 --- a/plugins/notification/permissions/autogenerated/reference.md +++ b/plugins/notification/permissions/autogenerated/reference.md @@ -26,7 +26,7 @@ It allows all notification related features. - `allow-create-channel` - `allow-permission-state` -## Permission Table +## Permission Table
diff --git a/plugins/os/permissions/autogenerated/reference.md b/plugins/os/permissions/autogenerated/reference.md index 1b49691b7..88fcd6fad 100644 --- a/plugins/os/permissions/autogenerated/reference.md +++ b/plugins/os/permissions/autogenerated/reference.md @@ -18,7 +18,7 @@ All information except the host name are available. - `allow-platform` - `allow-version` -## Permission Table +## Permission Table
diff --git a/plugins/positioner/permissions/autogenerated/reference.md b/plugins/positioner/permissions/autogenerated/reference.md index ad160d1b9..f2a92c66f 100644 --- a/plugins/positioner/permissions/autogenerated/reference.md +++ b/plugins/positioner/permissions/autogenerated/reference.md @@ -4,7 +4,7 @@ Allows the move_window command - `allow-move-window` -## Permission Table +## Permission Table
diff --git a/plugins/process/permissions/autogenerated/reference.md b/plugins/process/permissions/autogenerated/reference.md index b0aecfa64..10b6a82b9 100644 --- a/plugins/process/permissions/autogenerated/reference.md +++ b/plugins/process/permissions/autogenerated/reference.md @@ -12,7 +12,7 @@ the application. - `allow-exit` - `allow-restart` -## Permission Table +## Permission Table
diff --git a/plugins/shell/permissions/autogenerated/reference.md b/plugins/shell/permissions/autogenerated/reference.md index 80a5a4bd4..d88bf2d58 100644 --- a/plugins/shell/permissions/autogenerated/reference.md +++ b/plugins/shell/permissions/autogenerated/reference.md @@ -12,7 +12,7 @@ scope pre-configured. It will allow opening `http(s)://`, - `allow-open` -## Permission Table +## Permission Table
diff --git a/plugins/sql/permissions/autogenerated/reference.md b/plugins/sql/permissions/autogenerated/reference.md index 4f3a32ebe..5b887c94e 100644 --- a/plugins/sql/permissions/autogenerated/reference.md +++ b/plugins/sql/permissions/autogenerated/reference.md @@ -16,7 +16,7 @@ Also allows to load or close a connection. - `allow-load` - `allow-select` -## Permission Table +## Permission Table
diff --git a/plugins/store/permissions/autogenerated/reference.md b/plugins/store/permissions/autogenerated/reference.md index 8dceebca6..704d759db 100644 --- a/plugins/store/permissions/autogenerated/reference.md +++ b/plugins/store/permissions/autogenerated/reference.md @@ -22,7 +22,7 @@ All operations are enabled by default. - `allow-set` - `allow-values` -## Permission Table +## Permission Table
diff --git a/plugins/stronghold/permissions/autogenerated/reference.md b/plugins/stronghold/permissions/autogenerated/reference.md index 60aea74be..c07dc283f 100644 --- a/plugins/stronghold/permissions/autogenerated/reference.md +++ b/plugins/stronghold/permissions/autogenerated/reference.md @@ -18,7 +18,7 @@ All non-destructive operations are enabled by default. - `allow-save-store-record` - `allow-save` -## Permission Table +## Permission Table
diff --git a/plugins/updater/permissions/autogenerated/reference.md b/plugins/updater/permissions/autogenerated/reference.md index 41f108699..06241af8e 100644 --- a/plugins/updater/permissions/autogenerated/reference.md +++ b/plugins/updater/permissions/autogenerated/reference.md @@ -15,7 +15,7 @@ is enabled. - `allow-install` - `allow-download-and-install` -## Permission Table +## Permission Table
diff --git a/plugins/upload/permissions/autogenerated/reference.md b/plugins/upload/permissions/autogenerated/reference.md index 10a310cb6..19dbe32f7 100644 --- a/plugins/upload/permissions/autogenerated/reference.md +++ b/plugins/upload/permissions/autogenerated/reference.md @@ -12,7 +12,7 @@ All operations are enabled by default. - `allow-upload` - `allow-download` -## Permission Table +## Permission Table
diff --git a/plugins/websocket/permissions/autogenerated/reference.md b/plugins/websocket/permissions/autogenerated/reference.md index a1f05e8fb..640c05a8f 100644 --- a/plugins/websocket/permissions/autogenerated/reference.md +++ b/plugins/websocket/permissions/autogenerated/reference.md @@ -5,7 +5,7 @@ Allows connecting and sending data to a WebSocket server - `allow-connect` - `allow-send` -## Permission Table +## Permission Table
diff --git a/plugins/window-state/permissions/autogenerated/reference.md b/plugins/window-state/permissions/autogenerated/reference.md index 7329c2be1..53d51ca6f 100644 --- a/plugins/window-state/permissions/autogenerated/reference.md +++ b/plugins/window-state/permissions/autogenerated/reference.md @@ -13,7 +13,7 @@ All operations are enabled by default. - `allow-restore-state` - `allow-save-window-state` -## Permission Table +## Permission Table
From 34319bd977352dfeb9236bb2ac68f51a69ccc20d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:18:56 +0800 Subject: [PATCH 594/643] chore(deps): update unocss monorepo to ^0.63.0 (#1848) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/api/package.json | 4 +- pnpm-lock.yaml | 889 +++++++++----------------------------- 2 files changed, 201 insertions(+), 692 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index b8600e266..f5426331e 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -34,9 +34,9 @@ "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", "@tauri-apps/cli": "2.0.0-rc.17", - "@unocss/extractor-svelte": "^0.62.0", + "@unocss/extractor-svelte": "^0.63.0", "svelte": "^4.2.19", - "unocss": "^0.62.0", + "unocss": "^0.63.0", "vite": "^5.4.7" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b1595c63..71669ddca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,10 +32,10 @@ importers: version: 0.12.3(mocha@10.7.3) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@1.21.6) + version: 9.11.1(jiti@2.0.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.11.1(jiti@1.21.6)) + version: 9.1.0(eslint@9.11.1(jiti@2.0.0)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.6.2 typescript-eslint: specifier: 8.7.0 - version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + version: 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) examples/api: dependencies: @@ -128,14 +128,14 @@ importers: specifier: 2.0.0-rc.17 version: 2.0.0-rc.17 '@unocss/extractor-svelte': - specifier: ^0.62.0 - version: 0.62.3 + specifier: ^0.63.0 + version: 0.63.0 svelte: specifier: ^4.2.19 version: 4.2.19 unocss: - specifier: ^0.62.0 - version: 0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + specifier: ^0.63.0 + version: 0.63.0(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) vite: specifier: ^5.4.7 version: 5.4.7(terser@5.33.0) @@ -361,139 +361,6 @@ packages: '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.25.4': - resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-replace-supers@7.25.0': - resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.4': - resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.25.2': - resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - '@chainsafe/abort-controller@3.0.1': resolution: {integrity: sha512-oyq0qgFJDIIgLpyPwTv4j/sHX/MITatFzY3/b42VSldyZfnUC1lYBx5RwFvzBv1Sq4APOj2VCZO23pDRwy5kew==} engines: {node: '>=6.5'} @@ -887,8 +754,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.1.32': - resolution: {integrity: sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ==} + '@iconify/utils@2.1.33': + resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} @@ -1210,92 +1077,86 @@ packages: resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.62.3': - resolution: {integrity: sha512-C6ZdyLbLDS0LebwmgwVItLNAOSkL/tvVWNRd1i3Jy5uj1vPxlrw+3lIYiHjEofn0GFpBiwlv5+OCvO1Xpq5MqA==} + '@unocss/astro@0.63.0': + resolution: {integrity: sha512-ToF9X1uvm8CdxND+oVHrRPQyBsE5FZI1vz9lLVvqwzhOi9rfjGeoKeN7rV0njM2ohC+gbbPRDU9kKmZMnHLSzg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.62.3': - resolution: {integrity: sha512-yEl1iNKkBVpo8+i8gzveM5/0/vOVe6m8+FmuSDuKeSPJnYMhI1mAn+OCKFb/I+qEeLbRPXebbJUUB1xZNzya+w==} + '@unocss/cli@0.63.0': + resolution: {integrity: sha512-nJuHLDxgxSYhPQ0OY5BIZ0XQJyphapAFHYNh1ahTfJRa6IBIcCZb/JZFHjczCCLSSp1PAO4SJBNEPjJxZWr3rQ==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.62.3': - resolution: {integrity: sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw==} + '@unocss/config@0.63.0': + resolution: {integrity: sha512-rlhki3GA6pNX05sjDGJO4vTDonOfDngL9CJWEbn9hELgMZQ3+OAO4mePMA6OsYfMxYz5qpfDKwofkuV4CGNDKQ==} engines: {node: '>=14'} - '@unocss/core@0.62.3': - resolution: {integrity: sha512-Pfyrj8S7jq9K1QXD6Z5BCeiQavaHpbMN5q958/kmdbNGp57hOg1e346fMJAvgPjLBR+lE/hgZEsDrijtRiZXnw==} + '@unocss/core@0.63.0': + resolution: {integrity: sha512-ZGvmQ3CgGlGJy8TDYUCLRzgv+uyUj2nv0a5MsVvLAD1BKHN96YSt/zRdvRprKUkSzP0yLw44k3kv59md8Bn8xw==} - '@unocss/extractor-arbitrary-variants@0.62.3': - resolution: {integrity: sha512-9ZscWyXEwDZif+b56xZyJFHwJOjdMXmj+6x96jOsnRNBzwT9eW7YcGCErP1ih/q1S6KmuRrHM/JOXMBQ6H4qlw==} + '@unocss/extractor-arbitrary-variants@0.63.0': + resolution: {integrity: sha512-zHSpKnXU+So15VtJV8CZE+VV6zxeard+fi3bfepCAZFI/8vxU7aTrEPeXniF06eIQeJZTGVn/EaOw4AKiy1ZRA==} - '@unocss/extractor-svelte@0.62.3': - resolution: {integrity: sha512-0Ani/K5/2qdY5sbszkIVzbQMTfAVUi4bfpu2GCkdWTtedsl0zLyYIp+OjuXRswhslQQVKOh5WTrowbqTRp3EOQ==} + '@unocss/extractor-svelte@0.63.0': + resolution: {integrity: sha512-1cm/SI01uNaZsXJTDsB8pSTg/Rlpg7PKtG8/BSbHFvR7yiwQAstKaCGCPraHy/7wUgMMFMsP4Pj9yy+9HyU/Jw==} - '@unocss/inspector@0.62.3': - resolution: {integrity: sha512-nTSXOf7YimFPxEYJo5VfP5wlMgYOCjlv3c5Ub/0fynCJXZNb89SFeU05ABXkEgg/FfiobVBTscikLc6guW8eHQ==} + '@unocss/inspector@0.63.0': + resolution: {integrity: sha512-vcAHezenaP3TxiX7GBNyLFRNrhw8oZlz8xNDiuSR3QI6Z2gCrCxdEwblFdjJKhBcNWK79oXm2QCHzD3/Fb7xvg==} - '@unocss/postcss@0.62.3': - resolution: {integrity: sha512-CwL378ef0QazduXqlaGcWgKJAzemBUxdhapWWiRqI8sXC/eXht5xK6nS1JxqADDuxosgqsGdvcCGmP8ZFrEyiA==} + '@unocss/postcss@0.63.0': + resolution: {integrity: sha512-p0JvVJjOxi9O1dRfto6SOqFqV+aq0knqiTlyOmmINiwkcvXWYmFGXKTw6DTR8ACYF8MwpnACt81DF7yNqA5L3g==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.62.3': - resolution: {integrity: sha512-ORNwyLobGTwnn/tK5yHnMabdJU6Mr/C4LyFH7G8VSLit/aVS0fFa795kJXwxfbqQoQ7Gw0Zxs9oE5RXI0/0y7g==} + '@unocss/preset-attributify@0.63.0': + resolution: {integrity: sha512-9t9rlo7JIhd+SbjupYTwKmyPgqc9uFa6zuaq+ol5HdTdbnDvj9dUAJSEvQEzB0NebjIn+n94WpHhRTX8M6O2Lw==} - '@unocss/preset-icons@0.62.3': - resolution: {integrity: sha512-Ie+5RTyac1Q5CNB/s/4aB4VTHAQgQqsI5hshMNLkJ0Jj1lWxodUdEbCRKjXDalRjAXOS9vsLjfJ35ozJ1RSTIQ==} + '@unocss/preset-icons@0.63.0': + resolution: {integrity: sha512-MYxhrmyf+cneKp1mB35OCewlYSRuFhEb5cvNN0q/doAM18/beELPDTVLGiVzspin8de3fgiqy9XIQdEVgtujMQ==} - '@unocss/preset-mini@0.62.3': - resolution: {integrity: sha512-dn/8ubeW2ry/ZF3iKxdQHnS0l3EBibt0rIOE/XVwx24ub6pRzclU4r7xHnXeqvAFOO9PoiKDGgFR92m6R2MxyQ==} + '@unocss/preset-mini@0.63.0': + resolution: {integrity: sha512-lpGtqtXqr6yVLeWiQmY1lb7sJBcb2O3CuFduKlx7HZKZOJpnRtZoZeNRo1XYcH6BRPBxPgru/d/m43AGMnDqew==} - '@unocss/preset-tagify@0.62.3': - resolution: {integrity: sha512-8BpUCZ5sjOZOzBKtu7ecfhRggwwPF78IqeqeNjI+XYRs8r7TBBcUVeF6zUkwhlX/TbtREkw2OZj0Iusa9CBO+A==} + '@unocss/preset-tagify@0.63.0': + resolution: {integrity: sha512-RrXYruhvSqB4QaDTCHiRQUSfP2b1ie1eEhZ0HV9/WqCtgQjan1w9uV8bbA1TPXHLdMXWyt6tAoWUZPRdszBXZg==} - '@unocss/preset-typography@0.62.3': - resolution: {integrity: sha512-GjtDgQ1Jec/5RNmnyGMWMgyPdStWcFG/S+NUfOuroRsGSI8PDxihVOwFu5CwvOB2J2r6mRNLeUYMluE05jW3sw==} + '@unocss/preset-typography@0.63.0': + resolution: {integrity: sha512-4uhTRa2D6yB2sBjV3lksP/rpc2kq0p6v+yvpAvor73PADQCpLLMW+HPpS3YZe52nagHBf/LpY8gVNoGTIy/8FA==} - '@unocss/preset-uno@0.62.3': - resolution: {integrity: sha512-RlsrMlpEzoZqB0lr5VvlkHGpEgr0Vp6z4Q/7DjW5t7mi20Z2i8olaLGWM0TO1wKoRi8bxc6HP0RHUS7pHtZxBA==} + '@unocss/preset-uno@0.63.0': + resolution: {integrity: sha512-rXBz83FQG/FynPMhYQ5xlQ5ai9clYqmlubvDQR/UvEtuQWL0wIK2NiBFBGosn4Q0ukT0GrwOIicV8aizHu2tAg==} - '@unocss/preset-web-fonts@0.62.3': - resolution: {integrity: sha512-rGEouncGFwcUY1cjkQ/ZoSmEzOeSi3Yk4YAfHGyS0ff5zKuTDWZgivB8hh/mTtvRzZunIL+FW1+1z5G9rUwjgQ==} + '@unocss/preset-web-fonts@0.63.0': + resolution: {integrity: sha512-0ybW2EG6fAtK0XrB82wNK7ETiE12+ctfRxqWnKgLxpcYHIYVS0m8bRWgBWpJ+1l9I0fWilyB622rg6qIBHHU3g==} - '@unocss/preset-wind@0.62.3': - resolution: {integrity: sha512-6+VNce1he1U5EXKlXRwTIPn8KeK6bZ2jAEgcCxk8mFy8SzOlLeYzXCI9lcdiWRTjIeIiK5iSaUqmsQFtKdTyQg==} + '@unocss/preset-wind@0.63.0': + resolution: {integrity: sha512-TVgFdxiIm4BfGLBE/4XqpeD2a+yMlrgTRY12WMEjj8DduNbuyuE+mnvaN7iY5+/DMIsng+eKyM3gamJew2r30w==} - '@unocss/reset@0.62.3': - resolution: {integrity: sha512-XVKPkbm8y9SGzRaG3x+HygGZURm50MvKLVHXsbxi67RbIir9Ouyt9hQTV6Xs3RicRZFWOpJx3wMRb8iKUOe5Zw==} + '@unocss/reset@0.63.0': + resolution: {integrity: sha512-QAAXxITLSWaNNK2+Mn1m2IeaCqrS3U9dszId2GVaiTHVe30M7vpMZQ6NrJI7xcD7DZ0kuh48BoZl5ttuiJkeww==} - '@unocss/rule-utils@0.62.3': - resolution: {integrity: sha512-qI37jHH//XzyR5Y2aN3Kpo4lQrQO+CaiXpqPSwMLYh2bIypc2RQVpqGVtU736x0eA6IIx41XEkKzUW+VtvJvmg==} + '@unocss/rule-utils@0.63.0': + resolution: {integrity: sha512-OKA2LzSPUXsYtfzx2G8Mw7/IhIOYxJNprBg7QwRF0e3eVmo87Ae1G5m9cghBLh7h7Ur1SgG5PCNhI0dZg6f7XA==} engines: {node: '>=14'} - '@unocss/scope@0.62.3': - resolution: {integrity: sha512-TJGmFfsMrTo8DBJ7CJupIqObpgij+w4jCHMBf1uu0/9jbm63dH6WGcrl3zf5mm6UBTeLmB0RwJ8K4hs7LtrBDQ==} + '@unocss/transformer-attributify-jsx@0.63.0': + resolution: {integrity: sha512-+U+udpaRoUn5gXlejmT6h5l6ZcPr/8QCj4edCURyTOUZYrOd8siZzjDRisXP5/fskm4UqEgdlx97Qar97O6CYQ==} - '@unocss/transformer-attributify-jsx-babel@0.62.3': - resolution: {integrity: sha512-3yFZPSoN8VLiAGUAFIyfDRv9HQYTKFGKawDdMM9ATZmSEYOecJnYjS2HayT1P9kzGwBwuKoFjcX50JH1PuNokg==} + '@unocss/transformer-compile-class@0.63.0': + resolution: {integrity: sha512-bCapGembNCy9xY8CJxCretx/lj7mTyhnoO79CkTxckHlnUGEgNj9gbvtLkXCPJAfRLmBWMtgeMdUivG5+auq1A==} - '@unocss/transformer-attributify-jsx@0.62.3': - resolution: {integrity: sha512-AutidZj26QW1vLQzuW/aQigC/5ZnIeqGYIBeb/O+FKKt0bU411tHrHnA1iV4CoxIdWJTkw2sGAl6z6YvwAYG6w==} + '@unocss/transformer-directives@0.63.0': + resolution: {integrity: sha512-+qWfNKrOSuuaAfM5RSyqeCNy2s3nIct5knwlkzg/cYTT9UiKyIALeJY/k+plVM99WlGDNh/k6otNkNv5N/Z6wg==} - '@unocss/transformer-compile-class@0.62.3': - resolution: {integrity: sha512-1hf+99wJXzQXQPz9xR0AiTB3vBXT5RiEyugIX95HFx7EvSE/P17RP90yKEKZtDZRUwGiz2vIyySlxcKTFak9Vg==} + '@unocss/transformer-variant-group@0.63.0': + resolution: {integrity: sha512-JNTqxogGDd+XpbP3oRUulNEaY1H+42+4KXQxlfxllikgqe28QHorhBbM/4ObCw085tKhrM+oDH391KF+VUNkhQ==} - '@unocss/transformer-directives@0.62.3': - resolution: {integrity: sha512-HqHwFOA7DfxD/A1ROZIp8Dr8iZcE0z4w3VQtViWPQ89Fqmb7p2wCPGekk+8yW5PAltpynvHE4ahJEto5xjdg6w==} - - '@unocss/transformer-variant-group@0.62.3': - resolution: {integrity: sha512-oNX1SdfWemz0GWGSXACu8NevM0t2l44j2ancnooNkNz3l1+z1nbn4vFwfsJCOqOaoVm4ZqxaiQ8HIx81ZSiU1A==} - - '@unocss/vite@0.62.3': - resolution: {integrity: sha512-RrqF6Go8s0BGpwRfkOiLuO+n3CUE/CXxGqb0ipbUARhmNWJlekE3YPfayqImSEnCcImpaPgtVGv6Y0u3kLGG/w==} + '@unocss/vite@0.63.0': + resolution: {integrity: sha512-7UH36o7UEwMbrifuvTj6wOPJZ3DNK21HO+ACOlFaM9HGVmlEUEuzC5fRVid0Q/zRlo0URaI/82TkvEh3sUU8Zg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1329,10 +1190,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1385,11 +1242,6 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1414,13 +1266,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001659: - resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1448,16 +1293,10 @@ packages: code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1477,9 +1316,6 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - covector@0.12.3: resolution: {integrity: sha512-9LNME5eb4/KMdWD2jyJ4XX6CvD45xsF9hmxTQWAoDSuDGKdyh98wzUupz4BrJ9iviR8R9pI3D6Mozv13UX0g+A==} engines: {node: '>=18'} @@ -1496,6 +1332,10 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.0.0: + resolution: {integrity: sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + ctrlc-windows@2.1.0: resolution: {integrity: sha512-OrX5KI+K+2NMN91QIhYZdW7VDO2YsSdTZW494pA7Nvw/wBdU2hz+MGP006bR978zOTrG6Q8EIeJvLJmLqc6MsQ==} @@ -1543,9 +1383,6 @@ packages: effection@2.0.8: resolution: {integrity: sha512-/v7cbPIXGGylInQgHHjJutzqUn6VIfcP13hh2X0hXf04wwAlSI+lVjUBKpr5TX3+v9dXV/JLHO/pqQ9Cp1QAnQ==} - electron-to-chromium@1.5.18: - resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1563,10 +1400,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1709,10 +1542,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -1733,10 +1562,6 @@ packages: engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -1752,10 +1577,6 @@ packages: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1779,8 +1600,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - importx@0.4.4: - resolution: {integrity: sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w==} + importx@0.5.0: + resolution: {integrity: sha512-qROz3rSOjQYclmEQAajH9RhBuqpAGHM+5CNd9fk+TsF4JKmQsAI1egafW8XZZv8vARCo4nAmmt5d0eI2B8GUsA==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -1854,26 +1675,14 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@2.0.0: + resolution: {integrity: sha512-CJ7e7Abb779OTRv3lomfp7Mns/Sy1+U4pcAx5VbjxCZD5ZM/VJaXPpPjNKjtSvWQy/H86E49REXR34dl1JEz9w==} hasBin: true - jiti@2.0.0-beta.3: - resolution: {integrity: sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -1883,11 +1692,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -1930,9 +1734,6 @@ packages: longest-streak@2.0.4: resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} @@ -1951,6 +1752,9 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdn-data@2.10.0: + resolution: {integrity: sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2011,15 +1815,12 @@ packages: encoding: optional: true - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - ofetch@1.3.4: - resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + ofetch@1.4.0: + resolution: {integrity: sha512-MuHgsEhU6zGeX+EMh+8mSMrYTnsqJQQrpM00Q6QHMKNqQ0bKy0B43tk8tL1wg+CnsSTy1kg4Ir2T5Ig6rD+dfQ==} on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} @@ -2267,10 +2068,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2311,10 +2108,6 @@ packages: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -2338,8 +2131,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsx@4.19.0: - resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} engines: {node: '>=18.0.0'} hasBin: true @@ -2368,8 +2161,8 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - unconfig@0.5.5: - resolution: {integrity: sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==} + unconfig@0.6.0: + resolution: {integrity: sha512-4C67J0nIF2QwSXty2kW3zZx1pMZ3iXabylvJWWgHybWVUcMf9pxwsngoQt0gC+AVstRywFqrRBp3qOXJayhpOw==} unified@9.2.2: resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} @@ -2377,11 +2170,11 @@ packages: unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unocss@0.62.3: - resolution: {integrity: sha512-CLS6+JIlBobe/iPTz07pehyGDP8VqGJsiE+ZZ3Xkgib3hw76nCqAQF/4mJ8jVoV4C8KvGyVxmHaSSCFOkWmmZg==} + unocss@0.63.0: + resolution: {integrity: sha512-+C+qsKMDL2GyhY4/Dz3BrQcf/1yf1oRyej7ItW4Y7l1sIS1Zcsp9772IUlzuTEnLQQQOdOJVm99OB4TWnGndeg==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.62.3 + '@unocss/webpack': 0.63.0 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -2389,12 +2182,6 @@ packages: vite: optional: true - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -2472,9 +2259,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -2525,205 +2309,6 @@ snapshots: '@antfu/utils@0.7.10': {} - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 - - '@babel/compat-data@7.25.4': {} - - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.25.6': - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 7.6.3 - - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-plugin-utils@7.24.8': {} - - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helpers@7.25.6': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - - '@babel/parser@7.25.6': - dependencies: - '@babel/types': 7.25.6 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/template@7.25.0': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - - '@babel/traverse@7.25.6': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.25.6': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@chainsafe/abort-controller@3.0.1': dependencies: event-target-shim: 5.0.1 @@ -2989,9 +2574,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.0.0))': dependencies: - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.11.1(jiti@2.0.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -3042,7 +2627,7 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@2.1.32': + '@iconify/utils@2.1.33': dependencies: '@antfu/install-pkg': 0.4.1 '@antfu/utils': 0.7.10 @@ -3264,15 +2849,15 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.7.0 - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.11.1(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3282,14 +2867,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.7.0 '@typescript-eslint/types': 8.7.0 '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7(supports-color@8.1.1) - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.11.1(jiti@2.0.0) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -3300,10 +2885,10 @@ snapshots: '@typescript-eslint/types': 8.7.0 '@typescript-eslint/visitor-keys': 8.7.0 - '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -3329,13 +2914,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0)) '@typescript-eslint/scope-manager': 8.7.0 '@typescript-eslint/types': 8.7.0 '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.11.1(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript @@ -3345,24 +2930,24 @@ snapshots: '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': + '@unocss/astro@0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': dependencies: - '@unocss/core': 0.62.3 - '@unocss/reset': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + '@unocss/core': 0.63.0 + '@unocss/reset': 0.63.0 + '@unocss/vite': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) optionalDependencies: vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.62.3(rollup@4.22.4)': + '@unocss/cli@0.63.0(rollup@4.22.4)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.2(rollup@4.22.4) - '@unocss/config': 0.62.3 - '@unocss/core': 0.62.3 - '@unocss/preset-uno': 0.62.3 + '@unocss/config': 0.63.0 + '@unocss/core': 0.63.0 + '@unocss/preset-uno': 0.63.0 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -3375,130 +2960,116 @@ snapshots: - rollup - supports-color - '@unocss/config@0.62.3': + '@unocss/config@0.63.0': dependencies: - '@unocss/core': 0.62.3 - unconfig: 0.5.5 + '@unocss/core': 0.63.0 + unconfig: 0.6.0 transitivePeerDependencies: - supports-color - '@unocss/core@0.62.3': {} + '@unocss/core@0.63.0': {} - '@unocss/extractor-arbitrary-variants@0.62.3': + '@unocss/extractor-arbitrary-variants@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 - '@unocss/extractor-svelte@0.62.3': {} + '@unocss/extractor-svelte@0.63.0': {} - '@unocss/inspector@0.62.3': + '@unocss/inspector@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/rule-utils': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/rule-utils': 0.63.0 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.62.3(postcss@8.4.45)': + '@unocss/postcss@0.63.0(postcss@8.4.45)': dependencies: - '@unocss/config': 0.62.3 - '@unocss/core': 0.62.3 - '@unocss/rule-utils': 0.62.3 - css-tree: 2.3.1 - magic-string: 0.30.11 + '@unocss/config': 0.63.0 + '@unocss/core': 0.63.0 + '@unocss/rule-utils': 0.63.0 + css-tree: 3.0.0 postcss: 8.4.45 tinyglobby: 0.2.6 transitivePeerDependencies: - supports-color - '@unocss/preset-attributify@0.62.3': + '@unocss/preset-attributify@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 - '@unocss/preset-icons@0.62.3': + '@unocss/preset-icons@0.63.0': dependencies: - '@iconify/utils': 2.1.32 - '@unocss/core': 0.62.3 - ofetch: 1.3.4 + '@iconify/utils': 2.1.33 + '@unocss/core': 0.63.0 + ofetch: 1.4.0 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.62.3': + '@unocss/preset-mini@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/extractor-arbitrary-variants': 0.62.3 - '@unocss/rule-utils': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/extractor-arbitrary-variants': 0.63.0 + '@unocss/rule-utils': 0.63.0 - '@unocss/preset-tagify@0.62.3': + '@unocss/preset-tagify@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 - '@unocss/preset-typography@0.62.3': + '@unocss/preset-typography@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/preset-mini': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/preset-mini': 0.63.0 - '@unocss/preset-uno@0.62.3': + '@unocss/preset-uno@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/preset-mini': 0.62.3 - '@unocss/preset-wind': 0.62.3 - '@unocss/rule-utils': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/preset-mini': 0.63.0 + '@unocss/preset-wind': 0.63.0 + '@unocss/rule-utils': 0.63.0 - '@unocss/preset-web-fonts@0.62.3': + '@unocss/preset-web-fonts@0.63.0': dependencies: - '@unocss/core': 0.62.3 - ofetch: 1.3.4 + '@unocss/core': 0.63.0 + ofetch: 1.4.0 - '@unocss/preset-wind@0.62.3': + '@unocss/preset-wind@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/preset-mini': 0.62.3 - '@unocss/rule-utils': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/preset-mini': 0.63.0 + '@unocss/rule-utils': 0.63.0 - '@unocss/reset@0.62.3': {} + '@unocss/reset@0.63.0': {} - '@unocss/rule-utils@0.62.3': + '@unocss/rule-utils@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 magic-string: 0.30.11 - '@unocss/scope@0.62.3': {} - - '@unocss/transformer-attributify-jsx-babel@0.62.3': + '@unocss/transformer-attributify-jsx@0.63.0': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@unocss/core': 0.62.3 - transitivePeerDependencies: - - supports-color + '@unocss/core': 0.63.0 - '@unocss/transformer-attributify-jsx@0.62.3': + '@unocss/transformer-compile-class@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 - '@unocss/transformer-compile-class@0.62.3': + '@unocss/transformer-directives@0.63.0': dependencies: - '@unocss/core': 0.62.3 + '@unocss/core': 0.63.0 + '@unocss/rule-utils': 0.63.0 + css-tree: 3.0.0 - '@unocss/transformer-directives@0.62.3': + '@unocss/transformer-variant-group@0.63.0': dependencies: - '@unocss/core': 0.62.3 - '@unocss/rule-utils': 0.62.3 - css-tree: 2.3.1 + '@unocss/core': 0.63.0 - '@unocss/transformer-variant-group@0.62.3': - dependencies: - '@unocss/core': 0.62.3 - - '@unocss/vite@0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': + '@unocss/vite@0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.2(rollup@4.22.4) - '@unocss/config': 0.62.3 - '@unocss/core': 0.62.3 - '@unocss/inspector': 0.62.3 - '@unocss/scope': 0.62.3 - '@unocss/transformer-directives': 0.62.3 + '@unocss/config': 0.63.0 + '@unocss/core': 0.63.0 + '@unocss/inspector': 0.63.0 chokidar: 3.6.0 magic-string: 0.30.11 tinyglobby: 0.2.6 @@ -3532,10 +3103,6 @@ snapshots: ansi-regex@5.0.1: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -3580,13 +3147,6 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.23.3: - dependencies: - caniuse-lite: 1.0.30001659 - electron-to-chromium: 1.5.18 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) - buffer-from@1.1.2: {} buffer@6.0.3: @@ -3605,14 +3165,6 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001659: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -3656,16 +3208,10 @@ snapshots: estree-walker: 3.0.3 periscopic: 3.1.0 - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} colorette@2.0.20: {} @@ -3678,8 +3224,6 @@ snapshots: consola@3.2.3: {} - convert-source-map@2.0.0: {} - covector@0.12.3(mocha@10.7.3): dependencies: '@clack/prompts': 0.7.0 @@ -3718,6 +3262,11 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 + css-tree@3.0.0: + dependencies: + mdn-data: 2.10.0 + source-map-js: 1.2.1 + ctrlc-windows@2.1.0: {} debug@4.3.7(supports-color@8.1.1): @@ -3759,8 +3308,6 @@ snapshots: - encoding - mocha - electron-to-chromium@1.5.18: {} - emoji-regex@8.0.0: {} esbuild@0.21.5: @@ -3818,13 +3365,11 @@ snapshots: escalade@3.2.0: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@2.0.0)): dependencies: - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.11.1(jiti@2.0.0) eslint-plugin-security@3.0.1: dependencies: @@ -3839,9 +3384,9 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.11.1(jiti@1.21.6): + eslint@9.11.1(jiti@2.0.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 @@ -3879,7 +3424,7 @@ snapshots: strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: - jiti: 1.21.6 + jiti: 2.0.0 transitivePeerDependencies: - supports-color @@ -3972,8 +3517,6 @@ snapshots: function-bind@1.1.2: {} - gensync@1.0.0-beta.2: {} - get-caller-file@2.0.5: {} get-tsconfig@4.8.0: @@ -3996,8 +3539,6 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 - globals@11.12.0: {} - globals@14.0.0: {} globby@11.1.0: @@ -4015,8 +3556,6 @@ snapshots: dependencies: duplexer: 0.1.2 - has-flag@3.0.0: {} - has-flag@4.0.0: {} hasown@2.0.2: @@ -4034,15 +3573,14 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - importx@0.4.4: + importx@0.5.0: dependencies: bundle-require: 5.0.0(esbuild@0.23.1) debug: 4.3.7(supports-color@8.1.1) esbuild: 0.23.1 - jiti: 2.0.0-beta.3 - jiti-v1: jiti@1.21.6 + jiti: 2.0.0 pathe: 1.1.2 - tsx: 4.19.0 + tsx: 4.19.1 transitivePeerDependencies: - supports-color @@ -4100,26 +3638,18 @@ snapshots: isexe@2.0.0: {} - jiti@1.21.6: {} - - jiti@2.0.0-beta.3: {} - - js-tokens@4.0.0: {} + jiti@2.0.0: {} js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsesc@2.5.2: {} - json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} - json5@2.2.3: {} - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -4157,10 +3687,6 @@ snapshots: longest-streak@2.0.4: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -4192,6 +3718,8 @@ snapshots: mdn-data@2.0.30: {} + mdn-data@2.10.0: {} + merge2@1.4.1: {} micromark-extension-frontmatter@0.2.2: @@ -4266,11 +3794,9 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.18: {} - normalize-path@3.0.0: {} - ofetch@1.3.4: + ofetch@1.4.0: dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 @@ -4531,10 +4057,6 @@ snapshots: strip-json-comments@3.1.1: {} - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -4586,8 +4108,6 @@ snapshots: fdir: 6.3.0(picomatch@4.0.2) picomatch: 4.0.2 - to-fast-properties@2.0.0: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -4604,7 +4124,7 @@ snapshots: tslib@2.7.0: {} - tsx@4.19.0: + tsx@4.19.1: dependencies: esbuild: 0.23.1 get-tsconfig: 4.8.0 @@ -4617,11 +4137,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -4632,11 +4152,11 @@ snapshots: ufo@1.5.4: {} - unconfig@0.5.5: + unconfig@0.6.0: dependencies: '@antfu/utils': 0.7.10 defu: 6.1.4 - importx: 0.4.4 + importx: 0.5.0 transitivePeerDependencies: - supports-color @@ -4654,28 +4174,25 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.62.3(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)): + unocss@0.63.0(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)): dependencies: - '@unocss/astro': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) - '@unocss/cli': 0.62.3(rollup@4.22.4) - '@unocss/core': 0.62.3 - '@unocss/extractor-arbitrary-variants': 0.62.3 - '@unocss/postcss': 0.62.3(postcss@8.4.45) - '@unocss/preset-attributify': 0.62.3 - '@unocss/preset-icons': 0.62.3 - '@unocss/preset-mini': 0.62.3 - '@unocss/preset-tagify': 0.62.3 - '@unocss/preset-typography': 0.62.3 - '@unocss/preset-uno': 0.62.3 - '@unocss/preset-web-fonts': 0.62.3 - '@unocss/preset-wind': 0.62.3 - '@unocss/reset': 0.62.3 - '@unocss/transformer-attributify-jsx': 0.62.3 - '@unocss/transformer-attributify-jsx-babel': 0.62.3 - '@unocss/transformer-compile-class': 0.62.3 - '@unocss/transformer-directives': 0.62.3 - '@unocss/transformer-variant-group': 0.62.3 - '@unocss/vite': 0.62.3(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + '@unocss/astro': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + '@unocss/cli': 0.63.0(rollup@4.22.4) + '@unocss/core': 0.63.0 + '@unocss/postcss': 0.63.0(postcss@8.4.45) + '@unocss/preset-attributify': 0.63.0 + '@unocss/preset-icons': 0.63.0 + '@unocss/preset-mini': 0.63.0 + '@unocss/preset-tagify': 0.63.0 + '@unocss/preset-typography': 0.63.0 + '@unocss/preset-uno': 0.63.0 + '@unocss/preset-web-fonts': 0.63.0 + '@unocss/preset-wind': 0.63.0 + '@unocss/transformer-attributify-jsx': 0.63.0 + '@unocss/transformer-compile-class': 0.63.0 + '@unocss/transformer-directives': 0.63.0 + '@unocss/transformer-variant-group': 0.63.0 + '@unocss/vite': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) optionalDependencies: vite: 5.4.7(terser@5.33.0) transitivePeerDependencies: @@ -4683,12 +4200,6 @@ snapshots: - rollup - supports-color - update-browserslist-db@1.1.0(browserslist@4.23.3): - dependencies: - browserslist: 4.23.3 - escalade: 3.2.0 - picocolors: 1.1.0 - uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -4743,8 +4254,6 @@ snapshots: y18n@5.0.8: {} - yallist@3.1.1: {} - yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} From f930505de47491fa1b13862540f97397bc3ee8c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 10:19:10 +0800 Subject: [PATCH 595/643] chore(deps): lock file maintenance (#1852) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 314 ++++++++++++++++++--------------------- pnpm-lock.yaml | 389 ++++++++++++++++++++++++------------------------- 2 files changed, 335 insertions(+), 368 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 69d775926..0d4b1212d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -318,7 +318,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -489,7 +489,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -518,13 +518,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -578,9 +578,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "av1-grain" @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "bitstream-io" -version = "2.3.0" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" +checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452" [[package]] name = "bitvec" @@ -784,7 +784,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "syn_derive", ] @@ -874,9 +874,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" dependencies = [ "serde", ] @@ -950,9 +950,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.19" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" +checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0" dependencies = [ "jobserver", "libc", @@ -1060,18 +1060,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -1470,7 +1470,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1480,7 +1480,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1516,7 +1516,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1540,7 +1540,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1551,7 +1551,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1626,7 +1626,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1639,7 +1639,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1730,7 +1730,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1739,7 +1739,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading", + "libloading 0.8.5", ] [[package]] @@ -1762,7 +1762,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1890,9 +1890,9 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.4.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" +checksum = "f4e24052d7be71f0efb50c201557f6fe7d237cfd5a64fd5bcd7fd8fe32dbbffa" dependencies = [ "cc", "memchr", @@ -1941,7 +1941,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2042,9 +2042,9 @@ checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" dependencies = [ "simd-adler32", ] @@ -2108,9 +2108,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", @@ -2169,7 +2169,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2298,7 +2298,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2586,7 +2586,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2693,7 +2693,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2934,9 +2934,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", @@ -2947,16 +2947,15 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3128,7 +3127,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3346,9 +3345,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -3436,15 +3435,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", - "libloading", + "libloading 0.7.4", "once_cell", ] [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libflate" @@ -3491,6 +3490,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + [[package]] name = "libm" version = "0.2.8" @@ -3510,9 +3519,9 @@ dependencies = [ [[package]] name = "libsodium-sys-stable" -version = "1.21.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd1882b85f01cdd4021c0664fd897710a04c5d01b593a5a70e1b0baa999c1f8" +checksum = "42631d334de875c636a1aae7adb515653ac2e771e5a2ce74b1053f5a4412df3a" dependencies = [ "cc", "libc", @@ -3637,7 +3646,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" dependencies = [ "cfg-if", - "rayon", ] [[package]] @@ -3709,7 +3717,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", - "simd-adler32", ] [[package]] @@ -3719,6 +3726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -3976,7 +3984,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4038,7 +4046,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4190,9 +4198,12 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -4234,7 +4245,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4507,7 +4518,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4537,26 +4548,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.77", -] - [[package]] name = "pin-project-lite" version = "0.2.14" @@ -4603,9 +4594,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plist" @@ -4622,15 +4613,15 @@ dependencies = [ [[package]] name = "png" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" dependencies = [ "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.7.4", + "miniz_oxide 0.8.0", ] [[package]] @@ -4671,6 +4662,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + [[package]] name = "powerfmt" version = "0.2.0" @@ -4767,7 +4764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4847,9 +4844,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ "memchr", ] @@ -5035,17 +5032,15 @@ dependencies = [ [[package]] name = "ravif" -version = "0.11.6" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85be49d628515bb99a01c44200009f0a4167c252f036445b975b35daf952258c" +checksum = "a8f0bfd976333248de2078d350bfdf182ff96e168a24d23d2436cef320dd4bdd" dependencies = [ "avif-serialize", - "bitstream-io", "imgref", "loop9", "quick-error 2.0.1", "rav1e", - "rayon", "rgb", ] @@ -5088,9 +5083,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b" dependencies = [ "bitflags 2.6.0", ] @@ -5108,9 +5103,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", @@ -5120,9 +5115,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -5131,9 +5126,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rend" @@ -5449,9 +5444,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" @@ -5533,7 +5528,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5594,9 +5589,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -5659,7 +5654,7 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5670,7 +5665,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5693,14 +5688,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -5744,7 +5739,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5853,9 +5848,9 @@ dependencies = [ [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "similar" @@ -5977,7 +5972,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6075,7 +6070,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6098,7 +6093,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.77", + "syn 2.0.79", "tempfile", "tokio", "url", @@ -6353,9 +6348,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -6371,7 +6366,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6473,7 +6468,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6484,9 +6479,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" dependencies = [ "filetime", "libc", @@ -6595,7 +6590,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.77", + "syn 2.0.79", "tauri-utils", "thiserror", "time", @@ -6613,7 +6608,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "tauri-codegen", "tauri-utils", ] @@ -7201,9 +7196,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", @@ -7240,22 +7235,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -7365,7 +7360,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -7503,27 +7498,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - [[package]] name = "tower-service" version = "0.3.3" @@ -7550,7 +7524,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -7703,9 +7677,9 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] @@ -7944,7 +7918,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -7978,7 +7952,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7991,9 +7965,9 @@ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" dependencies = [ "futures-util", "js-sys", @@ -8047,7 +8021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" dependencies = [ "proc-macro2", - "quick-xml 0.36.1", + "quick-xml 0.36.2", "quote", ] @@ -8118,9 +8092,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -8161,7 +8135,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8321,7 +8295,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8332,7 +8306,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8343,7 +8317,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8354,7 +8328,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8899,7 +8873,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -8920,7 +8894,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71669ddca..7480d3383 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,28 +117,28 @@ importers: devDependencies: '@iconify-json/codicon': specifier: ^1.1.37 - version: 1.2.0 + version: 1.2.2 '@iconify-json/ph': specifier: ^1.1.8 version: 1.2.0 '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) '@tauri-apps/cli': specifier: 2.0.0-rc.17 version: 2.0.0-rc.17 '@unocss/extractor-svelte': specifier: ^0.63.0 - version: 0.63.0 + version: 0.63.1 svelte: specifier: ^4.2.19 version: 4.2.19 unocss: specifier: ^0.63.0 - version: 0.63.0(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + version: 0.63.1(postcss@8.4.47)(rollup@4.22.4)(vite@5.4.8(terser@5.34.1)) vite: specifier: ^5.4.7 - version: 5.4.7(terser@5.33.0) + version: 5.4.8(terser@5.34.1) plugins/autostart: dependencies: @@ -193,7 +193,7 @@ importers: version: 5.6.2 vite: specifier: ^5.4.7 - version: 5.4.7(terser@5.33.0) + version: 5.4.8(terser@5.34.1) plugins/dialog: dependencies: @@ -301,7 +301,7 @@ importers: version: 5.6.2 vite: specifier: ^5.0.12 - version: 5.4.7(terser@5.33.0) + version: 5.4.8(terser@5.34.1) plugins/stronghold: dependencies: @@ -341,7 +341,7 @@ importers: version: 5.6.2 vite: specifier: ^5.4.7 - version: 5.4.7(terser@5.33.0) + version: 5.4.8(terser@5.34.1) plugins/window-state: dependencies: @@ -745,8 +745,8 @@ packages: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} - '@iconify-json/codicon@1.2.0': - resolution: {integrity: sha512-KkqHpVq1guUqKgnhsG8xK+l3rX6sBc+CKB6icQKfabRpqCEpJWmG83IrZkCcD0A7CTghRRSwtrMPqpEvY8EwkA==} + '@iconify-json/codicon@1.2.2': + resolution: {integrity: sha512-ZO63Qy0e+/VBESGHE3CZEE2EFpzlBOTPSiMtIDQc1qIGvh6HpYVRNpEGuawF91oEws7PLuUifCIZL5NpYpKloA==} '@iconify-json/ph@1.2.0': resolution: {integrity: sha512-013eLpgTmX1lACOuDnkuhC7gRHyYj9w/j8SyDmlyUYvsKQrwdRsv1otcXtwH3DevuDAzSkreeeRsCeez+gTyVA==} @@ -790,8 +790,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} '@rollup/plugin-node-resolve@15.3.0': resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} @@ -1077,86 +1077,86 @@ packages: resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.63.0': - resolution: {integrity: sha512-ToF9X1uvm8CdxND+oVHrRPQyBsE5FZI1vz9lLVvqwzhOi9rfjGeoKeN7rV0njM2ohC+gbbPRDU9kKmZMnHLSzg==} + '@unocss/astro@0.63.1': + resolution: {integrity: sha512-TJISaUIMNPQH0MY0R7f14DO3HF4Z5H3seZazojhbLCOA7gDFV0WpSP84sdx9PsP1fpyYuNsxW9xrwA13bDaJYw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.63.0': - resolution: {integrity: sha512-nJuHLDxgxSYhPQ0OY5BIZ0XQJyphapAFHYNh1ahTfJRa6IBIcCZb/JZFHjczCCLSSp1PAO4SJBNEPjJxZWr3rQ==} + '@unocss/cli@0.63.1': + resolution: {integrity: sha512-DH9JZBL/CecAr7HWXinUSXEnDIVcOkHn4GYuaL4Zn33ZIV9ni20/lHhxJwbnEgv1eCIa3XTAMLCOU9uhpdTKCQ==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.63.0': - resolution: {integrity: sha512-rlhki3GA6pNX05sjDGJO4vTDonOfDngL9CJWEbn9hELgMZQ3+OAO4mePMA6OsYfMxYz5qpfDKwofkuV4CGNDKQ==} + '@unocss/config@0.63.1': + resolution: {integrity: sha512-9n1VDQ3xMpRIdzqvyUhWHA2ur5CWH0Oezw6Rbg/75bk86pD3yMrD8JkP4wK9wgq1pNNEpygmE7jFbDe29r8vVw==} engines: {node: '>=14'} - '@unocss/core@0.63.0': - resolution: {integrity: sha512-ZGvmQ3CgGlGJy8TDYUCLRzgv+uyUj2nv0a5MsVvLAD1BKHN96YSt/zRdvRprKUkSzP0yLw44k3kv59md8Bn8xw==} + '@unocss/core@0.63.1': + resolution: {integrity: sha512-scg53c6vw8cRsX4DbUO+MlTXicA9GWztm6PW0lsisJxXrdbQQCd+J+PIhrxLUExxeNqxTKsL3Msy9bwJU5uUsQ==} - '@unocss/extractor-arbitrary-variants@0.63.0': - resolution: {integrity: sha512-zHSpKnXU+So15VtJV8CZE+VV6zxeard+fi3bfepCAZFI/8vxU7aTrEPeXniF06eIQeJZTGVn/EaOw4AKiy1ZRA==} + '@unocss/extractor-arbitrary-variants@0.63.1': + resolution: {integrity: sha512-yqHDUgFCR4R2HMuD2k4dVkkdT2uOa/gUDIY6xoseOx1r98Fxlyvdr0UnLOaWsSSzpSGm7SS7XtafGa24IgJRUQ==} - '@unocss/extractor-svelte@0.63.0': - resolution: {integrity: sha512-1cm/SI01uNaZsXJTDsB8pSTg/Rlpg7PKtG8/BSbHFvR7yiwQAstKaCGCPraHy/7wUgMMFMsP4Pj9yy+9HyU/Jw==} + '@unocss/extractor-svelte@0.63.1': + resolution: {integrity: sha512-kqf+3ghZIc/hBT3W6nrvWEBMbAleJIGI4A1GW+K+dovP68T4gFxp7D077VtuC69dZp1foV4HM17QHmphZq1Oiw==} - '@unocss/inspector@0.63.0': - resolution: {integrity: sha512-vcAHezenaP3TxiX7GBNyLFRNrhw8oZlz8xNDiuSR3QI6Z2gCrCxdEwblFdjJKhBcNWK79oXm2QCHzD3/Fb7xvg==} + '@unocss/inspector@0.63.1': + resolution: {integrity: sha512-RO5DWZcnQ964ppaWskECSsx2b6I+dAH6A4YQIZEavG0ykHWwa//TquaY2HJH6OJoI7hKEnrFIFtlwzV5nWoYMw==} - '@unocss/postcss@0.63.0': - resolution: {integrity: sha512-p0JvVJjOxi9O1dRfto6SOqFqV+aq0knqiTlyOmmINiwkcvXWYmFGXKTw6DTR8ACYF8MwpnACt81DF7yNqA5L3g==} + '@unocss/postcss@0.63.1': + resolution: {integrity: sha512-ZHBy2swGg2zifQ6YEfctagIi+jZrLW/uBHqIkRIQYZyBQjw1GSqx+OSrq81LYIREBSQG7G90Nn1CXu8muttgzg==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.63.0': - resolution: {integrity: sha512-9t9rlo7JIhd+SbjupYTwKmyPgqc9uFa6zuaq+ol5HdTdbnDvj9dUAJSEvQEzB0NebjIn+n94WpHhRTX8M6O2Lw==} + '@unocss/preset-attributify@0.63.1': + resolution: {integrity: sha512-K6IaQ6cUQNWDp6JmAJ8dh17c/iPc9Ssgz6C9qayWwIJCZA3023EXfoXI0a0csnJyRHJALIw2sSZAvlmRudln1A==} - '@unocss/preset-icons@0.63.0': - resolution: {integrity: sha512-MYxhrmyf+cneKp1mB35OCewlYSRuFhEb5cvNN0q/doAM18/beELPDTVLGiVzspin8de3fgiqy9XIQdEVgtujMQ==} + '@unocss/preset-icons@0.63.1': + resolution: {integrity: sha512-ucCLrlQ6DsFzqSu/Cmqo3q/F/ybV+2P/TQflHS9Oo8wtOETxTT0aPEEEd/sj1SPTU9uUbLEeS6TaRD6MrwLcrw==} - '@unocss/preset-mini@0.63.0': - resolution: {integrity: sha512-lpGtqtXqr6yVLeWiQmY1lb7sJBcb2O3CuFduKlx7HZKZOJpnRtZoZeNRo1XYcH6BRPBxPgru/d/m43AGMnDqew==} + '@unocss/preset-mini@0.63.1': + resolution: {integrity: sha512-8NW3hK5fp+glBI2v1/3utp+Gv0yXoVTX66531BDDXxivsCJBNRTh40TP8hXSbtDne615UGrykIjyadsUHCRK5Q==} - '@unocss/preset-tagify@0.63.0': - resolution: {integrity: sha512-RrXYruhvSqB4QaDTCHiRQUSfP2b1ie1eEhZ0HV9/WqCtgQjan1w9uV8bbA1TPXHLdMXWyt6tAoWUZPRdszBXZg==} + '@unocss/preset-tagify@0.63.1': + resolution: {integrity: sha512-GlhWsdD3pYvtMePVNWMOjkQGSp4XKJcfS65spUOZv03h6xrKuCCnJNsawYqbnpTzUOAL29pG/X8Quse00weRjQ==} - '@unocss/preset-typography@0.63.0': - resolution: {integrity: sha512-4uhTRa2D6yB2sBjV3lksP/rpc2kq0p6v+yvpAvor73PADQCpLLMW+HPpS3YZe52nagHBf/LpY8gVNoGTIy/8FA==} + '@unocss/preset-typography@0.63.1': + resolution: {integrity: sha512-NfC0qQmCeA68F0JeVMKNpCqZhh0X3+1ouEjlRrFGzmIZt5lxWuTFgGroyp5rXv++iubm3CMoW1bMnp8CsyUUYw==} - '@unocss/preset-uno@0.63.0': - resolution: {integrity: sha512-rXBz83FQG/FynPMhYQ5xlQ5ai9clYqmlubvDQR/UvEtuQWL0wIK2NiBFBGosn4Q0ukT0GrwOIicV8aizHu2tAg==} + '@unocss/preset-uno@0.63.1': + resolution: {integrity: sha512-L7ptI/kI48+miTv5y7vNE1igw8/ThkWPFICMuhQksQS4QuuysuzO/IjfD5QwPy8Awr9HgSYZLqf5Jaax63HJ5w==} - '@unocss/preset-web-fonts@0.63.0': - resolution: {integrity: sha512-0ybW2EG6fAtK0XrB82wNK7ETiE12+ctfRxqWnKgLxpcYHIYVS0m8bRWgBWpJ+1l9I0fWilyB622rg6qIBHHU3g==} + '@unocss/preset-web-fonts@0.63.1': + resolution: {integrity: sha512-55DkFZ2/hLYp5cDvxQWElnPgnKj9AjoC/hTgC6JlKjzaafaqKh5Bt45rDKOPiXe2cPMN7A9gURgBgFyARX4nBw==} - '@unocss/preset-wind@0.63.0': - resolution: {integrity: sha512-TVgFdxiIm4BfGLBE/4XqpeD2a+yMlrgTRY12WMEjj8DduNbuyuE+mnvaN7iY5+/DMIsng+eKyM3gamJew2r30w==} + '@unocss/preset-wind@0.63.1': + resolution: {integrity: sha512-L/Pyz55NC55K2+zJX9b3cC23tMZzh/a2jUUfoiJAHudsSPjAvP/PJ31Nc+27FFMbqZXhGQ50CBq8geq51O4PKQ==} - '@unocss/reset@0.63.0': - resolution: {integrity: sha512-QAAXxITLSWaNNK2+Mn1m2IeaCqrS3U9dszId2GVaiTHVe30M7vpMZQ6NrJI7xcD7DZ0kuh48BoZl5ttuiJkeww==} + '@unocss/reset@0.63.1': + resolution: {integrity: sha512-gjSF0LeWwkNCYZ4Z/AnQXGCIOPUGL5Ll1IIDfwnKZeFGCj9QmcV1hki4xf/7N8mNHhfP0nYdJpdAfiznhKdkwQ==} - '@unocss/rule-utils@0.63.0': - resolution: {integrity: sha512-OKA2LzSPUXsYtfzx2G8Mw7/IhIOYxJNprBg7QwRF0e3eVmo87Ae1G5m9cghBLh7h7Ur1SgG5PCNhI0dZg6f7XA==} + '@unocss/rule-utils@0.63.1': + resolution: {integrity: sha512-z7WQ8lKq7p6sS/6Yl1pStcA2WyxxD7H1i86iXa2orWayW8KtrIJbdCXFYEsj3sOkMKLqpG5w65P+103dO2jUhQ==} engines: {node: '>=14'} - '@unocss/transformer-attributify-jsx@0.63.0': - resolution: {integrity: sha512-+U+udpaRoUn5gXlejmT6h5l6ZcPr/8QCj4edCURyTOUZYrOd8siZzjDRisXP5/fskm4UqEgdlx97Qar97O6CYQ==} + '@unocss/transformer-attributify-jsx@0.63.1': + resolution: {integrity: sha512-c92pv9x6AZ3Zfw5ledP6rzTudWUvVY5HrVSaG3GxO2ofyCFEdHyJ1qLTK7omwnTJZ3rMJ3QplIrPJka1Ftasuw==} - '@unocss/transformer-compile-class@0.63.0': - resolution: {integrity: sha512-bCapGembNCy9xY8CJxCretx/lj7mTyhnoO79CkTxckHlnUGEgNj9gbvtLkXCPJAfRLmBWMtgeMdUivG5+auq1A==} + '@unocss/transformer-compile-class@0.63.1': + resolution: {integrity: sha512-OV8nQJf+OEIoqHSsFQPjP/ocOxQc2nnMirB+J7D5e32SqU4Zg4GPWag3E+Pcb4InwZ/OUTPPdecKSPNHgT3CTQ==} - '@unocss/transformer-directives@0.63.0': - resolution: {integrity: sha512-+qWfNKrOSuuaAfM5RSyqeCNy2s3nIct5knwlkzg/cYTT9UiKyIALeJY/k+plVM99WlGDNh/k6otNkNv5N/Z6wg==} + '@unocss/transformer-directives@0.63.1': + resolution: {integrity: sha512-mWVcQqVXj5OtUzfwc9B2/CRPYVHqkoj+AFfhU8RZ6e1nPgDKtR9JLt0jypTvv/PMo56vPJUTbpBBvXU+vvQwQA==} - '@unocss/transformer-variant-group@0.63.0': - resolution: {integrity: sha512-JNTqxogGDd+XpbP3oRUulNEaY1H+42+4KXQxlfxllikgqe28QHorhBbM/4ObCw085tKhrM+oDH391KF+VUNkhQ==} + '@unocss/transformer-variant-group@0.63.1': + resolution: {integrity: sha512-Awk9FDpvZM8m9YY46MThYYZ81fY6HVs4pOX22xcbw06J2l8z3WyG5iHIzx0f8vCTNwTekDuxD6vV3UlQKoI+0w==} - '@unocss/vite@0.63.0': - resolution: {integrity: sha512-7UH36o7UEwMbrifuvTj6wOPJZ3DNK21HO+ACOlFaM9HGVmlEUEuzC5fRVid0Q/zRlo0URaI/82TkvEh3sUU8Zg==} + '@unocss/vite@0.63.1': + resolution: {integrity: sha512-MUi4gtGYPahDeabXfxq25J9YRUksJPLB+xsU2zn7Rb4ai0wBdi6SsZsjjeHhx7RZEXjse9UG3FGZP6Xhe6erUQ==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1201,8 +1201,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} @@ -1362,10 +1363,6 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -1414,16 +1411,16 @@ packages: resolution: {integrity: sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-scope@8.0.2: - resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@9.11.1: @@ -1436,8 +1433,8 @@ packages: jiti: optional: true - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: @@ -1546,8 +1543,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.8.0: - resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -1899,8 +1896,8 @@ packages: pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} - postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2090,8 +2087,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - terser@5.33.0: - resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -2170,11 +2167,11 @@ packages: unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unocss@0.63.0: - resolution: {integrity: sha512-+C+qsKMDL2GyhY4/Dz3BrQcf/1yf1oRyej7ItW4Y7l1sIS1Zcsp9772IUlzuTEnLQQQOdOJVm99OB4TWnGndeg==} + unocss@0.63.1: + resolution: {integrity: sha512-fVZOT+RCL43yK9enRVVClgh5RT9av8mE6P665cZH+F17hVqDO56q7J7HUqGh9/+zO+omkhYJwUQX4hTPE8J/9g==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.63.0 + '@unocss/webpack': 0.63.1 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -2191,8 +2188,8 @@ packages: vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - vite@5.4.7: - resolution: {integrity: sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==} + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2595,7 +2592,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7(supports-color@8.1.1) - espree: 10.1.0 + espree: 10.2.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -2617,7 +2614,7 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@iconify-json/codicon@1.2.0': + '@iconify-json/codicon@1.2.2': dependencies: '@iconify/types': 2.0.0 @@ -2673,7 +2670,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@polka/url@1.0.0-next.25': {} + '@polka/url@1.0.0-next.28': {} '@rollup/plugin-node-resolve@15.3.0(rollup@4.22.4)': dependencies: @@ -2689,7 +2686,7 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.33.0 + terser: 5.34.1 optionalDependencies: rollup: 4.22.4 @@ -2758,26 +2755,26 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)))(svelte@4.2.19)(vite@5.4.7(terser@5.33.0))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(terser@5.34.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) debug: 4.3.7(supports-color@8.1.1) svelte: 4.2.19 - vite: 5.4.7(terser@5.33.0) + vite: 5.4.8(terser@5.34.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)))(svelte@4.2.19)(vite@5.4.7(terser@5.33.0)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) debug: 4.3.7(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.7(terser@5.33.0) - vitefu: 0.2.5(vite@5.4.7(terser@5.33.0)) + vite: 5.4.8(terser@5.34.1) + vitefu: 0.2.5(vite@5.4.8(terser@5.34.1)) transitivePeerDependencies: - supports-color @@ -2930,24 +2927,24 @@ snapshots: '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': + '@unocss/astro@0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1))': dependencies: - '@unocss/core': 0.63.0 - '@unocss/reset': 0.63.0 - '@unocss/vite': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + '@unocss/core': 0.63.1 + '@unocss/reset': 0.63.1 + '@unocss/vite': 0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1)) optionalDependencies: - vite: 5.4.7(terser@5.33.0) + vite: 5.4.8(terser@5.34.1) transitivePeerDependencies: - rollup - supports-color - '@unocss/cli@0.63.0(rollup@4.22.4)': + '@unocss/cli@0.63.1(rollup@4.22.4)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.2(rollup@4.22.4) - '@unocss/config': 0.63.0 - '@unocss/core': 0.63.0 - '@unocss/preset-uno': 0.63.0 + '@unocss/config': 0.63.1 + '@unocss/core': 0.63.1 + '@unocss/preset-uno': 0.63.1 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -2960,120 +2957,120 @@ snapshots: - rollup - supports-color - '@unocss/config@0.63.0': + '@unocss/config@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 unconfig: 0.6.0 transitivePeerDependencies: - supports-color - '@unocss/core@0.63.0': {} + '@unocss/core@0.63.1': {} - '@unocss/extractor-arbitrary-variants@0.63.0': + '@unocss/extractor-arbitrary-variants@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/extractor-svelte@0.63.0': {} + '@unocss/extractor-svelte@0.63.1': {} - '@unocss/inspector@0.63.0': + '@unocss/inspector@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/rule-utils': 0.63.1 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.63.0(postcss@8.4.45)': + '@unocss/postcss@0.63.1(postcss@8.4.47)': dependencies: - '@unocss/config': 0.63.0 - '@unocss/core': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/config': 0.63.1 + '@unocss/core': 0.63.1 + '@unocss/rule-utils': 0.63.1 css-tree: 3.0.0 - postcss: 8.4.45 + postcss: 8.4.47 tinyglobby: 0.2.6 transitivePeerDependencies: - supports-color - '@unocss/preset-attributify@0.63.0': + '@unocss/preset-attributify@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/preset-icons@0.63.0': + '@unocss/preset-icons@0.63.1': dependencies: '@iconify/utils': 2.1.33 - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 ofetch: 1.4.0 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.63.0': + '@unocss/preset-mini@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/extractor-arbitrary-variants': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/extractor-arbitrary-variants': 0.63.1 + '@unocss/rule-utils': 0.63.1 - '@unocss/preset-tagify@0.63.0': + '@unocss/preset-tagify@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/preset-typography@0.63.0': + '@unocss/preset-typography@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/preset-mini': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/preset-mini': 0.63.1 - '@unocss/preset-uno@0.63.0': + '@unocss/preset-uno@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/preset-mini': 0.63.0 - '@unocss/preset-wind': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/preset-mini': 0.63.1 + '@unocss/preset-wind': 0.63.1 + '@unocss/rule-utils': 0.63.1 - '@unocss/preset-web-fonts@0.63.0': + '@unocss/preset-web-fonts@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 ofetch: 1.4.0 - '@unocss/preset-wind@0.63.0': + '@unocss/preset-wind@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/preset-mini': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/preset-mini': 0.63.1 + '@unocss/rule-utils': 0.63.1 - '@unocss/reset@0.63.0': {} + '@unocss/reset@0.63.1': {} - '@unocss/rule-utils@0.63.0': + '@unocss/rule-utils@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 magic-string: 0.30.11 - '@unocss/transformer-attributify-jsx@0.63.0': + '@unocss/transformer-attributify-jsx@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/transformer-compile-class@0.63.0': + '@unocss/transformer-compile-class@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/transformer-directives@0.63.0': + '@unocss/transformer-directives@0.63.1': dependencies: - '@unocss/core': 0.63.0 - '@unocss/rule-utils': 0.63.0 + '@unocss/core': 0.63.1 + '@unocss/rule-utils': 0.63.1 css-tree: 3.0.0 - '@unocss/transformer-variant-group@0.63.0': + '@unocss/transformer-variant-group@0.63.1': dependencies: - '@unocss/core': 0.63.0 + '@unocss/core': 0.63.1 - '@unocss/vite@0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0))': + '@unocss/vite@0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.2(rollup@4.22.4) - '@unocss/config': 0.63.0 - '@unocss/core': 0.63.0 - '@unocss/inspector': 0.63.0 + '@unocss/config': 0.63.1 + '@unocss/core': 0.63.1 + '@unocss/inspector': 0.63.1 chokidar: 3.6.0 magic-string: 0.30.11 tinyglobby: 0.2.6 - vite: 5.4.7(terser@5.33.0) + vite: 5.4.8(terser@5.34.1) transitivePeerDependencies: - rollup - supports-color @@ -3114,9 +3111,7 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.2: {} array-union@2.1.0: {} @@ -3283,8 +3278,6 @@ snapshots: defu@6.1.4: {} - dequal@2.0.3: {} - destr@2.0.3: {} diff@5.2.0: {} @@ -3375,14 +3368,14 @@ snapshots: dependencies: safe-regex: 2.1.1 - eslint-scope@8.0.2: + eslint-scope@8.1.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.1.0: {} eslint@9.11.1(jiti@2.0.0): dependencies: @@ -3403,9 +3396,9 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 8.0.2 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -3428,11 +3421,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.1.0: + espree@10.2.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 + eslint-visitor-keys: 4.1.0 esquery@1.6.0: dependencies: @@ -3519,7 +3512,7 @@ snapshots: get-caller-file@2.0.5: {} - get-tsconfig@4.8.0: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -3891,7 +3884,7 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 - postcss@8.4.45: + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 @@ -4012,7 +4005,7 @@ snapshots: sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.25 + '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 @@ -4078,7 +4071,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 '@types/estree': 1.0.6 acorn: 8.12.1 - aria-query: 5.3.0 + aria-query: 5.3.2 axobject-query: 4.1.0 code-red: 1.0.4 css-tree: 2.3.1 @@ -4088,7 +4081,7 @@ snapshots: magic-string: 0.30.11 periscopic: 3.1.0 - terser@5.33.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -4127,7 +4120,7 @@ snapshots: tsx@4.19.1: dependencies: esbuild: 0.23.1 - get-tsconfig: 4.8.0 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -4174,27 +4167,27 @@ snapshots: dependencies: '@types/unist': 2.0.11 - unocss@0.63.0(postcss@8.4.45)(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)): + unocss@0.63.1(postcss@8.4.47)(rollup@4.22.4)(vite@5.4.8(terser@5.34.1)): dependencies: - '@unocss/astro': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) - '@unocss/cli': 0.63.0(rollup@4.22.4) - '@unocss/core': 0.63.0 - '@unocss/postcss': 0.63.0(postcss@8.4.45) - '@unocss/preset-attributify': 0.63.0 - '@unocss/preset-icons': 0.63.0 - '@unocss/preset-mini': 0.63.0 - '@unocss/preset-tagify': 0.63.0 - '@unocss/preset-typography': 0.63.0 - '@unocss/preset-uno': 0.63.0 - '@unocss/preset-web-fonts': 0.63.0 - '@unocss/preset-wind': 0.63.0 - '@unocss/transformer-attributify-jsx': 0.63.0 - '@unocss/transformer-compile-class': 0.63.0 - '@unocss/transformer-directives': 0.63.0 - '@unocss/transformer-variant-group': 0.63.0 - '@unocss/vite': 0.63.0(rollup@4.22.4)(vite@5.4.7(terser@5.33.0)) + '@unocss/astro': 0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1)) + '@unocss/cli': 0.63.1(rollup@4.22.4) + '@unocss/core': 0.63.1 + '@unocss/postcss': 0.63.1(postcss@8.4.47) + '@unocss/preset-attributify': 0.63.1 + '@unocss/preset-icons': 0.63.1 + '@unocss/preset-mini': 0.63.1 + '@unocss/preset-tagify': 0.63.1 + '@unocss/preset-typography': 0.63.1 + '@unocss/preset-uno': 0.63.1 + '@unocss/preset-web-fonts': 0.63.1 + '@unocss/preset-wind': 0.63.1 + '@unocss/transformer-attributify-jsx': 0.63.1 + '@unocss/transformer-compile-class': 0.63.1 + '@unocss/transformer-directives': 0.63.1 + '@unocss/transformer-variant-group': 0.63.1 + '@unocss/vite': 0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1)) optionalDependencies: - vite: 5.4.7(terser@5.33.0) + vite: 5.4.8(terser@5.34.1) transitivePeerDependencies: - postcss - rollup @@ -4216,18 +4209,18 @@ snapshots: unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite@5.4.7(terser@5.33.0): + vite@5.4.8(terser@5.34.1): dependencies: esbuild: 0.21.5 - postcss: 8.4.45 + postcss: 8.4.47 rollup: 4.22.4 optionalDependencies: fsevents: 2.3.3 - terser: 5.33.0 + terser: 5.34.1 - vitefu@0.2.5(vite@5.4.7(terser@5.33.0)): + vitefu@0.2.5(vite@5.4.8(terser@5.34.1)): optionalDependencies: - vite: 5.4.7(terser@5.33.0) + vite: 5.4.8(terser@5.34.1) webidl-conversions@3.0.1: {} From 3b2bd3065d516735b33519df014a81b0d481c7a8 Mon Sep 17 00:00:00 2001 From: Tillmann <28728469+tweidinger@users.noreply.github.com> Date: Mon, 30 Sep 2024 21:11:44 +0900 Subject: [PATCH 596/643] fix sql heading --- plugins/sql/permissions/default.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sql/permissions/default.toml b/plugins/sql/permissions/default.toml index efac54331..eb5fa5556 100644 --- a/plugins/sql/permissions/default.toml +++ b/plugins/sql/permissions/default.toml @@ -2,7 +2,7 @@ [default] description = """ -# Tauri SQL Default Permissions +### Default Permissions This permission set configures what kind of database operations are available from the sql plugin. From 04459afbb67aafa5cd57e6a148c2beb0a8d3e04a Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:34:20 +0800 Subject: [PATCH 597/643] refactor(dialog)!: use enum instead of label for buttons (#1842) * refactor(dialog)!: use enum instead of label * Add change file * Fix doc comment typo * Move ok and cancel to lib.rs --- .changes/native-dialog-button-text.md | 5 +++ plugins/dialog/src/commands.rs | 47 +++++++++++++++--------- plugins/dialog/src/desktop.rs | 34 ++++++++++-------- plugins/dialog/src/lib.rs | 51 ++++++++++++++------------- plugins/dialog/src/models.rs | 15 ++++++++ 5 files changed, 95 insertions(+), 57 deletions(-) create mode 100644 .changes/native-dialog-button-text.md diff --git a/.changes/native-dialog-button-text.md b/.changes/native-dialog-button-text.md new file mode 100644 index 000000000..5440cea1d --- /dev/null +++ b/.changes/native-dialog-button-text.md @@ -0,0 +1,5 @@ +--- +"dialog": patch:breaking +--- + +Changed `MessageDialogBuilder::ok_button_label` and `MessageDialogBuilder::cancel_button_label` to `MessageDialogBuilder::buttons` which takes an enum now diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 9173e83e9..8690a8b02 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -8,7 +8,10 @@ use serde::{Deserialize, Serialize}; use tauri::{command, Manager, Runtime, State, Window}; use tauri_plugin_fs::FsExt; -use crate::{Dialog, FileDialogBuilder, FilePath, MessageDialogKind, Result}; +use crate::{ + Dialog, FileDialogBuilder, FilePath, MessageDialogButtons, MessageDialogKind, Result, CANCEL, + OK, +}; #[derive(Serialize)] #[serde(untagged)] @@ -244,11 +247,12 @@ fn message_dialog( title: Option, message: String, kind: Option, - ok_button_label: Option, - cancel_button_label: Option, + buttons: MessageDialogButtons, ) -> bool { let mut builder = dialog.message(message); + builder = builder.buttons(buttons); + if let Some(title) = title { builder = builder.title(title); } @@ -262,14 +266,6 @@ fn message_dialog( builder = builder.kind(kind); } - if let Some(ok) = ok_button_label { - builder = builder.ok_button_label(ok); - } - - if let Some(cancel) = cancel_button_label { - builder = builder.cancel_button_label(cancel); - } - builder.blocking_show() } @@ -288,8 +284,11 @@ pub(crate) async fn message( title, message, kind, - ok_button_label, - None, + if let Some(ok_button_label) = ok_button_label { + MessageDialogButtons::OkCustom(ok_button_label) + } else { + MessageDialogButtons::Ok + }, )) } @@ -309,8 +308,7 @@ pub(crate) async fn ask( title, message, kind, - Some(ok_button_label.unwrap_or_else(|| "Yes".into())), - Some(cancel_button_label.unwrap_or_else(|| "No".into())), + get_ok_cancel_type(ok_button_label, cancel_button_label), )) } @@ -330,7 +328,22 @@ pub(crate) async fn confirm( title, message, kind, - Some(ok_button_label.unwrap_or_else(|| "Ok".into())), - Some(cancel_button_label.unwrap_or_else(|| "Cancel".into())), + get_ok_cancel_type(ok_button_label, cancel_button_label), )) } + +fn get_ok_cancel_type( + ok_button_label: Option, + cancel_button_label: Option, +) -> MessageDialogButtons { + if let Some(ok_button_label) = ok_button_label { + MessageDialogButtons::OkCancelCustom( + ok_button_label, + cancel_button_label.unwrap_or(CANCEL.to_string()), + ) + } else if let Some(cancel_button_label) = cancel_button_label { + MessageDialogButtons::OkCancelCustom(OK.to_string(), cancel_button_label) + } else { + MessageDialogButtons::OkCancel + } +} diff --git a/plugins/dialog/src/desktop.rs b/plugins/dialog/src/desktop.rs index be19b49a9..d30f6bfee 100644 --- a/plugins/dialog/src/desktop.rs +++ b/plugins/dialog/src/desktop.rs @@ -13,9 +13,7 @@ use rfd::{AsyncFileDialog, AsyncMessageDialog}; use serde::de::DeserializeOwned; use tauri::{plugin::PluginApi, AppHandle, Runtime}; -use crate::{models::*, FileDialogBuilder, FilePath, MessageDialogBuilder}; - -const OK: &str = "Ok"; +use crate::{models::*, FileDialogBuilder, FilePath, MessageDialogBuilder, OK}; pub fn init( app: &AppHandle, @@ -109,22 +107,24 @@ impl From> for AsyncFileDialog { } } +impl From for rfd::MessageButtons { + fn from(value: MessageDialogButtons) -> Self { + match value { + MessageDialogButtons::Ok => Self::Ok, + MessageDialogButtons::OkCancel => Self::OkCancel, + MessageDialogButtons::OkCustom(ok) => Self::OkCustom(ok), + MessageDialogButtons::OkCancelCustom(ok, cancel) => Self::OkCancelCustom(ok, cancel), + } + } +} + impl From> for AsyncMessageDialog { fn from(d: MessageDialogBuilder) -> Self { let mut dialog = AsyncMessageDialog::new() .set_title(&d.title) .set_description(&d.message) - .set_level(d.kind.into()); - - let buttons = match (d.ok_button_label, d.cancel_button_label) { - (Some(ok), Some(cancel)) => Some(rfd::MessageButtons::OkCancelCustom(ok, cancel)), - (Some(ok), None) => Some(rfd::MessageButtons::OkCustom(ok)), - (None, Some(cancel)) => Some(rfd::MessageButtons::OkCancelCustom(OK.into(), cancel)), - (None, None) => None, - }; - if let Some(buttons) = buttons { - dialog = dialog.set_buttons(buttons); - } + .set_level(d.kind.into()) + .set_buttons(d.buttons.into()); if let Some(parent) = d.parent { dialog = dialog.set_parent(&parent); @@ -213,7 +213,11 @@ pub fn show_message_dialog( ) { use rfd::MessageDialogResult; - let ok_label = dialog.ok_button_label.clone(); + let ok_label = match &dialog.buttons { + MessageDialogButtons::OkCustom(ok) => Some(ok.clone()), + MessageDialogButtons::OkCancelCustom(ok, _) => Some(ok.clone()), + _ => None, + }; let f = move |res| { f(match res { MessageDialogResult::Ok | MessageDialogResult::Yes => true, diff --git a/plugins/dialog/src/lib.rs b/plugins/dialog/src/lib.rs index 5f2b35b02..a7538e1b1 100644 --- a/plugins/dialog/src/lib.rs +++ b/plugins/dialog/src/lib.rs @@ -41,6 +41,9 @@ use desktop::*; #[cfg(mobile)] use mobile::*; +pub(crate) const OK: &str = "Ok"; +pub(crate) const CANCEL: &str = "Cancel"; + macro_rules! blocking_fn { ($self:ident, $fn:ident) => {{ let (tx, rx) = sync_channel(0); @@ -89,14 +92,13 @@ impl Dialog { /// - Ask dialog: /// /// ``` - /// use tauri_plugin_dialog::DialogExt; + /// use tauri_plugin_dialog::{DialogExt, MessageDialogButtons}; /// /// tauri::Builder::default() /// .setup(|app| { /// app.dialog() /// .message("Are you sure?") - /// .ok_button_label("Yes") - /// .cancel_button_label("No") + /// .buttons(MessageDialogButtons::OkCancelCustom("Yes", "No")) /// .show(|yes| { /// println!("user said {}", if yes { "yes" } else { "no" }); /// }); @@ -107,13 +109,13 @@ impl Dialog { /// - Message dialog with OK button: /// /// ``` - /// use tauri_plugin_dialog::DialogExt; + /// use tauri_plugin_dialog::{DialogExt, MessageDialogButtons}; /// /// tauri::Builder::default() /// .setup(|app| { /// app.dialog() /// .message("Job completed successfully") - /// .ok_button_label("Ok") + /// .buttons(MessageDialogButtons::Ok) /// .show(|_| { /// println!("dialog closed"); /// }); @@ -129,7 +131,7 @@ impl Dialog { /// but note that it cannot be executed on the main thread as it will freeze your application. /// /// ``` - /// use tauri_plugin_dialog::DialogExt; + /// use tauri_plugin_dialog::{DialogExt, MessageDialogButtons}; /// /// tauri::Builder::default() /// .setup(|app| { @@ -137,8 +139,7 @@ impl Dialog { /// std::thread::spawn(move || { /// let yes = handle.dialog() /// .message("Are you sure?") - /// .ok_button_label("Yes") - /// .cancel_button_label("No") + /// .buttons(MessageDialogButtons::OkCancelCustom("Yes", "No")) /// .blocking_show(); /// }); /// @@ -196,8 +197,7 @@ pub struct MessageDialogBuilder { pub(crate) title: String, pub(crate) message: String, pub(crate) kind: MessageDialogKind, - pub(crate) ok_button_label: Option, - pub(crate) cancel_button_label: Option, + pub(crate) buttons: MessageDialogButtons, #[cfg(desktop)] pub(crate) parent: Option, } @@ -210,8 +210,8 @@ pub(crate) struct MessageDialogPayload<'a> { title: &'a String, message: &'a String, kind: &'a MessageDialogKind, - ok_button_label: &'a Option, - cancel_button_label: &'a Option, + ok_button_label: Option<&'a str>, + cancel_button_label: Option<&'a str>, } // raw window handle :( @@ -225,8 +225,7 @@ impl MessageDialogBuilder { title: title.into(), message: message.into(), kind: Default::default(), - ok_button_label: None, - cancel_button_label: None, + buttons: Default::default(), #[cfg(desktop)] parent: None, } @@ -234,12 +233,20 @@ impl MessageDialogBuilder { #[cfg(mobile)] pub(crate) fn payload(&self) -> MessageDialogPayload<'_> { + let (ok_button_label, cancel_button_label) = match &self.buttons { + MessageDialogButtons::Ok => (Some(OK), None), + MessageDialogButtons::OkCancel => (Some(OK), Some(CANCEL)), + MessageDialogButtons::OkCustom(ok) => (Some(ok.as_str()), Some(CANCEL)), + MessageDialogButtons::OkCancelCustom(ok, cancel) => { + (Some(ok.as_str()), Some(cancel.as_str())) + } + }; MessageDialogPayload { title: &self.title, message: &self.message, kind: &self.kind, - ok_button_label: &self.ok_button_label, - cancel_button_label: &self.cancel_button_label, + ok_button_label, + cancel_button_label, } } @@ -266,15 +273,9 @@ impl MessageDialogBuilder { self } - /// Sets the label for the OK button. - pub fn ok_button_label(mut self, label: impl Into) -> Self { - self.ok_button_label.replace(label.into()); - self - } - - /// Sets the label for the Cancel button. - pub fn cancel_button_label(mut self, label: impl Into) -> Self { - self.cancel_button_label.replace(label.into()); + /// Sets the dialog buttons. + pub fn buttons(mut self, buttons: MessageDialogButtons) -> Self { + self.buttons = buttons; self } diff --git a/plugins/dialog/src/models.rs b/plugins/dialog/src/models.rs index fa9224e18..3f9eb6c13 100644 --- a/plugins/dialog/src/models.rs +++ b/plugins/dialog/src/models.rs @@ -49,3 +49,18 @@ impl Serialize for MessageDialogKind { } } } + +/// Set of button that will be displayed on the dialog +#[non_exhaustive] +#[derive(Debug, Default, Clone)] +pub enum MessageDialogButtons { + #[default] + /// A single `Ok` button with OS default dialog text + Ok, + /// 2 buttons `Ok` and `Cancel` with OS default dialog texts + OkCancel, + /// A single `Ok` button with custom text + OkCustom(String), + /// 2 buttons `Ok` and `Cancel` with custom texts + OkCancelCustom(String, String), +} From 68579934c93f6ed2edbc97474560d6a8a00e8f70 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Tue, 1 Oct 2024 15:35:13 +0300 Subject: [PATCH 598/643] fix(cli): expose hidden structs (#1856) closes #1843 --- .changes/cli-hidden-structs.md | 5 +++++ plugins/cli/src/error.rs | 2 ++ plugins/cli/src/lib.rs | 5 +++-- plugins/sql/permissions/autogenerated/reference.md | 2 +- plugins/sql/permissions/schemas/schema.json | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .changes/cli-hidden-structs.md diff --git a/.changes/cli-hidden-structs.md b/.changes/cli-hidden-structs.md new file mode 100644 index 000000000..61619a05c --- /dev/null +++ b/.changes/cli-hidden-structs.md @@ -0,0 +1,5 @@ +--- +"cli": patch +--- + +Expose `Matches`, `SubcommandMatches` and `ArgData` structs. \ No newline at end of file diff --git a/plugins/cli/src/error.rs b/plugins/cli/src/error.rs index b4bd28722..2b5e16029 100644 --- a/plugins/cli/src/error.rs +++ b/plugins/cli/src/error.rs @@ -18,3 +18,5 @@ impl Serialize for Error { serializer.serialize_str(self.to_string().as_ref()) } } + +pub type Result = std::result::Result; diff --git a/plugins/cli/src/lib.rs b/plugins/cli/src/lib.rs index 0e65409ef..38f64f835 100644 --- a/plugins/cli/src/lib.rs +++ b/plugins/cli/src/lib.rs @@ -23,8 +23,9 @@ mod error; mod parser; use config::{Arg, Config}; -pub use error::Error; -type Result = std::result::Result; + +pub use error::{Error, Result}; +pub use parser::{ArgData, Matches, SubcommandMatches}; pub struct Cli(PluginApi); diff --git a/plugins/sql/permissions/autogenerated/reference.md b/plugins/sql/permissions/autogenerated/reference.md index 5b887c94e..2a70f7b39 100644 --- a/plugins/sql/permissions/autogenerated/reference.md +++ b/plugins/sql/permissions/autogenerated/reference.md @@ -1,6 +1,6 @@ ## Default Permission -# Tauri SQL Default Permissions +### Default Permissions This permission set configures what kind of database operations are available from the sql plugin. diff --git a/plugins/sql/permissions/schemas/schema.json b/plugins/sql/permissions/schemas/schema.json index e14f5cea8..e3add5374 100644 --- a/plugins/sql/permissions/schemas/schema.json +++ b/plugins/sql/permissions/schemas/schema.json @@ -335,7 +335,7 @@ "const": "deny-select" }, { - "description": "# Tauri SQL Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n", + "description": "### Default Permissions\n\nThis permission set configures what kind of\ndatabase operations are available from the sql plugin.\n\n### Granted Permissions\n\nAll reading related operations are enabled.\nAlso allows to load or close a connection.\n\n", "type": "string", "const": "default" } From 30bcf5dcc22e1bb1fb983a8d2887edc39404e6df Mon Sep 17 00:00:00 2001 From: Fabian-Lars Date: Tue, 1 Oct 2024 14:47:08 +0200 Subject: [PATCH 599/643] refactor(sql): Allow multiple drivers at the same time (#1838) * refactor(sql): Allow multiple drivers at the same time * fmt * remove default feature comment [skip ci] * what was that doing there [skip ci] * disable public methods for now --- .changes/feat-multiple-sql-backends.md | 5 + .github/workflows/lint-rust.yml | 10 +- .github/workflows/test-rust.yml | 14 +- plugins/localhost/src/lib.rs | 2 +- plugins/sql/Cargo.toml | 1 + plugins/sql/src/commands.rs | 82 ++++++ plugins/sql/src/decode/mod.rs | 15 +- plugins/sql/src/error.rs | 28 ++ plugins/sql/src/lib.rs | 180 +++++++++++-- plugins/sql/src/plugin.rs | 343 ------------------------- plugins/sql/src/wrapper.rs | 328 +++++++++++++++++++++++ 11 files changed, 615 insertions(+), 393 deletions(-) create mode 100644 .changes/feat-multiple-sql-backends.md create mode 100644 plugins/sql/src/commands.rs create mode 100644 plugins/sql/src/error.rs delete mode 100644 plugins/sql/src/plugin.rs create mode 100644 plugins/sql/src/wrapper.rs diff --git a/.changes/feat-multiple-sql-backends.md b/.changes/feat-multiple-sql-backends.md new file mode 100644 index 000000000..65b8fe866 --- /dev/null +++ b/.changes/feat-multiple-sql-backends.md @@ -0,0 +1,5 @@ +--- +sql: patch +--- + +It is now possible to enable multiple SQL backends at the same time. There will be no compile error anymore if no backends are enabled! diff --git a/.github/workflows/lint-rust.yml b/.github/workflows/lint-rust.yml index 74d9d7666..39cc37fea 100644 --- a/.github/workflows/lint-rust.yml +++ b/.github/workflows/lint-rust.yml @@ -148,13 +148,7 @@ jobs: - uses: Swatinem/rust-cache@v2 - name: clippy ${{ matrix.package }} - if: matrix.package != 'tauri-plugin-sql' run: cargo clippy --package ${{ matrix.package }} --all-targets -- -D warnings - - name: clippy ${{ matrix.package }} mysql - if: matrix.package == 'tauri-plugin-sql' - run: cargo clippy --package ${{ matrix.package }} --all-targets --no-default-features --features mysql -- -D warnings - - - 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 + - name: clippy ${{ matrix.package }} --all-features + run: cargo clippy --package ${{ matrix.package }} --all-targets --all-features -- -D warnings diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 75b1e55fc..34af5e2c8 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -215,21 +215,9 @@ jobs: run: cargo +stable install cross --git https://github.com/cross-rs/cross - 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 - name: test ${{ matrix.package }} if: matrix.package == 'tauri-plugin-http' run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets - - - name: test ${{ matrix.package }} sqlite - if: matrix.package == 'tauri-plugin-sql' - run: ${{ matrix.platform.runner }} ${{ matrix.platform.command }} --package ${{ matrix.package }} --target ${{ matrix.platform.target }} --all-targets --features sqlite - - - name: test ${{ matrix.package }} mysql - if: matrix.package == 'tauri-plugin-sql' - 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 diff --git a/plugins/localhost/src/lib.rs b/plugins/localhost/src/lib.rs index f5f99fe4d..a0c4c794f 100644 --- a/plugins/localhost/src/lib.rs +++ b/plugins/localhost/src/lib.rs @@ -74,7 +74,7 @@ impl Builder { let asset_resolver = app.asset_resolver(); std::thread::spawn(move || { let server = - Server::http(&format!("localhost:{port}")).expect("Unable to spawn server"); + Server::http(format!("localhost:{port}")).expect("Unable to spawn server"); for req in server.incoming_requests() { let path = req .url() diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index bfcfc99ef..4f4db76f5 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -40,3 +40,4 @@ indexmap = { version = "2", features = ["serde"] } sqlite = ["sqlx/sqlite", "sqlx/runtime-tokio"] mysql = ["sqlx/mysql", "sqlx/runtime-tokio-rustls"] postgres = ["sqlx/postgres", "sqlx/runtime-tokio-rustls"] +# TODO: bundled-cipher etc diff --git a/plugins/sql/src/commands.rs b/plugins/sql/src/commands.rs new file mode 100644 index 000000000..8cd90e9c5 --- /dev/null +++ b/plugins/sql/src/commands.rs @@ -0,0 +1,82 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use indexmap::IndexMap; +use serde_json::Value as JsonValue; +use sqlx::migrate::Migrator; +use tauri::{command, AppHandle, Runtime, State}; + +use crate::{DbInstances, DbPool, Error, LastInsertId, Migrations}; + +#[command] +pub(crate) async fn load( + app: AppHandle, + db_instances: State<'_, DbInstances>, + migrations: State<'_, Migrations>, + db: String, +) -> Result { + let pool = DbPool::connect(&db, &app).await?; + + if let Some(migrations) = migrations.0.lock().await.remove(&db) { + let migrator = Migrator::new(migrations).await?; + pool.migrate(&migrator).await?; + } + + db_instances.0.lock().await.insert(db.clone(), pool); + + Ok(db) +} + +/// Allows the database connection(s) to be closed; if no database +/// name is passed in then _all_ database connection pools will be +/// shut down. +#[command] +pub(crate) async fn close( + db_instances: State<'_, DbInstances>, + db: Option, +) -> Result { + let mut instances = db_instances.0.lock().await; + + let pools = if let Some(db) = db { + vec![db] + } else { + instances.keys().cloned().collect() + }; + + for pool in pools { + let db = instances + .get_mut(&pool) + .ok_or(Error::DatabaseNotLoaded(pool))?; + db.close().await; + } + + Ok(true) +} + +/// Execute a command against the database +#[command] +pub(crate) async fn execute( + db_instances: State<'_, DbInstances>, + db: String, + query: String, + values: Vec, +) -> Result<(u64, LastInsertId), crate::Error> { + let mut instances = db_instances.0.lock().await; + + let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; + db.execute(query, values).await +} + +#[command] +pub(crate) async fn select( + db_instances: State<'_, DbInstances>, + db: String, + query: String, + values: Vec, +) -> Result>, crate::Error> { + let mut instances = db_instances.0.lock().await; + + let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; + db.select(query, values).await +} diff --git a/plugins/sql/src/decode/mod.rs b/plugins/sql/src/decode/mod.rs index 50fb3c78d..0a2d2cdda 100644 --- a/plugins/sql/src/decode/mod.rs +++ b/plugins/sql/src/decode/mod.rs @@ -3,17 +3,8 @@ // SPDX-License-Identifier: MIT #[cfg(feature = "mysql")] -mod mysql; +pub(crate) mod mysql; #[cfg(feature = "postgres")] -mod postgres; +pub(crate) mod postgres; #[cfg(feature = "sqlite")] -mod sqlite; - -#[cfg(feature = "mysql")] -pub(crate) use mysql::to_json; - -#[cfg(feature = "postgres")] -pub(crate) use postgres::to_json; - -#[cfg(feature = "sqlite")] -pub(crate) use sqlite::to_json; +pub(crate) mod sqlite; diff --git a/plugins/sql/src/error.rs b/plugins/sql/src/error.rs new file mode 100644 index 000000000..5ac845b8a --- /dev/null +++ b/plugins/sql/src/error.rs @@ -0,0 +1,28 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +use serde::{Serialize, Serializer}; + +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error(transparent)] + Sql(#[from] sqlx::Error), + #[error(transparent)] + Migration(#[from] sqlx::migrate::MigrateError), + #[error("invalid connection url: {0}")] + InvalidDbUrl(String), + #[error("database {0} not loaded")] + DatabaseNotLoaded(String), + #[error("unsupported datatype: {0}")] + UnsupportedDatatype(String), +} + +impl Serialize for Error { + fn serialize(&self, serializer: S) -> std::result::Result + where + S: Serializer, + { + serializer.serialize_str(self.to_string().as_ref()) + } +} diff --git a/plugins/sql/src/lib.rs b/plugins/sql/src/lib.rs index f25ede21d..ec9362bff 100644 --- a/plugins/sql/src/lib.rs +++ b/plugins/sql/src/lib.rs @@ -11,20 +11,168 @@ html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" )] -#[cfg(any( - all(feature = "sqlite", feature = "mysql"), - all(feature = "sqlite", feature = "postgres"), - all(feature = "mysql", feature = "postgres") -))] -compile_error!( - "Only one database driver can be enabled. Set the feature flag for the driver of your choice." -); - -#[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] -compile_error!( - "Database driver not defined. Please set the feature flag for the driver of your choice." -); - +mod commands; mod decode; -mod plugin; -pub use plugin::*; +mod error; +mod wrapper; + +pub use error::Error; +pub use wrapper::DbPool; + +use futures_core::future::BoxFuture; +use serde::{Deserialize, Serialize}; +use sqlx::{ + error::BoxDynError, + migrate::{Migration as SqlxMigration, MigrationSource, MigrationType, Migrator}, +}; +use tauri::{ + plugin::{Builder as PluginBuilder, TauriPlugin}, + Manager, RunEvent, Runtime, +}; +use tokio::sync::Mutex; + +use std::collections::HashMap; + +#[derive(Default)] +pub struct DbInstances(pub Mutex>); + +#[derive(Serialize)] +#[serde(untagged)] +pub(crate) enum LastInsertId { + #[cfg(feature = "sqlite")] + Sqlite(i64), + #[cfg(feature = "mysql")] + MySql(u64), + #[cfg(feature = "postgres")] + Postgres(()), + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + None, +} + +struct Migrations(Mutex>); + +#[derive(Default, Clone, Deserialize)] +pub struct PluginConfig { + #[serde(default)] + preload: Vec, +} + +#[derive(Debug)] +pub enum MigrationKind { + Up, + Down, +} + +impl From for MigrationType { + fn from(kind: MigrationKind) -> Self { + match kind { + MigrationKind::Up => Self::ReversibleUp, + MigrationKind::Down => Self::ReversibleDown, + } + } +} + +/// A migration definition. +#[derive(Debug)] +pub struct Migration { + pub version: i64, + pub description: &'static str, + pub sql: &'static str, + pub kind: MigrationKind, +} + +#[derive(Debug)] +struct MigrationList(Vec); + +impl MigrationSource<'static> for MigrationList { + fn resolve(self) -> BoxFuture<'static, std::result::Result, BoxDynError>> { + Box::pin(async move { + let mut migrations = Vec::new(); + for migration in self.0 { + if matches!(migration.kind, MigrationKind::Up) { + migrations.push(SqlxMigration::new( + migration.version, + migration.description.into(), + migration.kind.into(), + migration.sql.into(), + false, + )); + } + } + Ok(migrations) + }) + } +} + +/// Tauri SQL plugin builder. +#[derive(Default)] +pub struct Builder { + migrations: Option>, +} + +impl Builder { + pub fn new() -> Self { + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + eprintln!("No sql driver enabled. Please set at least one of the \"sqlite\", \"mysql\", \"postgres\" feature flags."); + + Self::default() + } + + /// Add migrations to a database. + #[must_use] + pub fn add_migrations(mut self, db_url: &str, migrations: Vec) -> Self { + self.migrations + .get_or_insert(Default::default()) + .insert(db_url.to_string(), MigrationList(migrations)); + self + } + + pub fn build(mut self) -> TauriPlugin> { + PluginBuilder::>::new("sql") + .invoke_handler(tauri::generate_handler![ + commands::load, + commands::execute, + commands::select, + commands::close + ]) + .setup(|app, api| { + let config = api.config().clone().unwrap_or_default(); + + tauri::async_runtime::block_on(async move { + let instances = DbInstances::default(); + let mut lock = instances.0.lock().await; + + for db in config.preload { + let pool = DbPool::connect(&db, app).await?; + + if let Some(migrations) = self.migrations.as_mut().unwrap().remove(&db) { + let migrator = Migrator::new(migrations).await?; + pool.migrate(&migrator).await?; + } + + lock.insert(db, pool); + } + drop(lock); + + app.manage(instances); + app.manage(Migrations(Mutex::new( + self.migrations.take().unwrap_or_default(), + ))); + + Ok(()) + }) + }) + .on_event(|app, event| { + if let RunEvent::Exit = event { + tauri::async_runtime::block_on(async move { + let instances = &*app.state::(); + let instances = instances.0.lock().await; + for value in instances.values() { + value.close().await; + } + }); + } + }) + .build() + } +} diff --git a/plugins/sql/src/plugin.rs b/plugins/sql/src/plugin.rs deleted file mode 100644 index 63f8e1838..000000000 --- a/plugins/sql/src/plugin.rs +++ /dev/null @@ -1,343 +0,0 @@ -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -use futures_core::future::BoxFuture; -use serde::{ser::Serializer, Deserialize, Serialize}; -use serde_json::Value as JsonValue; -use sqlx::{ - error::BoxDynError, - migrate::{ - MigrateDatabase, Migration as SqlxMigration, MigrationSource, MigrationType, Migrator, - }, - Column, Pool, Row, -}; -use tauri::{ - command, - plugin::{Builder as PluginBuilder, TauriPlugin}, - AppHandle, Manager, RunEvent, Runtime, State, -}; -use tokio::sync::Mutex; - -use indexmap::IndexMap; -use std::collections::HashMap; - -#[cfg(feature = "sqlite")] -use std::{fs::create_dir_all, path::PathBuf}; - -#[cfg(feature = "sqlite")] -type Db = sqlx::sqlite::Sqlite; -#[cfg(feature = "mysql")] -type Db = sqlx::mysql::MySql; -#[cfg(feature = "postgres")] -type Db = sqlx::postgres::Postgres; - -#[cfg(feature = "sqlite")] -type LastInsertId = i64; -#[cfg(not(feature = "sqlite"))] -type LastInsertId = u64; - -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error(transparent)] - Sql(#[from] sqlx::Error), - #[error(transparent)] - Migration(#[from] sqlx::migrate::MigrateError), - #[error("database {0} not loaded")] - DatabaseNotLoaded(String), - #[error("unsupported datatype: {0}")] - UnsupportedDatatype(String), -} - -impl Serialize for Error { - fn serialize(&self, serializer: S) -> std::result::Result - where - S: Serializer, - { - serializer.serialize_str(self.to_string().as_ref()) - } -} - -type Result = std::result::Result; - -#[cfg(feature = "sqlite")] -/// Resolves the App's **file path** from the `AppHandle` context -/// object -fn app_path(app: &AppHandle) -> PathBuf { - app.path().app_config_dir().expect("No App path was found!") -} - -#[cfg(feature = "sqlite")] -/// Maps the user supplied DB connection string to a connection string -/// with a fully qualified file path to the App's designed "app_path" -fn path_mapper(mut app_path: PathBuf, connection_string: &str) -> String { - app_path.push( - connection_string - .split_once(':') - .expect("Couldn't parse the connection string for DB!") - .1, - ); - - format!( - "sqlite:{}", - app_path - .to_str() - .expect("Problem creating fully qualified path to Database file!") - ) -} - -#[derive(Default)] -pub struct DbInstances(pub Mutex>>); - -struct Migrations(Mutex>); - -#[derive(Default, Clone, Deserialize)] -pub struct PluginConfig { - #[serde(default)] - preload: Vec, -} - -#[derive(Debug)] -pub enum MigrationKind { - Up, - Down, -} - -impl From for MigrationType { - fn from(kind: MigrationKind) -> Self { - match kind { - MigrationKind::Up => Self::ReversibleUp, - MigrationKind::Down => Self::ReversibleDown, - } - } -} - -/// A migration definition. -#[derive(Debug)] -pub struct Migration { - pub version: i64, - pub description: &'static str, - pub sql: &'static str, - pub kind: MigrationKind, -} - -#[derive(Debug)] -struct MigrationList(Vec); - -impl MigrationSource<'static> for MigrationList { - fn resolve(self) -> BoxFuture<'static, std::result::Result, BoxDynError>> { - Box::pin(async move { - let mut migrations = Vec::new(); - for migration in self.0 { - if matches!(migration.kind, MigrationKind::Up) { - migrations.push(SqlxMigration::new( - migration.version, - migration.description.into(), - migration.kind.into(), - migration.sql.into(), - false, - )); - } - } - Ok(migrations) - }) - } -} - -#[command] -async fn load( - #[allow(unused_variables)] app: AppHandle, - db_instances: State<'_, DbInstances>, - migrations: State<'_, Migrations>, - db: String, -) -> Result { - #[cfg(feature = "sqlite")] - let fqdb = path_mapper(app_path(&app), &db); - #[cfg(not(feature = "sqlite"))] - let fqdb = db.clone(); - - #[cfg(feature = "sqlite")] - create_dir_all(app_path(&app)).expect("Problem creating App directory!"); - - if !Db::database_exists(&fqdb).await.unwrap_or(false) { - Db::create_database(&fqdb).await?; - } - let pool = Pool::connect(&fqdb).await?; - - if let Some(migrations) = migrations.0.lock().await.remove(&db) { - let migrator = Migrator::new(migrations).await?; - migrator.run(&pool).await?; - } - - db_instances.0.lock().await.insert(db.clone(), pool); - Ok(db) -} - -/// Allows the database connection(s) to be closed; if no database -/// name is passed in then _all_ database connection pools will be -/// shut down. -#[command] -async fn close(db_instances: State<'_, DbInstances>, db: Option) -> Result { - let mut instances = db_instances.0.lock().await; - - let pools = if let Some(db) = db { - vec![db] - } else { - instances.keys().cloned().collect() - }; - - for pool in pools { - let db = instances - .get_mut(&pool) // - .ok_or(Error::DatabaseNotLoaded(pool))?; - db.close().await; - } - - Ok(true) -} - -/// Execute a command against the database -#[command] -async fn execute( - db_instances: State<'_, DbInstances>, - db: String, - query: String, - values: Vec, -) -> Result<(u64, LastInsertId)> { - let mut instances = db_instances.0.lock().await; - - let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; - let mut query = sqlx::query(&query); - for value in values { - if value.is_null() { - query = query.bind(None::); - } else if value.is_string() { - query = query.bind(value.as_str().unwrap().to_owned()) - } else if let Some(number) = value.as_number() { - query = query.bind(number.as_f64().unwrap_or_default()) - } else { - query = query.bind(value); - } - } - let result = query.execute(&*db).await?; - #[cfg(feature = "sqlite")] - let r = Ok((result.rows_affected(), result.last_insert_rowid())); - #[cfg(feature = "mysql")] - let r = Ok((result.rows_affected(), result.last_insert_id())); - #[cfg(feature = "postgres")] - let r = Ok((result.rows_affected(), 0)); - r -} - -#[command] -async fn select( - db_instances: State<'_, DbInstances>, - db: String, - query: String, - values: Vec, -) -> Result>> { - let mut instances = db_instances.0.lock().await; - let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; - let mut query = sqlx::query(&query); - for value in values { - if value.is_null() { - query = query.bind(None::); - } else if value.is_string() { - query = query.bind(value.as_str().unwrap().to_owned()) - } else if let Some(number) = value.as_number() { - query = query.bind(number.as_f64().unwrap_or_default()) - } else { - query = query.bind(value); - } - } - let rows = query.fetch_all(&*db).await?; - let mut values = Vec::new(); - for row in rows { - let mut value = IndexMap::default(); - for (i, column) in row.columns().iter().enumerate() { - let v = row.try_get_raw(i)?; - - let v = crate::decode::to_json(v)?; - - value.insert(column.name().to_string(), v); - } - - values.push(value); - } - - Ok(values) -} - -/// Tauri SQL plugin builder. -#[derive(Default)] -pub struct Builder { - migrations: Option>, -} - -impl Builder { - pub fn new() -> Self { - Self::default() - } - - /// Add migrations to a database. - #[must_use] - pub fn add_migrations(mut self, db_url: &str, migrations: Vec) -> Self { - self.migrations - .get_or_insert(Default::default()) - .insert(db_url.to_string(), MigrationList(migrations)); - self - } - - pub fn build(mut self) -> TauriPlugin> { - PluginBuilder::>::new("sql") - .invoke_handler(tauri::generate_handler![load, execute, select, close]) - .setup(|app, api| { - let config = api.config().clone().unwrap_or_default(); - - #[cfg(feature = "sqlite")] - create_dir_all(app_path(app)).expect("problems creating App directory!"); - - tauri::async_runtime::block_on(async move { - let instances = DbInstances::default(); - let mut lock = instances.0.lock().await; - for db in config.preload { - #[cfg(feature = "sqlite")] - let fqdb = path_mapper(app_path(app), &db); - #[cfg(not(feature = "sqlite"))] - let fqdb = db.clone(); - - if !Db::database_exists(&fqdb).await.unwrap_or(false) { - Db::create_database(&fqdb).await?; - } - let pool = Pool::connect(&fqdb).await?; - - if let Some(migrations) = self.migrations.as_mut().unwrap().remove(&db) { - let migrator = Migrator::new(migrations).await?; - migrator.run(&pool).await?; - } - lock.insert(db, pool); - } - drop(lock); - - app.manage(instances); - app.manage(Migrations(Mutex::new( - self.migrations.take().unwrap_or_default(), - ))); - - Ok(()) - }) - }) - .on_event(|app, event| { - if let RunEvent::Exit = event { - tauri::async_runtime::block_on(async move { - let instances = &*app.state::(); - let instances = instances.0.lock().await; - for value in instances.values() { - value.close().await; - } - }); - } - }) - .build() - } -} diff --git a/plugins/sql/src/wrapper.rs b/plugins/sql/src/wrapper.rs new file mode 100644 index 000000000..90631dac7 --- /dev/null +++ b/plugins/sql/src/wrapper.rs @@ -0,0 +1,328 @@ +// Copyright 2019-2023 Tauri Programme within The Commons Conservancy +// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: MIT + +#[cfg(feature = "sqlite")] +use std::fs::create_dir_all; + +use indexmap::IndexMap; +use serde_json::Value as JsonValue; +#[cfg(any(feature = "sqlite", feature = "mysql", feature = "postgres"))] +use sqlx::{migrate::MigrateDatabase, Column, Executor, Pool, Row}; +#[cfg(any(feature = "sqlite", feature = "mysql", feature = "postgres"))] +use tauri::Manager; +use tauri::{AppHandle, Runtime}; + +#[cfg(feature = "mysql")] +use sqlx::MySql; +#[cfg(feature = "postgres")] +use sqlx::Postgres; +#[cfg(feature = "sqlite")] +use sqlx::Sqlite; + +use crate::LastInsertId; + +pub enum DbPool { + #[cfg(feature = "sqlite")] + Sqlite(Pool), + #[cfg(feature = "mysql")] + MySql(Pool), + #[cfg(feature = "postgres")] + Postgres(Pool), + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + None, +} + +// public methods +/* impl DbPool { + /// Get the inner Sqlite Pool. Returns None for MySql and Postgres pools. + #[cfg(feature = "sqlite")] + pub fn sqlite(&self) -> Option<&Pool> { + match self { + DbPool::Sqlite(pool) => Some(pool), + _ => None, + } + } + + /// Get the inner MySql Pool. Returns None for Sqlite and Postgres pools. + #[cfg(feature = "mysql")] + pub fn mysql(&self) -> Option<&Pool> { + match self { + DbPool::MySql(pool) => Some(pool), + _ => None, + } + } + + /// Get the inner Postgres Pool. Returns None for MySql and Sqlite pools. + #[cfg(feature = "postgres")] + pub fn postgres(&self) -> Option<&Pool> { + match self { + DbPool::Postgres(pool) => Some(pool), + _ => None, + } + } +} */ + +// private methods +impl DbPool { + pub(crate) async fn connect( + conn_url: &str, + _app: &AppHandle, + ) -> Result { + match conn_url + .split_once(':') + .ok_or_else(|| crate::Error::InvalidDbUrl(conn_url.to_string()))? + .0 + { + #[cfg(feature = "sqlite")] + "sqlite" => { + let app_path = _app + .path() + .app_config_dir() + .expect("No App config path was found!"); + + create_dir_all(&app_path).expect("Couldn't create app config dir"); + + let conn_url = &path_mapper(app_path, conn_url); + + if !Sqlite::database_exists(conn_url).await.unwrap_or(false) { + Sqlite::create_database(conn_url).await?; + } + Ok(Self::Sqlite(Pool::connect(conn_url).await?)) + } + #[cfg(feature = "mysql")] + "mysql" => { + if !MySql::database_exists(conn_url).await.unwrap_or(false) { + MySql::create_database(conn_url).await?; + } + Ok(Self::MySql(Pool::connect(conn_url).await?)) + } + #[cfg(feature = "postgres")] + "postgres" => { + if !Postgres::database_exists(conn_url).await.unwrap_or(false) { + Postgres::create_database(conn_url).await?; + } + Ok(Self::Postgres(Pool::connect(conn_url).await?)) + } + _ => Err(crate::Error::InvalidDbUrl(conn_url.to_string())), + } + } + + pub(crate) async fn migrate( + &self, + _migrator: &sqlx::migrate::Migrator, + ) -> Result<(), crate::Error> { + match self { + #[cfg(feature = "sqlite")] + DbPool::Sqlite(pool) => _migrator.run(pool).await?, + #[cfg(feature = "mysql")] + DbPool::MySql(pool) => _migrator.run(pool).await?, + #[cfg(feature = "postgres")] + DbPool::Postgres(pool) => _migrator.run(pool).await?, + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + DbPool::None => (), + } + Ok(()) + } + + pub(crate) async fn close(&self) { + match self { + #[cfg(feature = "sqlite")] + DbPool::Sqlite(pool) => pool.close().await, + #[cfg(feature = "mysql")] + DbPool::MySql(pool) => pool.close().await, + #[cfg(feature = "postgres")] + DbPool::Postgres(pool) => pool.close().await, + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + DbPool::None => (), + } + } + + pub(crate) async fn execute( + &self, + _query: String, + _values: Vec, + ) -> Result<(u64, LastInsertId), crate::Error> { + Ok(match self { + #[cfg(feature = "sqlite")] + DbPool::Sqlite(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let result = pool.execute(query).await?; + ( + result.rows_affected(), + LastInsertId::Sqlite(result.last_insert_rowid()), + ) + } + #[cfg(feature = "mysql")] + DbPool::MySql(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let result = pool.execute(query).await?; + ( + result.rows_affected(), + LastInsertId::MySql(result.last_insert_id()), + ) + } + #[cfg(feature = "postgres")] + DbPool::Postgres(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let result = pool.execute(query).await?; + (result.rows_affected(), LastInsertId::Postgres(())) + } + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + DbPool::None => (0, LastInsertId::None), + }) + } + + pub(crate) async fn select( + &self, + _query: String, + _values: Vec, + ) -> Result>, crate::Error> { + Ok(match self { + #[cfg(feature = "sqlite")] + DbPool::Sqlite(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let rows = pool.fetch_all(query).await?; + let mut values = Vec::new(); + for row in rows { + let mut value = IndexMap::default(); + for (i, column) in row.columns().iter().enumerate() { + let v = row.try_get_raw(i)?; + + let v = crate::decode::sqlite::to_json(v)?; + + value.insert(column.name().to_string(), v); + } + + values.push(value); + } + values + } + #[cfg(feature = "mysql")] + DbPool::MySql(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let rows = pool.fetch_all(query).await?; + let mut values = Vec::new(); + for row in rows { + let mut value = IndexMap::default(); + for (i, column) in row.columns().iter().enumerate() { + let v = row.try_get_raw(i)?; + + let v = crate::decode::mysql::to_json(v)?; + + value.insert(column.name().to_string(), v); + } + + values.push(value); + } + values + } + #[cfg(feature = "postgres")] + DbPool::Postgres(pool) => { + let mut query = sqlx::query(&_query); + for value in _values { + if value.is_null() { + query = query.bind(None::); + } else if value.is_string() { + query = query.bind(value.as_str().unwrap().to_owned()) + } else if let Some(number) = value.as_number() { + query = query.bind(number.as_f64().unwrap_or_default()) + } else { + query = query.bind(value); + } + } + let rows = pool.fetch_all(query).await?; + let mut values = Vec::new(); + for row in rows { + let mut value = IndexMap::default(); + for (i, column) in row.columns().iter().enumerate() { + let v = row.try_get_raw(i)?; + + let v = crate::decode::postgres::to_json(v)?; + + value.insert(column.name().to_string(), v); + } + + values.push(value); + } + values + } + #[cfg(not(any(feature = "sqlite", feature = "mysql", feature = "postgres")))] + DbPool::None => Vec::new(), + }) + } +} + +#[cfg(feature = "sqlite")] +/// Maps the user supplied DB connection string to a connection string +/// with a fully qualified file path to the App's designed "app_path" +fn path_mapper(mut app_path: std::path::PathBuf, connection_string: &str) -> String { + app_path.push( + connection_string + .split_once(':') + .expect("Couldn't parse the connection string for DB!") + .1, + ); + + format!( + "sqlite:{}", + app_path + .to_str() + .expect("Problem creating fully qualified path to Database file!") + ) +} From 2f7e32b5e07454d6c0cf3ab03f8af8da74c4a8a7 Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Tue, 1 Oct 2024 08:15:22 -0500 Subject: [PATCH 600/643] [positioner] handleIconState in JS (#1822) * [positioner] handleIconState in JS * update readme * fix change file version * fixes --------- Co-authored-by: Lucas Nogueira --- .changes/positioner-v2-handleIconState.md | 6 ++++ plugins/barcode-scanner/api-iife.js | 2 +- plugins/positioner/README.md | 35 +++++++++++++++++++ plugins/positioner/api-iife.js | 2 +- plugins/positioner/guest-js/index.ts | 12 +++++++ .../commands/set_tray_icon_state.toml | 8 +++++ .../permissions/autogenerated/reference.md | 14 ++++++++ plugins/positioner/permissions/default.toml | 2 +- .../permissions/schemas/schema.json | 5 +++ plugins/positioner/src/lib.rs | 21 +++++++++-- plugins/window-state/api-iife.js | 2 +- 11 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 .changes/positioner-v2-handleIconState.md create mode 100644 plugins/positioner/permissions/autogenerated/commands/set_tray_icon_state.toml diff --git a/.changes/positioner-v2-handleIconState.md b/.changes/positioner-v2-handleIconState.md new file mode 100644 index 000000000..e43c84d87 --- /dev/null +++ b/.changes/positioner-v2-handleIconState.md @@ -0,0 +1,6 @@ +--- +"positioner": patch +"positioner-js": patch +--- + +`handleIconState` function for use in JavaScript event handlers. This allows one to update the TrayIcon state through JavaScript and fully create and handle the TrayIcon without requiring Rust (and the side-effect of creating a TrayIcon). diff --git a/plugins/barcode-scanner/api-iife.js b/plugins/barcode-scanner/api-iife.js index cd6f1193c..620b59a70 100644 --- a/plugins/barcode-scanner/api-iife.js +++ b/plugins/barcode-scanner/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_BARCODE_SCANNER__=function(n){"use strict";async function e(n,e={},r){return window.__TAURI_INTERNALS__.invoke(n,e,r)}var r;return"function"==typeof SuppressedError&&SuppressedError,n.Format=void 0,(r=n.Format||(n.Format={})).QRCode="QR_CODE",r.UPC_A="UPC_A",r.UPC_E="UPC_E",r.EAN8="EAN_8",r.EAN13="EAN_13",r.Code39="CODE_39",r.Code93="CODE_93",r.Code128="CODE_128",r.Codabar="CODABAR",r.ITF="ITF",r.Aztec="AZTEC",r.DataMatrix="DATA_MATRIX",r.PDF417="PDF_417",n.cancel=async function(){await e("plugin:barcode-scanner|cancel")},n.checkPermissions=async function(){return await async function(n){return e(`plugin:${n}|request_permissions`)}("barcode-scanner").then((n=>n.camera))},n.openAppSettings=async function(){await e("plugin:barcode-scanner|open_app_settings")},n.requestPermissions=async function(){return await async function(n){return e(`plugin:${n}|check_permissions`)}("barcode-scanner").then((n=>n.camera))},n.scan=async function(n){return await e("plugin:barcode-scanner|scan",{...n})},n}({});Object.defineProperty(window.__TAURI__,"barcodeScanner",{value:__TAURI_PLUGIN_BARCODE_SCANNER__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_BARCODE_SCANNER__=function(n){"use strict";async function e(n,e={},r){return window.__TAURI_INTERNALS__.invoke(n,e,r)}var r;return"function"==typeof SuppressedError&&SuppressedError,n.Format=void 0,(r=n.Format||(n.Format={})).QRCode="QR_CODE",r.UPC_A="UPC_A",r.UPC_E="UPC_E",r.EAN8="EAN_8",r.EAN13="EAN_13",r.Code39="CODE_39",r.Code93="CODE_93",r.Code128="CODE_128",r.Codabar="CODABAR",r.ITF="ITF",r.Aztec="AZTEC",r.DataMatrix="DATA_MATRIX",r.PDF417="PDF_417",n.cancel=async function(){await e("plugin:barcode-scanner|cancel")},n.checkPermissions=async function(){return await async function(n){return e(`plugin:${n}|check_permissions`)}("barcode-scanner").then((n=>n.camera))},n.openAppSettings=async function(){await e("plugin:barcode-scanner|open_app_settings")},n.requestPermissions=async function(){return await async function(n){return e(`plugin:${n}|request_permissions`)}("barcode-scanner").then((n=>n.camera))},n.scan=async function(n){return await e("plugin:barcode-scanner|scan",{...n})},n}({});Object.defineProperty(window.__TAURI__,"barcodeScanner",{value:__TAURI_PLUGIN_BARCODE_SCANNER__})} diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index db9bab5ab..3c8ac1d91 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -58,6 +58,7 @@ fn main() { .plugin(tauri_plugin_positioner::init()) // This is required to get tray-relative positions to work .setup(|app| { + // note that this will create a new TrayIcon TrayIconBuilder::new() .on_tray_icon_event(|app, event| { tauri_plugin_positioner::on_tray_event(app.app_handle(), &event); @@ -70,6 +71,40 @@ fn main() { } ``` +Alternatively, you may handle the tray events through JavaScript. Register the plugin as previously noted. + +```rust +fn main() { + tauri::Builder::default() + .plugin(tauri_plugin_positioner::init()) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} +``` + +And in JavaScript, the `action` passed to the TrayIcon should include the handler. + +```javascript +import { + moveWindow, + Position, + handleIconState, +} from "@tauri-apps/plugin-positioner"; + +const action = async (event: TrayIconEvent) => { + // add the handle in the action to update the state + await handleIconState(event); + if ("click" in event) { + const { click } = event; + // note this option requires enabling the `tray-icon` + // feature in the Cargo.toml + await moveWindow(Position.TrayLeft); + } +}; + +const tray = await TrayIcon.new({ id: "main", action }); +``` + Afterwards all the plugin's APIs are available through the JavaScript guest bindings: ```javascript diff --git a/plugins/positioner/api-iife.js b/plugins/positioner/api-iife.js index d0c8ba69c..5504ebe87 100644 --- a/plugins/positioner/api-iife.js +++ b/plugins/positioner/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_POSITIONER__=function(t){"use strict";var o;return"function"==typeof SuppressedError&&SuppressedError,t.Position=void 0,(o=t.Position||(t.Position={}))[o.TopLeft=0]="TopLeft",o[o.TopRight=1]="TopRight",o[o.BottomLeft=2]="BottomLeft",o[o.BottomRight=3]="BottomRight",o[o.TopCenter=4]="TopCenter",o[o.BottomCenter=5]="BottomCenter",o[o.LeftCenter=6]="LeftCenter",o[o.RightCenter=7]="RightCenter",o[o.Center=8]="Center",o[o.TrayLeft=9]="TrayLeft",o[o.TrayBottomLeft=10]="TrayBottomLeft",o[o.TrayRight=11]="TrayRight",o[o.TrayBottomRight=12]="TrayBottomRight",o[o.TrayCenter=13]="TrayCenter",o[o.TrayBottomCenter=14]="TrayBottomCenter",t.moveWindow=async function(t){await async function(t,o={},e){return window.__TAURI_INTERNALS__.invoke(t,o,e)}("plugin:positioner|move_window",{position:t})},t}({});Object.defineProperty(window.__TAURI__,"positioner",{value:__TAURI_PLUGIN_POSITIONER__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_POSITIONER__=function(t){"use strict";async function o(t,o={},e){return window.__TAURI_INTERNALS__.invoke(t,o,e)}var e;return"function"==typeof SuppressedError&&SuppressedError,t.Position=void 0,(e=t.Position||(t.Position={}))[e.TopLeft=0]="TopLeft",e[e.TopRight=1]="TopRight",e[e.BottomLeft=2]="BottomLeft",e[e.BottomRight=3]="BottomRight",e[e.TopCenter=4]="TopCenter",e[e.BottomCenter=5]="BottomCenter",e[e.LeftCenter=6]="LeftCenter",e[e.RightCenter=7]="RightCenter",e[e.Center=8]="Center",e[e.TrayLeft=9]="TrayLeft",e[e.TrayBottomLeft=10]="TrayBottomLeft",e[e.TrayRight=11]="TrayRight",e[e.TrayBottomRight=12]="TrayBottomRight",e[e.TrayCenter=13]="TrayCenter",e[e.TrayBottomCenter=14]="TrayBottomCenter",t.handleIconState=async function(t){await async function(t){await o("plugin:positioner|set_tray_icon_state",{position:t.position,size:t.size})}(t.rect)},t.moveWindow=async function(t){await o("plugin:positioner|move_window",{position:t})},t}({});Object.defineProperty(window.__TAURI__,"positioner",{value:__TAURI_PLUGIN_POSITIONER__})} diff --git a/plugins/positioner/guest-js/index.ts b/plugins/positioner/guest-js/index.ts index 449e3298b..319f80db6 100644 --- a/plugins/positioner/guest-js/index.ts +++ b/plugins/positioner/guest-js/index.ts @@ -4,6 +4,7 @@ // SPDX-License-Identifier: MIT import { invoke } from '@tauri-apps/api/core' +import type { TrayIconEvent } from '@tauri-apps/api/tray' /** * Well known window positions. @@ -37,3 +38,14 @@ export async function moveWindow(to: Position): Promise { position: to }) } + +export async function handleIconState(event: TrayIconEvent): Promise { + await invokeSetTrayIconState(event.rect) +} + +async function invokeSetTrayIconState(rect: TrayIconEvent['rect']) { + await invoke('plugin:positioner|set_tray_icon_state', { + position: rect.position, + size: rect.size + }) +} diff --git a/plugins/positioner/permissions/autogenerated/commands/set_tray_icon_state.toml b/plugins/positioner/permissions/autogenerated/commands/set_tray_icon_state.toml new file mode 100644 index 000000000..dcc8fa56e --- /dev/null +++ b/plugins/positioner/permissions/autogenerated/commands/set_tray_icon_state.toml @@ -0,0 +1,8 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-set-tray-icon-state" +description = "Enables the set_tray_icon_state to handle events and set the TrayIcon state." +commands.allow = ["set_tray_icon_state"] diff --git a/plugins/positioner/permissions/autogenerated/reference.md b/plugins/positioner/permissions/autogenerated/reference.md index f2a92c66f..324e4e56f 100644 --- a/plugins/positioner/permissions/autogenerated/reference.md +++ b/plugins/positioner/permissions/autogenerated/reference.md @@ -3,6 +3,7 @@ Allows the move_window command - `allow-move-window` +- `set-tray-icon-state` ## Permission Table @@ -36,6 +37,19 @@ Enables the move_window command without any pre-configured scope. Denies the move_window command without any pre-configured scope. + + + + + +
+ +`positioner:allow-set-tray-icon-state` + + + +Enables the set_tray_icon_state to handle events and set the TrayIcon state. +
diff --git a/plugins/positioner/permissions/default.toml b/plugins/positioner/permissions/default.toml index b0b3b3e29..8492711c5 100644 --- a/plugins/positioner/permissions/default.toml +++ b/plugins/positioner/permissions/default.toml @@ -1,4 +1,4 @@ "$schema" = "schemas/schema.json" [default] description = "Allows the move_window command" -permissions = ["allow-move-window"] +permissions = ["allow-move-window", "set-tray-icon-state"] diff --git a/plugins/positioner/permissions/schemas/schema.json b/plugins/positioner/permissions/schemas/schema.json index f55148878..5bddddde3 100644 --- a/plugins/positioner/permissions/schemas/schema.json +++ b/plugins/positioner/permissions/schemas/schema.json @@ -304,6 +304,11 @@ "type": "string", "const": "deny-move-window" }, + { + "description": "Enables the set_tray_icon_state to handle events and set the TrayIcon state.", + "type": "string", + "const": "allow-set-tray-icon-state" + }, { "description": "Allows the move_window command", "type": "string", diff --git a/plugins/positioner/src/lib.rs b/plugins/positioner/src/lib.rs index 96c243e5f..81bfaef83 100644 --- a/plugins/positioner/src/lib.rs +++ b/plugins/positioner/src/lib.rs @@ -63,10 +63,27 @@ async fn move_window(window: tauri::Window, position: Position) - window.move_window(position) } +#[cfg(feature = "tray-icon")] +#[tauri::command] +fn set_tray_icon_state( + app: AppHandle, + position: PhysicalPosition, + size: PhysicalSize, +) { + app.state::() + .0 + .lock() + .unwrap() + .replace((position, size)); +} + /// The Tauri plugin that exposes [`WindowExt::move_window`] to the webview. pub fn init() -> TauriPlugin { - let plugin = - plugin::Builder::new("positioner").invoke_handler(tauri::generate_handler![move_window]); + let plugin = plugin::Builder::new("positioner").invoke_handler(tauri::generate_handler![ + move_window, + #[cfg(feature = "tray-icon")] + set_tray_icon_state + ]); #[cfg(feature = "tray-icon")] let plugin = plugin.setup(|app_handle, _api| { diff --git a/plugins/window-state/api-iife.js b/plugins/window-state/api-iife.js index 7f36809b3..de6e96136 100644 --- a/plugins/window-state/api-iife.js +++ b/plugins/window-state/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOW_STATE__=function(e){"use strict";var t,i,n,a;function l(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function s(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}"function"==typeof SuppressedError&&SuppressedError;class r{get rid(){return function(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,i,n,a){if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,i)}(this,t,e)}async close(){return s("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class o{constructor(e,t){this.type="Logical",this.width=e,this.height=t}}class u{constructor(e,t){this.type="Physical",this.width=e,this.height=t}toLogical(e){return new o(this.width/e,this.height/e)}}class c{constructor(e,t){this.type="Logical",this.x=e,this.y=t}}class d{constructor(e,t){this.type="Physical",this.x=e,this.y=t}toLogical(e){return new c(this.x/e,this.y/e)}}async function w(e,t){await s("plugin:event|unlisten",{event:e,eventId:t})}async function h(e,t,i){var n;const a="string"==typeof(null==i?void 0:i.target)?{kind:"AnyLabel",label:i.target}:null!==(n=null==i?void 0:i.target)&&void 0!==n?n:{kind:"Any"};return s("plugin:event|listen",{event:e,target:a,handler:l(t)}).then((t=>async()=>w(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(i||(i={}));class b extends r{constructor(e){super(e)}static async new(e,t,i){return s("plugin:image|new",{rgba:p(e),width:t,height:i}).then((e=>new b(e)))}static async fromBytes(e){return s("plugin:image|from_bytes",{bytes:p(e)}).then((e=>new b(e)))}static async fromPath(e){return s("plugin:image|from_path",{path:e}).then((e=>new b(e)))}async rgba(){return s("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return s("plugin:image|size",{rid:this.rid})}}function p(e){return null==e?null:"string"==typeof e?e:e instanceof b?e.rid:e}!function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(n||(n={}));class y{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function g(){return new v(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function _(){return s("plugin:window|get_all_windows").then((e=>e.map((e=>new v(e,{skip:!0})))))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(a||(a={}));const m=["tauri://created","tauri://error"];class v{constructor(e,t={}){var i;this.label=e,this.listeners=Object.create(null),(null==t?void 0:t.skip)||s("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:null===(i=t.parent)||void 0===i?void 0:i.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static async getByLabel(e){var t;return null!==(t=(await _()).find((t=>t.label===e)))&&void 0!==t?t:null}static getCurrent(){return g()}static async getAll(){return _()}static async getFocusedWindow(){for(const e of await _())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:h(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:async function(e,t,i){return h(e,(i=>{w(e,i.id),t(i)}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(!m.includes(e))return async function(e,t){await s("plugin:event|emit",{event:e,payload:t})}(e,t);for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t})}async emitTo(e,t,i){if(!m.includes(t))return async function(e,t,i){const n="string"==typeof e?{kind:"AnyLabel",label:e}:e;await s("plugin:event|emit_to",{target:n,event:t,payload:i})}(e,t,i);for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:i})}_handleTauriEvent(e,t){return!!m.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return s("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return s("plugin:window|inner_position",{label:this.label}).then((({x:e,y:t})=>new d(e,t)))}async outerPosition(){return s("plugin:window|outer_position",{label:this.label}).then((({x:e,y:t})=>new d(e,t)))}async innerSize(){return s("plugin:window|inner_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async outerSize(){return s("plugin:window|outer_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async isFullscreen(){return s("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return s("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return s("plugin:window|is_maximized",{label:this.label})}async isFocused(){return s("plugin:window|is_focused",{label:this.label})}async isDecorated(){return s("plugin:window|is_decorated",{label:this.label})}async isResizable(){return s("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return s("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return s("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return s("plugin:window|is_closable",{label:this.label})}async isVisible(){return s("plugin:window|is_visible",{label:this.label})}async title(){return s("plugin:window|title",{label:this.label})}async theme(){return s("plugin:window|theme",{label:this.label})}async center(){return s("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===n.Critical?{type:"Critical"}:{type:"Informational"}),s("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return s("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return s("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return s("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return s("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return s("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return s("plugin:window|maximize",{label:this.label})}async unmaximize(){return s("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return s("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return s("plugin:window|minimize",{label:this.label})}async unminimize(){return s("plugin:window|unminimize",{label:this.label})}async show(){return s("plugin:window|show",{label:this.label})}async hide(){return s("plugin:window|hide",{label:this.label})}async close(){return s("plugin:window|close",{label:this.label})}async destroy(){return s("plugin:window|destroy",{label:this.label})}async setDecorations(e){return s("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return s("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return s("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return s("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return s("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return s("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return s("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");const t={};return t[`${e.type}`]={width:e.width,height:e.height},s("plugin:window|set_size",{label:this.label,value:t})}async setMinSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");let t=null;return e&&(t={},t[`${e.type}`]={width:e.width,height:e.height}),s("plugin:window|set_min_size",{label:this.label,value:t})}async setMaxSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");let t=null;return e&&(t={},t[`${e.type}`]={width:e.width,height:e.height}),s("plugin:window|set_max_size",{label:this.label,value:t})}async setSizeConstraints(e){function t(e){return e?{Logical:e}:null}return s("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:t(null==e?void 0:e.minWidth),minHeight:t(null==e?void 0:e.minHeight),maxWidth:t(null==e?void 0:e.maxWidth),maxHeight:t(null==e?void 0:e.maxHeight)}})}async setPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");const t={};return t[`${e.type}`]={x:e.x,y:e.y},s("plugin:window|set_position",{label:this.label,value:t})}async setFullscreen(e){return s("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return s("plugin:window|set_focus",{label:this.label})}async setIcon(e){return s("plugin:window|set_icon",{label:this.label,value:p(e)})}async setSkipTaskbar(e){return s("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return s("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return s("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return s("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");const t={};return t[`${e.type}`]={x:e.x,y:e.y},s("plugin:window|set_cursor_position",{label:this.label,value:t})}async setIgnoreCursorEvents(e){return s("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return s("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return s("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setProgressBar(e){return s("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return s("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return s("plugin:window|set_title_bar_style",{label:this.label,value:e})}async onResized(e){return this.listen(i.WINDOW_RESIZED,(t=>{var i;t.payload=(i=t.payload,new u(i.width,i.height)),e(t)}))}async onMoved(e){return this.listen(i.WINDOW_MOVED,(t=>{t.payload=I(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(i.WINDOW_CLOSE_REQUESTED,(async t=>{const i=new y(t);await e(i),i.isPreventDefault()||await this.destroy()}))}async onDragDropEvent(e){const t=await this.listen(i.DRAG_ENTER,(t=>{e({...t,payload:{type:"enter",paths:t.payload.paths,position:I(t.payload.position)}})})),n=await this.listen(i.DRAG_OVER,(t=>{e({...t,payload:{type:"over",position:I(t.payload.position)}})})),a=await this.listen(i.DRAG_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:I(t.payload.position)}})})),l=await this.listen(i.DRAG_LEAVE,(t=>{e({...t,payload:{type:"leave"}})}));return()=>{t(),a(),n(),l()}}async onFocusChanged(e){const t=await this.listen(i.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),n=await this.listen(i.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),n()}}async onScaleChanged(e){return this.listen(i.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(i.WINDOW_THEME_CHANGED,e)}}var f,E,D;function I(e){return new d(e.x,e.y)}async function S(e,t){await s("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(f||(f={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(E||(E={})),e.StateFlags=void 0,(D=e.StateFlags||(e.StateFlags={}))[D.SIZE=1]="SIZE",D[D.POSITION=2]="POSITION",D[D.MAXIMIZED=4]="MAXIMIZED",D[D.VISIBLE=8]="VISIBLE",D[D.DECORATIONS=16]="DECORATIONS",D[D.FULLSCREEN=32]="FULLSCREEN",D[D.ALL=63]="ALL",e.filename=async function(){return await s("plugin:window-state|filename")},e.restoreState=S,e.restoreStateCurrent=async function(e){await S(g().label,e)},e.saveWindowState=async function(e){await s("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOW_STATE__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOW_STATE__=function(e){"use strict";var t,i,n,a;function l(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function s(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}"function"==typeof SuppressedError&&SuppressedError;class r{get rid(){return function(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,i,n,a){if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,i)}(this,t,e)}async close(){return s("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class o{constructor(e,t){this.type="Logical",this.width=e,this.height=t}toPhysical(e){return new u(this.width*e,this.height*e)}}class u{constructor(e,t){this.type="Physical",this.width=e,this.height=t}toLogical(e){return new o(this.width/e,this.height/e)}}class c{constructor(e,t){this.type="Logical",this.x=e,this.y=t}toPhysical(e){return new d(this.x*e,this.x*e)}}class d{constructor(e,t){this.type="Physical",this.x=e,this.y=t}toLogical(e){return new c(this.x/e,this.y/e)}}async function h(e,t){await s("plugin:event|unlisten",{event:e,eventId:t})}async function w(e,t,i){var n;const a="string"==typeof(null==i?void 0:i.target)?{kind:"AnyLabel",label:i.target}:null!==(n=null==i?void 0:i.target)&&void 0!==n?n:{kind:"Any"};return s("plugin:event|listen",{event:e,target:a,handler:l(t)}).then((t=>async()=>h(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(i||(i={}));class b extends r{constructor(e){super(e)}static async new(e,t,i){return s("plugin:image|new",{rgba:y(e),width:t,height:i}).then((e=>new b(e)))}static async fromBytes(e){return s("plugin:image|from_bytes",{bytes:y(e)}).then((e=>new b(e)))}static async fromPath(e){return s("plugin:image|from_path",{path:e}).then((e=>new b(e)))}async rgba(){return s("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return s("plugin:image|size",{rid:this.rid})}}function y(e){return null==e?null:"string"==typeof e?e:e instanceof b?e.rid:e}!function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(n||(n={}));class p{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function g(){return new v(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function _(){return s("plugin:window|get_all_windows").then((e=>e.map((e=>new v(e,{skip:!0})))))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(a||(a={}));const m=["tauri://created","tauri://error"];class v{constructor(e,t={}){var i;this.label=e,this.listeners=Object.create(null),(null==t?void 0:t.skip)||s("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:null===(i=t.parent)||void 0===i?void 0:i.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static async getByLabel(e){var t;return null!==(t=(await _()).find((t=>t.label===e)))&&void 0!==t?t:null}static getCurrent(){return g()}static async getAll(){return _()}static async getFocusedWindow(){for(const e of await _())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:w(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:async function(e,t,i){return w(e,(i=>{h(e,i.id),t(i)}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(!m.includes(e))return async function(e,t){await s("plugin:event|emit",{event:e,payload:t})}(e,t);for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t})}async emitTo(e,t,i){if(!m.includes(t))return async function(e,t,i){const n="string"==typeof e?{kind:"AnyLabel",label:e}:e;await s("plugin:event|emit_to",{target:n,event:t,payload:i})}(e,t,i);for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:i})}_handleTauriEvent(e,t){return!!m.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return s("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return s("plugin:window|inner_position",{label:this.label}).then((({x:e,y:t})=>new d(e,t)))}async outerPosition(){return s("plugin:window|outer_position",{label:this.label}).then((({x:e,y:t})=>new d(e,t)))}async innerSize(){return s("plugin:window|inner_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async outerSize(){return s("plugin:window|outer_size",{label:this.label}).then((({width:e,height:t})=>new u(e,t)))}async isFullscreen(){return s("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return s("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return s("plugin:window|is_maximized",{label:this.label})}async isFocused(){return s("plugin:window|is_focused",{label:this.label})}async isDecorated(){return s("plugin:window|is_decorated",{label:this.label})}async isResizable(){return s("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return s("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return s("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return s("plugin:window|is_closable",{label:this.label})}async isVisible(){return s("plugin:window|is_visible",{label:this.label})}async title(){return s("plugin:window|title",{label:this.label})}async theme(){return s("plugin:window|theme",{label:this.label})}async center(){return s("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===n.Critical?{type:"Critical"}:{type:"Informational"}),s("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return s("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return s("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return s("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return s("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return s("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return s("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return s("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return s("plugin:window|maximize",{label:this.label})}async unmaximize(){return s("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return s("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return s("plugin:window|minimize",{label:this.label})}async unminimize(){return s("plugin:window|unminimize",{label:this.label})}async show(){return s("plugin:window|show",{label:this.label})}async hide(){return s("plugin:window|hide",{label:this.label})}async close(){return s("plugin:window|close",{label:this.label})}async destroy(){return s("plugin:window|destroy",{label:this.label})}async setDecorations(e){return s("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return s("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return s("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return s("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return s("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return s("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return s("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");const t={};return t[`${e.type}`]={width:e.width,height:e.height},s("plugin:window|set_size",{label:this.label,value:t})}async setMinSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");let t=null;return e&&(t={},t[`${e.type}`]={width:e.width,height:e.height}),s("plugin:window|set_min_size",{label:this.label,value:t})}async setMaxSize(e){if(e&&"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");let t=null;return e&&(t={},t[`${e.type}`]={width:e.width,height:e.height}),s("plugin:window|set_max_size",{label:this.label,value:t})}async setSizeConstraints(e){function t(e){return e?{Logical:e}:null}return s("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:t(null==e?void 0:e.minWidth),minHeight:t(null==e?void 0:e.minHeight),maxWidth:t(null==e?void 0:e.maxWidth),maxHeight:t(null==e?void 0:e.maxHeight)}})}async setPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");const t={};return t[`${e.type}`]={x:e.x,y:e.y},s("plugin:window|set_position",{label:this.label,value:t})}async setFullscreen(e){return s("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return s("plugin:window|set_focus",{label:this.label})}async setIcon(e){return s("plugin:window|set_icon",{label:this.label,value:y(e)})}async setSkipTaskbar(e){return s("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return s("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return s("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return s("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||"Logical"!==e.type&&"Physical"!==e.type)throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");const t={};return t[`${e.type}`]={x:e.x,y:e.y},s("plugin:window|set_cursor_position",{label:this.label,value:t})}async setIgnoreCursorEvents(e){return s("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return s("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return s("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setProgressBar(e){return s("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return s("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return s("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return s("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(i.WINDOW_RESIZED,(t=>{var i;t.payload=(i=t.payload,new u(i.width,i.height)),e(t)}))}async onMoved(e){return this.listen(i.WINDOW_MOVED,(t=>{t.payload=I(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(i.WINDOW_CLOSE_REQUESTED,(async t=>{const i=new p(t);await e(i),i.isPreventDefault()||await this.destroy()}))}async onDragDropEvent(e){const t=await this.listen(i.DRAG_ENTER,(t=>{e({...t,payload:{type:"enter",paths:t.payload.paths,position:I(t.payload.position)}})})),n=await this.listen(i.DRAG_OVER,(t=>{e({...t,payload:{type:"over",position:I(t.payload.position)}})})),a=await this.listen(i.DRAG_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:I(t.payload.position)}})})),l=await this.listen(i.DRAG_LEAVE,(t=>{e({...t,payload:{type:"leave"}})}));return()=>{t(),a(),n(),l()}}async onFocusChanged(e){const t=await this.listen(i.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),n=await this.listen(i.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),n()}}async onScaleChanged(e){return this.listen(i.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(i.WINDOW_THEME_CHANGED,e)}}var f,E,D;function I(e){return new d(e.x,e.y)}async function S(e,t){await s("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(f||(f={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(E||(E={})),e.StateFlags=void 0,(D=e.StateFlags||(e.StateFlags={}))[D.SIZE=1]="SIZE",D[D.POSITION=2]="POSITION",D[D.MAXIMIZED=4]="MAXIMIZED",D[D.VISIBLE=8]="VISIBLE",D[D.DECORATIONS=16]="DECORATIONS",D[D.FULLSCREEN=32]="FULLSCREEN",D[D.ALL=63]="ALL",e.filename=async function(){return await s("plugin:window-state|filename")},e.restoreState=S,e.restoreStateCurrent=async function(e){await S(g().label,e)},e.saveWindowState=async function(e){await s("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOW_STATE__})} From 44273b988957a254eff715d6be7547d2ace882e1 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Tue, 1 Oct 2024 16:16:14 +0300 Subject: [PATCH 601/643] fix(shell): fix schema requiring `sidecar` property even though it is optional (#1839) * fix(shell): fix schema requiring `sidecar` property even though it is optional * fix clippy * make `cmd` and `sidecar` exclusive * make args optional * cleanup --------- Co-authored-by: Lucas Nogueira --- .changes/shell-schema-required-sidcar.md | 6 + plugins/fs/build.rs | 18 +- plugins/fs/src/scope.rs | 3 +- plugins/http/build.rs | 27 ++- plugins/http/src/scope.rs | 14 +- plugins/shell/Cargo.toml | 1 - plugins/shell/build.rs | 160 +++++++++++++++++- plugins/shell/src/scope_entry.rs | 81 ++------- .../updater/tests/app-updater/tests/update.rs | 2 +- .../tests/updater-migration/tests/update.rs | 2 +- 10 files changed, 213 insertions(+), 101 deletions(-) create mode 100644 .changes/shell-schema-required-sidcar.md diff --git a/.changes/shell-schema-required-sidcar.md b/.changes/shell-schema-required-sidcar.md new file mode 100644 index 000000000..7e48f6531 --- /dev/null +++ b/.changes/shell-schema-required-sidcar.md @@ -0,0 +1,6 @@ +--- +"shell": "patch" +--- + +Fix the plugin schema requiring to set `sidecar` property when it is in fact optional. + diff --git a/plugins/fs/build.rs b/plugins/fs/build.rs index 5a641eb61..cb9d00daf 100644 --- a/plugins/fs/build.rs +++ b/plugins/fs/build.rs @@ -24,14 +24,16 @@ enum FsScopeEntry { }, } -// Ensure scope entry is kept up to date -impl From for scope::EntryRaw { - fn from(value: FsScopeEntry) -> Self { - match value { - FsScopeEntry::Value(path) => scope::EntryRaw::Value(path), - FsScopeEntry::Object { path } => scope::EntryRaw::Object { path }, - } - } +// Ensure `FsScopeEntry` and `scope::EntryRaw` is kept in sync +fn _f() { + match scope::EntryRaw::Value(PathBuf::new()) { + scope::EntryRaw::Value(path) => FsScopeEntry::Value(path), + scope::EntryRaw::Object { path } => FsScopeEntry::Object { path }, + }; + match FsScopeEntry::Value(PathBuf::new()) { + FsScopeEntry::Value(path) => scope::EntryRaw::Value(path), + FsScopeEntry::Object { path } => scope::EntryRaw::Object { path }, + }; } const BASE_DIR_VARS: &[&str] = &[ diff --git a/plugins/fs/src/scope.rs b/plugins/fs/src/scope.rs index fd94b0ebb..e8361d511 100644 --- a/plugins/fs/src/scope.rs +++ b/plugins/fs/src/scope.rs @@ -13,10 +13,9 @@ use std::{ use serde::Deserialize; -#[doc(hidden)] #[derive(Deserialize)] #[serde(untagged)] -pub enum EntryRaw { +pub(crate) enum EntryRaw { Value(PathBuf), Object { path: PathBuf }, } diff --git a/plugins/http/build.rs b/plugins/http/build.rs index 5f12208da..a4b802adf 100644 --- a/plugins/http/build.rs +++ b/plugins/http/build.rs @@ -47,23 +47,16 @@ enum HttpScopeEntry { }, } -// Ensure scope entry is kept up to date -impl From for scope::Entry { - fn from(value: HttpScopeEntry) -> Self { - let url = match value { - HttpScopeEntry::Value(url) => url, - HttpScopeEntry::Object { url } => url, - }; - - scope::Entry { - url: urlpattern::UrlPattern::parse( - urlpattern::UrlPatternInit::parse_constructor_string::(&url, None) - .unwrap(), - Default::default(), - ) - .unwrap(), - } - } +// Ensure `HttpScopeEntry` and `scope::EntryRaw` is kept in sync +fn _f() { + match scope::EntryRaw::Value(String::new()) { + scope::EntryRaw::Value(url) => HttpScopeEntry::Value(url), + scope::EntryRaw::Object { url } => HttpScopeEntry::Object { url }, + }; + match HttpScopeEntry::Value(String::new()) { + HttpScopeEntry::Value(url) => scope::EntryRaw::Value(url), + HttpScopeEntry::Object { url } => scope::EntryRaw::Object { url }, + }; } fn main() { diff --git a/plugins/http/src/scope.rs b/plugins/http/src/scope.rs index b84831deb..2123f215a 100644 --- a/plugins/http/src/scope.rs +++ b/plugins/http/src/scope.rs @@ -33,18 +33,18 @@ fn parse_url_pattern(s: &str) -> Result { UrlPattern::parse(init, Default::default()) } +#[derive(Deserialize)] +#[serde(untagged)] +pub(crate) enum EntryRaw { + Value(String), + Object { url: String }, +} + impl<'de> Deserialize<'de> for Entry { fn deserialize(deserializer: D) -> std::result::Result where D: Deserializer<'de>, { - #[derive(Deserialize)] - #[serde(untagged)] - enum EntryRaw { - Value(String), - Object { url: String }, - } - EntryRaw::deserialize(deserializer).and_then(|raw| { let url = match raw { EntryRaw::Value(url) => url, diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index 62a3fd9e6..a045f0c2c 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -27,7 +27,6 @@ serde = { workspace = true } [dependencies] serde = { workspace = true } -schemars = { workspace = true } serde_json = { workspace = true } tauri = { workspace = true } tokio = { version = "1", features = ["time"] } diff --git a/plugins/shell/build.rs b/plugins/shell/build.rs index fbfbb470b..a4a74a990 100644 --- a/plugins/shell/build.rs +++ b/plugins/shell/build.rs @@ -2,15 +2,173 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +use std::path::PathBuf; + +use schemars::JsonSchema; + #[path = "src/scope_entry.rs"] mod scope_entry; +/// A command argument allowed to be executed by the webview API. +#[derive(Debug, PartialEq, Eq, Clone, Hash, schemars::JsonSchema)] +#[serde(untagged, deny_unknown_fields)] +#[non_exhaustive] +pub enum ShellScopeEntryAllowedArg { + /// A non-configurable argument that is passed to the command in the order it was specified. + Fixed(String), + + /// A variable that is set while calling the command from the webview API. + /// + Var { + /// [regex] validator to require passed values to conform to an expected input. + /// + /// This will require the argument value passed to this variable to match the `validator` regex + /// before it will be executed. + /// + /// The regex string is by default surrounded by `^...$` to match the full string. + /// For example the `https?://\w+` regex would be registered as `^https?://\w+$`. + /// + /// [regex]: + validator: String, + + /// Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime. + /// + /// This means the regex will not match on the entire string by default, which might + /// be exploited if your regex allow unexpected input to be considered valid. + /// When using this option, make sure your regex is correct. + #[serde(default)] + raw: bool, + }, +} + +/// A set of command arguments allowed to be executed by the webview API. +/// +/// A value of `true` will allow any arguments to be passed to the command. `false` will disable all +/// arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to +/// be passed to the attached command configuration. +#[derive(Debug, PartialEq, Eq, Clone, Hash, JsonSchema)] +#[serde(untagged, deny_unknown_fields)] +#[non_exhaustive] +pub enum ShellScopeEntryAllowedArgs { + /// Use a simple boolean to allow all or disable all arguments to this command configuration. + Flag(bool), + + /// A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration. + List(Vec), +} + +impl Default for ShellScopeEntryAllowedArgs { + fn default() -> Self { + Self::Flag(false) + } +} + +/// Shell scope entry. +#[derive(JsonSchema)] +#[serde(untagged, deny_unknown_fields)] +#[allow(unused)] +pub(crate) enum ShellScopeEntry { + Command { + /// The name for this allowed shell command configuration. + /// + /// This name will be used inside of the webview API to call this command along with + /// any specified arguments. + name: String, + /// The command name. + /// It can start with a variable that resolves to a system base directory. + /// The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, + /// `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, + /// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, + /// `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. + // use default just so the schema doesn't flag it as required + #[serde(rename = "cmd")] + command: PathBuf, + /// The allowed arguments for the command execution. + #[serde(default)] + args: ShellScopeEntryAllowedArgs, + }, + Sidecar { + /// The name for this allowed shell command configuration. + /// + /// This name will be used inside of the webview API to call this command along with + /// any specified arguments. + name: String, + /// The allowed arguments for the command execution. + #[serde(default)] + args: ShellScopeEntryAllowedArgs, + /// If this command is a sidecar command. + sidecar: bool, + }, +} + +// Ensure `ShellScopeEntry` and `scope_entry::EntryRaw` +// and `ShellScopeEntryAllowedArg` and `ShellAllowedArg` +// and `ShellScopeEntryAllowedArgs` and `ShellAllowedArgs` +// are kept in sync +#[allow(clippy::unnecessary_operation)] +fn _f() { + match (ShellScopeEntry::Sidecar { + name: String::new(), + args: ShellScopeEntryAllowedArgs::Flag(false), + sidecar: true, + }) { + ShellScopeEntry::Command { + name, + command, + args, + } => scope_entry::EntryRaw { + name, + command: Some(command), + args: match args { + ShellScopeEntryAllowedArgs::Flag(flag) => scope_entry::ShellAllowedArgs::Flag(flag), + ShellScopeEntryAllowedArgs::List(vec) => scope_entry::ShellAllowedArgs::List( + vec.into_iter() + .map(|s| match s { + ShellScopeEntryAllowedArg::Fixed(fixed) => { + scope_entry::ShellAllowedArg::Fixed(fixed) + } + ShellScopeEntryAllowedArg::Var { validator, raw } => { + scope_entry::ShellAllowedArg::Var { validator, raw } + } + }) + .collect(), + ), + }, + sidecar: false, + }, + ShellScopeEntry::Sidecar { + name, + args, + sidecar, + } => scope_entry::EntryRaw { + name, + command: None, + args: match args { + ShellScopeEntryAllowedArgs::Flag(flag) => scope_entry::ShellAllowedArgs::Flag(flag), + ShellScopeEntryAllowedArgs::List(vec) => scope_entry::ShellAllowedArgs::List( + vec.into_iter() + .map(|s| match s { + ShellScopeEntryAllowedArg::Fixed(fixed) => { + scope_entry::ShellAllowedArg::Fixed(fixed) + } + ShellScopeEntryAllowedArg::Var { validator, raw } => { + scope_entry::ShellAllowedArg::Var { validator, raw } + } + }) + .collect(), + ), + }, + sidecar, + }, + }; +} + const COMMANDS: &[&str] = &["execute", "spawn", "stdin_write", "kill", "open"]; fn main() { tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .global_scope_schema(schemars::schema_for!(scope_entry::Entry)) + .global_scope_schema(schemars::schema_for!(ShellScopeEntry)) .android_path("android") .ios_path("ios") .build(); diff --git a/plugins/shell/src/scope_entry.rs b/plugins/shell/src/scope_entry.rs index a2fb61367..598391787 100644 --- a/plugins/shell/src/scope_entry.rs +++ b/plugins/shell/src/scope_entry.rs @@ -7,29 +7,23 @@ use serde::{de::Error as DeError, Deserialize, Deserializer}; use std::path::PathBuf; /// A command allowed to be executed by the webview API. -#[derive(Debug, Clone, PartialEq, Eq, Hash, schemars::JsonSchema)] -pub struct Entry { - /// The name for this allowed shell command configuration. - /// - /// This name will be used inside of the webview API to call this command along with - /// any specified arguments. - pub name: String, +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub(crate) struct Entry { + pub(crate) name: String, + pub(crate) command: PathBuf, + pub(crate) args: ShellAllowedArgs, + pub(crate) sidecar: bool, +} - /// The command name. - /// It can start with a variable that resolves to a system base directory. - /// The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, - /// `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, - /// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, - /// `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. - // use default just so the schema doesn't flag it as required +#[derive(Deserialize)] +pub(crate) struct EntryRaw { + pub(crate) name: String, #[serde(rename = "cmd")] - pub command: PathBuf, - - /// The allowed arguments for the command execution. - pub args: ShellAllowedArgs, - - /// If this command is a sidecar command. - pub sidecar: bool, + pub(crate) command: Option, + #[serde(default)] + pub(crate) args: ShellAllowedArgs, + #[serde(default)] + pub(crate) sidecar: bool, } impl<'de> Deserialize<'de> for Entry { @@ -37,18 +31,7 @@ impl<'de> Deserialize<'de> for Entry { where D: Deserializer<'de>, { - #[derive(Deserialize)] - struct InnerEntry { - name: String, - #[serde(rename = "cmd")] - command: Option, - #[serde(default)] - args: ShellAllowedArgs, - #[serde(default)] - sidecar: bool, - } - - let config = InnerEntry::deserialize(deserializer)?; + let config = EntryRaw::deserialize(deserializer)?; if !config.sidecar && config.command.is_none() { return Err(DeError::custom( @@ -65,19 +48,11 @@ impl<'de> Deserialize<'de> for Entry { } } -/// A set of command arguments allowed to be executed by the webview API. -/// -/// A value of `true` will allow any arguments to be passed to the command. `false` will disable all -/// arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to -/// be passed to the attached command configuration. -#[derive(Debug, PartialEq, Eq, Clone, Hash, Deserialize, schemars::JsonSchema)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Deserialize)] #[serde(untagged, deny_unknown_fields)] #[non_exhaustive] pub enum ShellAllowedArgs { - /// Use a simple boolean to allow all or disable all arguments to this command configuration. Flag(bool), - - /// A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration. List(Vec), } @@ -87,33 +62,13 @@ impl Default for ShellAllowedArgs { } } -/// A command argument allowed to be executed by the webview API. -#[derive(Debug, PartialEq, Eq, Clone, Hash, Deserialize, schemars::JsonSchema)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Deserialize)] #[serde(untagged, deny_unknown_fields)] #[non_exhaustive] pub enum ShellAllowedArg { - /// A non-configurable argument that is passed to the command in the order it was specified. Fixed(String), - - /// A variable that is set while calling the command from the webview API. - /// Var { - /// [regex] validator to require passed values to conform to an expected input. - /// - /// This will require the argument value passed to this variable to match the `validator` regex - /// before it will be executed. - /// - /// The regex string is by default surrounded by `^...$` to match the full string. - /// For example the `https?://\w+` regex would be registered as `^https?://\w+$`. - /// - /// [regex]: validator: String, - - /// Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime. - /// - /// This means the regex will not match on the entire string by default, which might - /// be exploited if your regex allow unexpected input to be considered valid. - /// When using this option, make sure your regex is correct. #[serde(default)] raw: bool, }, diff --git a/plugins/updater/tests/app-updater/tests/update.rs b/plugins/updater/tests/app-updater/tests/update.rs index 985a4c4a5..230ab3763 100644 --- a/plugins/updater/tests/app-updater/tests/update.rs +++ b/plugins/updater/tests/app-updater/tests/update.rs @@ -221,7 +221,7 @@ fn update_app() { let updater_extension = if let Some(updater_zip_ext) = updater_zip_ext { format!("{bundle_updater_ext}.{updater_zip_ext}") } else { - format!("{bundle_updater_ext}") + bundle_updater_ext }; let signature_extension = format!("{updater_extension}.sig"); let signature_path = out_bundle_path.with_extension(signature_extension); diff --git a/plugins/updater/tests/updater-migration/tests/update.rs b/plugins/updater/tests/updater-migration/tests/update.rs index 3b5cb7796..56cb2d300 100644 --- a/plugins/updater/tests/updater-migration/tests/update.rs +++ b/plugins/updater/tests/updater-migration/tests/update.rs @@ -413,7 +413,7 @@ fn update_app() { ), 2 => ( v2_config.version, - Box::new(|| v2::bundle_paths(&root_dir, &v2_config.version)) + Box::new(|| v2::bundle_paths(&root_dir, v2_config.version)) as Box Vec<(BundleTarget, PathBuf)>>, "-v2", ), From f12d35609ab84f536c0f087665fdc1f978af3093 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 2 Oct 2024 02:10:40 +0800 Subject: [PATCH 602/643] feat(store)!: fully rework and add auto save (#1550) * Add auto save to store plugin * Put jsdoc at constructor instead of class level * Clippy * Use enum instead of bool * Some(AutoSaveMessage::Cancel) | None * from_millis * u64 * Add change file * Rename to emit_on_change * should use Duration in `with_store` * Add breaking change notice to change file * Emit change event for inserts by reset * Update readme example * Update example * Remove extra line * Make description clear it only works with managed * Fix links in docstring * Fix doc string closing * get_mut * Proof of concept * fmt * Load store on create * cargo fmt * Fix merge conflits * Format * small cleanup * update docs, use `impl Into` * fix doctests, further simplification of api * add store options --------- Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com> Co-authored-by: Lucas Nogueira --- .changes/store-api-refactor.md | 5 + .changes/store-auto-save.md | 7 + Cargo.lock | 1 + plugins/store/Cargo.toml | 4 + plugins/store/README.md | 8 +- plugins/store/api-iife.js | 2 +- plugins/store/build.rs | 13 +- .../src-tauri/src/app/settings.rs | 5 +- .../AppSettingsManager/src-tauri/src/main.rs | 28 +- plugins/store/guest-js/index.ts | 76 ++-- .../autogenerated/commands/create_store.toml | 13 + .../permissions/autogenerated/reference.md | 27 ++ plugins/store/permissions/default.toml | 1 + plugins/store/permissions/schemas/schema.json | 10 + plugins/store/src/lib.rs | 356 +++++++-------- plugins/store/src/store.rs | 412 +++++++++++++----- 16 files changed, 604 insertions(+), 364 deletions(-) create mode 100644 .changes/store-api-refactor.md create mode 100644 .changes/store-auto-save.md create mode 100644 plugins/store/permissions/autogenerated/commands/create_store.toml diff --git a/.changes/store-api-refactor.md b/.changes/store-api-refactor.md new file mode 100644 index 000000000..ed049eb1b --- /dev/null +++ b/.changes/store-api-refactor.md @@ -0,0 +1,5 @@ +--- +"store-js": patch +--- + +**Breaking change**: Removed the `Store` constructor and added the `createStore` API. diff --git a/.changes/store-auto-save.md b/.changes/store-auto-save.md new file mode 100644 index 000000000..4babad27c --- /dev/null +++ b/.changes/store-auto-save.md @@ -0,0 +1,7 @@ +--- +"store": patch +--- + +Add a setting `auto_save` to enable a store to debounce save on modification (on calls like set, clear, delete, reset) + +**Breaking change**: Removed the `with_store` API and added `StoreExt::store_builder`. diff --git a/Cargo.lock b/Cargo.lock index 0d4b1212d..8afbabdee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6990,6 +6990,7 @@ dependencies = [ "tauri", "tauri-plugin", "thiserror", + "tokio", ] [[package]] diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index 0300b35fe..c2f8ddd91 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -30,6 +30,10 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } dunce = { workspace = true } +tokio = { version = "1", features = ["sync", "time", "macros"] } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } + +[dev-dependencies] +tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/store/README.md b/plugins/store/README.md index be6fdfaee..f7d65a0f7 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -149,12 +149,10 @@ As you may have noticed, the `Store` crated above isn't accessible to the fronte ```rust use tauri::Wry; -use tauri_plugin_store::with_store; +use tauri_plugin_store::StoreExt; -let stores = app.state::>(); -let path = PathBuf::from("app_data.bin"); - -with_store(app_handle, stores, path, |store| store.insert("a".to_string(), json!("b"))) +let store = app.store_builder("app_data.bin").build(); +store.insert("key", "value"); ``` ## Contributing diff --git a/plugins/store/api-iife.js b/plugins/store/api-iife.js index 9bd5a3f41..77295d7fe 100644 --- a/plugins/store/api-iife.js +++ b/plugins/store/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_STORE__=function(t){"use strict";function a(t,a=!1){return window.__TAURI_INTERNALS__.transformCallback(t,a)}async function e(t,a={},e){return window.__TAURI_INTERNALS__.invoke(t,a,e)}var n;async function r(t,n,r){const i={kind:"Any"};return e("plugin:event|listen",{event:t,target:i,handler:a(n)}).then((a=>async()=>async function(t,a){await e("plugin:event|unlisten",{event:t,eventId:a})}(t,a)))}"function"==typeof SuppressedError&&SuppressedError,function(t){t.WINDOW_RESIZED="tauri://resize",t.WINDOW_MOVED="tauri://move",t.WINDOW_CLOSE_REQUESTED="tauri://close-requested",t.WINDOW_DESTROYED="tauri://destroyed",t.WINDOW_FOCUS="tauri://focus",t.WINDOW_BLUR="tauri://blur",t.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",t.WINDOW_THEME_CHANGED="tauri://theme-changed",t.WINDOW_CREATED="tauri://window-created",t.WEBVIEW_CREATED="tauri://webview-created",t.DRAG_ENTER="tauri://drag-enter",t.DRAG_OVER="tauri://drag-over",t.DRAG_DROP="tauri://drag-drop",t.DRAG_LEAVE="tauri://drag-leave"}(n||(n={}));return t.Store=class{constructor(t){this.path=t}async set(t,a){await e("plugin:store|set",{path:this.path,key:t,value:a})}async get(t){return await e("plugin:store|get",{path:this.path,key:t})}async has(t){return await e("plugin:store|has",{path:this.path,key:t})}async delete(t){return await e("plugin:store|delete",{path:this.path,key:t})}async clear(){await e("plugin:store|clear",{path:this.path})}async reset(){await e("plugin:store|reset",{path:this.path})}async keys(){return await e("plugin:store|keys",{path:this.path})}async values(){return await e("plugin:store|values",{path:this.path})}async entries(){return await e("plugin:store|entries",{path:this.path})}async length(){return await e("plugin:store|length",{path:this.path})}async load(){await e("plugin:store|load",{path:this.path})}async save(){await e("plugin:store|save",{path:this.path})}async onKeyChange(t,a){return await r("store://change",(e=>{e.payload.path===this.path&&e.payload.key===t&&a(e.payload.value)}))}async onChange(t){return await r("store://change",(a=>{a.payload.path===this.path&&t(a.payload.key,a.payload.value)}))}},t}({});Object.defineProperty(window.__TAURI__,"store",{value:__TAURI_PLUGIN_STORE__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_STORE__=function(e){"use strict";var t,r;function a(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function i(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;class n{get rid(){return function(e,t,r,a){if("a"===r&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?a:"a"===r?a.call(e):a?a.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,r,a,i){if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,t,e)}async close(){return i("plugin:resources|close",{rid:this.rid})}}async function s(e,t,r){const n={kind:"Any"};return i("plugin:event|listen",{event:e,target:n,handler:a(t)}).then((t=>async()=>async function(e,t){await i("plugin:event|unlisten",{event:e,eventId:t})}(e,t)))}t=new WeakMap,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(r||(r={}));class o extends n{constructor(e,t){super(e),this.path=t}async set(e,t){await i("plugin:store|set",{rid:this.rid,key:e,value:t})}async get(e){return await i("plugin:store|get",{rid:this.rid,key:e})}async has(e){return await i("plugin:store|has",{rid:this.rid,key:e})}async delete(e){return await i("plugin:store|delete",{rid:this.rid,key:e})}async clear(){await i("plugin:store|clear",{rid:this.rid})}async reset(){await i("plugin:store|reset",{rid:this.rid})}async keys(){return await i("plugin:store|keys",{rid:this.rid})}async values(){return await i("plugin:store|values",{rid:this.rid})}async entries(){return await i("plugin:store|entries",{rid:this.rid})}async length(){return await i("plugin:store|length",{rid:this.rid})}async load(){await i("plugin:store|load",{rid:this.rid})}async save(){await i("plugin:store|save",{rid:this.rid})}async onKeyChange(e,t){return await s("store://change",(r=>{r.payload.path===this.path&&r.payload.key===e&&t(r.payload.value)}))}async onChange(e){return await s("store://change",(t=>{t.payload.path===this.path&&e(t.payload.key,t.payload.value)}))}}return e.Store=o,e.createStore=async function(e,t){const r=await i("plugin:store|create_store",{path:e,...t});return new o(r,e)},e}({});Object.defineProperty(window.__TAURI__,"store",{value:__TAURI_PLUGIN_STORE__})} diff --git a/plugins/store/build.rs b/plugins/store/build.rs index 7b54fe421..3c9fee015 100644 --- a/plugins/store/build.rs +++ b/plugins/store/build.rs @@ -3,7 +3,18 @@ // SPDX-License-Identifier: MIT const COMMANDS: &[&str] = &[ - "set", "get", "has", "delete", "clear", "reset", "keys", "values", "length", "entries", "load", + "create_store", + "set", + "get", + "has", + "delete", + "clear", + "reset", + "keys", + "values", + "length", + "entries", + "load", "save", ]; diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/src/app/settings.rs b/plugins/store/examples/AppSettingsManager/src-tauri/src/app/settings.rs index 5fc281b2d..30514a00d 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/src/app/settings.rs +++ b/plugins/store/examples/AppSettingsManager/src-tauri/src/app/settings.rs @@ -21,9 +21,8 @@ impl AppSettings { let theme = store .get("appSettings.theme") - .and_then(|v| v.as_str()) - .map(|s| s.to_string()) - .unwrap_or_else(|| "dark".to_string()); + .and_then(|v| v.as_str().map(String::from)) + .unwrap_or_else(|| "dark".to_owned()); Ok(AppSettings { launch_at_login, diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs index 5926713eb..0dd4e0bc4 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs +++ b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs @@ -5,17 +5,24 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -use tauri_plugin_store::StoreBuilder; +use std::time::Duration; + +use serde_json::json; +use tauri_plugin_store::StoreExt; mod app; use app::settings::AppSettings; fn main() { tauri::Builder::default() - .plugin(tauri_plugin_store::Builder::default().build()) + .plugin(tauri_plugin_store::Builder::new().build()) .setup(|app| { // Init store and load it from disk - let mut store = StoreBuilder::new("settings.json").build(app.handle().clone()); + let store = app + .handle() + .store_builder("settings.json") + .auto_save(Duration::from_millis(100)) + .build(); // If there are no saved settings yet, this will return an error so we ignore the return value. let _ = store.load(); @@ -27,17 +34,20 @@ fn main() { let theme = app_settings.theme; let launch_at_login = app_settings.launch_at_login; - println!("theme {}", theme); - println!("launch_at_login {}", launch_at_login); - - Ok(()) + println!("theme {theme}"); + println!("launch_at_login {launch_at_login}"); + store.set( + "appSettings", + json!({ "theme": theme, "launchAtLogin": launch_at_login }), + ); } Err(err) => { - eprintln!("Error loading settings: {}", err); + eprintln!("Error loading settings: {err}"); // Handle the error case if needed - Err(err) // Convert the error to a Box and return Err(err) here + return Err(err); // Convert the error to a Box and return Err(err) here } } + Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/plugins/store/guest-js/index.ts b/plugins/store/guest-js/index.ts index dce545ac1..259b06626 100644 --- a/plugins/store/guest-js/index.ts +++ b/plugins/store/guest-js/index.ts @@ -4,7 +4,7 @@ import { listen, type UnlistenFn } from '@tauri-apps/api/event' -import { invoke } from '@tauri-apps/api/core' +import { invoke, Resource } from '@tauri-apps/api/core' interface ChangePayload { path: string @@ -13,12 +13,36 @@ interface ChangePayload { } /** - * A key-value store persisted by the backend layer. + * Options to create a store */ -export class Store { - path: string - constructor(path: string) { - this.path = path +export type StoreOptions = { + /** + * Auto save on modification with debounce duration in milliseconds + */ + autoSave?: boolean +} + +/** + * @param path: Path to save the store in `app_data_dir` + * @param options: Store configuration options + */ +export async function createStore(path: string, options?: StoreOptions) { + const resourceId = await invoke('plugin:store|create_store', { + path, + ...options + }) + return new Store(resourceId, path) +} + +/** + * A lazy loaded key-value store persisted by the backend layer. + */ +export class Store extends Resource { + constructor( + rid: number, + private readonly path: string + ) { + super(rid) } /** @@ -30,7 +54,7 @@ export class Store { */ async set(key: string, value: unknown): Promise { await invoke('plugin:store|set', { - path: this.path, + rid: this.rid, key, value }) @@ -44,7 +68,7 @@ export class Store { */ async get(key: string): Promise { return await invoke('plugin:store|get', { - path: this.path, + rid: this.rid, key }) } @@ -57,7 +81,7 @@ export class Store { */ async has(key: string): Promise { return await invoke('plugin:store|has', { - path: this.path, + rid: this.rid, key }) } @@ -70,7 +94,7 @@ export class Store { */ async delete(key: string): Promise { return await invoke('plugin:store|delete', { - path: this.path, + rid: this.rid, key }) } @@ -82,9 +106,7 @@ export class Store { * @returns */ async clear(): Promise { - await invoke('plugin:store|clear', { - path: this.path - }) + await invoke('plugin:store|clear', { rid: this.rid }) } /** @@ -94,9 +116,7 @@ export class Store { * @returns */ async reset(): Promise { - await invoke('plugin:store|reset', { - path: this.path - }) + await invoke('plugin:store|reset', { rid: this.rid }) } /** @@ -105,9 +125,7 @@ export class Store { * @returns */ async keys(): Promise { - return await invoke('plugin:store|keys', { - path: this.path - }) + return await invoke('plugin:store|keys', { rid: this.rid }) } /** @@ -116,9 +134,7 @@ export class Store { * @returns */ async values(): Promise { - return await invoke('plugin:store|values', { - path: this.path - }) + return await invoke('plugin:store|values', { rid: this.rid }) } /** @@ -127,9 +143,7 @@ export class Store { * @returns */ async entries(): Promise> { - return await invoke('plugin:store|entries', { - path: this.path - }) + return await invoke('plugin:store|entries', { rid: this.rid }) } /** @@ -138,9 +152,7 @@ export class Store { * @returns */ async length(): Promise { - return await invoke('plugin:store|length', { - path: this.path - }) + return await invoke('plugin:store|length', { rid: this.rid }) } /** @@ -152,9 +164,7 @@ export class Store { * @returns */ async load(): Promise { - await invoke('plugin:store|load', { - path: this.path - }) + await invoke('plugin:store|load', { rid: this.rid }) } /** @@ -165,9 +175,7 @@ export class Store { * @returns */ async save(): Promise { - await invoke('plugin:store|save', { - path: this.path - }) + await invoke('plugin:store|save', { rid: this.rid }) } /** diff --git a/plugins/store/permissions/autogenerated/commands/create_store.toml b/plugins/store/permissions/autogenerated/commands/create_store.toml new file mode 100644 index 000000000..cde71c24f --- /dev/null +++ b/plugins/store/permissions/autogenerated/commands/create_store.toml @@ -0,0 +1,13 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-create-store" +description = "Enables the create_store command without any pre-configured scope." +commands.allow = ["create_store"] + +[[permission]] +identifier = "deny-create-store" +description = "Denies the create_store command without any pre-configured scope." +commands.deny = ["create_store"] diff --git a/plugins/store/permissions/autogenerated/reference.md b/plugins/store/permissions/autogenerated/reference.md index 704d759db..4e9bf2cc3 100644 --- a/plugins/store/permissions/autogenerated/reference.md +++ b/plugins/store/permissions/autogenerated/reference.md @@ -9,6 +9,7 @@ All operations are enabled by default. +- `allow-create-store` - `allow-clear` - `allow-delete` - `allow-entries` @@ -60,6 +61,32 @@ Denies the clear command without any pre-configured scope. +`store:allow-create-store` + + + + +Enables the create_store command without any pre-configured scope. + + + + + + + +`store:deny-create-store` + + + + +Denies the create_store command without any pre-configured scope. + + + + + + + `store:allow-delete` diff --git a/plugins/store/permissions/default.toml b/plugins/store/permissions/default.toml index d2369b272..bf888679f 100644 --- a/plugins/store/permissions/default.toml +++ b/plugins/store/permissions/default.toml @@ -11,6 +11,7 @@ All operations are enabled by default. """ permissions = [ + "allow-create-store", "allow-clear", "allow-delete", "allow-entries", diff --git a/plugins/store/permissions/schemas/schema.json b/plugins/store/permissions/schemas/schema.json index 56bced91a..6ebf788ea 100644 --- a/plugins/store/permissions/schemas/schema.json +++ b/plugins/store/permissions/schemas/schema.json @@ -304,6 +304,16 @@ "type": "string", "const": "deny-clear" }, + { + "description": "Enables the create_store command without any pre-configured scope.", + "type": "string", + "const": "allow-create-store" + }, + { + "description": "Denies the create_store command without any pre-configured scope.", + "type": "string", + "const": "deny-create-store" + }, { "description": "Enables the delete command without any pre-configured scope.", "type": "string", diff --git a/plugins/store/src/lib.rs b/plugins/store/src/lib.rs index fa331eb54..b05bf4b42 100644 --- a/plugins/store/src/lib.rs +++ b/plugins/store/src/lib.rs @@ -18,12 +18,13 @@ pub use serde_json::Value as JsonValue; use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::Mutex, + sync::{Mutex, Weak}, + time::Duration, }; -pub use store::{Store, StoreBuilder}; +pub use store::{Store, StoreBuilder, StoreInner}; use tauri::{ plugin::{self, TauriPlugin}, - AppHandle, Manager, RunEvent, Runtime, State, + AppHandle, Manager, ResourceId, RunEvent, Runtime, Webview, }; mod error; @@ -37,177 +38,138 @@ struct ChangePayload<'a> { } pub struct StoreCollection { - stores: Mutex>>, - frozen: bool, + stores: Mutex>>>>, + // frozen: bool, } -pub fn with_store) -> Result>( +#[tauri::command] +async fn create_store( app: AppHandle, - collection: State<'_, StoreCollection>, - path: impl AsRef, - f: F, -) -> Result { - let mut stores = collection.stores.lock().expect("mutex poisoned"); - - let path = path.as_ref(); - if !stores.contains_key(path) { - if collection.frozen { - return Err(Error::NotFound(path.to_path_buf())); - } - - #[allow(unused_mut)] - let mut builder = StoreBuilder::new(path); - - let mut store = builder.build(app); - - // ignore loading errors, just use the default - if let Err(err) = store.load() { - warn!( - "Failed to load store {:?} from disk: {}. Falling back to default values.", - path, err - ); - } - stores.insert(path.to_path_buf(), store); + webview: Webview, + path: PathBuf, + auto_save: Option, +) -> Result { + let mut builder = app.store_builder(path); + if let Some(auto_save) = auto_save { + builder = builder.auto_save(Duration::from_millis(auto_save)); } - - f(stores - .get_mut(path) - .expect("failed to retrieve store. This is a bug!")) + let store = builder.build(); + Ok(webview.resources_table().add(store)) } #[tauri::command] async fn set( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, + webview: Webview, + rid: ResourceId, key: String, value: JsonValue, ) -> Result<()> { - with_store(app, stores, path, |store| store.insert(key, value)) + let store = webview.resources_table().get::>(rid)?; + store.set(key, value); + Ok(()) } #[tauri::command] async fn get( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, + webview: Webview, + rid: ResourceId, key: String, ) -> Result> { - with_store(app, stores, path, |store| Ok(store.get(key).cloned())) + let store = webview.resources_table().get::>(rid)?; + Ok(store.get(key)) } #[tauri::command] -async fn has( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, - key: String, -) -> Result { - with_store(app, stores, path, |store| Ok(store.has(key))) +async fn has(webview: Webview, rid: ResourceId, key: String) -> Result { + let store = webview.resources_table().get::>(rid)?; + Ok(store.has(key)) } #[tauri::command] -async fn delete( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, - key: String, -) -> Result { - with_store(app, stores, path, |store| store.delete(key)) +async fn delete(webview: Webview, rid: ResourceId, key: String) -> Result { + let store = webview.resources_table().get::>(rid)?; + Ok(store.delete(key)) } #[tauri::command] -async fn clear( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result<()> { - with_store(app, stores, path, |store| store.clear()) +async fn clear(webview: Webview, rid: ResourceId) -> Result<()> { + let store = webview.resources_table().get::>(rid)?; + store.clear(); + Ok(()) } #[tauri::command] -async fn reset( - app: AppHandle, - collection: State<'_, StoreCollection>, - path: PathBuf, -) -> Result<()> { - with_store(app, collection, path, |store| store.reset()) +async fn reset(webview: Webview, rid: ResourceId) -> Result<()> { + let store = webview.resources_table().get::>(rid)?; + store.reset(); + Ok(()) } #[tauri::command] -async fn keys( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result> { - with_store(app, stores, path, |store| { - Ok(store.keys().cloned().collect()) - }) +async fn keys(webview: Webview, rid: ResourceId) -> Result> { + let store = webview.resources_table().get::>(rid)?; + Ok(store.keys()) } #[tauri::command] -async fn values( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result> { - with_store(app, stores, path, |store| { - Ok(store.values().cloned().collect()) - }) +async fn values(webview: Webview, rid: ResourceId) -> Result> { + let store = webview.resources_table().get::>(rid)?; + Ok(store.values()) } #[tauri::command] async fn entries( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, + webview: Webview, + rid: ResourceId, ) -> Result> { - with_store(app, stores, path, |store| { - Ok(store - .entries() - .map(|(k, v)| (k.to_owned(), v.to_owned())) - .collect()) - }) + let store = webview.resources_table().get::>(rid)?; + Ok(store.entries()) } #[tauri::command] -async fn length( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result { - with_store(app, stores, path, |store| Ok(store.len())) +async fn length(webview: Webview, rid: ResourceId) -> Result { + let store = webview.resources_table().get::>(rid)?; + Ok(store.length()) } #[tauri::command] -async fn load( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result<()> { - with_store(app, stores, path, |store| store.load()) +async fn load(webview: Webview, rid: ResourceId) -> Result<()> { + let store = webview.resources_table().get::>(rid)?; + store.load() } #[tauri::command] -async fn save( - app: AppHandle, - stores: State<'_, StoreCollection>, - path: PathBuf, -) -> Result<()> { - with_store(app, stores, path, |store| store.save()) +async fn save(webview: Webview, rid: ResourceId) -> Result<()> { + let store = webview.resources_table().get::>(rid)?; + store.save() +} + +pub trait StoreExt { + fn store(&self, path: impl AsRef) -> Store; + fn store_builder(&self, path: impl AsRef) -> StoreBuilder; +} + +impl> StoreExt for T { + fn store(&self, path: impl AsRef) -> Store { + StoreBuilder::new(self.app_handle(), path).build() + } + + fn store_builder(&self, path: impl AsRef) -> StoreBuilder { + StoreBuilder::new(self.app_handle(), path) + } } // #[derive(Default)] pub struct Builder { stores: HashMap>, - frozen: bool, + // frozen: bool, } impl Default for Builder { fn default() -> Self { Self { stores: Default::default(), - frozen: false, + // frozen: false, } } } @@ -217,114 +179,126 @@ impl Builder { Self::default() } - /// Registers a store with the plugin. - /// - /// # Examples - /// - /// ``` - /// use tauri_plugin_store::{StoreBuilder, Builder}; - /// - /// tauri::Builder::default() - /// .setup(|app| { - /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - /// let builder = Builder::default().store(store); - /// Ok(()) - /// }); - /// ``` - pub fn store(mut self, store: Store) -> Self { - self.stores.insert(store.path.clone(), store); - self - } + // /// Registers a store with the plugin. + // /// + // /// # Examples + // /// + // /// ``` + // /// use tauri_plugin_store::{StoreBuilder, Builder}; + // /// + // /// tauri::Builder::default() + // /// .setup(|app| { + // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); + // /// let builder = Builder::default().store(store); + // /// Ok(()) + // /// }); + // /// ``` + // pub fn store(mut self, store: Store) -> Self { + // self.stores.insert(store.path.clone(), store); + // self + // } - /// Registers multiple stores with the plugin. - /// - /// # Examples - /// - /// ``` - /// use tauri_plugin_store::{StoreBuilder, Builder}; - /// - /// tauri::Builder::default() - /// .setup(|app| { - /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - /// let builder = Builder::default().stores([store]); - /// Ok(()) - /// }); - /// ``` - pub fn stores>>(mut self, stores: T) -> Self { - self.stores = stores - .into_iter() - .map(|store| (store.path.clone(), store)) - .collect(); - self - } + // /// Registers multiple stores with the plugin. + // /// + // /// # Examples + // /// + // /// ``` + // /// use tauri_plugin_store::{StoreBuilder, Builder}; + // /// + // /// tauri::Builder::default() + // /// .setup(|app| { + // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); + // /// let builder = Builder::default().stores([store]); + // /// Ok(()) + // /// }); + // /// ``` + // pub fn stores>>(mut self, stores: T) -> Self { + // self.stores = stores + // .into_iter() + // .map(|store| (store.path.clone(), store)) + // .collect(); + // self + // } - /// Freezes the collection. - /// - /// This causes requests for plugins that haven't been registered to fail - /// - /// # Examples - /// - /// ``` - /// use tauri_plugin_store::{StoreBuilder, Builder}; - /// - /// tauri::Builder::default() - /// .setup(|app| { - /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - /// app.handle().plugin(Builder::default().freeze().build()); - /// Ok(()) - /// }); - /// ``` - pub fn freeze(mut self) -> Self { - self.frozen = true; - self - } + // /// Freezes the collection. + // /// + // /// This causes requests for plugins that haven't been registered to fail + // /// + // /// # Examples + // /// + // /// ``` + // /// use tauri_plugin_store::{StoreBuilder, Builder}; + // /// + // /// tauri::Builder::default() + // /// .setup(|app| { + // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); + // /// app.handle().plugin(Builder::default().freeze().build()); + // /// Ok(()) + // /// }); + // /// ``` + // pub fn freeze(mut self) -> Self { + // self.frozen = true; + // self + // } /// Builds the plugin. /// /// # Examples /// /// ``` - /// use tauri_plugin_store::{StoreBuilder, Builder}; - /// /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) /// .setup(|app| { - /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - /// app.handle().plugin(Builder::default().build()); + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin").build(); /// Ok(()) /// }); /// ``` pub fn build(mut self) -> TauriPlugin { plugin::Builder::new("store") .invoke_handler(tauri::generate_handler![ - set, get, has, delete, clear, reset, keys, values, length, entries, load, save + create_store, + set, + get, + has, + delete, + clear, + reset, + keys, + values, + length, + entries, + load, + save ]) .setup(move |app_handle, _api| { for (path, store) in self.stores.iter_mut() { // ignore loading errors, just use the default if let Err(err) = store.load() { warn!( - "Failed to load store {:?} from disk: {}. Falling back to default values.", - path, err - ); + "Failed to load store {path:?} from disk: {err}. Falling back to default values." + ); } } - app_handle.manage(StoreCollection { - stores: Mutex::new(self.stores), - frozen: self.frozen, + app_handle.manage(StoreCollection:: { + stores: Mutex::new(HashMap::new()), + // frozen: self.frozen, }); Ok(()) }) - .on_event(|app_handle, event| { + .on_event(|_app_handle, event| { if let RunEvent::Exit = event { - let collection = app_handle.state::>(); + // let collection = app_handle.state::>(); - for store in collection.stores.lock().expect("mutex poisoned").values() { - if let Err(err) = store.save() { - eprintln!("failed to save store {:?} with error {:?}", store.path, err); - } - } + // for store in collection.stores.lock().expect("mutex poisoned").values_mut() { + // if let Some(sender) = store.auto_save_debounce_sender.take() { + // let _ = sender.send(AutoSaveMessage::Cancel); + // } + // if let Err(err) = store.save() { + // eprintln!("failed to save store {:?} with error {:?}", store.path, err); + // } + // } } }) .build() diff --git a/plugins/store/src/store.rs b/plugins/store/src/store.rs index 081844391..b18d00277 100644 --- a/plugins/store/src/store.rs +++ b/plugins/store/src/store.rs @@ -2,19 +2,26 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use crate::{ChangePayload, Error}; +use crate::{ChangePayload, StoreCollection}; use serde_json::Value as JsonValue; use std::{ collections::HashMap, fs::{create_dir_all, read, File}, io::Write, path::{Path, PathBuf}, + sync::{Arc, Mutex}, + time::Duration, +}; +use tauri::{AppHandle, Emitter, Manager, Resource, Runtime}; +use tokio::{ + select, + sync::mpsc::{unbounded_channel, UnboundedSender}, + time::sleep, }; -use tauri::{AppHandle, Emitter, Manager, Runtime}; type SerializeFn = fn(&HashMap) -> Result, Box>; -type DeserializeFn = +pub(crate) type DeserializeFn = fn(&[u8]) -> Result, Box>; fn default_serialize( @@ -30,35 +37,38 @@ fn default_deserialize( } /// Builds a [`Store`] -pub struct StoreBuilder { +pub struct StoreBuilder { + app: AppHandle, path: PathBuf, defaults: Option>, cache: HashMap, serialize: SerializeFn, deserialize: DeserializeFn, + auto_save: Option, } -impl StoreBuilder { +impl StoreBuilder { /// Creates a new [`StoreBuilder`]. /// /// # Examples /// ``` - /// # fn main() -> Result<(), Box> { - /// use tauri_plugin_store::StoreBuilder; - /// - /// let builder = StoreBuilder::::new("store.bin"); - /// - /// # Ok(()) - /// # } + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let builder = tauri_plugin_store::StoreBuilder::new(app, "store.bin"); + /// Ok(()) + /// }); /// ``` - pub fn new>(path: P) -> Self { + pub fn new, P: AsRef>(manager: &M, path: P) -> Self { Self { + app: manager.app_handle().clone(), // Since Store.path is only exposed to the user in emit calls we may as well simplify it here already. path: dunce::simplified(path.as_ref()).to_path_buf(), defaults: None, cache: Default::default(), serialize: default_serialize, deserialize: default_deserialize, + auto_save: None, } } @@ -66,19 +76,18 @@ impl StoreBuilder { /// /// # Examples /// ``` - /// # fn main() -> Result<(), Box> { - /// use tauri_plugin_store::StoreBuilder; - /// use std::collections::HashMap; + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let mut defaults = std::collections::HashMap::new(); + /// defaults.insert("foo".to_string(), "bar".into()); /// - /// let mut defaults = HashMap::new(); - /// - /// defaults.insert("foo".to_string(), "bar".into()); - /// - /// let builder = StoreBuilder::::new("store.bin") - /// .defaults(defaults); - /// - /// # Ok(()) - /// # } + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin") + /// .defaults(defaults) + /// .build(); + /// Ok(()) + /// }); + /// ``` pub fn defaults(mut self, defaults: HashMap) -> Self { self.cache.clone_from(&defaults); self.defaults = Some(defaults); @@ -89,15 +98,18 @@ impl StoreBuilder { /// /// # Examples /// ``` - /// # fn main() -> Result<(), Box> { - /// use tauri_plugin_store::StoreBuilder; - /// - /// let builder = StoreBuilder::::new("store.bin") - /// .default("foo".to_string(), "bar".into()); - /// - /// # Ok(()) - /// # } - pub fn default(mut self, key: String, value: JsonValue) -> Self { + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin") + /// .default("foo".to_string(), "bar") + /// .build(); + /// Ok(()) + /// }); + /// ``` + pub fn default(mut self, key: impl Into, value: impl Into) -> Self { + let key = key.into(); + let value = value.into(); self.cache.insert(key.clone(), value.clone()); self.defaults .get_or_insert(HashMap::new()) @@ -109,14 +121,15 @@ impl StoreBuilder { /// /// # Examples /// ``` - /// # fn main() -> Result<(), Box> { - /// use tauri_plugin_store::StoreBuilder; - /// - /// let builder = StoreBuilder::::new("store.json") - /// .serialize(|cache| serde_json::to_vec(&cache).map_err(Into::into)); - /// - /// # Ok(()) - /// # } + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") + /// .serialize(|cache| serde_json::to_vec(&cache).map_err(Into::into)) + /// .build(); + /// Ok(()) + /// }); + /// ``` pub fn serialize(mut self, serialize: SerializeFn) -> Self { self.serialize = serialize; self @@ -126,53 +139,102 @@ impl StoreBuilder { /// /// # Examples /// ``` - /// # fn main() -> Result<(), Box> { - /// use tauri_plugin_store::StoreBuilder; - /// - /// let builder = StoreBuilder::::new("store.json") - /// .deserialize(|bytes| serde_json::from_slice(&bytes).map_err(Into::into)); - /// - /// # Ok(()) - /// # } + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") + /// .deserialize(|bytes| serde_json::from_slice(&bytes).map_err(Into::into)) + /// .build(); + /// Ok(()) + /// }); + /// ``` pub fn deserialize(mut self, deserialize: DeserializeFn) -> Self { self.deserialize = deserialize; self } + /// Auto save on modified with a debounce duration + /// + /// Note: only works if this store is managed by the plugin (e.g. made using [`crate::with_store`] or inserted into [`crate::Builder`]) + /// + /// # Examples + /// ``` + /// + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") + /// .auto_save(std::time::Duration::from_millis(100)) + /// .build(); + /// Ok(()) + /// }); + /// ``` + pub fn auto_save(mut self, debounce_duration: Duration) -> Self { + self.auto_save = Some(debounce_duration); + self + } + /// Builds the [`Store`]. /// /// # Examples /// ``` /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) /// .setup(|app| { - /// let store = tauri_plugin_store::StoreBuilder::new("store.json").build(app.handle().clone()); + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json").build(); /// Ok(()) /// }); /// ``` - pub fn build(self, app: AppHandle) -> Store { + pub fn build(self) -> Store { + let collection = self.app.state::>(); + let mut stores = collection.stores.lock().unwrap(); + let store = stores + .get(&self.path) + .and_then(|store| store.upgrade()) + .unwrap_or_else(|| { + let mut store = StoreInner::new(self.app.clone(), self.path.clone()); + let _ = store.load(self.deserialize); + let store = Arc::new(Mutex::new(store)); + stores.insert( + self.path.clone(), + Arc::>>::downgrade(&store), + ); + store + }); + drop(stores); Store { - app, - path: self.path, defaults: self.defaults, - cache: self.cache, serialize: self.serialize, deserialize: self.deserialize, + auto_save: self.auto_save, + auto_save_debounce_sender: Arc::new(Mutex::new(None)), + store, } } } -#[derive(Clone)] -pub struct Store { - pub(crate) app: AppHandle, - pub(crate) path: PathBuf, - defaults: Option>, - pub(crate) cache: HashMap, - pub(crate) serialize: SerializeFn, - pub(crate) deserialize: DeserializeFn, +pub(crate) enum AutoSaveMessage { + Reset, + Cancel, } -impl Store { - pub fn save(&self) -> Result<(), Error> { +#[derive(Clone)] +pub struct StoreInner { + pub(crate) app: AppHandle, + pub(crate) path: PathBuf, + pub(crate) cache: HashMap, +} + +impl StoreInner { + pub fn new(app: AppHandle, path: PathBuf) -> Self { + Self { + app, + path, + cache: HashMap::new(), + } + } + + pub fn save(&self, serialize_fn: SerializeFn) -> crate::Result<()> { let app_dir = self .app .path() @@ -182,7 +244,7 @@ impl Store { create_dir_all(store_path.parent().expect("invalid store path"))?; - let bytes = (self.serialize)(&self.cache).map_err(Error::Serialize)?; + let bytes = serialize_fn(&self.cache).map_err(crate::Error::Serialize)?; let mut f = File::create(&store_path)?; f.write_all(&bytes)?; @@ -190,7 +252,7 @@ impl Store { } /// Update the store from the on-disk state - pub fn load(&mut self) -> Result<(), Error> { + pub fn load(&mut self, deserialize_fn: DeserializeFn) -> crate::Result<()> { let app_dir = self .app .path() @@ -201,23 +263,16 @@ impl Store { let bytes = read(store_path)?; self.cache - .extend((self.deserialize)(&bytes).map_err(Error::Deserialize)?); + .extend(deserialize_fn(&bytes).map_err(crate::Error::Deserialize)?); Ok(()) } - pub fn insert(&mut self, key: String, value: JsonValue) -> Result<(), Error> { + pub fn insert(&mut self, key: impl Into, value: impl Into) { + let key = key.into(); + let value = value.into(); self.cache.insert(key.clone(), value.clone()); - self.app.emit( - "store://change", - ChangePayload { - path: &self.path, - key: &key, - value: &value, - }, - )?; - - Ok(()) + let _ = self.emit_change_event(&key, &value); } pub fn get(&self, key: impl AsRef) -> Option<&JsonValue> { @@ -228,57 +283,36 @@ impl Store { self.cache.contains_key(key.as_ref()) } - pub fn delete(&mut self, key: impl AsRef) -> Result { + pub fn delete(&mut self, key: impl AsRef) -> bool { let flag = self.cache.remove(key.as_ref()).is_some(); if flag { - self.app.emit( - "store://change", - ChangePayload { - path: &self.path, - key: key.as_ref(), - value: &JsonValue::Null, - }, - )?; + let _ = self.emit_change_event(key.as_ref(), &JsonValue::Null); } - Ok(flag) + flag } - pub fn clear(&mut self) -> Result<(), Error> { + pub fn clear(&mut self) { let keys: Vec = self.cache.keys().cloned().collect(); self.cache.clear(); - for key in keys { - self.app.emit( - "store://change", - ChangePayload { - path: &self.path, - key: &key, - value: &JsonValue::Null, - }, - )?; + for key in &keys { + let _ = self.emit_change_event(key, &JsonValue::Null); } - Ok(()) } - pub fn reset(&mut self) -> Result<(), Error> { - let has_defaults = self.defaults.is_some(); - - if has_defaults { - if let Some(defaults) = &self.defaults { - for (key, value) in &self.cache { - if defaults.get(key) != Some(value) { - let _ = self.app.emit( - "store://change", - ChangePayload { - path: &self.path, - key, - value: defaults.get(key).unwrap_or(&JsonValue::Null), - }, - ); - } + pub fn reset(&mut self, defaults: &Option>) { + if let Some(defaults) = &defaults { + for (key, value) in &self.cache { + if defaults.get(key) != Some(value) { + let _ = + self.emit_change_event(key, defaults.get(key).unwrap_or(&JsonValue::Null)); } - self.cache.clone_from(defaults); } - Ok(()) + for (key, value) in defaults { + if !self.cache.contains_key(key) { + let _ = self.emit_change_event(key, value); + } + } + self.cache.clone_from(defaults); } else { self.clear() } @@ -303,14 +337,152 @@ impl Store { pub fn is_empty(&self) -> bool { self.cache.is_empty() } + + fn emit_change_event(&self, key: &str, value: &JsonValue) -> crate::Result<()> { + self.app.emit( + "store://change", + ChangePayload { + path: &self.path, + key, + value, + }, + )?; + Ok(()) + } } -impl std::fmt::Debug for Store { +impl std::fmt::Debug for StoreInner { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Store") .field("path", &self.path) - .field("defaults", &self.defaults) .field("cache", &self.cache) .finish() } } + +pub struct Store { + defaults: Option>, + serialize: SerializeFn, + deserialize: DeserializeFn, + auto_save: Option, + auto_save_debounce_sender: Arc>>>, + store: Arc>>, +} + +impl Resource for Store {} + +impl Store { + pub fn with_store( + &self, + f: impl FnOnce(&mut StoreInner) -> crate::Result, + ) -> crate::Result { + let mut store = self.store.lock().unwrap(); + f(&mut store) + } + + pub fn set(&self, key: impl Into, value: impl Into) { + self.store.lock().unwrap().insert(key.into(), value.into()); + let _ = self.trigger_auto_save(); + } + + pub fn get(&self, key: impl AsRef) -> Option { + self.store.lock().unwrap().get(key).cloned() + } + + pub fn has(&self, key: impl AsRef) -> bool { + self.store.lock().unwrap().has(key) + } + + pub fn delete(&self, key: impl AsRef) -> bool { + let deleted = self.store.lock().unwrap().delete(key); + if deleted { + let _ = self.trigger_auto_save(); + } + deleted + } + + pub fn clear(&self) { + self.store.lock().unwrap().clear(); + let _ = self.trigger_auto_save(); + } + + pub fn reset(&self) { + self.store.lock().unwrap().reset(&self.defaults); + let _ = self.trigger_auto_save(); + } + + pub fn keys(&self) -> Vec { + self.store.lock().unwrap().keys().cloned().collect() + } + + pub fn values(&self) -> Vec { + self.store.lock().unwrap().values().cloned().collect() + } + + pub fn entries(&self) -> Vec<(String, JsonValue)> { + self.store + .lock() + .unwrap() + .entries() + .map(|(k, v)| (k.to_owned(), v.to_owned())) + .collect() + } + + pub fn length(&self) -> usize { + self.store.lock().unwrap().len() + } + + pub fn load(&self) -> crate::Result<()> { + self.store.lock().unwrap().load(self.deserialize) + } + + pub fn save(&self) -> crate::Result<()> { + self.store.lock().unwrap().save(self.serialize) + } + + fn trigger_auto_save(&self) -> crate::Result<()> { + let Some(auto_save_delay) = self.auto_save else { + return Ok(()); + }; + if auto_save_delay.is_zero() { + return self.save(); + } + let mut auto_save_debounce_sender = self.auto_save_debounce_sender.lock().unwrap(); + if let Some(ref sender) = *auto_save_debounce_sender { + let _ = sender.send(AutoSaveMessage::Reset); + return Ok(()); + } + let (sender, mut receiver) = unbounded_channel(); + auto_save_debounce_sender.replace(sender); + drop(auto_save_debounce_sender); + let store = self.store.clone(); + let serialize_fn = self.serialize; + let auto_save_debounce_sender = self.auto_save_debounce_sender.clone(); + tauri::async_runtime::spawn(async move { + loop { + select! { + should_cancel = receiver.recv() => { + if matches!(should_cancel, Some(AutoSaveMessage::Cancel) | None) { + return; + } + } + _ = sleep(auto_save_delay) => { + let _ = store.lock().unwrap().save(serialize_fn); + auto_save_debounce_sender.lock().unwrap().take(); + return; + } + }; + } + }); + Ok(()) + } +} + +impl Drop for Store { + fn drop(&mut self) { + let auto_save_debounce_sender = self.auto_save_debounce_sender.lock().unwrap(); + if let Some(ref sender) = *auto_save_debounce_sender { + let _ = sender.send(AutoSaveMessage::Cancel); + } + } +} From 7e5e34420b3facabb81d53ec40435007518da5b5 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 2 Oct 2024 10:13:20 +0800 Subject: [PATCH 603/643] Cancel auto save on save (#1859) --- plugins/store/src/store.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/plugins/store/src/store.rs b/plugins/store/src/store.rs index b18d00277..d610525d3 100644 --- a/plugins/store/src/store.rs +++ b/plugins/store/src/store.rs @@ -437,6 +437,9 @@ impl Store { } pub fn save(&self) -> crate::Result<()> { + if let Some(sender) = self.auto_save_debounce_sender.lock().unwrap().take() { + let _ = sender.send(AutoSaveMessage::Cancel); + } self.store.lock().unwrap().save(self.serialize) } @@ -467,8 +470,8 @@ impl Store { } } _ = sleep(auto_save_delay) => { - let _ = store.lock().unwrap().save(serialize_fn); auto_save_debounce_sender.lock().unwrap().take(); + let _ = store.lock().unwrap().save(serialize_fn); return; } }; @@ -477,12 +480,3 @@ impl Store { Ok(()) } } - -impl Drop for Store { - fn drop(&mut self) { - let auto_save_debounce_sender = self.auto_save_debounce_sender.lock().unwrap(); - if let Some(ref sender) = *auto_save_debounce_sender { - let _ = sender.send(AutoSaveMessage::Cancel); - } - } -} From fb62d03f739004138ea5172f9adb512018e76fa8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 07:02:42 -0300 Subject: [PATCH 604/643] publish new versions (#1807) Co-authored-by: lucasfernog --- .changes/pre.json | 13 +++++++++++++ Cargo.lock | 26 +++++++++++++------------- examples/api/CHANGELOG.md | 6 ++++++ examples/api/package.json | 4 ++-- examples/api/src-tauri/CHANGELOG.md | 12 ++++++++++++ examples/api/src-tauri/Cargo.toml | 16 ++++++++-------- plugins/cli/CHANGELOG.md | 4 ++++ plugins/cli/Cargo.toml | 2 +- plugins/deep-link/CHANGELOG.md | 4 ++++ plugins/deep-link/Cargo.toml | 2 +- plugins/dialog/CHANGELOG.md | 12 ++++++++++++ plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 4 ++++ plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 6 ++++++ plugins/http/Cargo.toml | 4 ++-- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/positioner/CHANGELOG.md | 4 ++++ plugins/positioner/Cargo.toml | 2 +- plugins/positioner/package.json | 2 +- plugins/shell/CHANGELOG.md | 4 ++++ plugins/shell/Cargo.toml | 2 +- plugins/single-instance/CHANGELOG.md | 6 ++++++ plugins/single-instance/Cargo.toml | 4 ++-- plugins/sql/CHANGELOG.md | 4 ++++ plugins/sql/Cargo.toml | 2 +- plugins/store/CHANGELOG.md | 8 +++++++- plugins/store/Cargo.toml | 2 +- plugins/store/package.json | 2 +- plugins/updater/CHANGELOG.md | 6 ++++++ plugins/updater/Cargo.toml | 2 +- pnpm-lock.yaml | 2 +- 33 files changed, 140 insertions(+), 43 deletions(-) diff --git a/.changes/pre.json b/.changes/pre.json index 72d4ed594..922d3c457 100644 --- a/.changes/pre.json +++ b/.changes/pre.json @@ -4,18 +4,23 @@ ".changes/android-dialog-save.md", ".changes/barcode-dependencies.md", ".changes/barcode-scanner-validate-plist.md", + ".changes/cli-hidden-structs.md", ".changes/consolidate-permission-state.md", ".changes/deep-link-event.md", ".changes/deep-link-get-current-desktop.md", ".changes/deep-link-on-new-url.md", ".changes/deep-link-register-all.md", + ".changes/deep-link-space-in-path.md", ".changes/dialog-asset-scope.md", ".changes/dialog-file-response-non-exhaustive.md", ".changes/dialog-return-path.md", + ".changes/dialog-rfd-015.md", + ".changes/feat-multiple-sql-backends.md", ".changes/fix-barcodae-scanner-imports.md", ".changes/fix-clipboard-warnings-sdk.md", ".changes/fix-deep-link-config.md", ".changes/fix-fs-app-scopes.md", + ".changes/fix-fs-scope-unknown-path.md", ".changes/fix-fs-write-file-android.md", ".changes/fix-http-plugin-abort.md", ".changes/fix-ios-file-dialog-default-mode.md", @@ -37,17 +42,22 @@ ".changes/haptics-release.md", ".changes/iife-varname-spacing.md", ".changes/ios-dialog-save.md", + ".changes/native-dialog-button-text.md", ".changes/notification-body-optional-ios.md", ".changes/notification-permission-type-change.md", + ".changes/positioner-v2-handleIconState.md", ".changes/rc.md", ".changes/remove-target-sdk.md", ".changes/resolve-content-uris.md", ".changes/shell-open-regex-match-string.md", ".changes/shell-regex-match-string.md", + ".changes/shell-schema-required-sidcar.md", ".changes/single-instance-deep-link.md", ".changes/single-instance-optional-deep-link.md", ".changes/single-instance-windows-sys.0.59.md", ".changes/sql-uuid-type.md", + ".changes/store-api-refactor.md", + ".changes/store-auto-save.md", ".changes/store-remove-mobile-plugin.md", ".changes/swift-build-older-versions.md", ".changes/tauri-rc-8.md", @@ -55,6 +65,9 @@ ".changes/update-geolocation-api.md", ".changes/update-tauri-rc-12.md", ".changes/update-tauri-rc-3.md", + ".changes/updater-endpoint-version-encoded.md", + ".changes/updater-endpoints-result.md", + ".changes/updater-insecure-transport-protocol.md", ".changes/updater-js-headers-download-crate.md", ".changes/updater-js-headers-download.md", ".changes/window-state-physical-size.md" diff --git a/Cargo.lock b/Cargo.lock index 8afbabdee..214a2b8d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" dependencies = [ "log", "serde", @@ -6670,7 +6670,7 @@ dependencies = [ [[package]] name = "tauri-plugin-cli" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "clap", "log", @@ -6697,7 +6697,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" dependencies = [ "dunce", "log", @@ -6715,7 +6715,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" dependencies = [ "log", "raw-window-handle", @@ -6731,7 +6731,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "anyhow", "dunce", @@ -6791,7 +6791,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "data-url", "http", @@ -6895,7 +6895,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" dependencies = [ "aho-corasick", "bincode", @@ -6909,7 +6909,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" dependencies = [ "log", "serde", @@ -6930,7 +6930,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "encoding_rs", "log", @@ -6949,7 +6949,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" dependencies = [ "log", "semver", @@ -6964,7 +6964,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" dependencies = [ "futures-core", "indexmap 2.5.0", @@ -6981,7 +6981,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "dunce", "log", @@ -7016,7 +7016,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" dependencies = [ "base64 0.22.1", "dirs 5.0.1", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 07e31aae1..73471a133 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.5] + +### Dependencies + +- Upgraded to `store-js@2.0.0-rc.2` + ## \[2.0.0-rc.4] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index f5426331e..bde55fd18 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0-rc.4", + "version": "2.0.0-rc.5", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -25,7 +25,7 @@ "@tauri-apps/plugin-os": "2.0.0-rc.1", "@tauri-apps/plugin-process": "2.0.0-rc.1", "@tauri-apps/plugin-shell": "2.0.0-rc.1", - "@tauri-apps/plugin-store": "2.0.0-rc.1", + "@tauri-apps/plugin-store": "2.0.0-rc.2", "@tauri-apps/plugin-updater": "2.0.0-rc.2", "@zerodevx/svelte-json-view": "1.0.11" }, diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 63b7e4774..d2c25fcc3 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 4fdb6fdf7..ac9d537a6 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,21 +20,21 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.5", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.6", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.4" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.7" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.8" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.5" } +], version = "2.0.0-rc.6" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.5", features = [ "windows7-compat", ] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-rc.1" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-rc.1" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-rc.3" } -tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.0-rc.3" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-rc.4" } +tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.0-rc.4" } [dependencies.tauri] workspace = true @@ -50,9 +50,9 @@ features = [ ] [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.1" } +tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.2" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-rc.2" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.3" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.4" } tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0-rc.3" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] diff --git a/plugins/cli/CHANGELOG.md b/plugins/cli/CHANGELOG.md index 3a6da0935..20a19788b 100644 --- a/plugins/cli/CHANGELOG.md +++ b/plugins/cli/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`68579934`](https://github.com/tauri-apps/plugins-workspace/commit/68579934c93f6ed2edbc97474560d6a8a00e8f70) ([#1856](https://github.com/tauri-apps/plugins-workspace/pull/1856) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Expose `Matches`, `SubcommandMatches` and `ArgData` structs. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index ccecff053..cdc6cb947 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-cli" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Parse arguments from your Tauri application's command line interface." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index 4b1a6c398..1e12c6780 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.7] + +- [`3168e176`](https://github.com/tauri-apps/plugins-workspace/commit/3168e176031a61215be542595ba90ca51f8f2d97) ([#1806](https://github.com/tauri-apps/plugins-workspace/pull/1806) by [@auggiebennett](https://github.com/tauri-apps/plugins-workspace/../../auggiebennett)) Fix fails to start when having spaces in the main binary path on Windows + ## \[2.0.0-rc.6] - [`6f3f6679`](https://github.com/tauri-apps/plugins-workspace/commit/6f3f66794a87ef9d1c16667c425d5ad7091a9c2f) ([#1780](https://github.com/tauri-apps/plugins-workspace/pull/1780)) Added `DeepLink::on_open_url` function to match the JavaScript API implementation, diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 9a0854932..d1280495e 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.6" +version = "2.0.0-rc.7" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 54117e16d..22019e390 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## \[2.0.0-rc.8] + +- [`6bf1bd8d`](https://github.com/tauri-apps/plugins-workspace/commit/6bf1bd8d44bb95618590aa066e638509b014e0f9) ([#1805](https://github.com/tauri-apps/plugins-workspace/pull/1805) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Update rfd to 0.15 + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.6` + +### breaking + +- [`04459afb`](https://github.com/tauri-apps/plugins-workspace/commit/04459afbb67aafa5cd57e6a148c2beb0a8d3e04a) ([#1842](https://github.com/tauri-apps/plugins-workspace/pull/1842) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Changed `MessageDialogBuilder::ok_button_label` and `MessageDialogBuilder::cancel_button_label` to `MessageDialogBuilder::buttons` which takes an enum now + ## \[2.0.0-rc.7] ### Dependencies diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 75327f740..6040b7949 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.7" +version = "2.0.0-rc.8" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 8f04d8936..6a7954c6a 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.6] + +- [`fc9b189e`](https://github.com/tauri-apps/plugins-workspace/commit/fc9b189e83a29bd750714ec6336133c6eabdfa20) ([#1837](https://github.com/tauri-apps/plugins-workspace/pull/1837) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Fix failing to deserialize capability file when using an OS specific path in the scope that is not available on the current OS. + ## \[2.0.0-rc.5] - [`cc03ccf5`](https://github.com/tauri-apps/plugins-workspace/commit/cc03ccf5e0e4be8bbf50bbdebe957c84be7f779b) ([#1774](https://github.com/tauri-apps/plugins-workspace/pull/1774)) Fix `scope-app`, `scope-app-recursive` and `scope-index` not properly enabling the application paths. diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 2b4ffcea9..fb9c9c717 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index 864b756c6..35b261af2 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.6] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.6` + ## \[2.0.0-rc.5] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 057780c50..6ff3419a7 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 8ffd0c0e5..4ea413bb3 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.6] + +### Dependencies + +- Upgraded to `fs@2.0.0-rc.6` + ## \[2.0.0-rc.5] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index df924ea4d..caee35228 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.5" +version = "2.0.0-rc.6" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -27,7 +27,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.5" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index 4b11283ff..8372e591e 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`2f7e32b5`](https://github.com/tauri-apps/plugins-workspace/commit/2f7e32b5e07454d6c0cf3ab03f8af8da74c4a8a7) ([#1822](https://github.com/tauri-apps/plugins-workspace/pull/1822) by [@jbolda](https://github.com/tauri-apps/plugins-workspace/../../jbolda)) `handleIconState` function for use in JavaScript event handlers. This allows one to update the TrayIcon state through JavaScript and fully create and handle the TrayIcon without requiring Rust (and the side-effect of creating a TrayIcon). + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 757bfac09..a99250cf8 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.0.0-rc.1" +version = "2.0.0-rc.2" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 5eb9027a6..a39d33d1f 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "description": "Position your windows at well-known locations.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index 0a9eebbbc..d57b07e9c 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.4] + +- [`44273b98`](https://github.com/tauri-apps/plugins-workspace/commit/44273b988957a254eff715d6be7547d2ace882e1) ([#1839](https://github.com/tauri-apps/plugins-workspace/pull/1839) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Fix the plugin schema requiring to set `sidecar` property when it is in fact optional. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index a045f0c2c..860414e84 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index fbfa610a1..1cb7f316f 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.5] + +### Dependencies + +- Upgraded to `deep-link@2.0.0-rc.7` + ## \[2.0.0-rc.4] ### Dependencies diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 1d6f0b954..22de86663 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.4" +version = "2.0.0-rc.5" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -26,7 +26,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.6", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.7", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 1d5fd993d..5ef4ae399 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.3] + +- [`30bcf5dc`](https://github.com/tauri-apps/plugins-workspace/commit/30bcf5dcc22e1bb1fb983a8d2887edc39404e6df) ([#1838](https://github.com/tauri-apps/plugins-workspace/pull/1838) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) It is now possible to enable multiple SQL backends at the same time. There will be no compile error anymore if no backends are enabled! + ## \[2.0.0-rc.2] - [`0dd97d91`](https://github.com/tauri-apps/plugins-workspace/commit/0dd97d911569cdedab07f504b708036d62ff83c1) ([#1375](https://github.com/tauri-apps/plugins-workspace/pull/1375) by [@KauanCurbani](https://github.com/tauri-apps/plugins-workspace/../../KauanCurbani)) Added support for `UUID` columns to the postgres implementation. diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 4f4db76f5..09570eb58 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.0.0-rc.2" +version = "2.0.0-rc.3" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 3c46d597b..9b7c22571 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0-rc.2] + +- [`f12d3560`](https://github.com/tauri-apps/plugins-workspace/commit/f12d35609ab84f536c0f087665fdc1f978af3093) ([#1550](https://github.com/tauri-apps/plugins-workspace/pull/1550) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) **Breaking change**: Removed the `Store` constructor and added the `createStore` API. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 @@ -107,7 +111,9 @@ ps://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -eb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + eb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! ps://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! +plugins-workspace/pull/371)) First v2 alpha release! + com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index c2f8ddd91..f906603b8 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/package.json b/plugins/store/package.json index 54ab7936b..314e09625 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-store", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "description": "Simple, persistent key-value store.", "license": "MIT or APACHE-2.0", "authors": [ diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index a714a4ecd..220f3df5b 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.0-rc.4] + +- [`221f50f5`](https://github.com/tauri-apps/plugins-workspace/commit/221f50f53bd7a87dbd404e4cb1aaf502a5047785) ([#1816](https://github.com/tauri-apps/plugins-workspace/pull/1816) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Encode `+` when making updater requests which can be cause incorrectly interpolating the endpoint when using `{{current_version}}` in the endpoint where the current version contains a build number, for example `1.8.0+1`. +- [`04a0aea0`](https://github.com/tauri-apps/plugins-workspace/commit/04a0aea0ab9f8750200bc2fe5aff99c1c488082d) ([#1814](https://github.com/tauri-apps/plugins-workspace/pull/1814) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) **Breaking change**, Changed `UpdaterBuilder::endpoints` method to return a `Result`. +- [`04a0aea0`](https://github.com/tauri-apps/plugins-workspace/commit/04a0aea0ab9f8750200bc2fe5aff99c1c488082d) ([#1814](https://github.com/tauri-apps/plugins-workspace/pull/1814) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Add `dangerousInsecureTransportProtocol` config option to allow using insecure transport protocols, like `http` + ## \[2.0.0-rc.3] - [`d00519e3`](https://github.com/tauri-apps/plugins-workspace/commit/d00519e3e3a3234f9eb6c2ba82c92d4199f03e53) ([#1735](https://github.com/tauri-apps/plugins-workspace/pull/1735) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) This releases the changes from 2.0.0-rc.2 to crates.io. Please see the links below for the actual changes. diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index f2de9ecfd..b0697acc7 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.0-rc.3" +version = "2.0.0-rc.4" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7480d3383..9e6c5973a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,7 +106,7 @@ importers: specifier: 2.0.0-rc.1 version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: 2.0.0-rc.1 + specifier: 2.0.0-rc.2 version: link:../../plugins/store '@tauri-apps/plugin-updater': specifier: 2.0.0-rc.2 From 58eab11faf27d33a4327524c6b2eb3c515b9b624 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 2 Oct 2024 08:27:27 -0300 Subject: [PATCH 605/643] chore: document supported platforms on README, clarify unsupported APIs (#1857) closes #1795 --- examples/api/vite.config.js | 7 ------- plugins/autostart/README.md | 10 +++++++++- plugins/barcode-scanner/README.md | 8 ++++++++ plugins/biometric/README.md | 8 ++++++++ plugins/cli/README.md | 8 +++++++- plugins/clipboard-manager/README.md | 8 ++++++++ plugins/clipboard-manager/guest-js/index.ts | 15 +++++++++++++++ plugins/deep-link/README.md | 8 ++++++++ plugins/dialog/README.md | 8 ++++++++ plugins/fs/README.md | 8 ++++++++ plugins/geolocation/README.md | 8 ++++++++ plugins/global-shortcut/README.md | 8 +++++++- plugins/haptics/README.md | 8 ++++++++ plugins/http/README.md | 8 ++++++++ plugins/localhost/README.md | 8 ++++++++ plugins/log/README.md | 8 ++++++++ plugins/nfc/README.md | 8 ++++++++ plugins/notification/README.md | 8 ++++++++ plugins/os/README.md | 8 ++++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- plugins/persisted-scope/README.md | 8 ++++++++ plugins/positioner/README.md | 8 ++++++++ plugins/process/README.md | 8 ++++++++ plugins/shell/README.md | 8 ++++++++ plugins/single-instance/README.md | 8 ++++++++ plugins/sql/README.md | 8 ++++++++ plugins/store/README.md | 8 ++++++++ plugins/stronghold/Cargo.toml | 6 +++--- plugins/stronghold/README.md | 10 +++++++++- plugins/updater/README.md | 8 +++++++- plugins/upload/Cargo.toml | 4 ++-- plugins/upload/README.md | 8 ++++++++ plugins/websocket/Cargo.toml | 4 ++-- plugins/websocket/README.md | 8 ++++++++ plugins/window-state/README.md | 8 ++++++++ shared/template/README.md | 8 ++++++++ 36 files changed, 263 insertions(+), 21 deletions(-) diff --git a/examples/api/vite.config.js b/examples/api/vite.config.js index 3b34cccd4..f7d87db87 100644 --- a/examples/api/vite.config.js +++ b/examples/api/vite.config.js @@ -26,13 +26,6 @@ export default defineConfig(async () => { host: host || false, port: 5173, strictPort: true, - hmr: host - ? { - protocol: 'ws', - host, - port: 5183 - } - : undefined, fs: { allow: ['.', '../../tooling/api/dist'] } diff --git a/plugins/autostart/README.md b/plugins/autostart/README.md index 5855c9892..93c74271c 100644 --- a/plugins/autostart/README.md +++ b/plugins/autostart/README.md @@ -1,6 +1,14 @@ ![plugin-autostart](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/autostart/banner.png) -Automatically launch your application at startup. Supports Windows, Mac (via AppleScript or Launch Agent), and Linux. +Automatically launch your application at startup. + +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | ## Install diff --git a/plugins/barcode-scanner/README.md b/plugins/barcode-scanner/README.md index ee9831301..aca340bc7 100644 --- a/plugins/barcode-scanner/README.md +++ b/plugins/barcode-scanner/README.md @@ -2,6 +2,14 @@ Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. +| Platform | Supported | +| -------- | --------- | +| Linux | x | +| Windows | x | +| macOS | x | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.64**_ diff --git a/plugins/biometric/README.md b/plugins/biometric/README.md index bc4708c31..c97b8f9a6 100644 --- a/plugins/biometric/README.md +++ b/plugins/biometric/README.md @@ -2,6 +2,14 @@ Prompt the user for biometric authentication on Android and iOS. +| Platform | Supported | +| -------- | --------- | +| Linux | x | +| Windows | x | +| macOS | x | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.65**_ diff --git a/plugins/cli/README.md b/plugins/cli/README.md index 362597b50..8f0e0e626 100644 --- a/plugins/cli/README.md +++ b/plugins/cli/README.md @@ -2,7 +2,13 @@ Parse arguments from your Command Line Interface. -- Supported platforms: Windows, Linux and macOS. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | ## Install diff --git a/plugins/clipboard-manager/README.md b/plugins/clipboard-manager/README.md index 98ee2da0b..e22df0f6d 100644 --- a/plugins/clipboard-manager/README.md +++ b/plugins/clipboard-manager/README.md @@ -2,6 +2,14 @@ Read and write to the system clipboard. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/clipboard-manager/guest-js/index.ts b/plugins/clipboard-manager/guest-js/index.ts index d39e2f815..f7f31842a 100644 --- a/plugins/clipboard-manager/guest-js/index.ts +++ b/plugins/clipboard-manager/guest-js/index.ts @@ -49,6 +49,11 @@ async function readText(): Promise { /** * Writes image buffer to the clipboard. + * + * #### Platform-specific + * + * - **Android / iOS:** Not supported. + * * @example * ```typescript * import { writeImage } from '@tauri-apps/plugin-clipboard-manager'; @@ -75,6 +80,11 @@ async function writeImage( /** * Gets the clipboard content as Uint8Array image. + * + * #### Platform-specific + * + * - **Android / iOS:** Not supported. + * * @example * ```typescript * import { readImage } from '@tauri-apps/plugin-clipboard-manager'; @@ -93,6 +103,11 @@ async function readImage(): Promise { /** * * Writes HTML or fallbacks to write provided plain text to the clipboard. + * + * #### Platform-specific + * + * - **Android / iOS:** Not supported. + * * @example * ```typescript * import { writeHtml, readHtml } from '@tauri-apps/plugin-clipboard-manager'; diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index e761fa68f..8ecdc8f04 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -2,6 +2,14 @@ Set your Tauri application as the default handler for an URL. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/dialog/README.md b/plugins/dialog/README.md index 29c0a2c03..099e3939b 100644 --- a/plugins/dialog/README.md +++ b/plugins/dialog/README.md @@ -2,6 +2,14 @@ Native system dialogs for opening and saving files along with message dialogs. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/fs/README.md b/plugins/fs/README.md index 8ced39c46..187d7622a 100644 --- a/plugins/fs/README.md +++ b/plugins/fs/README.md @@ -2,6 +2,14 @@ Access the file system. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/geolocation/README.md b/plugins/geolocation/README.md index 57de24dd8..1923727f9 100644 --- a/plugins/geolocation/README.md +++ b/plugins/geolocation/README.md @@ -2,6 +2,14 @@ This plugin provides APIs for getting and tracking the device's current position, including information about altitude, heading, and speed (if available). +| Platform | Supported | +| -------- | --------- | +| Linux | x | +| Windows | x | +| macOS | x | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/global-shortcut/README.md b/plugins/global-shortcut/README.md index 68ee4b53e..5978cae30 100644 --- a/plugins/global-shortcut/README.md +++ b/plugins/global-shortcut/README.md @@ -2,7 +2,13 @@ Register global shortcuts. -- Supported platforms: Windows, Linux and macOS. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | ## Install diff --git a/plugins/haptics/README.md b/plugins/haptics/README.md index f29c8c32b..42c9b455a 100644 --- a/plugins/haptics/README.md +++ b/plugins/haptics/README.md @@ -4,6 +4,14 @@ Haptic feedback and vibrations on Android and iOS. There are no standards/requirements for vibration support on Android, so the `feedback` APIs may not work correctly on more affordable phones, including recently released ones. +| Platform | Supported | +| -------- | --------- | +| Linux | x | +| Windows | x | +| macOS | x | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/http/README.md b/plugins/http/README.md index d6c6a9800..b45f82681 100644 --- a/plugins/http/README.md +++ b/plugins/http/README.md @@ -2,6 +2,14 @@ Access the HTTP client written in Rust. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/localhost/README.md b/plugins/localhost/README.md index 21d764292..b1e825ded 100644 --- a/plugins/localhost/README.md +++ b/plugins/localhost/README.md @@ -2,6 +2,14 @@ Expose your apps assets through a localhost server instead of the default custom protocol. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + > Note: This plugins brings considerable security risks and you should only use it if you know what your are doing. If in doubt, use the default custom protocol implementation. ## Install diff --git a/plugins/log/README.md b/plugins/log/README.md index e1410ecf6..9362fa252 100644 --- a/plugins/log/README.md +++ b/plugins/log/README.md @@ -2,6 +2,14 @@ Configurable logging for your Tauri app. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/nfc/README.md b/plugins/nfc/README.md index 7ad2213df..9427d7ca2 100644 --- a/plugins/nfc/README.md +++ b/plugins/nfc/README.md @@ -2,6 +2,14 @@ Read and write NFC tags on Android and iOS. +| Platform | Supported | +| -------- | --------- | +| Linux | x | +| Windows | x | +| macOS | x | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.65**_ diff --git a/plugins/notification/README.md b/plugins/notification/README.md index 65fd4852d..14977dbd5 100644 --- a/plugins/notification/README.md +++ b/plugins/notification/README.md @@ -2,6 +2,14 @@ Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/os/README.md b/plugins/os/README.md index 5d82e9972..f84d123a2 100644 --- a/plugins/os/README.md +++ b/plugins/os/README.md @@ -2,6 +2,14 @@ Read information about the operating system. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index caee35228..19acc56bb 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -16,8 +16,8 @@ rustdoc-args = ["--cfg", "docsrs"] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } macos = { level = "full", notes = "" } -android = { level = "none", notes = "" } -ios = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } [dependencies] serde = { workspace = true } diff --git a/plugins/persisted-scope/README.md b/plugins/persisted-scope/README.md index 8be89f690..bf959443b 100644 --- a/plugins/persisted-scope/README.md +++ b/plugins/persisted-scope/README.md @@ -2,6 +2,14 @@ Save filesystem and asset scopes and restore them when the app is reopened. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 3c8ac1d91..3652c162e 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -4,6 +4,14 @@ Position your windows at well-known locations. This plugin is a port of [electron-positioner](https://github.com/jenslind/electron-positioner) for Tauri. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/process/README.md b/plugins/process/README.md index 89c04d5a0..50c7634b0 100644 --- a/plugins/process/README.md +++ b/plugins/process/README.md @@ -2,6 +2,14 @@ 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. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/shell/README.md b/plugins/shell/README.md index 25137648e..c52b0eb4e 100644 --- a/plugins/shell/README.md +++ b/plugins/shell/README.md @@ -2,6 +2,14 @@ Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/single-instance/README.md b/plugins/single-instance/README.md index bd761018b..551ea72d9 100644 --- a/plugins/single-instance/README.md +++ b/plugins/single-instance/README.md @@ -2,6 +2,14 @@ Ensure a single instance of your tauri app is running. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/sql/README.md b/plugins/sql/README.md index 24ba1bdff..a04e992a6 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -2,6 +2,14 @@ Interface with SQL databases through [sqlx](https://github.com/launchbadge/sqlx). It supports the `sqlite`, `mysql` and `postgres` drivers, enabled by a Cargo feature. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | x | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/store/README.md b/plugins/store/README.md index f7d65a0f7..5ba41c80f 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -2,6 +2,14 @@ Simple, persistent key-value store. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 374134dc2..d979bb860 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-stronghold" version = "2.0.0-rc.1" -description = "Store secrets and keys using the IOTA Stronghold encrypted database." +description = "Store secrets and keys using the IOTA Stronghold secret management engine." authors = { workspace = true } license = { workspace = true } edition = { workspace = true } @@ -17,8 +17,8 @@ rustdoc-args = ["--cfg", "docsrs"] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } macos = { level = "full", notes = "" } -android = { level = "none", notes = "" } -ios = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index fd1dae014..17bd125ba 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -1,6 +1,14 @@ ![plugin-stronghold](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/stronghold/banner.png) -Store secrets and keys using the [IOTA Stronghold](https://github.com/iotaledger/stronghold.rs) encrypted database and secure runtime. +Store secrets and keys using the [IOTA Stronghold](https://github.com/iotaledger/stronghold.rs) secret management engine. + +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | ## Install diff --git a/plugins/updater/README.md b/plugins/updater/README.md index 836a63b12..918e624f4 100644 --- a/plugins/updater/README.md +++ b/plugins/updater/README.md @@ -2,7 +2,13 @@ In-app updates for Tauri applications. -- Supported platforms: Windows, Linux and macOS. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | ## Install diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index d01f6bbee..8e2db6bac 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -17,8 +17,8 @@ rustdoc-args = ["--cfg", "docsrs"] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } macos = { level = "full", notes = "" } -android = { level = "none", notes = "" } -ios = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/upload/README.md b/plugins/upload/README.md index a675ad6a4..bf6a734b1 100644 --- a/plugins/upload/README.md +++ b/plugins/upload/README.md @@ -3,6 +3,14 @@ Upload files from disk to a remote server over HTTP. Download files from a remote HTTP server to disk. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 67c4a9ae7..8fdb22b7f 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -18,8 +18,8 @@ rustdoc-args = ["--cfg", "docsrs"] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } macos = { level = "full", notes = "" } -android = { level = "none", notes = "" } -ios = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } diff --git a/plugins/websocket/README.md b/plugins/websocket/README.md index db4d1ada6..09a0f5580 100644 --- a/plugins/websocket/README.md +++ b/plugins/websocket/README.md @@ -2,6 +2,14 @@ Expose a WebSocket server to your Tauri frontend. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/plugins/window-state/README.md b/plugins/window-state/README.md index 8781ea612..96133e155 100644 --- a/plugins/window-state/README.md +++ b/plugins/window-state/README.md @@ -2,6 +2,14 @@ Save window positions and sizes and restore them when the app is reopened. +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | x | +| iOS | x | + ## Install _This plugin requires a Rust version of at least **1.75**_ diff --git a/shared/template/README.md b/shared/template/README.md index 1dd0a09b3..4387ef324 100644 --- a/shared/template/README.md +++ b/shared/template/README.md @@ -2,6 +2,14 @@ +| Platform | Supported | +| -------- | --------- | +| Linux | ✓ | +| Windows | ✓ | +| macOS | ✓ | +| Android | ✓ | +| iOS | ✓ | + ## Install _This plugin requires a Rust version of at least **1.75**_ From 654a7299c3f5b1ea3f6814dabd96d10bef42d8ed Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Wed, 2 Oct 2024 14:28:28 +0300 Subject: [PATCH 606/643] fix(positioner): pass correct values through IPC (#1858) * fix(positioner): pass correct values through IPC followup to https://github.com/tauri-apps/plugins-workspace/pull/1822 * build api & remove packageManager field --- plugins/autostart/package.json | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/package.json | 2 +- plugins/cli/package.json | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/package.json | 2 +- plugins/dialog/package.json | 2 +- plugins/fs/package.json | 2 +- plugins/geolocation/package.json | 2 +- plugins/global-shortcut/package.json | 2 +- plugins/haptics/package.json | 2 +- plugins/http/package.json | 2 +- plugins/log/package.json | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/package.json | 2 +- plugins/os/package.json | 2 +- plugins/positioner/README.md | 4 +- plugins/positioner/api-iife.js | 2 +- plugins/positioner/guest-js/index.ts | 18 ++++-- plugins/positioner/package.json | 2 +- plugins/process/package.json | 2 +- plugins/shell/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/package.json | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/package.json | 2 +- pnpm-lock.yaml | 76 +++++++++++++------------- shared/template/package.json | 2 +- 31 files changed, 82 insertions(+), 72 deletions(-) diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index 9b9f54f61..b6ad5765a 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index ec01ad216..eb3fa4fea 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 9465cb262..74ba15932 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/cli/package.json b/plugins/cli/package.json index 09a486186..77b705bf3 100644 --- a/plugins/cli/package.json +++ b/plugins/cli/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index a5fb15e9c..572d0636f 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 11faee2b6..7f5bb3428 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index 41a809994..c12835d00 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 7fd93a027..67f7fa1b8 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json index c846a61d0..01f21fee1 100644 --- a/plugins/geolocation/package.json +++ b/plugins/geolocation/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/global-shortcut/package.json b/plugins/global-shortcut/package.json index e0ecf02b4..6ccc82162 100644 --- a/plugins/global-shortcut/package.json +++ b/plugins/global-shortcut/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/haptics/package.json b/plugins/haptics/package.json index 661b946eb..07e823208 100644 --- a/plugins/haptics/package.json +++ b/plugins/haptics/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/http/package.json b/plugins/http/package.json index c58dd8af3..82ee3ea66 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/log/package.json b/plugins/log/package.json index 94fee1fc2..c56b34456 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index ee2fa2a4b..7a50a6fd1 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/notification/package.json b/plugins/notification/package.json index edee71188..d91f0cdb9 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/os/package.json b/plugins/os/package.json index fd3b8e756..d87598267 100644 --- a/plugins/os/package.json +++ b/plugins/os/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 3652c162e..05a9b7f96 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -102,8 +102,8 @@ import { const action = async (event: TrayIconEvent) => { // add the handle in the action to update the state await handleIconState(event); - if ("click" in event) { - const { click } = event; + + if (event.type === "Click") { // note this option requires enabling the `tray-icon` // feature in the Cargo.toml await moveWindow(Position.TrayLeft); diff --git a/plugins/positioner/api-iife.js b/plugins/positioner/api-iife.js index 5504ebe87..bce8ee32f 100644 --- a/plugins/positioner/api-iife.js +++ b/plugins/positioner/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_POSITIONER__=function(t){"use strict";async function o(t,o={},e){return window.__TAURI_INTERNALS__.invoke(t,o,e)}var e;return"function"==typeof SuppressedError&&SuppressedError,t.Position=void 0,(e=t.Position||(t.Position={}))[e.TopLeft=0]="TopLeft",e[e.TopRight=1]="TopRight",e[e.BottomLeft=2]="BottomLeft",e[e.BottomRight=3]="BottomRight",e[e.TopCenter=4]="TopCenter",e[e.BottomCenter=5]="BottomCenter",e[e.LeftCenter=6]="LeftCenter",e[e.RightCenter=7]="RightCenter",e[e.Center=8]="Center",e[e.TrayLeft=9]="TrayLeft",e[e.TrayBottomLeft=10]="TrayBottomLeft",e[e.TrayRight=11]="TrayRight",e[e.TrayBottomRight=12]="TrayBottomRight",e[e.TrayCenter=13]="TrayCenter",e[e.TrayBottomCenter=14]="TrayBottomCenter",t.handleIconState=async function(t){await async function(t){await o("plugin:positioner|set_tray_icon_state",{position:t.position,size:t.size})}(t.rect)},t.moveWindow=async function(t){await o("plugin:positioner|move_window",{position:t})},t}({});Object.defineProperty(window.__TAURI__,"positioner",{value:__TAURI_PLUGIN_POSITIONER__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_POSITIONER__=function(t){"use strict";async function e(t,e={},o){return window.__TAURI_INTERNALS__.invoke(t,e,o)}var o;return"function"==typeof SuppressedError&&SuppressedError,t.Position=void 0,(o=t.Position||(t.Position={}))[o.TopLeft=0]="TopLeft",o[o.TopRight=1]="TopRight",o[o.BottomLeft=2]="BottomLeft",o[o.BottomRight=3]="BottomRight",o[o.TopCenter=4]="TopCenter",o[o.BottomCenter=5]="BottomCenter",o[o.LeftCenter=6]="LeftCenter",o[o.RightCenter=7]="RightCenter",o[o.Center=8]="Center",o[o.TrayLeft=9]="TrayLeft",o[o.TrayBottomLeft=10]="TrayBottomLeft",o[o.TrayRight=11]="TrayRight",o[o.TrayBottomRight=12]="TrayBottomRight",o[o.TrayCenter=13]="TrayCenter",o[o.TrayBottomCenter=14]="TrayBottomCenter",t.handleIconState=async function(t){const o={};o[`${t.rect.size.type}`]={width:t.rect.size.width,height:t.rect.size.height};const i={};i[`${t.rect.position.type}`]={x:t.rect.position.x,y:t.rect.position.y},await e("plugin:positioner|set_tray_icon_state",{position:i,size:o})},t.moveWindow=async function(t){await e("plugin:positioner|move_window",{position:t})},t}({});Object.defineProperty(window.__TAURI__,"positioner",{value:__TAURI_PLUGIN_POSITIONER__})} diff --git a/plugins/positioner/guest-js/index.ts b/plugins/positioner/guest-js/index.ts index 319f80db6..8ba1d609f 100644 --- a/plugins/positioner/guest-js/index.ts +++ b/plugins/positioner/guest-js/index.ts @@ -40,12 +40,20 @@ export async function moveWindow(to: Position): Promise { } export async function handleIconState(event: TrayIconEvent): Promise { - await invokeSetTrayIconState(event.rect) -} + const size = {} as Record + size[`${event.rect.size.type}`] = { + width: event.rect.size.width, + height: event.rect.size.height + } + + const position = {} as Record + position[`${event.rect.position.type}`] = { + x: event.rect.position.x, + y: event.rect.position.y + } -async function invokeSetTrayIconState(rect: TrayIconEvent['rect']) { await invoke('plugin:positioner|set_tray_icon_state', { - position: rect.position, - size: rect.size + position, + size }) } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index a39d33d1f..de0942576 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/process/package.json b/plugins/process/package.json index 041ee6ec9..9af4b8223 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/shell/package.json b/plugins/shell/package.json index 2786ba5fc..3ba415db1 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index 532f7e595..727eeda52 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/store/package.json b/plugins/store/package.json index 314e09625..5b21fae78 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 75ad663a8..975ee521a 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/updater/package.json b/plugins/updater/package.json index acb384253..2f2e90699 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index 6b44bb009..a8f6c14ef 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index c121cbe87..7a6fb96e2 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index 0f5ee261a..da5b719b3 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e6c5973a..be0db27b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -143,37 +143,37 @@ importers: plugins/autostart: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/barcode-scanner: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/biometric: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/cli: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/clipboard-manager: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/deep-link: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/deep-link/examples/app: @@ -198,79 +198,79 @@ importers: plugins/dialog: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/fs: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/geolocation: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/global-shortcut: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/haptics: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/http: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/log: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/nfc: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/notification: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/os: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/positioner: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/process: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/shell: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/single-instance/examples/vanilla: @@ -282,13 +282,13 @@ importers: plugins/sql: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/store: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/store/examples/AppSettingsManager: @@ -306,25 +306,25 @@ importers: plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/updater: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/upload: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/websocket: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 plugins/websocket/examples/tauri-app: @@ -346,7 +346,7 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.4 + specifier: ^2.0.0-rc.6 version: 2.0.0-rc.6 packages: @@ -2330,9 +2330,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0': + '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2343,9 +2343,10 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/changelog@0.12.0': + '@covector/changelog@0.12.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2355,14 +2356,16 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/command@0.8.0': + '@covector/command@0.8.0(mocha@10.7.3)': dependencies: - '@effection/process': 2.1.4 + '@effection/process': 2.1.4(mocha@10.7.3) effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding + - mocha '@covector/files@0.8.0': dependencies: @@ -2409,10 +2412,8 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 - transitivePeerDependencies: - - encoding - '@effection/process@2.1.4': + '@effection/process@2.1.4(mocha@10.7.3)': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2420,6 +2421,7 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding + - mocha '@effection/stream@2.0.6': dependencies: @@ -3223,9 +3225,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0 - '@covector/changelog': 0.12.0 - '@covector/command': 0.8.0 + '@covector/assemble': 0.12.0(mocha@10.7.3) + '@covector/changelog': 0.12.0(mocha@10.7.3) + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 diff --git a/shared/template/package.json b/shared/template/package.json index 43fe2958c..614dabb97 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "2.0.0-rc.4" + "@tauri-apps/api": "^2.0.0-rc.6" } } From 0975a687a017dce014a5042f98b605198061a721 Mon Sep 17 00:00:00 2001 From: pajlada Date: Wed, 2 Oct 2024 13:29:34 +0200 Subject: [PATCH 607/643] fix: make package.json licenses SPDX compliant (#1861) * fix: make plugin template package.json license SPDX compliant * fix: make plugin package.json license SPDX compliant * fix: make root package.json license SPDX compliant --- package.json | 2 +- plugins/autostart/package.json | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/package.json | 2 +- plugins/cli/package.json | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/package.json | 2 +- plugins/dialog/package.json | 2 +- plugins/fs/package.json | 2 +- plugins/geolocation/package.json | 2 +- plugins/global-shortcut/package.json | 2 +- plugins/haptics/package.json | 2 +- plugins/http/package.json | 2 +- plugins/log/package.json | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/package.json | 2 +- plugins/os/package.json | 2 +- plugins/positioner/package.json | 2 +- plugins/process/package.json | 2 +- plugins/shell/package.json | 2 +- plugins/sql/package.json | 2 +- plugins/store/package.json | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/package.json | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/package.json | 2 +- plugins/window-state/package.json | 2 +- shared/template/package.json | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 1cd01f8cb..ae587a374 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "plugins-workspace", "private": true, - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "type": "module", "scripts": { "build": "pnpm run -r --parallel --filter !plugins-workspace --filter !\"./plugins/*/examples/**\" --filter !\"./examples/*\" build", diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index b6ad5765a..ab11a4657 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-autostart", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index eb3fa4fea..9b53ea4ca 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-barcode-scanner", "version": "2.0.0-rc.2", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 74ba15932..9635ef959 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-biometric", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/cli/package.json b/plugins/cli/package.json index 77b705bf3..454f87642 100644 --- a/plugins/cli/package.json +++ b/plugins/cli/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-cli", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index 572d0636f..74a40cfce 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-clipboard-manager", "version": "2.0.0-rc.2", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 7f5bb3428..659655c19 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-deep-link", "version": "2.0.0-rc.2", "description": "Set your Tauri application as the default handler for an URL", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index c12835d00..ab1d908ba 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-dialog", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 67f7fa1b8..8e12f572c 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-fs", "version": "2.0.0-rc.2", "description": "Access the file system.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json index 01f21fee1..f07899dc4 100644 --- a/plugins/geolocation/package.json +++ b/plugins/geolocation/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-geolocation", "version": "2.0.0-rc.2", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/global-shortcut/package.json b/plugins/global-shortcut/package.json index 6ccc82162..23ebc5012 100644 --- a/plugins/global-shortcut/package.json +++ b/plugins/global-shortcut/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-global-shortcut", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/haptics/package.json b/plugins/haptics/package.json index 07e823208..6ead8ee4b 100644 --- a/plugins/haptics/package.json +++ b/plugins/haptics/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-haptics", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/http/package.json b/plugins/http/package.json index 82ee3ea66..5000b5fa9 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-http", "version": "2.0.0-rc.2", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/log/package.json b/plugins/log/package.json index c56b34456..b1a4bf67a 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-log", "version": "2.0.0-rc.1", "description": "Configurable logging for your Tauri app.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index 7a50a6fd1..9eb4f02fe 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-nfc", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/notification/package.json b/plugins/notification/package.json index d91f0cdb9..90808a01d 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-notification", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/os/package.json b/plugins/os/package.json index d87598267..9bdcee044 100644 --- a/plugins/os/package.json +++ b/plugins/os/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-os", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index de0942576..bd9408cf6 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-positioner", "version": "2.0.0-rc.2", "description": "Position your windows at well-known locations.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/process/package.json b/plugins/process/package.json index 9af4b8223..cd743a7bd 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-process", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/shell/package.json b/plugins/shell/package.json index 3ba415db1..18ee77197 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-shell", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/sql/package.json b/plugins/sql/package.json index 727eeda52..304bdd415 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-sql", "version": "2.0.0-rc.1", "description": "Interface with SQL databases", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/store/package.json b/plugins/store/package.json index 5b21fae78..988e9e564 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-store", "version": "2.0.0-rc.2", "description": "Simple, persistent key-value store.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 975ee521a..bb054d513 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-stronghold", "version": "2.0.0-rc.1", "description": "Store secrets and keys using the IOTA Stronghold encrypted database.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/updater/package.json b/plugins/updater/package.json index 2f2e90699..9c60d9084 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-updater", "version": "2.0.0-rc.2", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/upload/package.json b/plugins/upload/package.json index a8f6c14ef..4650b236e 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-upload", "version": "2.0.0-rc.1", "description": "Upload files from disk to a remote server over HTTP.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 7a6fb96e2..57b2c7062 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-websocket", "version": "2.0.0-rc.1", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index da5b719b3..2be791f50 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -2,7 +2,7 @@ "name": "@tauri-apps/plugin-window-state", "version": "2.0.0-rc.1", "description": "Save window positions and sizes and restore them when the app is reopened.", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], diff --git a/shared/template/package.json b/shared/template/package.json index 614dabb97..36cd017fd 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -1,7 +1,7 @@ { "name": "@tauri-apps/plugin-PLUGIN_NAME", "version": "1.0.0", - "license": "MIT or APACHE-2.0", + "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" ], From e8069af80401cfc1e90297b786bef05a929ed9a6 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 2 Oct 2024 12:08:37 -0300 Subject: [PATCH 608/643] feat: update to tauri v2 stable, promote all packages to 2.0.0 (#1863) * update to tauri v2 * covector setup * update locks * bump packages to v2 through covector, remove rc references * msrv 1.78 * downgrade 1.79 msrv dep * test clipboard * fmt * bitstream-io 2.3.0 * Revert "test clipboard" This reverts commit c3e19dbe59af7b471cdcc5b0c58f855c0ba18546. --- .changes/android-dialog-save.md | 5 - .changes/barcode-dependencies.md | 5 - .changes/barcode-scanner-validate-plist.md | 5 - .changes/cli-hidden-structs.md | 5 - .changes/config.json | 4 +- .changes/consolidate-permission-state.md | 10 - .changes/deep-link-event.md | 6 - .changes/deep-link-get-current-desktop.md | 6 - .changes/deep-link-on-new-url.md | 6 - .changes/deep-link-register-all.md | 5 - .changes/deep-link-space-in-path.md | 5 - .changes/dialog-asset-scope.md | 5 - .../dialog-file-response-non-exhaustive.md | 5 - .changes/dialog-return-path.md | 7 - .changes/dialog-rfd-015.md | 5 - .changes/feat-multiple-sql-backends.md | 5 - .changes/fix-barcodae-scanner-imports.md | 5 - .changes/fix-clipboard-warnings-sdk.md | 6 - .changes/fix-deep-link-config.md | 5 - .changes/fix-fs-app-scopes.md | 5 - .changes/fix-fs-scope-unknown-path.md | 5 - .changes/fix-fs-write-file-android.md | 5 - .changes/fix-http-plugin-abort.md | 5 - .changes/fix-ios-file-dialog-default-mode.md | 5 - .../fix-linux-updater-permission-error.md | 5 - .../fix-restore-minimized-window-position.md | 5 - .../fix-restore-minimized-window-state.md | 5 - .changes/fix-restore-window-state-deadlock.md | 5 - .../fix-upload-handle-non-success-download.md | 5 - .changes/fs-dialog-file-path-methods.md | 10 - .changes/fs-dialog-file-path-traits.md | 6 - .changes/fs-dialog-non-exhaustive-error.md | 6 - .changes/fs-dialog-safe-file-path.md | 6 - .changes/fs-scope-recursive-allow-read-dir.md | 5 - .changes/fs-windows-path.md | 5 - .changes/fs-write-file-utf8-chars.md | 5 - .changes/geolocation-permission-refactor.md | 5 - .changes/geolocation-release.md | 6 - .changes/global-shortcut-0.6.md | 5 - .changes/haptics-release.md | 6 - .changes/iife-varname-spacing.md | 9 - .changes/ios-dialog-save.md | 5 - .changes/native-dialog-button-text.md | 5 - .changes/notification-body-optional-ios.md | 5 - .../notification-permission-type-change.md | 5 - .changes/positioner-v2-handleIconState.md | 6 - .changes/pre.json | 75 ----- .changes/rc.md | 61 ---- .changes/remove-target-sdk.md | 15 - .changes/resolve-content-uris.md | 5 - .changes/shell-open-regex-match-string.md | 5 - .changes/shell-regex-match-string.md | 6 - .changes/shell-schema-required-sidcar.md | 6 - .changes/single-instance-deep-link.md | 5 - .../single-instance-optional-deep-link.md | 5 - .changes/single-instance-windows-sys.0.59.md | 5 - .changes/sql-uuid-type.md | 5 - .changes/store-api-refactor.md | 5 - .changes/store-auto-save.md | 7 - .changes/store-remove-mobile-plugin.md | 5 - .changes/swift-build-older-versions.md | 15 - .changes/tauri-rc-8.md | 61 ---- .changes/update-fs-api-docs.md | 5 - .changes/update-geolocation-api.md | 5 - .changes/update-tauri-rc-12.md | 5 - .changes/update-tauri-rc-3.md | 7 - .changes/updater-endpoint-version-encoded.md | 5 - .changes/updater-endpoints-result.md | 5 - .../updater-insecure-transport-protocol.md | 5 - .changes/updater-js-headers-download-crate.md | 5 - .changes/updater-js-headers-download.md | 5 - .changes/window-state-physical-size.md | 5 - .github/workflows/test-rust.yml | 2 +- Cargo.lock | 102 ++++--- Cargo.toml | 10 +- README.md | 2 +- examples/api/CHANGELOG.md | 23 ++ examples/api/package.json | 40 +-- examples/api/src-tauri/CHANGELOG.md | 23 ++ examples/api/src-tauri/Cargo.toml | 40 +-- plugins/autostart/CHANGELOG.md | 4 + plugins/autostart/Cargo.toml | 2 +- plugins/autostart/README.md | 4 +- plugins/autostart/package.json | 4 +- plugins/barcode-scanner/CHANGELOG.md | 4 + plugins/barcode-scanner/Cargo.toml | 2 +- plugins/barcode-scanner/README.md | 2 +- plugins/barcode-scanner/package.json | 4 +- plugins/biometric/CHANGELOG.md | 4 + plugins/biometric/Cargo.toml | 2 +- plugins/biometric/README.md | 2 +- plugins/biometric/package.json | 4 +- plugins/cli/CHANGELOG.md | 4 + plugins/cli/Cargo.toml | 2 +- plugins/cli/README.md | 4 +- plugins/cli/package.json | 4 +- plugins/clipboard-manager/CHANGELOG.md | 4 + plugins/clipboard-manager/Cargo.toml | 2 +- plugins/clipboard-manager/README.md | 4 +- plugins/clipboard-manager/package.json | 4 +- plugins/deep-link/CHANGELOG.md | 4 + plugins/deep-link/Cargo.toml | 2 +- plugins/deep-link/README.md | 4 +- plugins/deep-link/examples/app/CHANGELOG.md | 8 + plugins/deep-link/examples/app/package.json | 8 +- .../examples/app/src-tauri/Cargo.toml | 2 +- plugins/deep-link/package.json | 4 +- plugins/dialog/CHANGELOG.md | 8 + plugins/dialog/Cargo.toml | 4 +- plugins/dialog/README.md | 4 +- plugins/dialog/package.json | 4 +- plugins/fs/CHANGELOG.md | 4 + plugins/fs/Cargo.toml | 2 +- plugins/fs/README.md | 4 +- plugins/fs/package.json | 4 +- plugins/geolocation/CHANGELOG.md | 6 +- plugins/geolocation/Cargo.toml | 2 +- plugins/geolocation/README.md | 4 +- plugins/geolocation/package.json | 4 +- plugins/global-shortcut/CHANGELOG.md | 6 +- plugins/global-shortcut/Cargo.toml | 2 +- plugins/global-shortcut/README.md | 4 +- plugins/global-shortcut/package.json | 4 +- plugins/haptics/CHANGELOG.md | 4 + plugins/haptics/Cargo.toml | 2 +- plugins/haptics/README.md | 4 +- plugins/haptics/package.json | 4 +- plugins/http/CHANGELOG.md | 8 + plugins/http/Cargo.toml | 4 +- plugins/http/README.md | 4 +- plugins/http/package.json | 4 +- plugins/localhost/CHANGELOG.md | 4 + plugins/localhost/Cargo.toml | 2 +- plugins/localhost/README.md | 4 +- plugins/log/CHANGELOG.md | 4 + plugins/log/Cargo.toml | 2 +- plugins/log/README.md | 4 +- plugins/log/package.json | 4 +- plugins/nfc/CHANGELOG.md | 4 + plugins/nfc/Cargo.toml | 2 +- plugins/nfc/README.md | 2 +- plugins/nfc/package.json | 4 +- plugins/notification/CHANGELOG.md | 4 + plugins/notification/Cargo.toml | 2 +- plugins/notification/README.md | 4 +- plugins/notification/package.json | 4 +- plugins/os/CHANGELOG.md | 4 + plugins/os/Cargo.toml | 2 +- plugins/os/README.md | 4 +- plugins/os/package.json | 4 +- plugins/persisted-scope/CHANGELOG.md | 8 + plugins/persisted-scope/Cargo.toml | 4 +- plugins/persisted-scope/README.md | 4 +- plugins/positioner/CHANGELOG.md | 4 + plugins/positioner/Cargo.toml | 2 +- plugins/positioner/README.md | 4 +- plugins/positioner/package.json | 4 +- plugins/process/CHANGELOG.md | 4 + plugins/process/Cargo.toml | 2 +- plugins/process/README.md | 4 +- plugins/process/package.json | 4 +- plugins/shell/CHANGELOG.md | 4 + plugins/shell/Cargo.toml | 2 +- plugins/shell/README.md | 4 +- plugins/shell/package.json | 4 +- plugins/single-instance/CHANGELOG.md | 8 + plugins/single-instance/Cargo.toml | 4 +- plugins/single-instance/README.md | 4 +- .../examples/vanilla/package.json | 2 +- .../examples/vanilla/src-tauri/Cargo.toml | 2 +- plugins/sql/CHANGELOG.md | 4 + plugins/sql/Cargo.toml | 2 +- plugins/sql/README.md | 4 +- plugins/sql/package.json | 4 +- plugins/store/CHANGELOG.md | 6 +- plugins/store/Cargo.toml | 2 +- plugins/store/README.md | 4 +- .../examples/AppSettingsManager/package.json | 2 +- plugins/store/package.json | 4 +- plugins/stronghold/CHANGELOG.md | 4 + plugins/stronghold/Cargo.toml | 2 +- plugins/stronghold/README.md | 4 +- plugins/stronghold/package.json | 4 +- plugins/updater/CHANGELOG.md | 4 + plugins/updater/Cargo.toml | 2 +- plugins/updater/README.md | 4 +- plugins/updater/package.json | 4 +- plugins/upload/CHANGELOG.md | 4 + plugins/upload/Cargo.toml | 2 +- plugins/upload/README.md | 4 +- plugins/upload/package.json | 4 +- plugins/websocket/CHANGELOG.md | 4 + plugins/websocket/Cargo.toml | 2 +- plugins/websocket/README.md | 4 +- .../websocket/examples/tauri-app/package.json | 2 +- plugins/websocket/package.json | 4 +- plugins/window-state/CHANGELOG.md | 4 + plugins/window-state/Cargo.toml | 2 +- plugins/window-state/README.md | 4 +- plugins/window-state/package.json | 4 +- pnpm-lock.yaml | 284 +++++++++--------- shared/template/README.md | 4 +- shared/template/package.json | 2 +- 203 files changed, 584 insertions(+), 985 deletions(-) delete mode 100644 .changes/android-dialog-save.md delete mode 100644 .changes/barcode-dependencies.md delete mode 100644 .changes/barcode-scanner-validate-plist.md delete mode 100644 .changes/cli-hidden-structs.md delete mode 100644 .changes/consolidate-permission-state.md delete mode 100644 .changes/deep-link-event.md delete mode 100644 .changes/deep-link-get-current-desktop.md delete mode 100644 .changes/deep-link-on-new-url.md delete mode 100644 .changes/deep-link-register-all.md delete mode 100644 .changes/deep-link-space-in-path.md delete mode 100644 .changes/dialog-asset-scope.md delete mode 100644 .changes/dialog-file-response-non-exhaustive.md delete mode 100644 .changes/dialog-return-path.md delete mode 100644 .changes/dialog-rfd-015.md delete mode 100644 .changes/feat-multiple-sql-backends.md delete mode 100644 .changes/fix-barcodae-scanner-imports.md delete mode 100644 .changes/fix-clipboard-warnings-sdk.md delete mode 100644 .changes/fix-deep-link-config.md delete mode 100644 .changes/fix-fs-app-scopes.md delete mode 100644 .changes/fix-fs-scope-unknown-path.md delete mode 100644 .changes/fix-fs-write-file-android.md delete mode 100644 .changes/fix-http-plugin-abort.md delete mode 100644 .changes/fix-ios-file-dialog-default-mode.md delete mode 100644 .changes/fix-linux-updater-permission-error.md delete mode 100644 .changes/fix-restore-minimized-window-position.md delete mode 100644 .changes/fix-restore-minimized-window-state.md delete mode 100644 .changes/fix-restore-window-state-deadlock.md delete mode 100644 .changes/fix-upload-handle-non-success-download.md delete mode 100644 .changes/fs-dialog-file-path-methods.md delete mode 100644 .changes/fs-dialog-file-path-traits.md delete mode 100644 .changes/fs-dialog-non-exhaustive-error.md delete mode 100644 .changes/fs-dialog-safe-file-path.md delete mode 100644 .changes/fs-scope-recursive-allow-read-dir.md delete mode 100644 .changes/fs-windows-path.md delete mode 100644 .changes/fs-write-file-utf8-chars.md delete mode 100644 .changes/geolocation-permission-refactor.md delete mode 100644 .changes/geolocation-release.md delete mode 100644 .changes/global-shortcut-0.6.md delete mode 100644 .changes/haptics-release.md delete mode 100644 .changes/iife-varname-spacing.md delete mode 100644 .changes/ios-dialog-save.md delete mode 100644 .changes/native-dialog-button-text.md delete mode 100644 .changes/notification-body-optional-ios.md delete mode 100644 .changes/notification-permission-type-change.md delete mode 100644 .changes/positioner-v2-handleIconState.md delete mode 100644 .changes/pre.json delete mode 100644 .changes/rc.md delete mode 100644 .changes/remove-target-sdk.md delete mode 100644 .changes/resolve-content-uris.md delete mode 100644 .changes/shell-open-regex-match-string.md delete mode 100644 .changes/shell-regex-match-string.md delete mode 100644 .changes/shell-schema-required-sidcar.md delete mode 100644 .changes/single-instance-deep-link.md delete mode 100644 .changes/single-instance-optional-deep-link.md delete mode 100644 .changes/single-instance-windows-sys.0.59.md delete mode 100644 .changes/sql-uuid-type.md delete mode 100644 .changes/store-api-refactor.md delete mode 100644 .changes/store-auto-save.md delete mode 100644 .changes/store-remove-mobile-plugin.md delete mode 100644 .changes/swift-build-older-versions.md delete mode 100644 .changes/tauri-rc-8.md delete mode 100644 .changes/update-fs-api-docs.md delete mode 100644 .changes/update-geolocation-api.md delete mode 100644 .changes/update-tauri-rc-12.md delete mode 100644 .changes/update-tauri-rc-3.md delete mode 100644 .changes/updater-endpoint-version-encoded.md delete mode 100644 .changes/updater-endpoints-result.md delete mode 100644 .changes/updater-insecure-transport-protocol.md delete mode 100644 .changes/updater-js-headers-download-crate.md delete mode 100644 .changes/updater-js-headers-download.md delete mode 100644 .changes/window-state-physical-size.md diff --git a/.changes/android-dialog-save.md b/.changes/android-dialog-save.md deleted file mode 100644 index 9b4b2c4a1..000000000 --- a/.changes/android-dialog-save.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch:feat ---- - -Implement `save` API on Android. diff --git a/.changes/barcode-dependencies.md b/.changes/barcode-dependencies.md deleted file mode 100644 index 7beab24f9..000000000 --- a/.changes/barcode-dependencies.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"barcode-scanner": patch ---- - -Remove unused Android dependencies. \ No newline at end of file diff --git a/.changes/barcode-scanner-validate-plist.md b/.changes/barcode-scanner-validate-plist.md deleted file mode 100644 index 70780005b..000000000 --- a/.changes/barcode-scanner-validate-plist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"barcode-scanner": patch ---- - -Validate missing `NSCameraUsageDescription` Info.plist value. diff --git a/.changes/cli-hidden-structs.md b/.changes/cli-hidden-structs.md deleted file mode 100644 index 61619a05c..000000000 --- a/.changes/cli-hidden-structs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"cli": patch ---- - -Expose `Matches`, `SubcommandMatches` and `ArgData` structs. \ No newline at end of file diff --git a/.changes/config.json b/.changes/config.json index 5837be886..5f5fe841d 100644 --- a/.changes/config.json +++ b/.changes/config.json @@ -69,7 +69,9 @@ "process", "shell", "store", - "updater" + "updater", + "geolocation", + "haptics" ] }, "api-example-js": { diff --git a/.changes/consolidate-permission-state.md b/.changes/consolidate-permission-state.md deleted file mode 100644 index 93f8c9ae6..000000000 --- a/.changes/consolidate-permission-state.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"barcode-scanner": patch -"barcode-scanner-js": patch -"geolocation": patch -"geolocation-js": patch -"notification": patch -"notification-js": patch ---- - -Use `PermissionState` from the `tauri` crate, which now also includes a "prompt with rationale" variant for Android (returned when your app must explain to the user why it needs the permission). diff --git a/.changes/deep-link-event.md b/.changes/deep-link-event.md deleted file mode 100644 index 15d45f049..000000000 --- a/.changes/deep-link-event.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"deep-link": patch ---- - -Emit the `deep-link://new-url` event on Linux and Windows when the app is executed with a deep link CLI argument, -matching the iOS and macOS behavior. diff --git a/.changes/deep-link-get-current-desktop.md b/.changes/deep-link-get-current-desktop.md deleted file mode 100644 index ffc3f83ee..000000000 --- a/.changes/deep-link-get-current-desktop.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"deep-link": patch -"deep-link-js": patch ---- - -Implement `get_current` on Linux and Windows. diff --git a/.changes/deep-link-on-new-url.md b/.changes/deep-link-on-new-url.md deleted file mode 100644 index b37bed905..000000000 --- a/.changes/deep-link-on-new-url.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"deep-link": patch ---- - -Added `DeepLink::on_open_url` function to match the JavaScript API implementation, -which wraps the `deep-link://new-url` event and also send the current deep link if there's any. diff --git a/.changes/deep-link-register-all.md b/.changes/deep-link-register-all.md deleted file mode 100644 index 63edee03c..000000000 --- a/.changes/deep-link-register-all.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"deep-link": patch ---- - -Added `register_all` to register all desktop schemes - useful for Linux to not require a formal AppImage installation. diff --git a/.changes/deep-link-space-in-path.md b/.changes/deep-link-space-in-path.md deleted file mode 100644 index 53fa8822c..000000000 --- a/.changes/deep-link-space-in-path.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"deep-link": patch ---- - -Fix fails to start when having spaces in the main binary path on Windows diff --git a/.changes/dialog-asset-scope.md b/.changes/dialog-asset-scope.md deleted file mode 100644 index 9e2f031ec..000000000 --- a/.changes/dialog-asset-scope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch ---- - -Update Tauri scopes (asset protocol) when using the `open()` command to select directories. diff --git a/.changes/dialog-file-response-non-exhaustive.md b/.changes/dialog-file-response-non-exhaustive.md deleted file mode 100644 index f8d45d805..000000000 --- a/.changes/dialog-file-response-non-exhaustive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": "patch" ---- - -Mark `FileResponse` as `non_exhaustive`. diff --git a/.changes/dialog-return-path.md b/.changes/dialog-return-path.md deleted file mode 100644 index 2bd7b4db1..000000000 --- a/.changes/dialog-return-path.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"dialog": patch -"dialog-js": patch ---- - -The `open` function now returns a string representing either the file path or URI instead of an object. -To read the file data, use the `fs` APIs. diff --git a/.changes/dialog-rfd-015.md b/.changes/dialog-rfd-015.md deleted file mode 100644 index c434c802b..000000000 --- a/.changes/dialog-rfd-015.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch ---- - -Update rfd to 0.15 diff --git a/.changes/feat-multiple-sql-backends.md b/.changes/feat-multiple-sql-backends.md deleted file mode 100644 index 65b8fe866..000000000 --- a/.changes/feat-multiple-sql-backends.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -sql: patch ---- - -It is now possible to enable multiple SQL backends at the same time. There will be no compile error anymore if no backends are enabled! diff --git a/.changes/fix-barcodae-scanner-imports.md b/.changes/fix-barcodae-scanner-imports.md deleted file mode 100644 index b3cd753f0..000000000 --- a/.changes/fix-barcodae-scanner-imports.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"barcode-scanner-js": patch ---- - -Fixed an issue which caused checkPermission and requestPermission to be mixed up. \ No newline at end of file diff --git a/.changes/fix-clipboard-warnings-sdk.md b/.changes/fix-clipboard-warnings-sdk.md deleted file mode 100644 index b98f222ea..000000000 --- a/.changes/fix-clipboard-warnings-sdk.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"clipboard-manager": patch -"clipboard-manager-js": patch ---- - -Fix warnings and clear implementation on Android below SDK 28. diff --git a/.changes/fix-deep-link-config.md b/.changes/fix-deep-link-config.md deleted file mode 100644 index 81b5bcf1c..000000000 --- a/.changes/fix-deep-link-config.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"deep-link": patch ---- - -Allow empty configuration values. diff --git a/.changes/fix-fs-app-scopes.md b/.changes/fix-fs-app-scopes.md deleted file mode 100644 index 48c31bd7a..000000000 --- a/.changes/fix-fs-app-scopes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch ---- - -Fix `scope-app`, `scope-app-recursive` and `scope-index` not properly enabling the application paths. diff --git a/.changes/fix-fs-scope-unknown-path.md b/.changes/fix-fs-scope-unknown-path.md deleted file mode 100644 index 5e63a6fc1..000000000 --- a/.changes/fix-fs-scope-unknown-path.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -fs: patch ---- - -Fix failing to deserialize capability file when using an OS specific path in the scope that is not available on the current OS. \ No newline at end of file diff --git a/.changes/fix-fs-write-file-android.md b/.changes/fix-fs-write-file-android.md deleted file mode 100644 index e83a03c2e..000000000 --- a/.changes/fix-fs-write-file-android.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch:bug ---- - -Fixes `writeFile` command implementation on Android. diff --git a/.changes/fix-http-plugin-abort.md b/.changes/fix-http-plugin-abort.md deleted file mode 100644 index 8714523ca..000000000 --- a/.changes/fix-http-plugin-abort.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"http-js": patch ---- - -Fixed an issue with abort signal not aborting the fetch request. diff --git a/.changes/fix-ios-file-dialog-default-mode.md b/.changes/fix-ios-file-dialog-default-mode.md deleted file mode 100644 index 403215961..000000000 --- a/.changes/fix-ios-file-dialog-default-mode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch:breaking ---- - -If no filters are specified, the file picker dialog now defaults to a file selection instead of photos. diff --git a/.changes/fix-linux-updater-permission-error.md b/.changes/fix-linux-updater-permission-error.md deleted file mode 100644 index b343ebfef..000000000 --- a/.changes/fix-linux-updater-permission-error.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater": patch ---- - -Fixes the updater not preserving AppImage file permissions. diff --git a/.changes/fix-restore-minimized-window-position.md b/.changes/fix-restore-minimized-window-position.md deleted file mode 100644 index 37334c30e..000000000 --- a/.changes/fix-restore-minimized-window-position.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"window-state": patch ---- - -Fix saving a minimized window's state changes its position to -32000 diff --git a/.changes/fix-restore-minimized-window-state.md b/.changes/fix-restore-minimized-window-state.md deleted file mode 100644 index 6c673205a..000000000 --- a/.changes/fix-restore-minimized-window-state.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"window-state": patch ---- - -Fix can't restore a minimized window's size and position properly diff --git a/.changes/fix-restore-window-state-deadlock.md b/.changes/fix-restore-window-state-deadlock.md deleted file mode 100644 index b91450647..000000000 --- a/.changes/fix-restore-window-state-deadlock.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"window-state": patch ---- - -Fix deadlock when trying to restore window states on initial load diff --git a/.changes/fix-upload-handle-non-success-download.md b/.changes/fix-upload-handle-non-success-download.md deleted file mode 100644 index 0bfc49131..000000000 --- a/.changes/fix-upload-handle-non-success-download.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"upload": 'patch:bug' ---- - -fix download content to file when unsuccessful response diff --git a/.changes/fs-dialog-file-path-methods.md b/.changes/fs-dialog-file-path-methods.md deleted file mode 100644 index 1adfbbf33..000000000 --- a/.changes/fs-dialog-file-path-methods.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"fs": patch -"dialog": patch ---- - -Add utility methods on `FilePath` and `SafeFilePath` enums which are: - -- `path` -- `simplified` -- `into_path` diff --git a/.changes/fs-dialog-file-path-traits.md b/.changes/fs-dialog-file-path-traits.md deleted file mode 100644 index 3dfa4ee9c..000000000 --- a/.changes/fs-dialog-file-path-traits.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"dialog": patch ---- - -Implement `Serialize`, `Deserialize`, `From`, `TryFrom` and `FromStr` traits for `FilePath` and `SafeFilePath` enums. diff --git a/.changes/fs-dialog-non-exhaustive-error.md b/.changes/fs-dialog-non-exhaustive-error.md deleted file mode 100644 index d17791935..000000000 --- a/.changes/fs-dialog-non-exhaustive-error.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"dialog": patch ---- - -Mark `Error` enum as `#[non_exhuastive]`. diff --git a/.changes/fs-dialog-safe-file-path.md b/.changes/fs-dialog-safe-file-path.md deleted file mode 100644 index 4e4606832..000000000 --- a/.changes/fs-dialog-safe-file-path.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"dialog": patch ---- - -Add `SafeFilePath` enum. diff --git a/.changes/fs-scope-recursive-allow-read-dir.md b/.changes/fs-scope-recursive-allow-read-dir.md deleted file mode 100644 index 5fdd210a8..000000000 --- a/.changes/fs-scope-recursive-allow-read-dir.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch:enhance ---- - -The `scope-*-recursive` permissions now also allow reading the contents of the directory. diff --git a/.changes/fs-windows-path.md b/.changes/fs-windows-path.md deleted file mode 100644 index 561e56192..000000000 --- a/.changes/fs-windows-path.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch ---- - -Fix can't use Windows paths like `C:/Users/UserName/file.txt` diff --git a/.changes/fs-write-file-utf8-chars.md b/.changes/fs-write-file-utf8-chars.md deleted file mode 100644 index 805439ff9..000000000 --- a/.changes/fs-write-file-utf8-chars.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch ---- - -Support any UTF-8 character in the writeFile API. \ No newline at end of file diff --git a/.changes/geolocation-permission-refactor.md b/.changes/geolocation-permission-refactor.md deleted file mode 100644 index 200146153..000000000 --- a/.changes/geolocation-permission-refactor.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"geolocation": patch ---- - -No longer request permission automatically and leave to the user how to handle the `checkPermissions` and `requestPermissions` APIs. diff --git a/.changes/geolocation-release.md b/.changes/geolocation-release.md deleted file mode 100644 index db6a124ad..000000000 --- a/.changes/geolocation-release.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"geolocation": major -"geolocation-js": major ---- - -Initial release. \ No newline at end of file diff --git a/.changes/global-shortcut-0.6.md b/.changes/global-shortcut-0.6.md deleted file mode 100644 index c65d9e1a1..000000000 --- a/.changes/global-shortcut-0.6.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"global-shortcut": "patch" ---- - -Updated `global-hotkey` crate dependency to `0.6` diff --git a/.changes/haptics-release.md b/.changes/haptics-release.md deleted file mode 100644 index 26d2f15b5..000000000 --- a/.changes/haptics-release.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"haptics": major -"haptics-js": major ---- - -Initial release. \ No newline at end of file diff --git a/.changes/iife-varname-spacing.md b/.changes/iife-varname-spacing.md deleted file mode 100644 index 64901e433..000000000 --- a/.changes/iife-varname-spacing.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -barcode-scanner: patch -clipboard-manager: patch -deep-link: patch -global-shortcut: patch -window-state: patch ---- - -Fixed an issue that caused multi-word IIFE names to not be formatted correctly. For example the `barcode-scanner` was defined as `window.__TAURI_PLUGIN_CLIPBOARDMANAGER__` instead of `window.__TAURI_PLUGIN_CLIPBOARD_MANAGER__`. diff --git a/.changes/ios-dialog-save.md b/.changes/ios-dialog-save.md deleted file mode 100644 index 27e526450..000000000 --- a/.changes/ios-dialog-save.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch:feat ---- - -Implement `save` API on iOS. diff --git a/.changes/native-dialog-button-text.md b/.changes/native-dialog-button-text.md deleted file mode 100644 index 5440cea1d..000000000 --- a/.changes/native-dialog-button-text.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"dialog": patch:breaking ---- - -Changed `MessageDialogBuilder::ok_button_label` and `MessageDialogBuilder::cancel_button_label` to `MessageDialogBuilder::buttons` which takes an enum now diff --git a/.changes/notification-body-optional-ios.md b/.changes/notification-body-optional-ios.md deleted file mode 100644 index 3bcdbc752..000000000 --- a/.changes/notification-body-optional-ios.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"notification": patch ---- - -The notification body is now optional on iOS to match the other platforms. diff --git a/.changes/notification-permission-type-change.md b/.changes/notification-permission-type-change.md deleted file mode 100644 index 451c8b779..000000000 --- a/.changes/notification-permission-type-change.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"notification-js": patch ---- - -**Breaking change**: The permission type when using the API is now `'granted' | 'denied' | 'prompt' | 'prompt-with-rationale'` instead of `'granted' | 'denied' | 'default'` for consistency with Rust types. When using the `window.Notification` API the type is unchanged to match the Web API type. diff --git a/.changes/positioner-v2-handleIconState.md b/.changes/positioner-v2-handleIconState.md deleted file mode 100644 index e43c84d87..000000000 --- a/.changes/positioner-v2-handleIconState.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"positioner": patch -"positioner-js": patch ---- - -`handleIconState` function for use in JavaScript event handlers. This allows one to update the TrayIcon state through JavaScript and fully create and handle the TrayIcon without requiring Rust (and the side-effect of creating a TrayIcon). diff --git a/.changes/pre.json b/.changes/pre.json deleted file mode 100644 index 922d3c457..000000000 --- a/.changes/pre.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "tag": "rc", - "changes": [ - ".changes/android-dialog-save.md", - ".changes/barcode-dependencies.md", - ".changes/barcode-scanner-validate-plist.md", - ".changes/cli-hidden-structs.md", - ".changes/consolidate-permission-state.md", - ".changes/deep-link-event.md", - ".changes/deep-link-get-current-desktop.md", - ".changes/deep-link-on-new-url.md", - ".changes/deep-link-register-all.md", - ".changes/deep-link-space-in-path.md", - ".changes/dialog-asset-scope.md", - ".changes/dialog-file-response-non-exhaustive.md", - ".changes/dialog-return-path.md", - ".changes/dialog-rfd-015.md", - ".changes/feat-multiple-sql-backends.md", - ".changes/fix-barcodae-scanner-imports.md", - ".changes/fix-clipboard-warnings-sdk.md", - ".changes/fix-deep-link-config.md", - ".changes/fix-fs-app-scopes.md", - ".changes/fix-fs-scope-unknown-path.md", - ".changes/fix-fs-write-file-android.md", - ".changes/fix-http-plugin-abort.md", - ".changes/fix-ios-file-dialog-default-mode.md", - ".changes/fix-linux-updater-permission-error.md", - ".changes/fix-restore-minimized-window-position.md", - ".changes/fix-restore-minimized-window-state.md", - ".changes/fix-restore-window-state-deadlock.md", - ".changes/fix-upload-handle-non-success-download.md", - ".changes/fs-dialog-file-path-methods.md", - ".changes/fs-dialog-file-path-traits.md", - ".changes/fs-dialog-non-exhaustive-error.md", - ".changes/fs-dialog-safe-file-path.md", - ".changes/fs-scope-recursive-allow-read-dir.md", - ".changes/fs-windows-path.md", - ".changes/fs-write-file-utf8-chars.md", - ".changes/geolocation-permission-refactor.md", - ".changes/geolocation-release.md", - ".changes/global-shortcut-0.6.md", - ".changes/haptics-release.md", - ".changes/iife-varname-spacing.md", - ".changes/ios-dialog-save.md", - ".changes/native-dialog-button-text.md", - ".changes/notification-body-optional-ios.md", - ".changes/notification-permission-type-change.md", - ".changes/positioner-v2-handleIconState.md", - ".changes/rc.md", - ".changes/remove-target-sdk.md", - ".changes/resolve-content-uris.md", - ".changes/shell-open-regex-match-string.md", - ".changes/shell-regex-match-string.md", - ".changes/shell-schema-required-sidcar.md", - ".changes/single-instance-deep-link.md", - ".changes/single-instance-optional-deep-link.md", - ".changes/single-instance-windows-sys.0.59.md", - ".changes/sql-uuid-type.md", - ".changes/store-api-refactor.md", - ".changes/store-auto-save.md", - ".changes/store-remove-mobile-plugin.md", - ".changes/swift-build-older-versions.md", - ".changes/tauri-rc-8.md", - ".changes/update-fs-api-docs.md", - ".changes/update-geolocation-api.md", - ".changes/update-tauri-rc-12.md", - ".changes/update-tauri-rc-3.md", - ".changes/updater-endpoint-version-encoded.md", - ".changes/updater-endpoints-result.md", - ".changes/updater-insecure-transport-protocol.md", - ".changes/updater-js-headers-download-crate.md", - ".changes/updater-js-headers-download.md", - ".changes/window-state-physical-size.md" - ] -} diff --git a/.changes/rc.md b/.changes/rc.md deleted file mode 100644 index e5df01216..000000000 --- a/.changes/rc.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -"authenticator": patch -"autostart": patch -"barcode-scanner": patch -"biometric": patch -"cli": patch -"clipboard-manager": patch -"deep-link": patch -"dialog": patch -"fs": patch -"global-shortcut": patch -"http": patch -"localhost": patch -"log-plugin": patch -"nfc": patch -"notification": patch -"os": patch -"persisted-scope": patch -"positioner": patch -"process": patch -"shell": patch -"single-instance": patch -"sql": patch -"store": patch -"stronghold": patch -"updater": patch -"upload": patch -"websocket": patch -"window-state": patch -"authenticator-js": patch -"autostart-js": patch -"barcode-scanner-js": patch -"biometric-js": patch -"cli-js": patch -"clipboard-manager-js": patch -"deep-link-js": patch -"dialog-js": patch -"fs-js": patch -"global-shortcut-js": patch -"http-js": patch -"log-js": patch -"nfc-js": patch -"notification-js": patch -"os-js": patch -"positioner-js": patch -"process-js": patch -"shell-js": patch -"sql-js": patch -"store-js": patch -"stronghold-js": patch -"updater-js": patch -"upload-js": patch -"websocket-js": patch -"window-state-js": patch -"haptics": patch -"haptics-js": patch -"geolocation": patch -"geolocation-js": patch ---- - -Update to tauri RC. diff --git a/.changes/remove-target-sdk.md b/.changes/remove-target-sdk.md deleted file mode 100644 index bea400266..000000000 --- a/.changes/remove-target-sdk.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"barcode-scanner": patch:changes -"biometric": patch:changes -"clipboard-manager": patch:changes -"deep-link": patch:changes -"dialog": patch:changes -"geolocation": patch:changes -"haptics": patch:changes -"nfc": patch:changes -"notification": patch:changes -"shell": patch:changes -"store": patch:changes ---- - -Remove targetSdk from build.kts files as it is deprecated and will be removed from DSL v9.0 diff --git a/.changes/resolve-content-uris.md b/.changes/resolve-content-uris.md deleted file mode 100644 index 781eff70b..000000000 --- a/.changes/resolve-content-uris.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch:feat ---- - -Resolve `content://` path URIs on Android. diff --git a/.changes/shell-open-regex-match-string.md b/.changes/shell-open-regex-match-string.md deleted file mode 100644 index 05ee1444e..000000000 --- a/.changes/shell-open-regex-match-string.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"shell": patch ---- - -Change the `open` scope validator regex to match on the entire string. diff --git a/.changes/shell-regex-match-string.md b/.changes/shell-regex-match-string.md deleted file mode 100644 index b7b798d13..000000000 --- a/.changes/shell-regex-match-string.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"shell": patch ---- - -Change the `execute` scope argument validator regex to match on the entire string by default. -If this behavior is not desired check the `raw` boolean configuration option that is available along the `validator` string. diff --git a/.changes/shell-schema-required-sidcar.md b/.changes/shell-schema-required-sidcar.md deleted file mode 100644 index 7e48f6531..000000000 --- a/.changes/shell-schema-required-sidcar.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"shell": "patch" ---- - -Fix the plugin schema requiring to set `sidecar` property when it is in fact optional. - diff --git a/.changes/single-instance-deep-link.md b/.changes/single-instance-deep-link.md deleted file mode 100644 index 43aac1bf8..000000000 --- a/.changes/single-instance-deep-link.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"single-instance": patch ---- - -Integrate with the deep link plugin out of the box. diff --git a/.changes/single-instance-optional-deep-link.md b/.changes/single-instance-optional-deep-link.md deleted file mode 100644 index aabf98d11..000000000 --- a/.changes/single-instance-optional-deep-link.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"single-instance": "patch" ---- - -Put deep link integration behined a feature diff --git a/.changes/single-instance-windows-sys.0.59.md b/.changes/single-instance-windows-sys.0.59.md deleted file mode 100644 index 7f7af0011..000000000 --- a/.changes/single-instance-windows-sys.0.59.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"single-instance": "patch" ---- - -Updated `windows-sys` crate to `0.59` diff --git a/.changes/sql-uuid-type.md b/.changes/sql-uuid-type.md deleted file mode 100644 index 879104b84..000000000 --- a/.changes/sql-uuid-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"sql": patch ---- - -Added support for `UUID` columns to the postgres implementation. \ No newline at end of file diff --git a/.changes/store-api-refactor.md b/.changes/store-api-refactor.md deleted file mode 100644 index ed049eb1b..000000000 --- a/.changes/store-api-refactor.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"store-js": patch ---- - -**Breaking change**: Removed the `Store` constructor and added the `createStore` API. diff --git a/.changes/store-auto-save.md b/.changes/store-auto-save.md deleted file mode 100644 index 4babad27c..000000000 --- a/.changes/store-auto-save.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"store": patch ---- - -Add a setting `auto_save` to enable a store to debounce save on modification (on calls like set, clear, delete, reset) - -**Breaking change**: Removed the `with_store` API and added `StoreExt::store_builder`. diff --git a/.changes/store-remove-mobile-plugin.md b/.changes/store-remove-mobile-plugin.md deleted file mode 100644 index 64baadec2..000000000 --- a/.changes/store-remove-mobile-plugin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"store": patch:breaking ---- - -Implement mobile support in Rust directly. This changes the store directories, invalidating all previously generated stores. diff --git a/.changes/swift-build-older-versions.md b/.changes/swift-build-older-versions.md deleted file mode 100644 index 41666a915..000000000 --- a/.changes/swift-build-older-versions.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"barcode-scanner": patch -"biometric": patch -"clipboard-manager": patch -"dialog": patch -"geolocation": patch -"haptics": patch -"log-plugin": patch -"nfc": patch -"notification": patch -"shell": patch -"store": patch ---- - -Explicitly set a minimum macOS version for the Swift package. diff --git a/.changes/tauri-rc-8.md b/.changes/tauri-rc-8.md deleted file mode 100644 index 9a7083010..000000000 --- a/.changes/tauri-rc-8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -"authenticator": patch -"autostart": patch -"barcode-scanner": patch -"biometric": patch -"cli": patch -"clipboard-manager": patch -"deep-link": patch -"dialog": patch -"fs": patch -"global-shortcut": patch -"http": patch -"localhost": patch -"log-plugin": patch -"nfc": patch -"notification": patch -"os": patch -"persisted-scope": patch -"positioner": patch -"process": patch -"shell": patch -"single-instance": patch -"sql": patch -"store": patch -"stronghold": patch -"updater": patch -"upload": patch -"websocket": patch -"window-state": patch -"authenticator-js": patch -"autostart-js": patch -"barcode-scanner-js": patch -"biometric-js": patch -"cli-js": patch -"clipboard-manager-js": patch -"deep-link-js": patch -"dialog-js": patch -"fs-js": patch -"global-shortcut-js": patch -"http-js": patch -"log-js": patch -"nfc-js": patch -"notification-js": patch -"os-js": patch -"positioner-js": patch -"process-js": patch -"shell-js": patch -"sql-js": patch -"store-js": patch -"stronghold-js": patch -"updater-js": patch -"upload-js": patch -"websocket-js": patch -"window-state-js": patch -"haptics": patch -"haptics-js": patch -"geolocation": patch -"geolocation-js": patch ---- - -Update to tauri 2.0.0-rc.8 diff --git a/.changes/update-fs-api-docs.md b/.changes/update-fs-api-docs.md deleted file mode 100644 index d9093c03f..000000000 --- a/.changes/update-fs-api-docs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs-js": patch ---- - -Update documentation. \ No newline at end of file diff --git a/.changes/update-geolocation-api.md b/.changes/update-geolocation-api.md deleted file mode 100644 index 709e9fa05..000000000 --- a/.changes/update-geolocation-api.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"geolocation-js": patch ---- - -Update API to match other plugins. diff --git a/.changes/update-tauri-rc-12.md b/.changes/update-tauri-rc-12.md deleted file mode 100644 index fd69ac6b3..000000000 --- a/.changes/update-tauri-rc-12.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"notification": patch ---- - -Update to tauri 2.0.0-rc.12. diff --git a/.changes/update-tauri-rc-3.md b/.changes/update-tauri-rc-3.md deleted file mode 100644 index 7e0ac01c7..000000000 --- a/.changes/update-tauri-rc-3.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"geolocation": patch -"deep-link": patch -"updater": patch ---- - -Update to tauri 2.0.0-rc.3. diff --git a/.changes/updater-endpoint-version-encoded.md b/.changes/updater-endpoint-version-encoded.md deleted file mode 100644 index 8445c5e3b..000000000 --- a/.changes/updater-endpoint-version-encoded.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'updater': 'patch' ---- - -Encode `+` when making updater requests which can be cause incorrectly interpolating the endpoint when using `{{current_version}}` in the endpoint where the current version contains a build number, for example `1.8.0+1`. diff --git a/.changes/updater-endpoints-result.md b/.changes/updater-endpoints-result.md deleted file mode 100644 index d257d7939..000000000 --- a/.changes/updater-endpoints-result.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater": patch ---- - -**Breaking change**, Changed `UpdaterBuilder::endpoints` method to return a `Result`. \ No newline at end of file diff --git a/.changes/updater-insecure-transport-protocol.md b/.changes/updater-insecure-transport-protocol.md deleted file mode 100644 index b95aad570..000000000 --- a/.changes/updater-insecure-transport-protocol.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater": patch ---- - -Add `dangerousInsecureTransportProtocol` config option to allow using insecure transport protocols, like `http` \ No newline at end of file diff --git a/.changes/updater-js-headers-download-crate.md b/.changes/updater-js-headers-download-crate.md deleted file mode 100644 index f19aaa54d..000000000 --- a/.changes/updater-js-headers-download-crate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater": "patch" ---- - -Add a second argument in `Update.download` and `Update.donloadAndInstall` JS APIs to modify headers and timeout when downloading the update. diff --git a/.changes/updater-js-headers-download.md b/.changes/updater-js-headers-download.md deleted file mode 100644 index d60533bf1..000000000 --- a/.changes/updater-js-headers-download.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater-js": "patch" ---- - -Add a second argument in `Update.download` and `Update.donloadAndInstall` JS APIs to modify headers and timeout when downloading the update. diff --git a/.changes/window-state-physical-size.md b/.changes/window-state-physical-size.md deleted file mode 100644 index 543b31252..000000000 --- a/.changes/window-state-physical-size.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"window-state": patch:breaking ---- - -Window's size is now stored in physical size instead of logical size diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 34af5e2c8..7df99f714 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -202,7 +202,7 @@ jobs: sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev - - uses: dtolnay/rust-toolchain@1.75.0 + - uses: dtolnay/rust-toolchain@1.78.0 with: targets: ${{ matrix.platform.target }} diff --git a/Cargo.lock b/Cargo.lock index 214a2b8d6..298f0e6a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.0-rc.8" +version = "2.0.0" dependencies = [ "log", "serde", @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "bitstream-io" -version = "2.5.3" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452" +checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" [[package]] name = "bitvec" @@ -3646,6 +3646,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" dependencies = [ "cfg-if", + "rayon", ] [[package]] @@ -5032,15 +5033,16 @@ dependencies = [ [[package]] name = "ravif" -version = "0.11.10" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f0bfd976333248de2078d350bfdf182ff96e168a24d23d2436cef320dd4bdd" +checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234" dependencies = [ "avif-serialize", "imgref", "loop9", "quick-error 2.0.1", "rav1e", + "rayon", "rgb", ] @@ -6496,9 +6498,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.16" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bd333561c5601241b7a09f19957d5f659667f3c1191c869a066fb309e1841" +checksum = "3c9c08beea86d5095b6f5fb1c788fe8759b23c3f71927c66a69e725a91d089cd" dependencies = [ "anyhow", "bytes", @@ -6550,9 +6552,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0-rc.13" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bc30f14b3c1548d75dfdf3e40bffe20a53bc4e3381e9bacc21dc765d701d0a" +checksum = "93bb649a284aec2ab43e8df6831b8c8060d231ec8ddf05bf021d58cb67570e1f" dependencies = [ "anyhow", "cargo_toml", @@ -6574,9 +6576,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.13" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cfb6089cfc626b81bb8aa4692ede527732011dfd22486d8ac5bf299189841f" +checksum = "a4511912612ba0da11aeb300e18e18b2c7067fd14aa886eac46bdcc43b4fa3ee" dependencies = [ "base64 0.22.1", "brotli", @@ -6601,9 +6603,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.12" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f04ed6fadd294ef8061137463fe31abccbb5fa61ff9946aab2896acd140cff1" +checksum = "62ee976578a14b779996d7b6879d7e625c8ce674bc87e223953664f37def2eef" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6615,9 +6617,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0-rc.13" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6de7ffe64afa61c4cc13d450d64643b8db6cbb177a802beb88bf595594505ddf" +checksum = "774d084450b7ec8e445ad119079307f935b7bf3d736da139a8664eb1d4909aa5" dependencies = [ "anyhow", "glob", @@ -6632,7 +6634,7 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "auto-launch", "log", @@ -6645,7 +6647,7 @@ dependencies = [ [[package]] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6657,7 +6659,7 @@ dependencies = [ [[package]] name = "tauri-plugin-biometric" -version = "2.0.0-rc.3" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6670,7 +6672,7 @@ dependencies = [ [[package]] name = "tauri-plugin-cli" -version = "2.0.0-rc.2" +version = "2.0.0" dependencies = [ "clap", "log", @@ -6683,7 +6685,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "arboard", "image", @@ -6697,7 +6699,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.7" +version = "2.0.0" dependencies = [ "dunce", "log", @@ -6715,7 +6717,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0-rc.8" +version = "2.0.0" dependencies = [ "log", "raw-window-handle", @@ -6731,7 +6733,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0-rc.6" +version = "2.0.0" dependencies = [ "anyhow", "dunce", @@ -6752,7 +6754,7 @@ dependencies = [ [[package]] name = "tauri-plugin-geolocation" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6765,7 +6767,7 @@ dependencies = [ [[package]] name = "tauri-plugin-global-shortcut" -version = "2.0.0-rc.2" +version = "2.0.0" dependencies = [ "global-hotkey", "log", @@ -6778,7 +6780,7 @@ dependencies = [ [[package]] name = "tauri-plugin-haptics" -version = "2.0.0-rc.3" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6791,7 +6793,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0-rc.6" +version = "2.0.0" dependencies = [ "data-url", "http", @@ -6811,7 +6813,7 @@ dependencies = [ [[package]] name = "tauri-plugin-localhost" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "http", "log", @@ -6824,7 +6826,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" -version = "2.0.0-rc.2" +version = "2.0.0" dependencies = [ "android_logger", "byte-unit", @@ -6844,7 +6846,7 @@ dependencies = [ [[package]] name = "tauri-plugin-nfc" -version = "2.0.0-rc.3" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6857,7 +6859,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.0.0-rc.5" +version = "2.0.0" dependencies = [ "color-backtrace", "ctor", @@ -6879,7 +6881,7 @@ dependencies = [ [[package]] name = "tauri-plugin-os" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "gethostname 0.5.0", "log", @@ -6895,7 +6897,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.6" +version = "2.0.0" dependencies = [ "aho-corasick", "bincode", @@ -6909,7 +6911,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.0.0-rc.2" +version = "2.0.0" dependencies = [ "log", "serde", @@ -6922,7 +6924,7 @@ dependencies = [ [[package]] name = "tauri-plugin-process" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "tauri", "tauri-plugin", @@ -6930,7 +6932,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "encoding_rs", "log", @@ -6949,7 +6951,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.5" +version = "2.0.0" dependencies = [ "log", "semver", @@ -6964,7 +6966,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.0.0-rc.3" +version = "2.0.0" dependencies = [ "futures-core", "indexmap 2.5.0", @@ -6981,7 +6983,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "dunce", "log", @@ -6995,7 +6997,7 @@ dependencies = [ [[package]] name = "tauri-plugin-stronghold" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "hex", "iota-crypto", @@ -7016,7 +7018,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.0-rc.4" +version = "2.0.0" dependencies = [ "base64 0.22.1", "dirs 5.0.1", @@ -7044,7 +7046,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0-rc.2" +version = "2.0.0" dependencies = [ "futures-util", "log", @@ -7062,7 +7064,7 @@ dependencies = [ [[package]] name = "tauri-plugin-websocket" -version = "2.0.0-rc.1" +version = "2.0.0" dependencies = [ "futures-util", "http", @@ -7079,7 +7081,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0-rc.5" +version = "2.0.0" dependencies = [ "bitflags 2.6.0", "log", @@ -7092,9 +7094,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0-rc.13" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9465366fd7f9e9c77385fa8b7cb583b060544e8800bd0309deb100008c312d" +checksum = "2570e1f33f332a2d2d9967ebb3903bc4e1f92b9c47e4d1b302c10ea4153fcdbb" dependencies = [ "dpi", "gtk", @@ -7111,9 +7113,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.14" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a03a49d6bcc0e65d64ea4420e2097270a25a9e1ff0fb2ece75e54fbbd54e45f7" +checksum = "8147d8f9ed418d83a90af3d64fbdca5e0e924ae28e5351da88f9568169db8665" dependencies = [ "gtk", "http", @@ -7137,9 +7139,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0-rc.13" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a271545e4c25b36b922d98cf7e0c1755f64e92355705f656893e352aef0331e3" +checksum = "f87856e9d7fa91fd710362f3c73fccbf6bfd036934908791e65bd803d54dc8a8" dependencies = [ "aes-gcm", "brotli", diff --git a/Cargo.toml b/Cargo.toml index 40d983a48..88830f33a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0-rc.16", default-features = false } -tauri-build = "2.0.0-rc.13" -tauri-plugin = "2.0.0-rc.13" -tauri-utils = "2.0.0-rc.13" +tauri = { version = "2.0.0", default-features = false } +tauri-build = "2.0.0" +tauri-plugin = "2.0.0" +tauri-utils = "2.0.0" serde_json = "1" thiserror = "1" url = "2" @@ -27,7 +27,7 @@ specta = "=2.0.0-rc.20" edition = "2021" authors = ["Tauri Programme within The Commons Conservancy"] license = "Apache-2.0 OR MIT" -rust-version = "1.75" +rust-version = "1.78" repository = "https://github.com/tauri-apps/plugins-workspace" # default to small, optimized release binaries diff --git a/README.md b/README.md index 9597af5af..bcd648325 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ | [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | | [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? | -_This repo and all plugins require a Rust version of at least **1.75**_ +_This repo and all plugins require a Rust version of at least **1.78**_ ## Contributing diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 73471a133..022ce3f27 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## \[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 diff --git a/examples/api/package.json b/examples/api/package.json index bde55fd18..e9e712cd6 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0-rc.5", + "version": "2.0.0", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -9,31 +9,31 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.6", - "@tauri-apps/plugin-barcode-scanner": "2.0.0-rc.2", - "@tauri-apps/plugin-biometric": "2.0.0-rc.1", - "@tauri-apps/plugin-cli": "2.0.0-rc.1", - "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.2", - "@tauri-apps/plugin-dialog": "2.0.0-rc.1", - "@tauri-apps/plugin-fs": "2.0.0-rc.2", - "@tauri-apps/plugin-geolocation": "2.0.0-rc.2", - "@tauri-apps/plugin-global-shortcut": "2.0.0-rc.1", - "@tauri-apps/plugin-haptics": "2.0.0-rc.1", - "@tauri-apps/plugin-http": "2.0.0-rc.2", - "@tauri-apps/plugin-nfc": "2.0.0-rc.1", - "@tauri-apps/plugin-notification": "2.0.0-rc.1", - "@tauri-apps/plugin-os": "2.0.0-rc.1", - "@tauri-apps/plugin-process": "2.0.0-rc.1", - "@tauri-apps/plugin-shell": "2.0.0-rc.1", - "@tauri-apps/plugin-store": "2.0.0-rc.2", - "@tauri-apps/plugin-updater": "2.0.0-rc.2", + "@tauri-apps/api": "2.0.0", + "@tauri-apps/plugin-barcode-scanner": "2.0.0", + "@tauri-apps/plugin-biometric": "2.0.0", + "@tauri-apps/plugin-cli": "2.0.0", + "@tauri-apps/plugin-clipboard-manager": "2.0.0", + "@tauri-apps/plugin-dialog": "2.0.0", + "@tauri-apps/plugin-fs": "2.0.0", + "@tauri-apps/plugin-geolocation": "2.0.0", + "@tauri-apps/plugin-global-shortcut": "2.0.0", + "@tauri-apps/plugin-haptics": "2.0.0", + "@tauri-apps/plugin-http": "2.0.0", + "@tauri-apps/plugin-nfc": "2.0.0", + "@tauri-apps/plugin-notification": "2.0.0", + "@tauri-apps/plugin-os": "2.0.0", + "@tauri-apps/plugin-process": "2.0.0", + "@tauri-apps/plugin-shell": "2.0.0", + "@tauri-apps/plugin-store": "2.0.0", + "@tauri-apps/plugin-updater": "2.0.0", "@zerodevx/svelte-json-view": "1.0.11" }, "devDependencies": { "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0-rc.17", + "@tauri-apps/cli": "2.0.0", "@unocss/extractor-svelte": "^0.63.0", "svelte": "^4.2.19", "unocss": "^0.63.0", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index d2c25fcc3..f936e9306 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index ac9d537a6..3a007fa97 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0-rc.8" +version = "2.0.0" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -19,22 +19,22 @@ serde_json = { workspace = true } serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } -tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0-rc.2" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0-rc.6", features = [ +tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0" } +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0", features = [ "watch", ] } -tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0-rc.4" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0-rc.8" } +tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0-rc.6" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0-rc.5", features = [ +], version = "2.0.0" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0", features = [ "windows7-compat", ] } -tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0-rc.1" } -tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0-rc.1" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0-rc.4" } -tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.0-rc.4" } +tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0" } +tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0" } +tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.0" } [dependencies.tauri] workspace = true @@ -50,17 +50,17 @@ features = [ ] [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0-rc.2" } -tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0-rc.2" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0-rc.4" } -tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0-rc.3" } +tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0" } +tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0" } +tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] -tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0-rc.4" } -tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0-rc.3" } -tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0-rc.3" } -tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.0-rc.3" } -tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.0-rc.3" } +tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0" } +tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0" } +tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0" } +tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.0" } +tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.0" } [features] prod = ["tauri/custom-protocol"] diff --git a/plugins/autostart/CHANGELOG.md b/plugins/autostart/CHANGELOG.md index 91d059079..1fdc66a66 100644 --- a/plugins/autostart/CHANGELOG.md +++ b/plugins/autostart/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index 7df265ffe..a0f1883e3 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-autostart" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Automatically launch your application at startup." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/autostart/README.md b/plugins/autostart/README.md index 93c74271c..6dd932b31 100644 --- a/plugins/autostart/README.md +++ b/plugins/autostart/README.md @@ -12,7 +12,7 @@ Automatically launch your application at startup. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-autostart = "2.0.0-rc" +tauri-plugin-autostart = "2.0.0" # alternatively with Git: tauri-plugin-autostart = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/autostart/package.json b/plugins/autostart/package.json index ab11a4657..9ea68630d 100644 --- a/plugins/autostart/package.json +++ b/plugins/autostart/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-autostart", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index 878452ca4..167e11820 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`79d6e19c`](https://github.com/tauri-apps/plugins-workspace/commit/79d6e19c4b38bae0cab29eb88df379e2237d9aac) ([#1777](https://github.com/tauri-apps/plugins-workspace/pull/1777)) Fixed an issue which caused checkPermission and requestPermission to be mixed up. diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 85d5181ca..eb75acf6c 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-barcode-scanner" -version = "2.0.0-rc.4" +version = "2.0.0" description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS" edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/barcode-scanner/README.md b/plugins/barcode-scanner/README.md index aca340bc7..f0fe8371d 100644 --- a/plugins/barcode-scanner/README.md +++ b/plugins/barcode-scanner/README.md @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-barcode-scanner = "2.0.0-rc" +tauri-plugin-barcode-scanner = "2.0.0" # alternatively with Git: tauri-plugin-barcode-scanner = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index 9b53ea4ca..b90be3d77 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.0.0-rc.2", + "version": "2.0.0", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/biometric/CHANGELOG.md b/plugins/biometric/CHANGELOG.md index 719621bb9..f80330587 100644 --- a/plugins/biometric/CHANGELOG.md +++ b/plugins/biometric/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index b242dab1a..74ef49bc5 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-biometric" -version = "2.0.0-rc.3" +version = "2.0.0" description = "Prompt the user for biometric authentication on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/biometric/README.md b/plugins/biometric/README.md index c97b8f9a6..2028595dd 100644 --- a/plugins/biometric/README.md +++ b/plugins/biometric/README.md @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-biometric = "2.0.0-rc" +tauri-plugin-biometric = "2.0.0" # alternatively with Git: tauri-plugin-biometric = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 9635ef959..5d0cd5c02 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-biometric", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/cli/CHANGELOG.md b/plugins/cli/CHANGELOG.md index 20a19788b..3e94c5a3c 100644 --- a/plugins/cli/CHANGELOG.md +++ b/plugins/cli/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`68579934`](https://github.com/tauri-apps/plugins-workspace/commit/68579934c93f6ed2edbc97474560d6a8a00e8f70) ([#1856](https://github.com/tauri-apps/plugins-workspace/pull/1856) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Expose `Matches`, `SubcommandMatches` and `ArgData` structs. diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index cdc6cb947..a1b34dcd7 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-cli" -version = "2.0.0-rc.2" +version = "2.0.0" description = "Parse arguments from your Tauri application's command line interface." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/cli/README.md b/plugins/cli/README.md index 8f0e0e626..6323a84c2 100644 --- a/plugins/cli/README.md +++ b/plugins/cli/README.md @@ -12,7 +12,7 @@ Parse arguments from your Command Line Interface. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -27,7 +27,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml # you can add the dependencies on the `[dependencies]` section if you do not target mobile [target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] -tauri-plugin-cli = "2.0.0-rc" +tauri-plugin-cli = "2.0.0" # alternatively with Git: tauri-plugin-cli = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/cli/package.json b/plugins/cli/package.json index 454f87642..481082bbb 100644 --- a/plugins/cli/package.json +++ b/plugins/cli/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-cli", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md index deaf73461..efc7a4de7 100644 --- a/plugins/clipboard-manager/CHANGELOG.md +++ b/plugins/clipboard-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`341a5320`](https://github.com/tauri-apps/plugins-workspace/commit/341a5320c33d3c7b041abf7eb0ab7ad8009e6c3f) ([#1771](https://github.com/tauri-apps/plugins-workspace/pull/1771)) Fix warnings and clear implementation on Android below SDK 28. diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index e25aabd54..47cda536a 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-rc.4" +version = "2.0.0" description = "Read and write to the system clipboard." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/clipboard-manager/README.md b/plugins/clipboard-manager/README.md index e22df0f6d..26b433b2b 100644 --- a/plugins/clipboard-manager/README.md +++ b/plugins/clipboard-manager/README.md @@ -12,7 +12,7 @@ Read and write to the system clipboard. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-clipboard-manager = "2.0.0-rc" +tauri-plugin-clipboard-manager = "2.0.0" # alternatively with Git: tauri-plugin-clipboard-manager = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index 74a40cfce..f48979944 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-clipboard-manager", - "version": "2.0.0-rc.2", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index 1e12c6780..99fa71592 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.7] - [`3168e176`](https://github.com/tauri-apps/plugins-workspace/commit/3168e176031a61215be542595ba90ca51f8f2d97) ([#1806](https://github.com/tauri-apps/plugins-workspace/pull/1806) by [@auggiebennett](https://github.com/tauri-apps/plugins-workspace/../../auggiebennett)) Fix fails to start when having spaces in the main binary path on Windows diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index d1280495e..33fb8f073 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0-rc.7" +version = "2.0.0" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index 8ecdc8f04..44bf2769b 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -12,7 +12,7 @@ Set your Tauri application as the default handler for an URL. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-deep-link = "2.0.0-rc" +tauri-plugin-deep-link = "2.0.0" # alternatively with Git: tauri-plugin-deep-link = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/deep-link/examples/app/CHANGELOG.md b/plugins/deep-link/examples/app/CHANGELOG.md index 14f4fd9bb..ba903aea3 100644 --- a/plugins/deep-link/examples/app/CHANGELOG.md +++ b/plugins/deep-link/examples/app/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + +### Dependencies + +- Upgraded to `deep-link-js@2.0.0` + ## \[2.0.0-rc.1] ### Dependencies diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index db2b47b6a..fa227558c 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -1,7 +1,7 @@ { "name": "deep-link-example", "private": true, - "version": "2.0.0-rc.1", + "version": "2.0.0", "type": "module", "scripts": { "dev": "vite", @@ -10,11 +10,11 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.0-rc.6", - "@tauri-apps/plugin-deep-link": "2.0.0-rc.2" + "@tauri-apps/api": "2.0.0", + "@tauri-apps/plugin-deep-link": "2.0.0" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.17", + "@tauri-apps/cli": "2.0.0", "typescript": "^5.2.2", "vite": "^5.4.7" } diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index 57b9180e4..e2624f7a1 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -6,7 +6,7 @@ authors = ["you"] license = "" repository = "" edition = "2021" -rust-version = "1.75" +rust-version = "1.78" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 659655c19..c2ca9aa23 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-deep-link", - "version": "2.0.0-rc.2", + "version": "2.0.0", "description": "Set your Tauri application as the default handler for an URL", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 22019e390..706811131 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + +### Dependencies + +- Upgraded to `fs@2.0.0` + ## \[2.0.0-rc.8] - [`6bf1bd8d`](https://github.com/tauri-apps/plugins-workspace/commit/6bf1bd8d44bb95618590aa066e638509b014e0f9) ([#1805](https://github.com/tauri-apps/plugins-workspace/pull/1805) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Update rfd to 0.15 diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 6040b7949..256677429 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0-rc.8" +version = "2.0.0" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/dialog/README.md b/plugins/dialog/README.md index 099e3939b..f03ba952d 100644 --- a/plugins/dialog/README.md +++ b/plugins/dialog/README.md @@ -12,7 +12,7 @@ Native system dialogs for opening and saving files along with message dialogs. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-dialog = "2.0.0-rc" +tauri-plugin-dialog = "2.0.0" # alternatively with Git: tauri-plugin-dialog = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index ab1d908ba..72ebd27ad 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-dialog", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 6a7954c6a..01fda7919 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.6] - [`fc9b189e`](https://github.com/tauri-apps/plugins-workspace/commit/fc9b189e83a29bd750714ec6336133c6eabdfa20) ([#1837](https://github.com/tauri-apps/plugins-workspace/pull/1837) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Fix failing to deserialize capability file when using an OS specific path in the scope that is not available on the current OS. diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index fb9c9c717..0ad68abe8 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0-rc.6" +version = "2.0.0" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/fs/README.md b/plugins/fs/README.md index 187d7622a..c1516343c 100644 --- a/plugins/fs/README.md +++ b/plugins/fs/README.md @@ -12,7 +12,7 @@ Access the file system. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-fs = "2.0.0-rc" +tauri-plugin-fs = "2.0.0" # alternatively with Git: tauri-plugin-fs = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 8e12f572c..7a6cf5273 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-fs", - "version": "2.0.0-rc.2", + "version": "2.0.0", "description": "Access the file system.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/geolocation/CHANGELOG.md b/plugins/geolocation/CHANGELOG.md index 5a4b19f4d..31f944ffd 100644 --- a/plugins/geolocation/CHANGELOG.md +++ b/plugins/geolocation/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`60765694`](https://github.com/tauri-apps/plugins-workspace/commit/60765694f54875e22b8eb70b1d2e32dbf0c585c7) ([#1773](https://github.com/tauri-apps/plugins-workspace/pull/1773) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update API to match other plugins. @@ -25,4 +29,4 @@ - [`9606089b`](https://github.com/tauri-apps/plugins-workspace/commit/9606089b2add4a17f80ed5a09d59ce94824bd672) ([#1599](https://github.com/tauri-apps/plugins-workspace/pull/1599)) Initial release. - [`9887d1`](https://github.com/tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC. -tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC. + tauri-apps/plugins-workspace/commit/9887d14bd0e971c4c0f5c1188fc4005d3fc2e29e) Update to tauri RC. diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index 876c378cc..ddfd64ef0 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-geolocation" description = "Get and track the device's current position" -version = "2.0.0-rc.4" +version = "2.0.0" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/geolocation/README.md b/plugins/geolocation/README.md index 1923727f9..a5957c078 100644 --- a/plugins/geolocation/README.md +++ b/plugins/geolocation/README.md @@ -12,7 +12,7 @@ This plugin provides APIs for getting and tracking the device's current position ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-geolocation = "2.0.0-rc" +tauri-plugin-geolocation = "2.0.0" # alternatively with Git: tauri-plugin-geolocation = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json index f07899dc4..998d24564 100644 --- a/plugins/geolocation/package.json +++ b/plugins/geolocation/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-geolocation", - "version": "2.0.0-rc.2", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/global-shortcut/CHANGELOG.md b/plugins/global-shortcut/CHANGELOG.md index a8f01b022..d111ad96a 100644 --- a/plugins/global-shortcut/CHANGELOG.md +++ b/plugins/global-shortcut/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 @@ -111,7 +115,7 @@ ]\(https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! om/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -st v2 alpha release! + st v2 alpha release! ]\(https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! om/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 5b560b75a..0ab9a6985 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-global-shortcut" -version = "2.0.0-rc.2" +version = "2.0.0" description = "Register global hotkeys listeners on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/global-shortcut/README.md b/plugins/global-shortcut/README.md index 5978cae30..b04072133 100644 --- a/plugins/global-shortcut/README.md +++ b/plugins/global-shortcut/README.md @@ -12,7 +12,7 @@ Register global shortcuts. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -27,7 +27,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml # you can add the dependencies on the `[dependencies]` section if you do not target mobile [target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] -tauri-plugin-global-shortcut = "2.0.0-rc" +tauri-plugin-global-shortcut = "2.0.0" # alternatively with Git: tauri-plugin-global-shortcut = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/global-shortcut/package.json b/plugins/global-shortcut/package.json index 23ebc5012..a247f93b2 100644 --- a/plugins/global-shortcut/package.json +++ b/plugins/global-shortcut/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-global-shortcut", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/haptics/CHANGELOG.md b/plugins/haptics/CHANGELOG.md index 83751c0e5..90ad6e628 100644 --- a/plugins/haptics/CHANGELOG.md +++ b/plugins/haptics/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index 8c8ff1326..1a6053700 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-haptics" description = "Haptic feedback and vibrations on Android and iOS" -version = "2.0.0-rc.3" +version = "2.0.0" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/haptics/README.md b/plugins/haptics/README.md index 42c9b455a..3102a20cb 100644 --- a/plugins/haptics/README.md +++ b/plugins/haptics/README.md @@ -14,7 +14,7 @@ There are no standards/requirements for vibration support on Android, so the `fe ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -28,7 +28,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-haptics = "2.0.0-rc" +tauri-plugin-haptics = "2.0.0" # alternatively with Git: tauri-plugin-haptics = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/haptics/package.json b/plugins/haptics/package.json index 6ead8ee4b..f29bdc242 100644 --- a/plugins/haptics/package.json +++ b/plugins/haptics/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-haptics", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index 35b261af2..aa116a5c7 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + +### Dependencies + +- Upgraded to `fs@2.0.0` + ## \[2.0.0-rc.6] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 6ff3419a7..dfd199f77 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0-rc.6" +version = "2.0.0" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/http/README.md b/plugins/http/README.md index b45f82681..3d3433164 100644 --- a/plugins/http/README.md +++ b/plugins/http/README.md @@ -12,7 +12,7 @@ Access the HTTP client written in Rust. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-http = "2.0.0-rc" +tauri-plugin-http = "2.0.0" # alternatively with Git: tauri-plugin-http = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/http/package.json b/plugins/http/package.json index 5000b5fa9..24fb27f7b 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-http", - "version": "2.0.0-rc.2", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/localhost/CHANGELOG.md b/plugins/localhost/CHANGELOG.md index 616886e23..1e46570f1 100644 --- a/plugins/localhost/CHANGELOG.md +++ b/plugins/localhost/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index 9f0e18531..ed0453d44 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-localhost" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Expose your apps assets through a localhost server instead of the default custom protocol." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/localhost/README.md b/plugins/localhost/README.md index b1e825ded..e42ef72b6 100644 --- a/plugins/localhost/README.md +++ b/plugins/localhost/README.md @@ -14,7 +14,7 @@ Expose your apps assets through a localhost server instead of the default custom ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -29,7 +29,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] portpicker = "0.1" # used in the example to pick a random free port -tauri-plugin-localhost = "2.0.0-rc" +tauri-plugin-localhost = "2.0.0" # alternatively with Git: tauri-plugin-localhost = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md index d19e32451..a09f3f0d1 100644 --- a/plugins/log/CHANGELOG.md +++ b/plugins/log/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 57f96b4a7..179505e7b 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-log" -version = "2.0.0-rc.2" +version = "2.0.0" description = "Configurable logging for your Tauri app." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/README.md b/plugins/log/README.md index 9362fa252..fd10ad797 100644 --- a/plugins/log/README.md +++ b/plugins/log/README.md @@ -12,7 +12,7 @@ Configurable logging for your Tauri app. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-log = "2.0.0-rc" +tauri-plugin-log = "2.0.0" # alternatively with Git: tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/log/package.json b/plugins/log/package.json index b1a4bf67a..fd0217012 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-log", - "version": "2.0.0-rc.1", + "version": "2.0.0", "description": "Configurable logging for your Tauri app.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/nfc/CHANGELOG.md b/plugins/nfc/CHANGELOG.md index 7666b3ef2..ba8e2c3af 100644 --- a/plugins/nfc/CHANGELOG.md +++ b/plugins/nfc/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index a40c91172..0db42d6d8 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-nfc" -version = "2.0.0-rc.3" +version = "2.0.0" description = "Read and write NFC tags on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/nfc/README.md b/plugins/nfc/README.md index 9427d7ca2..e8a9e1569 100644 --- a/plugins/nfc/README.md +++ b/plugins/nfc/README.md @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-nfc = "2.0.0-rc" +tauri-plugin-nfc = "2.0.0" # alternatively with Git: tauri-plugin-nfc = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index 9eb4f02fe..e9c9ec8be 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-nfc", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index a38f1afe8..6fc7b136c 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.5] - [`fb85e5dd`](https://github.com/tauri-apps/plugins-workspace/commit/fb85e5dd76688f3ae836890160f9bde843b70167) ([#1785](https://github.com/tauri-apps/plugins-workspace/pull/1785)) Update to tauri 2.0.0-rc.12. diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index 8d0f9270a..543ad243c 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.0.0-rc.5" +version = "2.0.0" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/notification/README.md b/plugins/notification/README.md index 14977dbd5..96b51be66 100644 --- a/plugins/notification/README.md +++ b/plugins/notification/README.md @@ -12,7 +12,7 @@ Send message notifications (brief auto-expiring OS window element) to your user. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-notification = "2.0.0-rc" +tauri-plugin-notification = "2.0.0" # alternatively with Git: tauri-plugin-notification = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/notification/package.json b/plugins/notification/package.json index 90808a01d..37bb5f974 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-notification", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/os/CHANGELOG.md b/plugins/os/CHANGELOG.md index 5afc474e1..e0bf7dfaa 100644 --- a/plugins/os/CHANGELOG.md +++ b/plugins/os/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index 1e36e2209..20050f8c0 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-os" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Read information about the operating system." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/os/README.md b/plugins/os/README.md index f84d123a2..376e028be 100644 --- a/plugins/os/README.md +++ b/plugins/os/README.md @@ -12,7 +12,7 @@ Read information about the operating system. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-os = "2.0.0-rc" +tauri-plugin-os = "2.0.0" # alternatively with Git: tauri-plugin-os = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/os/package.json b/plugins/os/package.json index 9bdcee044..f255299a9 100644 --- a/plugins/os/package.json +++ b/plugins/os/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-os", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 4ea413bb3..dc28e28cf 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + +### Dependencies + +- Upgraded to `fs@2.0.0` + ## \[2.0.0-rc.6] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 19acc56bb..bcb293559 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0-rc.6" +version = "2.0.0" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -27,7 +27,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0-rc.6" } +tauri-plugin-fs = { path = "../fs", version = "2.0.0" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/persisted-scope/README.md b/plugins/persisted-scope/README.md index bf959443b..059d24684 100644 --- a/plugins/persisted-scope/README.md +++ b/plugins/persisted-scope/README.md @@ -12,7 +12,7 @@ Save filesystem and asset scopes and restore them when the app is reopened. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-persisted-scope = "2.0.0-rc" +tauri-plugin-persisted-scope = "2.0.0" # alternatively with Git: tauri-plugin-persisted-scope = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index 8372e591e..caddd6829 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`2f7e32b5`](https://github.com/tauri-apps/plugins-workspace/commit/2f7e32b5e07454d6c0cf3ab03f8af8da74c4a8a7) ([#1822](https://github.com/tauri-apps/plugins-workspace/pull/1822) by [@jbolda](https://github.com/tauri-apps/plugins-workspace/../../jbolda)) `handleIconState` function for use in JavaScript event handlers. This allows one to update the TrayIcon state through JavaScript and fully create and handle the TrayIcon without requiring Rust (and the side-effect of creating a TrayIcon). diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index a99250cf8..eac689027 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.0.0-rc.2" +version = "2.0.0" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 05a9b7f96..881afdcfd 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -14,7 +14,7 @@ This plugin is a port of [electron-positioner](https://github.com/jenslind/elect ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -28,7 +28,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-positioner = "2.0.0-rc" +tauri-plugin-positioner = "2.0.0" # alternatively with Git: tauri-plugin-positioner = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index bd9408cf6..faba11e2d 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.0.0-rc.2", + "version": "2.0.0", "description": "Position your windows at well-known locations.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/process/CHANGELOG.md b/plugins/process/CHANGELOG.md index 3a6da0935..6566fcdc4 100644 --- a/plugins/process/CHANGELOG.md +++ b/plugins/process/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index 624227079..915b72651 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-process" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Access the current process of your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/process/README.md b/plugins/process/README.md index 50c7634b0..331bf9345 100644 --- a/plugins/process/README.md +++ b/plugins/process/README.md @@ -12,7 +12,7 @@ This plugin provides APIs to access the current process. To spawn child processe ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-process = "2.0.0-rc" +tauri-plugin-process = "2.0.0" # alternatively with Git: tauri-plugin-process = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/process/package.json b/plugins/process/package.json index cd743a7bd..bac14def6 100644 --- a/plugins/process/package.json +++ b/plugins/process/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-process", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index d57b07e9c..0c5c2866a 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.4] - [`44273b98`](https://github.com/tauri-apps/plugins-workspace/commit/44273b988957a254eff715d6be7547d2ace882e1) ([#1839](https://github.com/tauri-apps/plugins-workspace/pull/1839) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Fix the plugin schema requiring to set `sidecar` property when it is in fact optional. diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index 860414e84..b22aab306 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.0.0-rc.4" +version = "2.0.0" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/shell/README.md b/plugins/shell/README.md index c52b0eb4e..3d09b6ce4 100644 --- a/plugins/shell/README.md +++ b/plugins/shell/README.md @@ -12,7 +12,7 @@ Access the system shell. Allows you to spawn child processes and manage files an ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-shell = "2.0.0-rc" +tauri-plugin-shell = "2.0.0" # alternatively with Git: tauri-plugin-shell = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/shell/package.json b/plugins/shell/package.json index 18ee77197..0975f8f99 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-shell", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 1cb7f316f..8212d7ea9 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + +### Dependencies + +- Upgraded to `deep-link@2.0.0` + ## \[2.0.0-rc.5] ### Dependencies diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 22de86663..8e37f50d9 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0-rc.5" +version = "2.0.0" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -26,7 +26,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.7", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/plugins/single-instance/README.md b/plugins/single-instance/README.md index 551ea72d9..768b74698 100644 --- a/plugins/single-instance/README.md +++ b/plugins/single-instance/README.md @@ -12,7 +12,7 @@ Ensure a single instance of your tauri app is running. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-single-instance = "2.0.0-rc" +tauri-plugin-single-instance = "2.0.0" # alternatively with Git: tauri-plugin-single-instance = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 705067555..b4c80cbd3 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.17" + "@tauri-apps/cli": "2.0.0" } } diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index da5d8cd67..2d4e4e2a1 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -5,7 +5,7 @@ description = "A Tauri App" authors = ["You"] repository = "" edition = "2021" -rust-version = "1.75" +rust-version = "1.78" [dependencies] serde = { workspace = true } diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 5ef4ae399..61816b416 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.3] - [`30bcf5dc`](https://github.com/tauri-apps/plugins-workspace/commit/30bcf5dcc22e1bb1fb983a8d2887edc39404e6df) ([#1838](https://github.com/tauri-apps/plugins-workspace/pull/1838) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) It is now possible to enable multiple SQL backends at the same time. There will be no compile error anymore if no backends are enabled! diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 09570eb58..df308e67e 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.0.0-rc.3" +version = "2.0.0" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/sql/README.md b/plugins/sql/README.md index a04e992a6..fb1eddbc6 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -12,7 +12,7 @@ Interface with SQL databases through [sqlx](https://github.com/launchbadge/sqlx) ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -27,7 +27,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies.tauri-plugin-sql] features = ["sqlite"] # or "postgres", or "mysql" -version = "2.0.0-rc" +version = "2.0.0" # alternatively with Git git = "https://github.com/tauri-apps/plugins-workspace" branch = "v2" diff --git a/plugins/sql/package.json b/plugins/sql/package.json index 304bdd415..db2c6d2ae 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-sql", - "version": "2.0.0-rc.1", + "version": "2.0.0", "description": "Interface with SQL databases", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 9b7c22571..85fc373c3 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] - [`f12d3560`](https://github.com/tauri-apps/plugins-workspace/commit/f12d35609ab84f536c0f087665fdc1f978af3093) ([#1550](https://github.com/tauri-apps/plugins-workspace/pull/1550) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) **Breaking change**: Removed the `Store` constructor and added the `createStore` API. @@ -115,5 +119,5 @@ ps://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! -plugins-workspace/pull/371)) First v2 alpha release! + plugins-workspace/pull/371)) First v2 alpha release! com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index f906603b8..e5f8c07be 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.0-rc.4" +version = "2.0.0" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/README.md b/plugins/store/README.md index 5ba41c80f..d781878d9 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -12,7 +12,7 @@ Simple, persistent key-value store. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-store = "2.0.0-rc" +tauri-plugin-store = "2.0.0" # alternatively with Git: tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 183de4d86..ca7e3b958 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.17", + "@tauri-apps/cli": "2.0.0", "vite": "^5.0.12", "typescript": "^5.4.7" } diff --git a/plugins/store/package.json b/plugins/store/package.json index 988e9e564..034f8873a 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-store", - "version": "2.0.0-rc.2", + "version": "2.0.0", "description": "Simple, persistent key-value store.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/stronghold/CHANGELOG.md b/plugins/stronghold/CHANGELOG.md index bd42fda00..6ce30b6d2 100644 --- a/plugins/stronghold/CHANGELOG.md +++ b/plugins/stronghold/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index d979bb860..76368926e 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-stronghold" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Store secrets and keys using the IOTA Stronghold secret management engine." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index 17bd125ba..de4384d25 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -12,7 +12,7 @@ Store secrets and keys using the [IOTA Stronghold](https://github.com/iotaledger ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-stronghold = "2.0.0-rc" +tauri-plugin-stronghold = "2.0.0" # alternatively with Git: tauri-plugin-stronghold = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index bb054d513..cbefad53f 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-stronghold", - "version": "2.0.0-rc.1", + "version": "2.0.0", "description": "Store secrets and keys using the IOTA Stronghold encrypted database.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index 220f3df5b..6cef3a2e4 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.4] - [`221f50f5`](https://github.com/tauri-apps/plugins-workspace/commit/221f50f53bd7a87dbd404e4cb1aaf502a5047785) ([#1816](https://github.com/tauri-apps/plugins-workspace/pull/1816) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Encode `+` when making updater requests which can be cause incorrectly interpolating the endpoint when using `{{current_version}}` in the endpoint where the current version contains a build number, for example `1.8.0+1`. diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index b0697acc7..f6f0a6554 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.0-rc.4" +version = "2.0.0" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/updater/README.md b/plugins/updater/README.md index 918e624f4..995471363 100644 --- a/plugins/updater/README.md +++ b/plugins/updater/README.md @@ -12,7 +12,7 @@ In-app updates for Tauri applications. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -27,7 +27,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml # you can add the dependencies on the `[dependencies]` section if you do not target mobile [target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] -tauri-plugin-updater = "2.0.0-rc" +tauri-plugin-updater = "2.0.0" # alternatively with Git: tauri-plugin-updater = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/updater/package.json b/plugins/updater/package.json index 9c60d9084..3afb2f4e2 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-updater", - "version": "2.0.0-rc.2", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index 5dec7a7e1..2d422cbc6 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.2] ### bug diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 8e2db6bac..8403b4866 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0-rc.2" +version = "2.0.0" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/upload/README.md b/plugins/upload/README.md index bf6a734b1..1207f142c 100644 --- a/plugins/upload/README.md +++ b/plugins/upload/README.md @@ -13,7 +13,7 @@ Download files from a remote HTTP server to disk. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -27,7 +27,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-upload = "2.0.0-rc" +tauri-plugin-upload = "2.0.0" # alternatively with Git: tauri-plugin-upload = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/upload/package.json b/plugins/upload/package.json index 4650b236e..03b1c9eae 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-upload", - "version": "2.0.0-rc.1", + "version": "2.0.0", "description": "Upload files from disk to a remote server over HTTP.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/websocket/CHANGELOG.md b/plugins/websocket/CHANGELOG.md index 73b148b17..da39a241b 100644 --- a/plugins/websocket/CHANGELOG.md +++ b/plugins/websocket/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.1] - [`e2e97db5`](https://github.com/tauri-apps/plugins-workspace/commit/e2e97db51983267f5be84d4f6f0278d58834d1f5) ([#1701](https://github.com/tauri-apps/plugins-workspace/pull/1701) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Update to tauri 2.0.0-rc.8 diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 8fdb22b7f..9696f2bd8 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-websocket" -version = "2.0.0-rc.1" +version = "2.0.0" description = "Expose a WebSocket server to your Tauri frontend." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/websocket/README.md b/plugins/websocket/README.md index 09a0f5580..cc992d9c8 100644 --- a/plugins/websocket/README.md +++ b/plugins/websocket/README.md @@ -12,7 +12,7 @@ Expose a WebSocket server to your Tauri frontend. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-websocket = "2.0.0-rc" +tauri-plugin-websocket = "2.0.0" # alternatively with Git: tauri-plugin-websocket = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index d71974e5f..dc8f68bba 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0-rc.17", + "@tauri-apps/cli": "2.0.0", "typescript": "^5.3.3", "vite": "^5.4.7" }, diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index 57b2c7062..2579eb424 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-websocket", - "version": "2.0.0-rc.1", + "version": "2.0.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index 9ffe3bb09..c07cb8d95 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.0] + +- [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. + ## \[2.0.0-rc.5] - [`7a37355e`](https://github.com/tauri-apps/plugins-workspace/commit/7a37355e177772cbddf24397d5a23280e00558af) ([#1787](https://github.com/tauri-apps/plugins-workspace/pull/1787) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix deadlock when trying to restore window states on initial load diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 60d7cbd53..7db3bb296 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0-rc.5" +version = "2.0.0" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/README.md b/plugins/window-state/README.md index 96133e155..1c8ca795a 100644 --- a/plugins/window-state/README.md +++ b/plugins/window-state/README.md @@ -12,7 +12,7 @@ Save window positions and sizes and restore them when the app is reopened. ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-window-state = "2.0.0-rc" +tauri-plugin-window-state = "2.0.0" # alternatively with Git: tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/plugins/window-state/package.json b/plugins/window-state/package.json index 2be791f50..eea695bfb 100644 --- a/plugins/window-state/package.json +++ b/plugins/window-state/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-window-state", - "version": "2.0.0-rc.1", + "version": "2.0.0", "description": "Save window positions and sizes and restore them when the app is reopened.", "license": "MIT OR Apache-2.0", "authors": [ @@ -25,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be0db27b9..2790f8bc4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,58 +58,58 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: 2.0.0 + version: 2.0.0 '@tauri-apps/plugin-barcode-scanner': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/barcode-scanner '@tauri-apps/plugin-biometric': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/biometric '@tauri-apps/plugin-cli': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/cli '@tauri-apps/plugin-clipboard-manager': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/dialog '@tauri-apps/plugin-fs': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/fs '@tauri-apps/plugin-geolocation': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/geolocation '@tauri-apps/plugin-global-shortcut': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/global-shortcut '@tauri-apps/plugin-haptics': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/haptics '@tauri-apps/plugin-http': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/http '@tauri-apps/plugin-nfc': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/nfc '@tauri-apps/plugin-notification': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/notification '@tauri-apps/plugin-os': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/os '@tauri-apps/plugin-process': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/process '@tauri-apps/plugin-shell': - specifier: 2.0.0-rc.1 + specifier: 2.0.0 version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/store '@tauri-apps/plugin-updater': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../../plugins/updater '@zerodevx/svelte-json-view': specifier: 1.0.11 @@ -125,8 +125,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) '@tauri-apps/cli': - specifier: 2.0.0-rc.17 - version: 2.0.0-rc.17 + specifier: 2.0.0 + version: 2.0.0 '@unocss/extractor-svelte': specifier: ^0.63.0 version: 0.63.1 @@ -143,51 +143,51 @@ importers: plugins/autostart: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/barcode-scanner: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/biometric: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/cli: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/clipboard-manager: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/deep-link: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: 2.0.0 + version: 2.0.0 '@tauri-apps/plugin-deep-link': - specifier: 2.0.0-rc.2 + specifier: 2.0.0 version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.17 - version: 2.0.0-rc.17 + specifier: 2.0.0 + version: 2.0.0 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -198,104 +198,104 @@ importers: plugins/dialog: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/fs: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/geolocation: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/global-shortcut: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/haptics: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/http: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/log: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/nfc: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/notification: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/os: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/positioner: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/process: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/shell: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.17 - version: 2.0.0-rc.17 + specifier: 2.0.0 + version: 2.0.0 plugins/sql: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/store: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.17 - version: 2.0.0-rc.17 + specifier: 2.0.0 + version: 2.0.0 typescript: specifier: ^5.4.7 version: 5.6.2 @@ -306,26 +306,26 @@ importers: plugins/stronghold: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/updater: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/upload: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/websocket: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 plugins/websocket/examples/tauri-app: dependencies: @@ -334,8 +334,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0-rc.17 - version: 2.0.0-rc.17 + specifier: 2.0.0 + version: 2.0.0 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -346,8 +346,8 @@ importers: plugins/window-state: dependencies: '@tauri-apps/api': - specifier: ^2.0.0-rc.6 - version: 2.0.0-rc.6 + specifier: ^2.0.0 + version: 2.0.0 packages: @@ -928,71 +928,71 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tauri-apps/api@2.0.0-rc.6': - resolution: {integrity: sha512-oENxL0C5WqHNSXWjZEbjnzoBwFFyn8do5S0elOg0ME1cLvWJOAKmqdCnWPpAwtzHQZ+xAzMU0/k8nPpJq4OQYA==} + '@tauri-apps/api@2.0.0': + resolution: {integrity: sha512-moKgCp2EX7X5GiOx/G/bmoEpkFQVVmyS98UaJU4xUVzan+E1BdwlAKcbip+cGldshYOqL4JSwAEN1OkRXeug0Q==} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.17': - resolution: {integrity: sha512-LXlLpavNfhvELPBcjCzQ9DOLx7rlAzZM4iltsaKawAewx30Q0EpIjK53Sg5AR3p5/KzNfCsTMjjpeUZg1AcFgw==} + '@tauri-apps/cli-darwin-arm64@2.0.0': + resolution: {integrity: sha512-+agYqg2c77imaMfKw7mzqecVIDGcwr6bZMdglJ808O2UjTFzMwnAam1sU26YBYU+IyIjwOu00fm9Azpal+N/Ew==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0-rc.17': - resolution: {integrity: sha512-86jlpD9DQEMdPCu+foqady2Kov3u151Pgs1uOdA3SQxXph4L31T7j26axIhADLYZH6T1be+lSVPm6+fp0iXGgw==} + '@tauri-apps/cli-darwin-x64@2.0.0': + resolution: {integrity: sha512-keN2PLTTcZmbWwFMup/NGcshmvyLnhRPChO8lbm9C5a0IY7zUNQUD7/o/zIulQdLJqDxkdpWJ1j2jTycAtvtKQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.17': - resolution: {integrity: sha512-ZFZeVBFdM9ogNebqzU3vo6f662YwmnE5XzeT6UEKUy+df49Fw2Npebmg0t/BPoF9e/nEgK1w1Jy68aK2JISscg==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0': + resolution: {integrity: sha512-FQJNrlCUBb9E7Fhp5ARy+Or8lSvorG41aVrfi0cGNvv1QlIGSj77TN7SKK+L1jAGzKj1Bl2kCZIESF6Zi8N/+Q==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.17': - resolution: {integrity: sha512-GvO7BNJL6y8CumvaidJ+cEXn0KRaCzhmwtrMfTEl9jsqhGYvmNXuOlZR41hgoy6CQtUiu11ZGoBtU37/lxEKaQ==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.0': + resolution: {integrity: sha512-TK3VrZG5LK1NGueKwnZA1/3gj/qkwry001MNCHXjT6394dwrDv+digCc9Qc569h+xeH/FF71jyoiRIu3gRE6iA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.17': - resolution: {integrity: sha512-DypDS3rJjcKzpgZKqHsCrzVGDbjo17XcYNhAYd2VxvXmGVAq05eZ71jLYHSSofXTxbpLZMcGKaino0jKyX1mOA==} + '@tauri-apps/cli-linux-arm64-musl@2.0.0': + resolution: {integrity: sha512-E3hRmS/0m8YUYMTKZtBExpk/284CTi2nymks0dK0L1j+3KjffL7DiilnIfNFmTvWBgMrs0cVCtoaN/ba/A9mNA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.17': - resolution: {integrity: sha512-nKCAJtC4b9HnVpDsCVXASPEXOEIZb/HFmdRPuKiYXmpziL5OByCJLjhVx5EFhpVtqAg1isCmOutqKc8Nmw1QQQ==} + '@tauri-apps/cli-linux-x64-gnu@2.0.0': + resolution: {integrity: sha512-veX4BJp5xnW8KmxVjchWt4oZEIvKGhuSR7qU1WpqTR21e/eTe/ksGsdXPsqOKQvv/w1X6jhqmlPvhnFmDwUJ/w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.17': - resolution: {integrity: sha512-cSi3M/hcNo+NubSKJG96Af6o6cL38RCvP0ImFiyIOU/adYmW0bQGWI4u/eL14IpdNCR1pbifgEcQL6dteyod0g==} + '@tauri-apps/cli-linux-x64-musl@2.0.0': + resolution: {integrity: sha512-9Eso/8wbsWbOyd9PZEIzN/48ZQJrUGQqGZtglcjUku0lO76mnX0fOnit4nQ57Oj0wezJPhv4mgSseG1OsTIVzw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.17': - resolution: {integrity: sha512-hMtNtm2zXvUwzzTEJIf/GQplWHNLEeAjiLGaX9sS2Me96X/OzU1PUXcWTYdjVA102cf6q//0/pgpPo/Yn480KA==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.0': + resolution: {integrity: sha512-ky8vWAuDUf8WGt9+a0G/EbU0OhdIkogelh9qjIYGHbyEYAJqXfN5P40aHUEg3y8ngQ0YGwRX5ePsQsSZiiR5PQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.17': - resolution: {integrity: sha512-XO+zgvYvpz65aYbXMyFhej4Td5sEK7bSLPr2+8BigiI7F4tHaS7KJpYVtJtjHQtAo6KBy/bT8P9VW6xM4G+YVA==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.0': + resolution: {integrity: sha512-uD45cLZ/EBaT8o4a27tHW7t5UKFplnvDLt/uSUaCpJ3NyOTV6nMXOUrJBe+hH9hSBohqNAF7LEyYo1p932DWFg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.17': - resolution: {integrity: sha512-sVV0o9careFJuL3fTtkp6ed8X4FGGfMyK1WbXR5ci4Z2dn94wIJuefzTnGaQnvur4PaEJQ9WmTlQ2Pe3UrokBQ==} + '@tauri-apps/cli-win32-x64-msvc@2.0.0': + resolution: {integrity: sha512-oFlo14YMsvyhJHmmHgRuOpJ1L9w15193c1Nfj1DksS2LHj6tLzirI7YrAF9inY/XjHFjNHzYPmBpABibkf/9wQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0-rc.17': - resolution: {integrity: sha512-7YQljT+izYmhLqsI5G2xg3AHBPx3gAHc+gB/s+NKqdSL4CuGImLiii8Rw/qBtuJpWFWLJiaGXnpra35zrSlknQ==} + '@tauri-apps/cli@2.0.0': + resolution: {integrity: sha512-xxmPllRa6w/LRRcPczST3yHrYoi8l6ZZmzwabEmM0cgDdhVDmX+Y4oDJkiKD+8cVdxwwEzIuIKuaCwsX8iNsgA==} engines: {node: '>= 10'} hasBin: true @@ -2330,9 +2330,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0(mocha@10.7.3)': + '@covector/assemble@0.12.0': dependencies: - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2343,10 +2343,9 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/changelog@0.12.0(mocha@10.7.3)': + '@covector/changelog@0.12.0': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2356,16 +2355,14 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding - - mocha - supports-color - '@covector/command@0.8.0(mocha@10.7.3)': + '@covector/command@0.8.0': dependencies: - '@effection/process': 2.1.4(mocha@10.7.3) + '@effection/process': 2.1.4 effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding - - mocha '@covector/files@0.8.0': dependencies: @@ -2412,8 +2409,10 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 + transitivePeerDependencies: + - encoding - '@effection/process@2.1.4(mocha@10.7.3)': + '@effection/process@2.1.4': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2421,7 +2420,6 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding - - mocha '@effection/stream@2.0.6': dependencies: @@ -2780,50 +2778,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@tauri-apps/api@2.0.0-rc.6': {} + '@tauri-apps/api@2.0.0': {} - '@tauri-apps/cli-darwin-arm64@2.0.0-rc.17': + '@tauri-apps/cli-darwin-arm64@2.0.0': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-rc.17': + '@tauri-apps/cli-darwin-x64@2.0.0': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.17': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.17': + '@tauri-apps/cli-linux-arm64-gnu@2.0.0': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.17': + '@tauri-apps/cli-linux-arm64-musl@2.0.0': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.17': + '@tauri-apps/cli-linux-x64-gnu@2.0.0': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-rc.17': + '@tauri-apps/cli-linux-x64-musl@2.0.0': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.17': + '@tauri-apps/cli-win32-arm64-msvc@2.0.0': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.17': + '@tauri-apps/cli-win32-ia32-msvc@2.0.0': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.17': + '@tauri-apps/cli-win32-x64-msvc@2.0.0': optional: true - '@tauri-apps/cli@2.0.0-rc.17': + '@tauri-apps/cli@2.0.0': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-rc.17 - '@tauri-apps/cli-darwin-x64': 2.0.0-rc.17 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.17 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.17 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.17 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.17 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.17 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.17 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.17 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.17 + '@tauri-apps/cli-darwin-arm64': 2.0.0 + '@tauri-apps/cli-darwin-x64': 2.0.0 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0 + '@tauri-apps/cli-linux-x64-musl': 2.0.0 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0 '@types/eslint@9.6.1': dependencies: @@ -3225,9 +3223,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0(mocha@10.7.3) - '@covector/changelog': 0.12.0(mocha@10.7.3) - '@covector/command': 0.8.0(mocha@10.7.3) + '@covector/assemble': 0.12.0 + '@covector/changelog': 0.12.0 + '@covector/command': 0.8.0 '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 diff --git a/shared/template/README.md b/shared/template/README.md index 4387ef324..aef892b6c 100644 --- a/shared/template/README.md +++ b/shared/template/README.md @@ -12,7 +12,7 @@ ## Install -_This plugin requires a Rust version of at least **1.75**_ +_This plugin requires a Rust version of at least **1.78**_ There are three general methods of installation that we can recommend. @@ -26,7 +26,7 @@ Install the Core plugin by adding the following to your `Cargo.toml` file: ```toml [dependencies] -tauri-plugin-PLUGIN_NAME = "2.0.0-rc" +tauri-plugin-PLUGIN_NAME = "2.0.0" # alternatively with Git: tauri-plugin-PLUGIN_NAME = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ``` diff --git a/shared/template/package.json b/shared/template/package.json index 36cd017fd..75ce480a6 100644 --- a/shared/template/package.json +++ b/shared/template/package.json @@ -24,6 +24,6 @@ "LICENSE" ], "dependencies": { - "@tauri-apps/api": "^2.0.0-rc.6" + "@tauri-apps/api": "^2.0.0" } } From 9501cfa5f5385b2d7eb43a8378b322ee97cba06f Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Wed, 2 Oct 2024 16:28:16 -0300 Subject: [PATCH 609/643] fix(updater): validate endpoint scheme before printing warning (#1868) regression from #1814 --- .changes/fix-updater-warning.md | 5 +++++ plugins/updater/src/config.rs | 13 ++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 .changes/fix-updater-warning.md diff --git a/.changes/fix-updater-warning.md b/.changes/fix-updater-warning.md new file mode 100644 index 000000000..394e38ac3 --- /dev/null +++ b/.changes/fix-updater-warning.md @@ -0,0 +1,5 @@ +--- +"updater": patch +--- + +Fix configuration parser incorrectly warning about the endpoint scheme. diff --git a/plugins/updater/src/config.rs b/plugins/updater/src/config.rs index b95c6ae4f..6b16bc01f 100644 --- a/plugins/updater/src/config.rs +++ b/plugins/updater/src/config.rs @@ -142,14 +142,13 @@ pub(crate) fn validate_endpoints( ) -> crate::Result<()> { if !dangerous_insecure_transport_protocol { for url in endpoints { - #[cfg(debug_assertions)] - #[cfg(debug_assertions)] - eprintln!("[\x1b[33mWARNING\x1b[0m] The updater endpoint \"{url}\" doesn't use `https` protocol. This is allowed in development but will fail in release builds."); - #[cfg(debug_assertions)] - eprintln!("[\x1b[33mWARNING\x1b[0m] if this is a desired behavior, you can enable `dangerousInsecureTransportProtocol` in the plugin configuration"); - - #[cfg(not(debug_assertions))] if url.scheme() != "https" { + #[cfg(debug_assertions)] + { + eprintln!("[\x1b[33mWARNING\x1b[0m] The updater endpoint \"{url}\" doesn't use `https` protocol. This is allowed in development but will fail in release builds."); + eprintln!("[\x1b[33mWARNING\x1b[0m] if this is a desired behavior, you can enable `dangerousInsecureTransportProtocol` in the plugin configuration"); + } + #[cfg(not(debug_assertions))] return Err(crate::Error::InsecureTransportProtocol); } } From ee02ea7746d2fff7b725b9db77dd8f1ae63b9f5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:40:18 -0300 Subject: [PATCH 610/643] publish new versions (#1869) Co-authored-by: lucasfernog --- .changes/fix-updater-warning.md | 5 ----- Cargo.lock | 4 ++-- examples/api/src-tauri/CHANGELOG.md | 6 ++++++ examples/api/src-tauri/Cargo.toml | 4 ++-- plugins/updater/CHANGELOG.md | 4 ++++ plugins/updater/Cargo.toml | 2 +- 6 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 .changes/fix-updater-warning.md diff --git a/.changes/fix-updater-warning.md b/.changes/fix-updater-warning.md deleted file mode 100644 index 394e38ac3..000000000 --- a/.changes/fix-updater-warning.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"updater": patch ---- - -Fix configuration parser incorrectly warning about the endpoint scheme. diff --git a/Cargo.lock b/Cargo.lock index 298f0e6a1..3f95c411e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -7018,7 +7018,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.0" +version = "2.0.1" dependencies = [ "base64 0.22.1", "dirs 5.0.1", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index f936e9306..2f0343ac7 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[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. diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 3a007fa97..abb6578e7 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.0" +version = "2.0.1" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -52,7 +52,7 @@ features = [ [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" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.0" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.1" } tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index 6cef3a2e4..ed8941707 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`9501cfa5`](https://github.com/tauri-apps/plugins-workspace/commit/9501cfa5f5385b2d7eb43a8378b322ee97cba06f) ([#1868](https://github.com/tauri-apps/plugins-workspace/pull/1868) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Fix configuration parser incorrectly warning about the endpoint scheme. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index f6f0a6554..235094644 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.0" +version = "2.0.1" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } From ab8d089b2be6019508c0a1e8643b27656671051c Mon Sep 17 00:00:00 2001 From: Horu <73709188+HigherOrderLogic@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:04:38 +1000 Subject: [PATCH 611/643] chore(barcode-scanner): fix banner link in readme (#1870) * chore: fix banner link in readme * chore: raw --- plugins/barcode-scanner/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/barcode-scanner/README.md b/plugins/barcode-scanner/README.md index f0fe8371d..eba7ca9e7 100644 --- a/plugins/barcode-scanner/README.md +++ b/plugins/barcode-scanner/README.md @@ -1,4 +1,4 @@ -![Barcode Scanner](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/scanner/banner.png) +![Barcode Scanner](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/barcode-scanner/banner.png) Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. From fe6dd0ff9e6dbe3cbd8abcddc4ad16049bf0bf32 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:54:25 +0800 Subject: [PATCH 612/643] fix(deps): update dependency @tauri-apps/api to v2.0.1 (#1862) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- pnpm-lock.yaml | 66 ++++++++++----------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index e9e712cd6..599276b89 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.0", + "@tauri-apps/api": "2.0.1", "@tauri-apps/plugin-barcode-scanner": "2.0.0", "@tauri-apps/plugin-biometric": "2.0.0", "@tauri-apps/plugin-cli": "2.0.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index fa227558c..98864087f 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -10,7 +10,7 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.0", + "@tauri-apps/api": "2.0.1", "@tauri-apps/plugin-deep-link": "2.0.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2790f8bc4..fe477c928 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.1 + version: 2.0.1 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0 version: link:../../plugins/barcode-scanner @@ -144,43 +144,43 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/barcode-scanner: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/biometric: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/cli: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/clipboard-manager: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/deep-link: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.1 + version: 2.0.1 '@tauri-apps/plugin-deep-link': specifier: 2.0.0 version: link:../.. @@ -199,79 +199,79 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/fs: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/geolocation: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/global-shortcut: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/haptics: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/http: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/log: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/nfc: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/notification: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/os: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/positioner: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/process: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/shell: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/single-instance/examples/vanilla: devDependencies: @@ -283,13 +283,13 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/store: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/store/examples/AppSettingsManager: devDependencies: @@ -307,25 +307,25 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/updater: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/upload: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/websocket: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 plugins/websocket/examples/tauri-app: dependencies: @@ -347,7 +347,7 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.0 + version: 2.0.1 packages: @@ -928,8 +928,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tauri-apps/api@2.0.0': - resolution: {integrity: sha512-moKgCp2EX7X5GiOx/G/bmoEpkFQVVmyS98UaJU4xUVzan+E1BdwlAKcbip+cGldshYOqL4JSwAEN1OkRXeug0Q==} + '@tauri-apps/api@2.0.1': + resolution: {integrity: sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==} '@tauri-apps/cli-darwin-arm64@2.0.0': resolution: {integrity: sha512-+agYqg2c77imaMfKw7mzqecVIDGcwr6bZMdglJ808O2UjTFzMwnAam1sU26YBYU+IyIjwOu00fm9Azpal+N/Ew==} @@ -2778,7 +2778,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tauri-apps/api@2.0.0': {} + '@tauri-apps/api@2.0.1': {} '@tauri-apps/cli-darwin-arm64@2.0.0': optional: true From 4c2454d410554900307cc569f95db4870c28978b Mon Sep 17 00:00:00 2001 From: Tillmann <28728469+tweidinger@users.noreply.github.com> Date: Thu, 3 Oct 2024 19:23:40 +0900 Subject: [PATCH 613/643] sync readme with metadata (#1872) --- plugins/http/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index dfd199f77..f59859d86 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -17,8 +17,8 @@ rustdoc-args = ["--cfg", "docsrs"] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } macos = { level = "full", notes = "" } -android = { level = "none", notes = "" } -ios = { level = "none", notes = "" } +android = { level = "full", notes = "" } +ios = { level = "full", notes = "" } [build-dependencies] tauri-plugin = { workspace = true, features = ["build"] } From dc49de53419c802b821e487d2ff0f7fb4283b935 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 20:52:00 +0800 Subject: [PATCH 614/643] chore(deps): update dependency typescript-eslint to v8.8.0 (#1854) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index ae587a374..38b712dcc 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.22.4", "tslib": "2.7.0", "typescript": "5.6.2", - "typescript-eslint": "8.7.0" + "typescript-eslint": "8.8.0" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe477c928..3c643cc53 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.6.2 version: 5.6.2 typescript-eslint: - specifier: 8.7.0 - version: 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + specifier: 8.8.0 + version: 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) examples/api: dependencies: @@ -1020,8 +1020,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.7.0': - resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + '@typescript-eslint/eslint-plugin@8.8.0': + resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1031,8 +1031,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.7.0': - resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + '@typescript-eslint/parser@8.8.0': + resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1041,12 +1041,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.7.0': - resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + '@typescript-eslint/scope-manager@8.8.0': + resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.7.0': - resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + '@typescript-eslint/type-utils@8.8.0': + resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1054,12 +1054,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.7.0': - resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + '@typescript-eslint/types@8.8.0': + resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.7.0': - resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + '@typescript-eslint/typescript-estree@8.8.0': + resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1067,14 +1067,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.7.0': - resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + '@typescript-eslint/utils@8.8.0': + resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.7.0': - resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + '@typescript-eslint/visitor-keys@8.8.0': + resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.63.1': @@ -2141,8 +2141,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.7.0: - resolution: {integrity: sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ==} + typescript-eslint@8.8.0: + resolution: {integrity: sha512-BjIT/VwJ8+0rVO01ZQ2ZVnjE1svFBiRczcpr1t1Yxt7sT25VSbPfrJtDsQ8uQTy2pilX5nI9gwxhUyLULNentw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2846,14 +2846,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/parser': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/type-utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.0 eslint: 9.11.1(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 @@ -2864,12 +2864,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.11.1(jiti@2.0.0) optionalDependencies: @@ -2877,15 +2877,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.7.0': + '@typescript-eslint/scope-manager@8.8.0': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/visitor-keys': 8.8.0 - '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -2894,12 +2894,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.7.0': {} + '@typescript-eslint/types@8.8.0': {} - '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -2911,20 +2911,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0)) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) eslint: 9.11.1(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.7.0': + '@typescript-eslint/visitor-keys@8.8.0': dependencies: - '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/types': 8.8.0 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1))': @@ -4130,11 +4130,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2): + typescript-eslint@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From a1a82208ed4ab87f83310be0dc95428aec9ab241 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 3 Oct 2024 10:31:13 -0300 Subject: [PATCH 615/643] chore: change MSRV to 1.77.2 to support Windows 7 (#1873) * chore: change MSRV to 1.77.2 to support Windows 7 * fmt --- .changes/msrv-1.77.2.md | 34 +++++++++++++++++++ .github/workflows/test-rust.yml | 2 +- Cargo.lock | 32 ++++++++--------- Cargo.toml | 10 +++--- README.md | 2 +- plugins/autostart/README.md | 2 +- plugins/cli/README.md | 2 +- plugins/clipboard-manager/README.md | 2 +- plugins/deep-link/README.md | 2 +- .../examples/app/src-tauri/Cargo.toml | 2 +- plugins/dialog/README.md | 2 +- plugins/fs/README.md | 2 +- plugins/geolocation/README.md | 2 +- plugins/global-shortcut/README.md | 2 +- plugins/haptics/README.md | 2 +- plugins/http/README.md | 2 +- plugins/localhost/README.md | 2 +- plugins/log/README.md | 2 +- plugins/notification/README.md | 2 +- plugins/os/README.md | 2 +- plugins/persisted-scope/README.md | 2 +- plugins/positioner/README.md | 2 +- plugins/process/README.md | 2 +- plugins/shell/README.md | 2 +- plugins/single-instance/README.md | 2 +- .../examples/vanilla/src-tauri/Cargo.toml | 2 +- plugins/sql/README.md | 2 +- plugins/store/README.md | 2 +- plugins/stronghold/README.md | 2 +- plugins/updater/README.md | 2 +- plugins/upload/README.md | 2 +- plugins/websocket/README.md | 2 +- plugins/window-state/README.md | 2 +- shared/template/README.md | 2 +- 34 files changed, 86 insertions(+), 52 deletions(-) create mode 100644 .changes/msrv-1.77.2.md diff --git a/.changes/msrv-1.77.2.md b/.changes/msrv-1.77.2.md new file mode 100644 index 000000000..118608f47 --- /dev/null +++ b/.changes/msrv-1.77.2.md @@ -0,0 +1,34 @@ +--- +"api-example": patch +"autostart": patch +"barcode-scanner": patch +"biometric": patch +"cli": patch +"clipboard-manager": patch +"deep-link": patch +"fs": patch +"dialog": patch +"geolocation": patch +"global-shortcut": patch +"haptics": 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 +--- + +Downgrade MSRV to 1.77.2 to support Windows 7. diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 7df99f714..016e36734 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -202,7 +202,7 @@ jobs: sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev - - uses: dtolnay/rust-toolchain@1.78.0 + - uses: dtolnay/rust-toolchain@1.77.2 with: targets: ${{ matrix.platform.target }} diff --git a/Cargo.lock b/Cargo.lock index 3f95c411e..d176659c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6498,9 +6498,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c9c08beea86d5095b6f5fb1c788fe8759b23c3f71927c66a69e725a91d089cd" +checksum = "f3fad474c02a3bcd4a304afff97159a31b9bab84e29563f7109c7b0ce8cd774e" dependencies = [ "anyhow", "bytes", @@ -6552,9 +6552,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bb649a284aec2ab43e8df6831b8c8060d231ec8ddf05bf021d58cb67570e1f" +checksum = "935f9b3c49b22b3e2e485a57f46d61cd1ae07b1cbb2ba87387a387caf2d8c4e7" dependencies = [ "anyhow", "cargo_toml", @@ -6576,9 +6576,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4511912612ba0da11aeb300e18e18b2c7067fd14aa886eac46bdcc43b4fa3ee" +checksum = "95d7443dd4f0b597704b6a14b964ee2ed16e99928d8e6292ae9825f09fbcd30e" dependencies = [ "base64 0.22.1", "brotli", @@ -6603,9 +6603,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ee976578a14b779996d7b6879d7e625c8ce674bc87e223953664f37def2eef" +checksum = "4d2c0963ccfc3f5194415f2cce7acc975942a8797fbabfb0aa1ed6f59326ae7f" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6617,9 +6617,9 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d084450b7ec8e445ad119079307f935b7bf3d736da139a8664eb1d4909aa5" +checksum = "b2e6660a409963e4d57b9bfab4addd141eeff41bd3a7fb14e13004a832cf7ef6" dependencies = [ "anyhow", "glob", @@ -7094,9 +7094,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2570e1f33f332a2d2d9967ebb3903bc4e1f92b9c47e4d1b302c10ea4153fcdbb" +checksum = "af12ad1af974b274ef1d32a94e6eba27a312b429ef28fcb98abc710df7f9151d" dependencies = [ "dpi", "gtk", @@ -7113,9 +7113,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8147d8f9ed418d83a90af3d64fbdca5e0e924ae28e5351da88f9568169db8665" +checksum = "e45e88aa0b11b302d836e6ea3e507a6359044c4a8bc86b865ba99868c695753d" dependencies = [ "gtk", "http", @@ -7139,9 +7139,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87856e9d7fa91fd710362f3c73fccbf6bfd036934908791e65bd803d54dc8a8" +checksum = "c38b0230d6880cf6dd07b6d7dd7789a0869f98ac12146e0d18d1c1049215a045" dependencies = [ "aes-gcm", "brotli", diff --git a/Cargo.toml b/Cargo.toml index 88830f33a..f4d619d31 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.0", default-features = false } -tauri-build = "2.0.0" -tauri-plugin = "2.0.0" -tauri-utils = "2.0.0" +tauri = { version = "2.0.1", default-features = false } +tauri-build = "2.0.1" +tauri-plugin = "2.0.1" +tauri-utils = "2.0.1" serde_json = "1" thiserror = "1" url = "2" @@ -27,7 +27,7 @@ specta = "=2.0.0-rc.20" edition = "2021" authors = ["Tauri Programme within The Commons Conservancy"] license = "Apache-2.0 OR MIT" -rust-version = "1.78" +rust-version = "1.77.2" repository = "https://github.com/tauri-apps/plugins-workspace" # default to small, optimized release binaries diff --git a/README.md b/README.md index bcd648325..dbb5b0c67 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ | [websocket](plugins/websocket) | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? | | [window-state](plugins/window-state) | Persist window sizes and positions. | ✅ | ✅ | ✅ | ? | ? | -_This repo and all plugins require a Rust version of at least **1.78**_ +_This repo and all plugins require a Rust version of at least **1.77.2**_ ## Contributing diff --git a/plugins/autostart/README.md b/plugins/autostart/README.md index 6dd932b31..0a1415dbd 100644 --- a/plugins/autostart/README.md +++ b/plugins/autostart/README.md @@ -12,7 +12,7 @@ Automatically launch your application at startup. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/cli/README.md b/plugins/cli/README.md index 6323a84c2..05d5bd35e 100644 --- a/plugins/cli/README.md +++ b/plugins/cli/README.md @@ -12,7 +12,7 @@ Parse arguments from your Command Line Interface. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/clipboard-manager/README.md b/plugins/clipboard-manager/README.md index 26b433b2b..daec970d4 100644 --- a/plugins/clipboard-manager/README.md +++ b/plugins/clipboard-manager/README.md @@ -12,7 +12,7 @@ Read and write to the system clipboard. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/deep-link/README.md b/plugins/deep-link/README.md index 44bf2769b..77fae2c8a 100644 --- a/plugins/deep-link/README.md +++ b/plugins/deep-link/README.md @@ -12,7 +12,7 @@ Set your Tauri application as the default handler for an URL. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index e2624f7a1..11e7c41f7 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -6,7 +6,7 @@ authors = ["you"] license = "" repository = "" edition = "2021" -rust-version = "1.78" +rust-version = "1.77.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/plugins/dialog/README.md b/plugins/dialog/README.md index f03ba952d..2259e35b6 100644 --- a/plugins/dialog/README.md +++ b/plugins/dialog/README.md @@ -12,7 +12,7 @@ Native system dialogs for opening and saving files along with message dialogs. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/fs/README.md b/plugins/fs/README.md index c1516343c..af5c63a81 100644 --- a/plugins/fs/README.md +++ b/plugins/fs/README.md @@ -12,7 +12,7 @@ Access the file system. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/geolocation/README.md b/plugins/geolocation/README.md index a5957c078..0557cc989 100644 --- a/plugins/geolocation/README.md +++ b/plugins/geolocation/README.md @@ -12,7 +12,7 @@ This plugin provides APIs for getting and tracking the device's current position ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/global-shortcut/README.md b/plugins/global-shortcut/README.md index b04072133..12a9b08d5 100644 --- a/plugins/global-shortcut/README.md +++ b/plugins/global-shortcut/README.md @@ -12,7 +12,7 @@ Register global shortcuts. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/haptics/README.md b/plugins/haptics/README.md index 3102a20cb..b96e267c3 100644 --- a/plugins/haptics/README.md +++ b/plugins/haptics/README.md @@ -14,7 +14,7 @@ There are no standards/requirements for vibration support on Android, so the `fe ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/http/README.md b/plugins/http/README.md index 3d3433164..c3fe92c03 100644 --- a/plugins/http/README.md +++ b/plugins/http/README.md @@ -12,7 +12,7 @@ Access the HTTP client written in Rust. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/localhost/README.md b/plugins/localhost/README.md index e42ef72b6..4e23c0383 100644 --- a/plugins/localhost/README.md +++ b/plugins/localhost/README.md @@ -14,7 +14,7 @@ Expose your apps assets through a localhost server instead of the default custom ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/log/README.md b/plugins/log/README.md index fd10ad797..1748d0c0e 100644 --- a/plugins/log/README.md +++ b/plugins/log/README.md @@ -12,7 +12,7 @@ Configurable logging for your Tauri app. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/notification/README.md b/plugins/notification/README.md index 96b51be66..e75ce540a 100644 --- a/plugins/notification/README.md +++ b/plugins/notification/README.md @@ -12,7 +12,7 @@ Send message notifications (brief auto-expiring OS window element) to your user. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/os/README.md b/plugins/os/README.md index 376e028be..aafda769e 100644 --- a/plugins/os/README.md +++ b/plugins/os/README.md @@ -12,7 +12,7 @@ Read information about the operating system. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/persisted-scope/README.md b/plugins/persisted-scope/README.md index 059d24684..c45a1711e 100644 --- a/plugins/persisted-scope/README.md +++ b/plugins/persisted-scope/README.md @@ -12,7 +12,7 @@ Save filesystem and asset scopes and restore them when the app is reopened. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/positioner/README.md b/plugins/positioner/README.md index 881afdcfd..1c766849a 100644 --- a/plugins/positioner/README.md +++ b/plugins/positioner/README.md @@ -14,7 +14,7 @@ This plugin is a port of [electron-positioner](https://github.com/jenslind/elect ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/process/README.md b/plugins/process/README.md index 331bf9345..ad7d53abf 100644 --- a/plugins/process/README.md +++ b/plugins/process/README.md @@ -12,7 +12,7 @@ This plugin provides APIs to access the current process. To spawn child processe ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/shell/README.md b/plugins/shell/README.md index 3d09b6ce4..2f6e5ad68 100644 --- a/plugins/shell/README.md +++ b/plugins/shell/README.md @@ -12,7 +12,7 @@ Access the system shell. Allows you to spawn child processes and manage files an ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/single-instance/README.md b/plugins/single-instance/README.md index 768b74698..64224602f 100644 --- a/plugins/single-instance/README.md +++ b/plugins/single-instance/README.md @@ -12,7 +12,7 @@ Ensure a single instance of your tauri app is running. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index 2d4e4e2a1..d764081ce 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -5,7 +5,7 @@ description = "A Tauri App" authors = ["You"] repository = "" edition = "2021" -rust-version = "1.78" +rust-version = "1.77.2" [dependencies] serde = { workspace = true } diff --git a/plugins/sql/README.md b/plugins/sql/README.md index fb1eddbc6..85318cfff 100644 --- a/plugins/sql/README.md +++ b/plugins/sql/README.md @@ -12,7 +12,7 @@ Interface with SQL databases through [sqlx](https://github.com/launchbadge/sqlx) ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/store/README.md b/plugins/store/README.md index d781878d9..391d7a0c6 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -12,7 +12,7 @@ Simple, persistent key-value store. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/stronghold/README.md b/plugins/stronghold/README.md index de4384d25..d885bf645 100644 --- a/plugins/stronghold/README.md +++ b/plugins/stronghold/README.md @@ -12,7 +12,7 @@ Store secrets and keys using the [IOTA Stronghold](https://github.com/iotaledger ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/updater/README.md b/plugins/updater/README.md index 995471363..f8dd5347a 100644 --- a/plugins/updater/README.md +++ b/plugins/updater/README.md @@ -12,7 +12,7 @@ In-app updates for Tauri applications. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/upload/README.md b/plugins/upload/README.md index 1207f142c..15dd3ad62 100644 --- a/plugins/upload/README.md +++ b/plugins/upload/README.md @@ -13,7 +13,7 @@ Download files from a remote HTTP server to disk. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/websocket/README.md b/plugins/websocket/README.md index cc992d9c8..a9c3a267f 100644 --- a/plugins/websocket/README.md +++ b/plugins/websocket/README.md @@ -12,7 +12,7 @@ Expose a WebSocket server to your Tauri frontend. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/plugins/window-state/README.md b/plugins/window-state/README.md index 1c8ca795a..a4355fb5e 100644 --- a/plugins/window-state/README.md +++ b/plugins/window-state/README.md @@ -12,7 +12,7 @@ Save window positions and sizes and restore them when the app is reopened. ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. diff --git a/shared/template/README.md b/shared/template/README.md index aef892b6c..d22a2ba69 100644 --- a/shared/template/README.md +++ b/shared/template/README.md @@ -12,7 +12,7 @@ ## Install -_This plugin requires a Rust version of at least **1.78**_ +_This plugin requires a Rust version of at least **1.77.2**_ There are three general methods of installation that we can recommend. From fd785ab5de5693a251540e64f7c4c1fcdab536ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:58:13 -0300 Subject: [PATCH 616/643] publish new versions (#1878) Co-authored-by: lucasfernog --- .changes/msrv-1.77.2.md | 34 --------------- Cargo.lock | 60 +++++++++++++------------- examples/api/src-tauri/CHANGELOG.md | 25 +++++++++++ examples/api/src-tauri/Cargo.toml | 38 ++++++++-------- plugins/autostart/CHANGELOG.md | 4 ++ plugins/autostart/Cargo.toml | 2 +- plugins/barcode-scanner/CHANGELOG.md | 4 ++ plugins/barcode-scanner/Cargo.toml | 2 +- plugins/biometric/CHANGELOG.md | 4 ++ plugins/biometric/Cargo.toml | 2 +- plugins/cli/CHANGELOG.md | 4 ++ plugins/cli/Cargo.toml | 2 +- plugins/clipboard-manager/CHANGELOG.md | 4 ++ plugins/clipboard-manager/Cargo.toml | 2 +- plugins/deep-link/CHANGELOG.md | 4 ++ plugins/deep-link/Cargo.toml | 2 +- plugins/dialog/CHANGELOG.md | 8 ++++ plugins/dialog/Cargo.toml | 4 +- plugins/fs/CHANGELOG.md | 4 ++ plugins/fs/Cargo.toml | 2 +- plugins/geolocation/CHANGELOG.md | 4 ++ plugins/geolocation/Cargo.toml | 2 +- plugins/global-shortcut/CHANGELOG.md | 4 ++ plugins/global-shortcut/Cargo.toml | 2 +- plugins/haptics/CHANGELOG.md | 4 ++ plugins/haptics/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 8 ++++ plugins/http/Cargo.toml | 4 +- plugins/localhost/CHANGELOG.md | 4 ++ plugins/localhost/Cargo.toml | 2 +- plugins/log/CHANGELOG.md | 4 ++ plugins/log/Cargo.toml | 2 +- plugins/nfc/CHANGELOG.md | 4 ++ plugins/nfc/Cargo.toml | 2 +- plugins/notification/CHANGELOG.md | 4 ++ plugins/notification/Cargo.toml | 2 +- plugins/os/CHANGELOG.md | 4 ++ plugins/os/Cargo.toml | 2 +- plugins/persisted-scope/CHANGELOG.md | 8 ++++ plugins/persisted-scope/Cargo.toml | 4 +- plugins/positioner/CHANGELOG.md | 4 ++ plugins/positioner/Cargo.toml | 2 +- plugins/process/CHANGELOG.md | 4 ++ plugins/process/Cargo.toml | 2 +- plugins/shell/CHANGELOG.md | 4 ++ plugins/shell/Cargo.toml | 2 +- plugins/single-instance/CHANGELOG.md | 8 ++++ plugins/single-instance/Cargo.toml | 4 +- plugins/sql/CHANGELOG.md | 4 ++ plugins/sql/Cargo.toml | 2 +- plugins/store/CHANGELOG.md | 4 ++ plugins/store/Cargo.toml | 2 +- plugins/stronghold/CHANGELOG.md | 4 ++ plugins/stronghold/Cargo.toml | 2 +- plugins/updater/CHANGELOG.md | 4 ++ plugins/updater/Cargo.toml | 2 +- plugins/upload/CHANGELOG.md | 4 ++ plugins/upload/Cargo.toml | 2 +- plugins/websocket/CHANGELOG.md | 4 ++ plugins/websocket/Cargo.toml | 2 +- plugins/window-state/CHANGELOG.md | 4 ++ plugins/window-state/Cargo.toml | 2 +- 62 files changed, 239 insertions(+), 116 deletions(-) delete mode 100644 .changes/msrv-1.77.2.md diff --git a/.changes/msrv-1.77.2.md b/.changes/msrv-1.77.2.md deleted file mode 100644 index 118608f47..000000000 --- a/.changes/msrv-1.77.2.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -"api-example": patch -"autostart": patch -"barcode-scanner": patch -"biometric": patch -"cli": patch -"clipboard-manager": patch -"deep-link": patch -"fs": patch -"dialog": patch -"geolocation": patch -"global-shortcut": patch -"haptics": 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 ---- - -Downgrade MSRV to 1.77.2 to support Windows 7. diff --git a/Cargo.lock b/Cargo.lock index d176659c7..2044a052f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.1" +version = "2.0.2" dependencies = [ "log", "serde", @@ -6634,7 +6634,7 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.0.0" +version = "2.0.1" dependencies = [ "auto-launch", "log", @@ -6647,7 +6647,7 @@ dependencies = [ [[package]] name = "tauri-plugin-barcode-scanner" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6659,7 +6659,7 @@ dependencies = [ [[package]] name = "tauri-plugin-biometric" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6672,7 +6672,7 @@ dependencies = [ [[package]] name = "tauri-plugin-cli" -version = "2.0.0" +version = "2.0.1" dependencies = [ "clap", "log", @@ -6685,7 +6685,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.0" +version = "2.0.1" dependencies = [ "arboard", "image", @@ -6699,7 +6699,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.0.0" +version = "2.0.1" dependencies = [ "dunce", "log", @@ -6717,7 +6717,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "raw-window-handle", @@ -6733,7 +6733,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.0" +version = "2.0.1" dependencies = [ "anyhow", "dunce", @@ -6754,7 +6754,7 @@ dependencies = [ [[package]] name = "tauri-plugin-geolocation" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6767,7 +6767,7 @@ dependencies = [ [[package]] name = "tauri-plugin-global-shortcut" -version = "2.0.0" +version = "2.0.1" dependencies = [ "global-hotkey", "log", @@ -6780,7 +6780,7 @@ dependencies = [ [[package]] name = "tauri-plugin-haptics" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6793,7 +6793,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.0" +version = "2.0.1" dependencies = [ "data-url", "http", @@ -6813,7 +6813,7 @@ dependencies = [ [[package]] name = "tauri-plugin-localhost" -version = "2.0.0" +version = "2.0.1" dependencies = [ "http", "log", @@ -6826,7 +6826,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" -version = "2.0.0" +version = "2.0.1" dependencies = [ "android_logger", "byte-unit", @@ -6846,7 +6846,7 @@ dependencies = [ [[package]] name = "tauri-plugin-nfc" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6859,7 +6859,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.0.0" +version = "2.0.1" dependencies = [ "color-backtrace", "ctor", @@ -6881,7 +6881,7 @@ dependencies = [ [[package]] name = "tauri-plugin-os" -version = "2.0.0" +version = "2.0.1" dependencies = [ "gethostname 0.5.0", "log", @@ -6897,7 +6897,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.0" +version = "2.0.1" dependencies = [ "aho-corasick", "bincode", @@ -6911,7 +6911,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "serde", @@ -6924,7 +6924,7 @@ dependencies = [ [[package]] name = "tauri-plugin-process" -version = "2.0.0" +version = "2.0.1" dependencies = [ "tauri", "tauri-plugin", @@ -6932,7 +6932,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0" +version = "2.0.1" dependencies = [ "encoding_rs", "log", @@ -6951,7 +6951,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.0.0" +version = "2.0.1" dependencies = [ "log", "semver", @@ -6966,7 +6966,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.0.0" +version = "2.0.1" dependencies = [ "futures-core", "indexmap 2.5.0", @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.0.0" +version = "2.0.1" dependencies = [ "dunce", "log", @@ -6997,7 +6997,7 @@ dependencies = [ [[package]] name = "tauri-plugin-stronghold" -version = "2.0.0" +version = "2.0.1" dependencies = [ "hex", "iota-crypto", @@ -7018,7 +7018,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.0.1" +version = "2.0.2" dependencies = [ "base64 0.22.1", "dirs 5.0.1", @@ -7046,7 +7046,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.0.0" +version = "2.0.1" dependencies = [ "futures-util", "log", @@ -7064,7 +7064,7 @@ dependencies = [ [[package]] name = "tauri-plugin-websocket" -version = "2.0.0" +version = "2.0.1" dependencies = [ "futures-util", "http", @@ -7081,7 +7081,7 @@ dependencies = [ [[package]] name = "tauri-plugin-window-state" -version = "2.0.0" +version = "2.0.1" dependencies = [ "bitflags 2.6.0", "log", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 2f0343ac7..0f5577322 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## \[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 diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index abb6578e7..50cd940f0 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.1" +version = "2.0.2" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -19,22 +19,22 @@ serde_json = { workspace = true } serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } -tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.0" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.0", features = [ +tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.1" } +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.1", features = [ "watch", ] } -tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.0" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.0" } +tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.1" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.1" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.0" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.0", features = [ +], version = "2.0.1" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.1", features = [ "windows7-compat", ] } -tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.0" } -tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.0" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.0" } -tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.0" } +tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.1" } +tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.1" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.1" } +tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.1" } [dependencies.tauri] workspace = true @@ -50,17 +50,17 @@ features = [ ] [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] -tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.0" } -tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.0" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.1" } +tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.0.1" } +tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.0.1" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.0.2" } tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.0.0" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] -tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.0" } -tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.0" } -tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.0" } -tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.0" } -tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.0" } +tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.0.1" } +tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.0.1" } +tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.0.1" } +tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.0.1" } +tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.0.1" } [features] prod = ["tauri/custom-protocol"] diff --git a/plugins/autostart/CHANGELOG.md b/plugins/autostart/CHANGELOG.md index 1fdc66a66..cd26fad71 100644 --- a/plugins/autostart/CHANGELOG.md +++ b/plugins/autostart/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index a0f1883e3..77f555e60 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-autostart" -version = "2.0.0" +version = "2.0.1" description = "Automatically launch your application at startup." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index 167e11820..447499bc2 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index eb75acf6c..8fabe7115 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-barcode-scanner" -version = "2.0.0" +version = "2.0.1" description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS" edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/biometric/CHANGELOG.md b/plugins/biometric/CHANGELOG.md index f80330587..1eac8a95a 100644 --- a/plugins/biometric/CHANGELOG.md +++ b/plugins/biometric/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index 74ef49bc5..816c5ef1a 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-biometric" -version = "2.0.0" +version = "2.0.1" description = "Prompt the user for biometric authentication on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/cli/CHANGELOG.md b/plugins/cli/CHANGELOG.md index 3e94c5a3c..879c20b6e 100644 --- a/plugins/cli/CHANGELOG.md +++ b/plugins/cli/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index a1b34dcd7..b4db69918 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-cli" -version = "2.0.0" +version = "2.0.1" description = "Parse arguments from your Tauri application's command line interface." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md index efc7a4de7..68dee776a 100644 --- a/plugins/clipboard-manager/CHANGELOG.md +++ b/plugins/clipboard-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index 47cda536a..3c0865745 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-clipboard-manager" -version = "2.0.0" +version = "2.0.1" description = "Read and write to the system clipboard." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index 99fa71592..2f2da36dd 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 33fb8f073..db5c02476 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.0.0" +version = "2.0.1" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 706811131..150e092ef 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.1] + +- [`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 `fs@2.0.1` + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 256677429..eec855bdd 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.0" +version = "2.0.1" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.0" } +tauri-plugin-fs = { path = "../fs", version = "2.0.1" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 01fda7919..41e6411ae 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 0ad68abe8..1d9b5f345 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.0" +version = "2.0.1" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/geolocation/CHANGELOG.md b/plugins/geolocation/CHANGELOG.md index 31f944ffd..32952ac77 100644 --- a/plugins/geolocation/CHANGELOG.md +++ b/plugins/geolocation/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index ddfd64ef0..550a66cb8 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-geolocation" description = "Get and track the device's current position" -version = "2.0.0" +version = "2.0.1" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/global-shortcut/CHANGELOG.md b/plugins/global-shortcut/CHANGELOG.md index d111ad96a..5cd07c7d8 100644 --- a/plugins/global-shortcut/CHANGELOG.md +++ b/plugins/global-shortcut/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 0ab9a6985..a26be3fbd 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-global-shortcut" -version = "2.0.0" +version = "2.0.1" description = "Register global hotkeys listeners on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/haptics/CHANGELOG.md b/plugins/haptics/CHANGELOG.md index 90ad6e628..f8e3fad76 100644 --- a/plugins/haptics/CHANGELOG.md +++ b/plugins/haptics/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index 1a6053700..8335475f8 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-haptics" description = "Haptic feedback and vibrations on Android and iOS" -version = "2.0.0" +version = "2.0.1" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index aa116a5c7..508780fa2 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.1] + +- [`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 `fs@2.0.1` + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index f59859d86..64b9aa750 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.0" +version = "2.0.1" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.0" } +tauri-plugin-fs = { path = "../fs", version = "2.0.1" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/localhost/CHANGELOG.md b/plugins/localhost/CHANGELOG.md index 1e46570f1..3a2bf0609 100644 --- a/plugins/localhost/CHANGELOG.md +++ b/plugins/localhost/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index ed0453d44..3d9460d04 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-localhost" -version = "2.0.0" +version = "2.0.1" description = "Expose your apps assets through a localhost server instead of the default custom protocol." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md index a09f3f0d1..f01771383 100644 --- a/plugins/log/CHANGELOG.md +++ b/plugins/log/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 179505e7b..4f7c34d4e 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-log" -version = "2.0.0" +version = "2.0.1" description = "Configurable logging for your Tauri app." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/nfc/CHANGELOG.md b/plugins/nfc/CHANGELOG.md index ba8e2c3af..7960011f0 100644 --- a/plugins/nfc/CHANGELOG.md +++ b/plugins/nfc/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index 0db42d6d8..5cf4f6c4b 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-nfc" -version = "2.0.0" +version = "2.0.1" description = "Read and write NFC tags on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index 6fc7b136c..e8dc3380c 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index 543ad243c..02e5cce89 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.0.0" +version = "2.0.1" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/os/CHANGELOG.md b/plugins/os/CHANGELOG.md index e0bf7dfaa..423118041 100644 --- a/plugins/os/CHANGELOG.md +++ b/plugins/os/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index 20050f8c0..88cd5ceb7 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-os" -version = "2.0.0" +version = "2.0.1" description = "Read information about the operating system." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index dc28e28cf..b27277fa8 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.1] + +- [`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 `fs@2.0.1` + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index bcb293559..c03276d0e 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.0" +version = "2.0.1" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -27,7 +27,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.0" } +tauri-plugin-fs = { path = "../fs", version = "2.0.1" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index caddd6829..ee4c473fb 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index eac689027..807d1ed9d 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.0.0" +version = "2.0.1" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/process/CHANGELOG.md b/plugins/process/CHANGELOG.md index 6566fcdc4..8c69c6950 100644 --- a/plugins/process/CHANGELOG.md +++ b/plugins/process/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index 915b72651..4c6790221 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-process" -version = "2.0.0" +version = "2.0.1" description = "Access the current process of your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index 0c5c2866a..bcc894c8c 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index b22aab306..31c0cc97a 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.0.0" +version = "2.0.1" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 8212d7ea9..0724caad0 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.1] + +- [`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 `deep-link@2.0.1` + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 8e37f50d9..666c0d047 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.0.0" +version = "2.0.1" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -26,7 +26,7 @@ serde_json = { workspace = true } tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.1", optional = true } semver = { version = "1", optional = true } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 61816b416..8fe92f865 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index df308e67e..8e6ed457d 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.0.0" +version = "2.0.1" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 85fc373c3..59d4b9b10 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index e5f8c07be..d270b1f17 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.0" +version = "2.0.1" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/stronghold/CHANGELOG.md b/plugins/stronghold/CHANGELOG.md index 6ce30b6d2..1b2924610 100644 --- a/plugins/stronghold/CHANGELOG.md +++ b/plugins/stronghold/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index 76368926e..fbfdf47e1 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-stronghold" -version = "2.0.0" +version = "2.0.1" description = "Store secrets and keys using the IOTA Stronghold secret management engine." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index ed8941707..802b31c1d 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[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. + ## \[2.0.1] - [`9501cfa5`](https://github.com/tauri-apps/plugins-workspace/commit/9501cfa5f5385b2d7eb43a8378b322ee97cba06f) ([#1868](https://github.com/tauri-apps/plugins-workspace/pull/1868) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Fix configuration parser incorrectly warning about the endpoint scheme. diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 235094644..9a1944e8a 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.0.1" +version = "2.0.2" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index 2d422cbc6..3c52be170 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index 8403b4866..692c13e1e 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.0.0" +version = "2.0.1" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/websocket/CHANGELOG.md b/plugins/websocket/CHANGELOG.md index da39a241b..4268e32e7 100644 --- a/plugins/websocket/CHANGELOG.md +++ b/plugins/websocket/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 9696f2bd8..e3d920268 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-websocket" -version = "2.0.0" +version = "2.0.1" description = "Expose a WebSocket server to your Tauri frontend." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/window-state/CHANGELOG.md b/plugins/window-state/CHANGELOG.md index c07cb8d95..4f6eb45d4 100644 --- a/plugins/window-state/CHANGELOG.md +++ b/plugins/window-state/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.1] + +- [`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. + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 7db3bb296..d7a7a5f7a 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-window-state" -version = "2.0.0" +version = "2.0.1" description = "Save window positions and sizes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } From f445c704a1b247d56ae2ff43c1f818d7d8152720 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 07:29:30 +0800 Subject: [PATCH 617/643] chore(deps): update eslint monorepo to v9.12.0 (#1887) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 101 ++++++++++++++++++++++++++----------------------- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index 38b712dcc..c74b41d4e 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ "format:check": "prettier --check ." }, "devDependencies": { - "@eslint/js": "9.11.1", + "@eslint/js": "9.12.0", "@rollup/plugin-node-resolve": "15.3.0", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", "covector": "^0.12.3", - "eslint": "9.11.1", + "eslint": "9.12.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c643cc53..956ba8cbb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.11.1 - version: 9.11.1 + specifier: 9.12.0 + version: 9.12.0 '@rollup/plugin-node-resolve': specifier: 15.3.0 version: 15.3.0(rollup@4.22.4) @@ -31,11 +31,11 @@ importers: specifier: ^0.12.3 version: 0.12.3(mocha@10.7.3) eslint: - specifier: 9.11.1 - version: 9.11.1(jiti@2.0.0) + specifier: 9.12.0 + version: 9.12.0(jiti@2.0.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.11.1(jiti@2.0.0)) + version: 9.1.0(eslint@9.12.0(jiti@2.0.0)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.6.2 typescript-eslint: specifier: 8.8.0 - version: 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + version: 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) examples/api: dependencies: @@ -725,8 +725,8 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.11.1': - resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} + '@eslint/js@9.12.0': + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -737,12 +737,20 @@ packages: resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.0': - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} '@iconify-json/codicon@1.2.2': @@ -1423,8 +1431,8 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.11.1: - resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} + eslint@9.12.0: + resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1654,10 +1662,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -2571,9 +2575,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.0.0))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.0.0))': dependencies: - eslint: 9.11.1(jiti@2.0.0) + eslint: 9.12.0(jiti@2.0.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -2602,7 +2606,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.11.1': {} + '@eslint/js@9.12.0': {} '@eslint/object-schema@2.1.4': {} @@ -2610,9 +2614,16 @@ snapshots: dependencies: levn: 0.4.1 + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.0': {} + '@humanwhocodes/retry@0.3.1': {} '@iconify-json/codicon@1.2.2': dependencies: @@ -2846,15 +2857,15 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/type-utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.8.0 - eslint: 9.11.1(jiti@2.0.0) + eslint: 9.12.0(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -2864,14 +2875,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.8.0 '@typescript-eslint/types': 8.8.0 '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7(supports-color@8.1.1) - eslint: 9.11.1(jiti@2.0.0) + eslint: 9.12.0(jiti@2.0.0) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -2882,10 +2893,10 @@ snapshots: '@typescript-eslint/types': 8.8.0 '@typescript-eslint/visitor-keys': 8.8.0 - '@typescript-eslint/type-utils@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -2911,13 +2922,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) '@typescript-eslint/scope-manager': 8.8.0 '@typescript-eslint/types': 8.8.0 '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - eslint: 9.11.1(jiti@2.0.0) + eslint: 9.12.0(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript @@ -3360,9 +3371,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.11.1(jiti@2.0.0)): + eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@2.0.0)): dependencies: - eslint: 9.11.1(jiti@2.0.0) + eslint: 9.12.0(jiti@2.0.0) eslint-plugin-security@3.0.1: dependencies: @@ -3377,18 +3388,18 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.11.1(jiti@2.0.0): + eslint@9.12.0(jiti@2.0.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.0.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.11.1 + '@eslint/js': 9.12.0 '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.3.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -3408,13 +3419,11 @@ snapshots: ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: jiti: 2.0.0 @@ -3619,8 +3628,6 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@2.1.0: {} is-reference@3.0.2: @@ -4130,11 +4137,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2): + typescript-eslint@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2))(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.11.1(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From fb676626f155769ce04f401ae402c288567bee3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:01:07 +0800 Subject: [PATCH 618/643] chore(deps): update dependency typescript-eslint to v8.8.1 (#1899) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index c74b41d4e..0537973f7 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.22.4", "tslib": "2.7.0", "typescript": "5.6.2", - "typescript-eslint": "8.8.0" + "typescript-eslint": "8.8.1" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 956ba8cbb..9d5e1e3b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.6.2 version: 5.6.2 typescript-eslint: - specifier: 8.8.0 - version: 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + specifier: 8.8.1 + version: 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) examples/api: dependencies: @@ -1028,8 +1028,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.8.0': - resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==} + '@typescript-eslint/eslint-plugin@8.8.1': + resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1039,8 +1039,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.8.0': - resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==} + '@typescript-eslint/parser@8.8.1': + resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1049,12 +1049,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.8.0': - resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==} + '@typescript-eslint/scope-manager@8.8.1': + resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.8.0': - resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==} + '@typescript-eslint/type-utils@8.8.1': + resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1062,12 +1062,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.8.0': - resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==} + '@typescript-eslint/types@8.8.1': + resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.8.0': - resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==} + '@typescript-eslint/typescript-estree@8.8.1': + resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1075,14 +1075,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.8.0': - resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==} + '@typescript-eslint/utils@8.8.1': + resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.8.0': - resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==} + '@typescript-eslint/visitor-keys@8.8.1': + resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.63.1': @@ -2145,8 +2145,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.8.0: - resolution: {integrity: sha512-BjIT/VwJ8+0rVO01ZQ2ZVnjE1svFBiRczcpr1t1Yxt7sT25VSbPfrJtDsQ8uQTy2pilX5nI9gwxhUyLULNentw==} + typescript-eslint@8.8.1: + resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2857,14 +2857,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.8.0 + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.1 eslint: 9.12.0(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 @@ -2875,12 +2875,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.8.0 + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.1 debug: 4.3.7(supports-color@8.1.1) eslint: 9.12.0(jiti@2.0.0) optionalDependencies: @@ -2888,15 +2888,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.8.0': + '@typescript-eslint/scope-manager@8.8.1': dependencies: - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/visitor-keys': 8.8.0 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 - '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -2905,12 +2905,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.8.0': {} + '@typescript-eslint/types@8.8.1': {} - '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/visitor-keys': 8.8.0 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -2922,20 +2922,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) eslint: 9.12.0(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.8.0': + '@typescript-eslint/visitor-keys@8.8.1': dependencies: - '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/types': 8.8.1 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1))': @@ -4137,11 +4137,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2): + typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: From 00585835834c6ddbf89e8d159804211ceba4bcfb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:29:28 +0800 Subject: [PATCH 619/643] fix(deps): update tauri monorepo to v2.0.2 (#1874) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 +- Cargo.toml | 2 +- examples/api/package.json | 4 +- plugins/deep-link/examples/app/package.json | 4 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 172 +++++++++--------- 8 files changed, 96 insertions(+), 96 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2044a052f..a8e5ee079 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6498,9 +6498,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3fad474c02a3bcd4a304afff97159a31b9bab84e29563f7109c7b0ce8cd774e" +checksum = "5920aad0804ea5e86808d4b6e8753d3bcbae7efc8f4e41a4da00b45427559868" dependencies = [ "anyhow", "bytes", diff --git a/Cargo.toml b/Cargo.toml index f4d619d31..8cdb23a94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.1", default-features = false } +tauri = { version = "2.0.2", default-features = false } tauri-build = "2.0.1" tauri-plugin = "2.0.1" tauri-utils = "2.0.1" diff --git a/examples/api/package.json b/examples/api/package.json index 599276b89..690c19f92 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -9,7 +9,7 @@ "serve": "vite preview" }, "dependencies": { - "@tauri-apps/api": "2.0.1", + "@tauri-apps/api": "2.0.2", "@tauri-apps/plugin-barcode-scanner": "2.0.0", "@tauri-apps/plugin-biometric": "2.0.0", "@tauri-apps/plugin-cli": "2.0.0", @@ -33,7 +33,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.0", + "@tauri-apps/cli": "2.0.2", "@unocss/extractor-svelte": "^0.63.0", "svelte": "^4.2.19", "unocss": "^0.63.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 98864087f..2ef38bd34 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -10,11 +10,11 @@ "tauri": "tauri" }, "dependencies": { - "@tauri-apps/api": "2.0.1", + "@tauri-apps/api": "2.0.2", "@tauri-apps/plugin-deep-link": "2.0.0" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0", + "@tauri-apps/cli": "2.0.2", "typescript": "^5.2.2", "vite": "^5.4.7" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index b4c80cbd3..5b736d55d 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.0" + "@tauri-apps/cli": "2.0.2" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index ca7e3b958..e36d1bb30 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0", + "@tauri-apps/cli": "2.0.2", "vite": "^5.0.12", "typescript": "^5.4.7" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index dc8f68bba..4bfbdfd58 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.0", + "@tauri-apps/cli": "2.0.2", "typescript": "^5.3.3", "vite": "^5.4.7" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d5e1e3b9..ec6022a89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: examples/api: dependencies: '@tauri-apps/api': - specifier: 2.0.1 - version: 2.0.1 + specifier: 2.0.2 + version: 2.0.2 '@tauri-apps/plugin-barcode-scanner': specifier: 2.0.0 version: link:../../plugins/barcode-scanner @@ -125,8 +125,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) '@tauri-apps/cli': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.2 + version: 2.0.2 '@unocss/extractor-svelte': specifier: ^0.63.0 version: 0.63.1 @@ -144,50 +144,50 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/barcode-scanner: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/biometric: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/cli: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/clipboard-manager: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/deep-link: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/deep-link/examples/app: dependencies: '@tauri-apps/api': - specifier: 2.0.1 - version: 2.0.1 + specifier: 2.0.2 + version: 2.0.2 '@tauri-apps/plugin-deep-link': specifier: 2.0.0 version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.2 + version: 2.0.2 typescript: specifier: ^5.2.2 version: 5.6.2 @@ -199,103 +199,103 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/fs: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/geolocation: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/global-shortcut: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/haptics: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/http: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/log: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/nfc: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/notification: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/os: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/positioner: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/process: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/shell: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.2 + version: 2.0.2 plugins/sql: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/store: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.2 + version: 2.0.2 typescript: specifier: ^5.4.7 version: 5.6.2 @@ -307,25 +307,25 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/updater: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/upload: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/websocket: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 plugins/websocket/examples/tauri-app: dependencies: @@ -334,8 +334,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.2 + version: 2.0.2 typescript: specifier: ^5.3.3 version: 5.6.2 @@ -347,7 +347,7 @@ importers: dependencies: '@tauri-apps/api': specifier: ^2.0.0 - version: 2.0.1 + version: 2.0.2 packages: @@ -936,71 +936,71 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tauri-apps/api@2.0.1': - resolution: {integrity: sha512-eoQWT+Tq1qSwQpHV+nw1eNYe5B/nm1PoRjQCRiEOS12I1b+X4PUcREfXVX8dPcBT6GrzWGDtaecY0+1p0Rfqlw==} + '@tauri-apps/api@2.0.2': + resolution: {integrity: sha512-3wSwmG+1kr6WrgAFKK5ijkNFPp8TT3FLj3YHUb5EwMO+3FxX4uWlfSWkeeBy+Kc1RsKzugtYLuuya+98Flj+3w==} - '@tauri-apps/cli-darwin-arm64@2.0.0': - resolution: {integrity: sha512-+agYqg2c77imaMfKw7mzqecVIDGcwr6bZMdglJ808O2UjTFzMwnAam1sU26YBYU+IyIjwOu00fm9Azpal+N/Ew==} + '@tauri-apps/cli-darwin-arm64@2.0.2': + resolution: {integrity: sha512-B+/a8Q6wAqmB4A4HVeK0oQP5TdQGKW60ZLOI9O2ktH2HPr9ETr3XkwXPuJ2uAOuGEgtRZHBgFOIgG000vMnKlg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.0': - resolution: {integrity: sha512-keN2PLTTcZmbWwFMup/NGcshmvyLnhRPChO8lbm9C5a0IY7zUNQUD7/o/zIulQdLJqDxkdpWJ1j2jTycAtvtKQ==} + '@tauri-apps/cli-darwin-x64@2.0.2': + resolution: {integrity: sha512-kaurhn6XT4gAVCPAQSSHl/CHFxTS0ljc47N7iGTSlYJ03sCWPRZeNuVa/bn6rolz9MA2JfnRnFqB1pUL6jzp9Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0': - resolution: {integrity: sha512-FQJNrlCUBb9E7Fhp5ARy+Or8lSvorG41aVrfi0cGNvv1QlIGSj77TN7SKK+L1jAGzKj1Bl2kCZIESF6Zi8N/+Q==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.2': + resolution: {integrity: sha512-bVrofjlacMxmGMcqK18iBW05tsZXOd19/MnqruFFcHSVjvkGGIXHMtUbMXnZNXBPkHDsnfytNtkY9SZGfCFaBA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.0': - resolution: {integrity: sha512-TK3VrZG5LK1NGueKwnZA1/3gj/qkwry001MNCHXjT6394dwrDv+digCc9Qc569h+xeH/FF71jyoiRIu3gRE6iA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.2': + resolution: {integrity: sha512-7XCBn0TTBVQGnV42dXcbHPLg/9W8kJoVzuliIozvNGyRWxfXqDbQYzpI48HUQG3LgHMabcw8+pVZAfGhevLrCA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.0': - resolution: {integrity: sha512-E3hRmS/0m8YUYMTKZtBExpk/284CTi2nymks0dK0L1j+3KjffL7DiilnIfNFmTvWBgMrs0cVCtoaN/ba/A9mNA==} + '@tauri-apps/cli-linux-arm64-musl@2.0.2': + resolution: {integrity: sha512-1xi2SreGVlpAL68MCsDUY63rdItUdPZreXIAcOVqvUehcJRYOa1XGSBhrV0YXRgZeh0AtKC19z6PRzcv4rosZA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.0': - resolution: {integrity: sha512-veX4BJp5xnW8KmxVjchWt4oZEIvKGhuSR7qU1WpqTR21e/eTe/ksGsdXPsqOKQvv/w1X6jhqmlPvhnFmDwUJ/w==} + '@tauri-apps/cli-linux-x64-gnu@2.0.2': + resolution: {integrity: sha512-WVjwYzPWFqZVg1fx6KSU5w47Q0VbMyaCp34qs5EcS8EIU0/RnofdzqUoOYqvgGVgNgoz7Pj5dXK2SkS8BHXMmA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.0': - resolution: {integrity: sha512-9Eso/8wbsWbOyd9PZEIzN/48ZQJrUGQqGZtglcjUku0lO76mnX0fOnit4nQ57Oj0wezJPhv4mgSseG1OsTIVzw==} + '@tauri-apps/cli-linux-x64-musl@2.0.2': + resolution: {integrity: sha512-h5miE2mctgaQNn/BbG9o1pnJcrx+VGBi2A6JFqGu934lFgSV5+s28M8Gc8AF2JgFH4hQV4IuMkeSw8Chu5Dodg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.0': - resolution: {integrity: sha512-ky8vWAuDUf8WGt9+a0G/EbU0OhdIkogelh9qjIYGHbyEYAJqXfN5P40aHUEg3y8ngQ0YGwRX5ePsQsSZiiR5PQ==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.2': + resolution: {integrity: sha512-2b8oO0+dYonahG5PfA/zoq0zlafLclfmXgqoWDZ++UiPtQHJNpNeEQ8GWbSFKGHQ494Jo6jHvazOojGRE1kqAg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.0': - resolution: {integrity: sha512-uD45cLZ/EBaT8o4a27tHW7t5UKFplnvDLt/uSUaCpJ3NyOTV6nMXOUrJBe+hH9hSBohqNAF7LEyYo1p932DWFg==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.2': + resolution: {integrity: sha512-axgICLunFi0To3EibdCBgbST5RocsSmtM4c04+CbcX8WQQosJ9ziWlCSrrOTRr+gJERAMSvEyVUS98f6bWMw9A==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.0': - resolution: {integrity: sha512-oFlo14YMsvyhJHmmHgRuOpJ1L9w15193c1Nfj1DksS2LHj6tLzirI7YrAF9inY/XjHFjNHzYPmBpABibkf/9wQ==} + '@tauri-apps/cli-win32-x64-msvc@2.0.2': + resolution: {integrity: sha512-JR17cM6+DyExZRgpXr2/DdqvcFYi/EKvQt8dI5R1/uQoesWd8jeNnrU7c1FG1Zmw9+pTzDztsNqEKsrNq2sNIg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.0': - resolution: {integrity: sha512-xxmPllRa6w/LRRcPczST3yHrYoi8l6ZZmzwabEmM0cgDdhVDmX+Y4oDJkiKD+8cVdxwwEzIuIKuaCwsX8iNsgA==} + '@tauri-apps/cli@2.0.2': + resolution: {integrity: sha512-R4ontHZvXORArERAHIidp5zRfZEshZczTiK+poslBv7AGKpQZoMw+E49zns7mOmP64i2Cq9Ci0pJvi4Rm8Okzw==} engines: {node: '>= 10'} hasBin: true @@ -2789,50 +2789,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@tauri-apps/api@2.0.1': {} + '@tauri-apps/api@2.0.2': {} - '@tauri-apps/cli-darwin-arm64@2.0.0': + '@tauri-apps/cli-darwin-arm64@2.0.2': optional: true - '@tauri-apps/cli-darwin-x64@2.0.0': + '@tauri-apps/cli-darwin-x64@2.0.2': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.2': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0': + '@tauri-apps/cli-linux-arm64-gnu@2.0.2': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0': + '@tauri-apps/cli-linux-arm64-musl@2.0.2': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0': + '@tauri-apps/cli-linux-x64-gnu@2.0.2': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0': + '@tauri-apps/cli-linux-x64-musl@2.0.2': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0': + '@tauri-apps/cli-win32-arm64-msvc@2.0.2': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0': + '@tauri-apps/cli-win32-ia32-msvc@2.0.2': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0': + '@tauri-apps/cli-win32-x64-msvc@2.0.2': optional: true - '@tauri-apps/cli@2.0.0': + '@tauri-apps/cli@2.0.2': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0 - '@tauri-apps/cli-darwin-x64': 2.0.0 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0 - '@tauri-apps/cli-linux-x64-musl': 2.0.0 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0 + '@tauri-apps/cli-darwin-arm64': 2.0.2 + '@tauri-apps/cli-darwin-x64': 2.0.2 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.2 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.2 + '@tauri-apps/cli-linux-arm64-musl': 2.0.2 + '@tauri-apps/cli-linux-x64-gnu': 2.0.2 + '@tauri-apps/cli-linux-x64-musl': 2.0.2 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.2 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.2 + '@tauri-apps/cli-win32-x64-msvc': 2.0.2 '@types/eslint@9.6.1': dependencies: From 60064fce528303a3a7e31d44cf4c0e866e534d8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:28:06 +0800 Subject: [PATCH 620/643] chore(deps): update dependency typescript to v5.6.3 (#1905) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 76 +++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 0537973f7..bd9039abe 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "prettier": "3.3.3", "rollup": "4.22.4", "tslib": "2.7.0", - "typescript": "5.6.2", + "typescript": "5.6.3", "typescript-eslint": "8.8.1" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec6022a89..9005b2d26 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ importers: version: 0.4.4(rollup@4.22.4) '@rollup/plugin-typescript': specifier: 11.1.6 - version: 11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.2) + version: 11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.3) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -49,11 +49,11 @@ importers: specifier: 2.7.0 version: 2.7.0 typescript: - specifier: 5.6.2 - version: 5.6.2 + specifier: 5.6.3 + version: 5.6.3 typescript-eslint: specifier: 8.8.1 - version: 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + version: 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) examples/api: dependencies: @@ -190,7 +190,7 @@ importers: version: 2.0.2 typescript: specifier: ^5.2.2 - version: 5.6.2 + version: 5.6.3 vite: specifier: ^5.4.7 version: 5.4.8(terser@5.34.1) @@ -298,7 +298,7 @@ importers: version: 2.0.2 typescript: specifier: ^5.4.7 - version: 5.6.2 + version: 5.6.3 vite: specifier: ^5.0.12 version: 5.4.8(terser@5.34.1) @@ -338,7 +338,7 @@ importers: version: 2.0.2 typescript: specifier: ^5.3.3 - version: 5.6.2 + version: 5.6.3 vite: specifier: ^5.4.7 version: 5.4.8(terser@5.34.1) @@ -2154,8 +2154,8 @@ packages: typescript: optional: true - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -2701,11 +2701,11 @@ snapshots: optionalDependencies: rollup: 4.22.4 - '@rollup/plugin-typescript@11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.22.4)(tslib@2.7.0)(typescript@5.6.3)': dependencies: '@rollup/pluginutils': 5.1.2(rollup@4.22.4) resolve: 1.22.8 - typescript: 5.6.2 + typescript: 5.6.3 optionalDependencies: rollup: 4.22.4 tslib: 2.7.0 @@ -2857,34 +2857,34 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.8.1 - '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 eslint: 9.12.0(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 debug: 4.3.7(supports-color@8.1.1) eslint: 9.12.0(jiti@2.0.0) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -2893,21 +2893,21 @@ snapshots: '@typescript-eslint/types': 8.8.1 '@typescript-eslint/visitor-keys': 8.8.1 - '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.8.1': {} - '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.8.1 '@typescript-eslint/visitor-keys': 8.8.1 @@ -2916,18 +2916,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) eslint: 9.12.0(jiti@2.0.0) transitivePeerDependencies: - supports-color @@ -4118,9 +4118,9 @@ snapshots: trough@1.0.5: {} - ts-api-utils@1.3.0(typescript@5.6.2): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: - typescript: 5.6.2 + typescript: 5.6.3 tslib@2.7.0: {} @@ -4137,18 +4137,18 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2): + typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color - typescript@5.6.2: {} + typescript@5.6.3: {} ufo@1.5.4: {} From 9b2840db9464cf08db75806270e4441f0af81e5d Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Wed, 9 Oct 2024 14:07:46 +0300 Subject: [PATCH 621/643] fix(http): retain headers order (#1884) * fix(http): retain headers order closes #1882 * simplify if * actually set headers --------- Co-authored-by: Lucas Nogueira --- .changes/http-headers-order.md | 6 ++++ plugins/http/src/commands.rs | 51 ++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 .changes/http-headers-order.md diff --git a/.changes/http-headers-order.md b/.changes/http-headers-order.md new file mode 100644 index 000000000..66940b832 --- /dev/null +++ b/.changes/http-headers-order.md @@ -0,0 +1,6 @@ +--- +"http": "patch" +"http-js": "patch" +--- + +Retain headers order. \ No newline at end of file diff --git a/plugins/http/src/commands.rs b/plugins/http/src/commands.rs index b9c1cae2a..cda21bd53 100644 --- a/plugins/http/src/commands.rs +++ b/plugins/http/src/commands.rs @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use std::{collections::HashMap, future::Future, pin::Pin, sync::Arc, time::Duration}; +use std::{future::Future, pin::Pin, str::FromStr, sync::Arc, time::Duration}; -use http::{header, HeaderName, Method, StatusCode}; +use http::{header, HeaderMap, HeaderName, HeaderValue, Method, StatusCode}; use reqwest::{redirect::Policy, NoProxy}; use serde::{Deserialize, Serialize}; use tauri::{ @@ -176,7 +176,7 @@ pub async fn fetch( let ClientConfig { method, url, - headers, + headers: headers_raw, data, connect_timeout, max_redirections, @@ -185,7 +185,17 @@ pub async fn fetch( let scheme = url.scheme(); let method = Method::from_bytes(method.as_bytes())?; - let headers: HashMap = HashMap::from_iter(headers); + + let mut headers = HeaderMap::new(); + for (h, v) in headers_raw { + let name = HeaderName::from_str(&h)?; + #[cfg(not(feature = "unsafe-headers"))] + if is_unsafe_header(&name) { + continue; + } + + headers.append(name, HeaderValue::from_str(&v)?); + } match scheme { "http" | "https" => { @@ -228,38 +238,29 @@ pub async fn fetch( let mut request = builder.build()?.request(method.clone(), url); - for (name, value) in &headers { - let name = HeaderName::from_bytes(name.as_bytes())?; - #[cfg(not(feature = "unsafe-headers"))] - if is_unsafe_header(&name) { - continue; - } - - request = request.header(name, value); - } - // POST and PUT requests should always have a 0 length content-length, // if there is no body. https://fetch.spec.whatwg.org/#http-network-or-cache-fetch if data.is_none() && matches!(method, Method::POST | Method::PUT) { - request = request.header(header::CONTENT_LENGTH, 0); + headers.append(header::CONTENT_LENGTH, HeaderValue::from_str("0")?); } - if headers.contains_key(header::RANGE.as_str()) { + if headers.contains_key(header::RANGE) { // https://fetch.spec.whatwg.org/#http-network-or-cache-fetch step 18 // If httpRequest’s header list contains `Range`, then append (`Accept-Encoding`, `identity`) - request = request.header(header::ACCEPT_ENCODING, "identity"); + headers.append(header::ACCEPT_ENCODING, HeaderValue::from_str("identity")?); } - if !headers.contains_key(header::USER_AGENT.as_str()) { - request = request.header(header::USER_AGENT, HTTP_USER_AGENT); + if !headers.contains_key(header::USER_AGENT) { + headers.append(header::USER_AGENT, HeaderValue::from_str(HTTP_USER_AGENT)?); } - if cfg!(feature = "unsafe-headers") - && !headers.contains_key(header::ORIGIN.as_str()) - { + // ensure we have an Origin header set + if cfg!(not(feature = "unsafe-headers")) || !headers.contains_key(header::ORIGIN) { if let Ok(url) = webview.url() { - request = - request.header(header::ORIGIN, url.origin().ascii_serialization()); + headers.append( + header::ORIGIN, + HeaderValue::from_str(&url.origin().ascii_serialization())?, + ); } } @@ -267,6 +268,8 @@ pub async fn fetch( request = request.body(data); } + request = request.headers(headers); + let fut = async move { request.send().await.map_err(Into::into) }; let mut resources_table = webview.resources_table(); let rid = resources_table.add_request(Box::pin(fut)); From aee14ed4261cdedc4ed7cc2686f01f437859a5c7 Mon Sep 17 00:00:00 2001 From: nashaofu <19303058+nashaofu@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:45:05 +0800 Subject: [PATCH 622/643] fix(dialog): Fix the issue of Android saving files with a .txt extension (#1892) * fix: Fix the issue of Android saving files with a .txt extension * fix(dialog): pull intent type from extensions filters * fix covector --------- Co-authored-by: Lucas Nogueira --- .changes/fix-android-mime-type.md | 6 ++ .../src-tauri/gen/android/.idea/gradle.xml | 5 +- .../android/src/main/java/DialogPlugin.kt | 59 +++++++++++++------ 3 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 .changes/fix-android-mime-type.md diff --git a/.changes/fix-android-mime-type.md b/.changes/fix-android-mime-type.md new file mode 100644 index 000000000..f9d922374 --- /dev/null +++ b/.changes/fix-android-mime-type.md @@ -0,0 +1,6 @@ +--- +"dialog": patch +"dialog-js": patch +--- + +Set `save` dialog mime type from the `filters` extensions on Android. diff --git a/examples/api/src-tauri/gen/android/.idea/gradle.xml b/examples/api/src-tauri/gen/android/.idea/gradle.xml index be7415439..ff1185492 100644 --- a/examples/api/src-tauri/gen/android/.idea/gradle.xml +++ b/examples/api/src-tauri/gen/android/.idea/gradle.xml @@ -1,5 +1,6 @@ +
- +
+ + + + +
diff --git a/plugins/store/README.md b/plugins/store/README.md index 391d7a0c6..7ab63fd45 100644 --- a/plugins/store/README.md +++ b/plugins/store/README.md @@ -70,7 +70,7 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind ```typescript import { Store } from '@tauri-apps/plugin-store' -const store = new Store('.settings.dat') +const store = await Store.load('settings.json') await store.set('some-key', { value: 5 }) @@ -81,14 +81,11 @@ if (val) { } else { console.log('val is null') } - -// This manually saves the store. -await store.save() ``` ### Persisting Values -As seen above, values added to the store are not persisted between application loads unless the application is closed gracefully. +Modifications made to the store are automatically saved by default You can manually save a store with: @@ -103,65 +100,43 @@ However, you can also load them manually later like so: await store.load() ``` +### LazyStore + +There's also a high level API `LazyStore` which only loads the store on first access, note that the options will be ignored if a `Store` with that path has already been created + +```typescript +import { LazyStore } from '@tauri-apps/plugin-store' + +const store = new LazyStore('settings.json') +``` + ## Usage from Rust You can also create `Store` instances directly in Rust: ```rust -use tauri_plugin_store::StoreBuilder; +use tauri_plugin_store::StoreExt; use serde_json::json; fn main() { tauri::Builder::default() .plugin(tauri_plugin_store::Builder::default().build()) .setup(|app| { - let mut store = StoreBuilder::new("app_data.bin").build(app.handle().clone()); - - // Attempt to load the store, if it's saved already. - store.load().expect("Failed to load store from disk"); + // This loads the store from disk + let store = app.store("app_data.json")?; // Note that values must be serde_json::Value instances, // otherwise, they will not be compatible with the JavaScript bindings. - store.insert("a".to_string(), json!("b")); - - // You can manually save the store after making changes. - // Otherwise, it will save upon graceful exit as described above. - store.save() + store.set("a".to_string(), json!("b")); }) .run(tauri::generate_context!()) .expect("error while running tauri application"); } ``` -### Loading Gracefully - -If you call `load` on a `Store` that hasn't yet been written to the disk, it will return an error. You must handle this error if you want to gracefully continue and use the default store until you save it to the disk. The example above shows how to do this. - -For example, this would cause a panic if the store has not yet been created: - -```rust -store.load().unwrap(); -``` - -Rather than silently continuing like you may expect. - -You should always handle the error appropriately rather than unwrapping, or you may experience unexpected app crashes: - -```rust -store.load().expect("Failed to load store from disk"); -``` - ### Frontend Interoperability -As you may have noticed, the `Store` crated above isn't accessible to the frontend. To interoperate with stores created by JavaScript use the exported `with_store` method: - -```rust -use tauri::Wry; -use tauri_plugin_store::StoreExt; - -let store = app.store_builder("app_data.bin").build(); -store.insert("key", "value"); -``` +The store created from both Rust side and JavaScript side are stored in the app's resource table and can be accessed by both sides, you can access it by using the same path, with `getStore` and `LazyStore` in the JavaScript side and `get_store` and `store` in the Rust side ## Contributing diff --git a/plugins/store/api-iife.js b/plugins/store/api-iife.js index 77295d7fe..fc04ff00d 100644 --- a/plugins/store/api-iife.js +++ b/plugins/store/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_STORE__=function(e){"use strict";var t,r;function a(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function i(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;class n{get rid(){return function(e,t,r,a){if("a"===r&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?a:"a"===r?a.call(e):a?a.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,r,a,i){if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,r)}(this,t,e)}async close(){return i("plugin:resources|close",{rid:this.rid})}}async function s(e,t,r){const n={kind:"Any"};return i("plugin:event|listen",{event:e,target:n,handler:a(t)}).then((t=>async()=>async function(e,t){await i("plugin:event|unlisten",{event:e,eventId:t})}(e,t)))}t=new WeakMap,function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(r||(r={}));class o extends n{constructor(e,t){super(e),this.path=t}async set(e,t){await i("plugin:store|set",{rid:this.rid,key:e,value:t})}async get(e){return await i("plugin:store|get",{rid:this.rid,key:e})}async has(e){return await i("plugin:store|has",{rid:this.rid,key:e})}async delete(e){return await i("plugin:store|delete",{rid:this.rid,key:e})}async clear(){await i("plugin:store|clear",{rid:this.rid})}async reset(){await i("plugin:store|reset",{rid:this.rid})}async keys(){return await i("plugin:store|keys",{rid:this.rid})}async values(){return await i("plugin:store|values",{rid:this.rid})}async entries(){return await i("plugin:store|entries",{rid:this.rid})}async length(){return await i("plugin:store|length",{rid:this.rid})}async load(){await i("plugin:store|load",{rid:this.rid})}async save(){await i("plugin:store|save",{rid:this.rid})}async onKeyChange(e,t){return await s("store://change",(r=>{r.payload.path===this.path&&r.payload.key===e&&t(r.payload.value)}))}async onChange(e){return await s("store://change",(t=>{t.payload.path===this.path&&e(t.payload.key,t.payload.value)}))}}return e.Store=o,e.createStore=async function(e,t){const r=await i("plugin:store|create_store",{path:e,...t});return new o(r,e)},e}({});Object.defineProperty(window.__TAURI__,"store",{value:__TAURI_PLUGIN_STORE__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_STORE__=function(t){"use strict";var e,a;function r(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}async function s(t,e={},a){return window.__TAURI_INTERNALS__.invoke(t,e,a)}"function"==typeof SuppressedError&&SuppressedError;class i{get rid(){return function(t,e,a,r){if("a"===a&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===a?r:"a"===a?r.call(t):r?r.value:e.get(t)}(this,e,"f")}constructor(t){e.set(this,void 0),function(t,e,a,r,s){if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,a)}(this,e,t)}async close(){return s("plugin:resources|close",{rid:this.rid})}}async function n(t,e,a){const i={kind:"Any"};return s("plugin:event|listen",{event:t,target:i,handler:r(e)}).then((e=>async()=>async function(t,e){await s("plugin:event|unlisten",{event:t,eventId:e})}(t,e)))}async function o(t,e){return await u.load(t,e)}e=new WeakMap,function(t){t.WINDOW_RESIZED="tauri://resize",t.WINDOW_MOVED="tauri://move",t.WINDOW_CLOSE_REQUESTED="tauri://close-requested",t.WINDOW_DESTROYED="tauri://destroyed",t.WINDOW_FOCUS="tauri://focus",t.WINDOW_BLUR="tauri://blur",t.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",t.WINDOW_THEME_CHANGED="tauri://theme-changed",t.WINDOW_CREATED="tauri://window-created",t.WEBVIEW_CREATED="tauri://webview-created",t.DRAG_ENTER="tauri://drag-enter",t.DRAG_OVER="tauri://drag-over",t.DRAG_DROP="tauri://drag-drop",t.DRAG_LEAVE="tauri://drag-leave"}(a||(a={}));class u extends i{constructor(t){super(t)}static async load(t,e){const a=await s("plugin:store|load",{path:t,...e});return new u(a)}static async get(t){return await s("plugin:store|get_store",{path:t}).then((t=>t?new u(t):null))}async set(t,e){await s("plugin:store|set",{rid:this.rid,key:t,value:e})}async get(t){const[e,a]=await s("plugin:store|get",{rid:this.rid,key:t});return a?e:void 0}async has(t){return await s("plugin:store|has",{rid:this.rid,key:t})}async delete(t){return await s("plugin:store|delete",{rid:this.rid,key:t})}async clear(){await s("plugin:store|clear",{rid:this.rid})}async reset(){await s("plugin:store|reset",{rid:this.rid})}async keys(){return await s("plugin:store|keys",{rid:this.rid})}async values(){return await s("plugin:store|values",{rid:this.rid})}async entries(){return await s("plugin:store|entries",{rid:this.rid})}async length(){return await s("plugin:store|length",{rid:this.rid})}async reload(){await s("plugin:store|reload",{rid:this.rid})}async save(){await s("plugin:store|save",{rid:this.rid})}async onKeyChange(t,e){return await n("store://change",(a=>{a.payload.resourceId===this.rid&&a.payload.key===t&&e(a.payload.exists?a.payload.value:void 0)}))}async onChange(t){return await n("store://change",(e=>{e.payload.resourceId===this.rid&&t(e.payload.key,e.payload.exists?e.payload.value:void 0)}))}}return t.LazyStore=class{get store(){return this._store||(this._store=o(this.path,this.options)),this._store}constructor(t,e){this.path=t,this.options=e}async init(){await this.store}async set(t,e){return(await this.store).set(t,e)}async get(t){return(await this.store).get(t)}async has(t){return(await this.store).has(t)}async delete(t){return(await this.store).delete(t)}async clear(){await(await this.store).clear()}async reset(){await(await this.store).reset()}async keys(){return(await this.store).keys()}async values(){return(await this.store).values()}async entries(){return(await this.store).entries()}async length(){return(await this.store).length()}async reload(){await(await this.store).reload()}async save(){await(await this.store).save()}async onKeyChange(t,e){return(await this.store).onKeyChange(t,e)}async onChange(t){return(await this.store).onChange(t)}async close(){this._store&&await(await this._store).close()}},t.Store=u,t.getStore=async function(t){return await u.get(t)},t.load=o,t}({});Object.defineProperty(window.__TAURI__,"store",{value:__TAURI_PLUGIN_STORE__})} diff --git a/plugins/store/build.rs b/plugins/store/build.rs index 3c9fee015..2e88d59ac 100644 --- a/plugins/store/build.rs +++ b/plugins/store/build.rs @@ -3,7 +3,8 @@ // SPDX-License-Identifier: MIT const COMMANDS: &[&str] = &[ - "create_store", + "load", + "get_store", "set", "get", "has", @@ -12,9 +13,9 @@ const COMMANDS: &[&str] = &[ "reset", "keys", "values", - "length", "entries", - "load", + "length", + "reload", "save", ]; diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs index 0dd4e0bc4..f20db4fc2 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs +++ b/plugins/store/examples/AppSettingsManager/src-tauri/src/main.rs @@ -5,9 +5,8 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -use std::time::Duration; - use serde_json::json; +use tauri::Listener; use tauri_plugin_store::StoreExt; mod app; @@ -18,17 +17,11 @@ fn main() { .plugin(tauri_plugin_store::Builder::new().build()) .setup(|app| { // Init store and load it from disk - let store = app - .handle() - .store_builder("settings.json") - .auto_save(Duration::from_millis(100)) - .build(); - - // If there are no saved settings yet, this will return an error so we ignore the return value. - let _ = store.load(); - + let store = app.store("settings.json")?; + app.listen("store://change", |event| { + dbg!(event); + }); let app_settings = AppSettings::load_from_store(&store); - match app_settings { Ok(app_settings) => { let theme = app_settings.theme; diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json b/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json index 5a67883d2..d3f60daaf 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json +++ b/plugins/store/examples/AppSettingsManager/src-tauri/tauri.conf.json @@ -3,6 +3,7 @@ "version": "0.1.0", "identifier": "com.tauri.app-settings-manager", "build": { + "devUrl": "http://localhost:1420", "frontendDist": "../dist" }, "app": { diff --git a/plugins/store/guest-js/index.ts b/plugins/store/guest-js/index.ts index 259b06626..1df89fd52 100644 --- a/plugins/store/guest-js/index.ts +++ b/plugins/store/guest-js/index.ts @@ -8,8 +8,10 @@ import { invoke, Resource } from '@tauri-apps/api/core' interface ChangePayload { path: string + resourceId?: number key: string - value: T | null + value: T + exists: boolean } /** @@ -17,41 +19,213 @@ interface ChangePayload { */ export type StoreOptions = { /** - * Auto save on modification with debounce duration in milliseconds + * Auto save on modification with debounce duration in milliseconds, it's 100ms by default, pass in `false` to disable it */ - autoSave?: boolean + autoSave?: boolean | number + /** + * Name of a serialize function registered in the rust side plugin builder + */ + serializeFnName?: string + /** + * Name of a deserialize function registered in the rust side plugin builder + */ + deserializeFnName?: string + /** + * Force create a new store with default values even if it already exists. + */ + createNew?: boolean } /** - * @param path: Path to save the store in `app_data_dir` - * @param options: Store configuration options + * Create a new Store or load the existing store with the path. + * + * @example + * ```typescript + * import { Store } from '@tauri-apps/api/store'; + * const store = await Store.load('store.json'); + * ``` + * + * @param path Path to save the store in `app_data_dir` + * @param options Store configuration options */ -export async function createStore(path: string, options?: StoreOptions) { - const resourceId = await invoke('plugin:store|create_store', { - path, - ...options - }) - return new Store(resourceId, path) +export async function load( + path: string, + options?: StoreOptions +): Promise { + return await Store.load(path, options) +} + +/** + * Gets an already loaded store. + * + * If the store is not loaded, returns `null`. In this case you must {@link Store.load load} it. + * + * This function is more useful when you already know the store is loaded + * and just need to access its instance. Prefer {@link Store.load} otherwise. + * + * @example + * ```typescript + * import { getStore } from '@tauri-apps/api/store'; + * const store = await getStore('store.json'); + * ``` + * + * @param path Path of the store. + */ +export async function getStore(path: string): Promise { + return await Store.get(path) } /** * A lazy loaded key-value store persisted by the backend layer. */ -export class Store extends Resource { +export class LazyStore implements IStore { + private _store?: Promise + + private get store(): Promise { + if (!this._store) { + this._store = load(this.path, this.options) + } + return this._store + } + + /** + * Note that the options are not applied if someone else already created the store + * @param path Path to save the store in `app_data_dir` + * @param options Store configuration options + */ constructor( - rid: number, - private readonly path: string - ) { + private readonly path: string, + private readonly options?: StoreOptions + ) {} + + /** + * Init/load the store if it's not loaded already + */ + async init(): Promise { + await this.store + } + + async set(key: string, value: unknown): Promise { + return (await this.store).set(key, value) + } + + async get(key: string): Promise { + return (await this.store).get(key) + } + + async has(key: string): Promise { + return (await this.store).has(key) + } + + async delete(key: string): Promise { + return (await this.store).delete(key) + } + + async clear(): Promise { + await (await this.store).clear() + } + + async reset(): Promise { + await (await this.store).reset() + } + + async keys(): Promise { + return (await this.store).keys() + } + + async values(): Promise { + return (await this.store).values() + } + + async entries(): Promise> { + return (await this.store).entries() + } + + async length(): Promise { + return (await this.store).length() + } + + async reload(): Promise { + await (await this.store).reload() + } + + async save(): Promise { + await (await this.store).save() + } + + async onKeyChange( + key: string, + cb: (value: T | undefined) => void + ): Promise { + return (await this.store).onKeyChange(key, cb) + } + + async onChange( + cb: (key: string, value: T | undefined) => void + ): Promise { + return (await this.store).onChange(cb) + } + + async close(): Promise { + if (this._store) { + await (await this._store).close() + } + } +} + +/** + * A key-value store persisted by the backend layer. + */ +export class Store extends Resource implements IStore { + private constructor(rid: number) { super(rid) } /** - * Inserts a key-value pair into the store. + * Create a new Store or load the existing store with the path. * - * @param key - * @param value - * @returns + * @example + * ```typescript + * import { Store } from '@tauri-apps/api/store'; + * const store = await Store.load('store.json'); + * ``` + * + * @param path Path to save the store in `app_data_dir` + * @param options Store configuration options */ + static async load(path: string, options?: StoreOptions): Promise { + const rid = await invoke('plugin:store|load', { + path, + ...options + }) + return new Store(rid) + } + + /** + * Gets an already loaded store. + * + * If the store is not loaded, returns `null`. In this case you must {@link Store.load load} it. + * + * This function is more useful when you already know the store is loaded + * and just need to access its instance. Prefer {@link Store.load} otherwise. + * + * @example + * ```typescript + * import { Store } from '@tauri-apps/api/store'; + * let store = await Store.get('store.json'); + * if (!store) { + * store = await Store.load('store.json'); + * } + * ``` + * + * @param path Path of the store. + */ + static async get(path: string): Promise { + return await invoke('plugin:store|get_store', { path }).then( + (rid) => (rid ? new Store(rid) : null) + ) + } + async set(key: string, value: unknown): Promise { await invoke('plugin:store|set', { rid: this.rid, @@ -60,25 +234,14 @@ export class Store extends Resource { }) } - /** - * Returns the value for the given `key` or `null` the key does not exist. - * - * @param key - * @returns - */ - async get(key: string): Promise { - return await invoke('plugin:store|get', { + async get(key: string): Promise { + const [value, exists] = await invoke<[T, boolean]>('plugin:store|get', { rid: this.rid, key }) + return exists ? value : undefined } - /** - * Returns `true` if the given `key` exists in the store. - * - * @param key - * @returns - */ async has(key: string): Promise { return await invoke('plugin:store|has', { rid: this.rid, @@ -86,12 +249,6 @@ export class Store extends Resource { }) } - /** - * Removes a key-value pair from the store. - * - * @param key - * @returns - */ async delete(key: string): Promise { return await invoke('plugin:store|delete', { rid: this.rid, @@ -99,84 +256,156 @@ export class Store extends Resource { }) } - /** - * Clears the store, removing all key-value pairs. - * - * Note: To clear the storage and reset it to it's `default` value, use `reset` instead. - * @returns - */ async clear(): Promise { await invoke('plugin:store|clear', { rid: this.rid }) } - /** - * Resets the store to it's `default` value. - * - * If no default value has been set, this method behaves identical to `clear`. - * @returns - */ async reset(): Promise { await invoke('plugin:store|reset', { rid: this.rid }) } - /** - * Returns a list of all key in the store. - * - * @returns - */ async keys(): Promise { return await invoke('plugin:store|keys', { rid: this.rid }) } + async values(): Promise { + return await invoke('plugin:store|values', { rid: this.rid }) + } + + async entries(): Promise> { + return await invoke('plugin:store|entries', { rid: this.rid }) + } + + async length(): Promise { + return await invoke('plugin:store|length', { rid: this.rid }) + } + + async reload(): Promise { + await invoke('plugin:store|reload', { rid: this.rid }) + } + + async save(): Promise { + await invoke('plugin:store|save', { rid: this.rid }) + } + + async onKeyChange( + key: string, + cb: (value: T | undefined) => void + ): Promise { + return await listen>('store://change', (event) => { + if (event.payload.resourceId === this.rid && event.payload.key === key) { + cb(event.payload.exists ? event.payload.value : undefined) + } + }) + } + + async onChange( + cb: (key: string, value: T | undefined) => void + ): Promise { + return await listen>('store://change', (event) => { + if (event.payload.resourceId === this.rid) { + cb( + event.payload.key, + event.payload.exists ? event.payload.value : undefined + ) + } + }) + } +} + +interface IStore { + /** + * Inserts a key-value pair into the store. + * + * @param key + * @param value + * @returns + */ + set(key: string, value: unknown): Promise + + /** + * Returns the value for the given `key` or `undefined` if the key does not exist. + * + * @param key + * @returns + */ + get(key: string): Promise + + /** + * Returns `true` if the given `key` exists in the store. + * + * @param key + * @returns + */ + has(key: string): Promise + + /** + * Removes a key-value pair from the store. + * + * @param key + * @returns + */ + delete(key: string): Promise + + /** + * Clears the store, removing all key-value pairs. + * + * Note: To clear the storage and reset it to its `default` value, use {@linkcode reset} instead. + * @returns + */ + clear(): Promise + + /** + * Resets the store to its `default` value. + * + * If no default value has been set, this method behaves identical to {@linkcode clear}. + * @returns + */ + reset(): Promise + + /** + * Returns a list of all keys in the store. + * + * @returns + */ + keys(): Promise + /** * Returns a list of all values in the store. * * @returns */ - async values(): Promise { - return await invoke('plugin:store|values', { rid: this.rid }) - } + values(): Promise /** * Returns a list of all entries in the store. * * @returns */ - async entries(): Promise> { - return await invoke('plugin:store|entries', { rid: this.rid }) - } + entries(): Promise> /** * Returns the number of key-value pairs in the store. * * @returns */ - async length(): Promise { - return await invoke('plugin:store|length', { rid: this.rid }) - } + length(): Promise /** - * Attempts to load the on-disk state at the stores `path` into memory. + * Attempts to load the on-disk state at the store's `path` into memory. * * This method is useful if the on-disk state was edited by the user and you want to synchronize the changes. * * Note: This method does not emit change events. * @returns */ - async load(): Promise { - await invoke('plugin:store|load', { rid: this.rid }) - } + reload(): Promise /** - * Saves the store to disk at the stores `path`. - * - * As the store is only persisted to disk before the apps exit, changes might be lost in a crash. - * This method lets you persist the store to disk whenever you deem necessary. + * Saves the store to disk at the store's `path`. * @returns */ - async save(): Promise { - await invoke('plugin:store|save', { rid: this.rid }) - } + save(): Promise /** * Listen to changes on a store key. @@ -186,16 +415,10 @@ export class Store extends Resource { * * @since 2.0.0 */ - async onKeyChange( + onKeyChange( key: string, - cb: (value: T | null) => void - ): Promise { - return await listen>('store://change', (event) => { - if (event.payload.path === this.path && event.payload.key === key) { - cb(event.payload.value) - } - }) - } + cb: (value: T | undefined) => void + ): Promise /** * Listen to changes on the store. @@ -204,13 +427,13 @@ export class Store extends Resource { * * @since 2.0.0 */ - async onChange( - cb: (key: string, value: T | null) => void - ): Promise { - return await listen>('store://change', (event) => { - if (event.payload.path === this.path) { - cb(event.payload.key, event.payload.value) - } - }) - } + onChange( + cb: (key: string, value: T | undefined) => void + ): Promise + + /** + * Close the store and cleans up this resource from memory. + * **You should not call any method on this object anymore and should drop any reference to it.** + */ + close(): Promise } diff --git a/plugins/store/permissions/autogenerated/commands/create_store.toml b/plugins/store/permissions/autogenerated/commands/create_store.toml deleted file mode 100644 index cde71c24f..000000000 --- a/plugins/store/permissions/autogenerated/commands/create_store.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-create-store" -description = "Enables the create_store command without any pre-configured scope." -commands.allow = ["create_store"] - -[[permission]] -identifier = "deny-create-store" -description = "Denies the create_store command without any pre-configured scope." -commands.deny = ["create_store"] diff --git a/plugins/store/permissions/autogenerated/commands/get_store.toml b/plugins/store/permissions/autogenerated/commands/get_store.toml new file mode 100644 index 000000000..7c19173a3 --- /dev/null +++ b/plugins/store/permissions/autogenerated/commands/get_store.toml @@ -0,0 +1,13 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-get-store" +description = "Enables the get_store command without any pre-configured scope." +commands.allow = ["get_store"] + +[[permission]] +identifier = "deny-get-store" +description = "Denies the get_store command without any pre-configured scope." +commands.deny = ["get_store"] diff --git a/plugins/store/permissions/autogenerated/commands/reload.toml b/plugins/store/permissions/autogenerated/commands/reload.toml new file mode 100644 index 000000000..92e252531 --- /dev/null +++ b/plugins/store/permissions/autogenerated/commands/reload.toml @@ -0,0 +1,13 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-reload" +description = "Enables the reload command without any pre-configured scope." +commands.allow = ["reload"] + +[[permission]] +identifier = "deny-reload" +description = "Denies the reload command without any pre-configured scope." +commands.deny = ["reload"] diff --git a/plugins/store/permissions/autogenerated/reference.md b/plugins/store/permissions/autogenerated/reference.md index 4e9bf2cc3..5640415da 100644 --- a/plugins/store/permissions/autogenerated/reference.md +++ b/plugins/store/permissions/autogenerated/reference.md @@ -9,19 +9,20 @@ All operations are enabled by default. -- `allow-create-store` -- `allow-clear` -- `allow-delete` -- `allow-entries` +- `allow-load` +- `allow-get-store` +- `allow-set` - `allow-get` - `allow-has` -- `allow-keys` -- `allow-length` -- `allow-load` +- `allow-delete` +- `allow-clear` - `allow-reset` -- `allow-save` -- `allow-set` +- `allow-keys` - `allow-values` +- `allow-entries` +- `allow-length` +- `allow-reload` +- `allow-save` ## Permission Table @@ -61,32 +62,6 @@ Denies the clear command without any pre-configured scope. -`store:allow-create-store` - - - - -Enables the create_store command without any pre-configured scope. - - - - - - - -`store:deny-create-store` - - - - -Denies the create_store command without any pre-configured scope. - - - - - - - `store:allow-delete` @@ -165,6 +140,32 @@ Denies the get command without any pre-configured scope. +`store:allow-get-store` + + + + +Enables the get_store command without any pre-configured scope. + + + + + + + +`store:deny-get-store` + + + + +Denies the get_store command without any pre-configured scope. + + + + + + + `store:allow-has` @@ -269,6 +270,32 @@ Denies the load command without any pre-configured scope. +`store:allow-reload` + + + + +Enables the reload command without any pre-configured scope. + + + + + + + +`store:deny-reload` + + + + +Denies the reload command without any pre-configured scope. + + + + + + + `store:allow-reset` diff --git a/plugins/store/permissions/default.toml b/plugins/store/permissions/default.toml index bf888679f..3a3e4b3af 100644 --- a/plugins/store/permissions/default.toml +++ b/plugins/store/permissions/default.toml @@ -11,17 +11,18 @@ All operations are enabled by default. """ permissions = [ - "allow-create-store", - "allow-clear", - "allow-delete", - "allow-entries", + "allow-load", + "allow-get-store", + "allow-set", "allow-get", "allow-has", - "allow-keys", - "allow-length", - "allow-load", + "allow-delete", + "allow-clear", "allow-reset", - "allow-save", - "allow-set", + "allow-keys", "allow-values", + "allow-entries", + "allow-length", + "allow-reload", + "allow-save", ] diff --git a/plugins/store/permissions/schemas/schema.json b/plugins/store/permissions/schemas/schema.json index 6ebf788ea..4237bc624 100644 --- a/plugins/store/permissions/schemas/schema.json +++ b/plugins/store/permissions/schemas/schema.json @@ -304,16 +304,6 @@ "type": "string", "const": "deny-clear" }, - { - "description": "Enables the create_store command without any pre-configured scope.", - "type": "string", - "const": "allow-create-store" - }, - { - "description": "Denies the create_store command without any pre-configured scope.", - "type": "string", - "const": "deny-create-store" - }, { "description": "Enables the delete command without any pre-configured scope.", "type": "string", @@ -344,6 +334,16 @@ "type": "string", "const": "deny-get" }, + { + "description": "Enables the get_store command without any pre-configured scope.", + "type": "string", + "const": "allow-get-store" + }, + { + "description": "Denies the get_store command without any pre-configured scope.", + "type": "string", + "const": "deny-get-store" + }, { "description": "Enables the has command without any pre-configured scope.", "type": "string", @@ -384,6 +384,16 @@ "type": "string", "const": "deny-load" }, + { + "description": "Enables the reload command without any pre-configured scope.", + "type": "string", + "const": "allow-reload" + }, + { + "description": "Denies the reload command without any pre-configured scope.", + "type": "string", + "const": "deny-reload" + }, { "description": "Enables the reset command without any pre-configured scope.", "type": "string", diff --git a/plugins/store/src/error.rs b/plugins/store/src/error.rs index afd43addf..ef5ee5938 100644 --- a/plugins/store/src/error.rs +++ b/plugins/store/src/error.rs @@ -3,7 +3,6 @@ // SPDX-License-Identifier: MIT use serde::{Serialize, Serializer}; -use std::path::PathBuf; pub type Result = std::result::Result; @@ -21,9 +20,15 @@ pub enum Error { /// IO error. #[error(transparent)] Io(#[from] std::io::Error), - /// Store not found - #[error("Store \"{0}\" not found")] - NotFound(PathBuf), + // /// Store already exists + // #[error("Store at \"{0}\" already exists")] + // AlreadyExists(PathBuf), + /// Serialize function not found + #[error("Serialize Function \"{0}\" not found")] + SerializeFunctionNotFound(String), + /// Deserialize function not found + #[error("Deserialize Function \"{0}\" not found")] + DeserializeFunctionNotFound(String), /// Some Tauri API failed #[error(transparent)] Tauri(#[from] tauri::Error), diff --git a/plugins/store/src/lib.rs b/plugins/store/src/lib.rs index b05bf4b42..310e80ecd 100644 --- a/plugins/store/src/lib.rs +++ b/plugins/store/src/lib.rs @@ -12,234 +12,392 @@ )] pub use error::{Error, Result}; -use log::warn; -use serde::Serialize; +use serde::{Deserialize, Serialize}; pub use serde_json::Value as JsonValue; use std::{ collections::HashMap, path::{Path, PathBuf}, - sync::{Mutex, Weak}, + sync::{Arc, Mutex}, time::Duration, }; -pub use store::{Store, StoreBuilder, StoreInner}; +pub use store::{resolve_store_path, DeserializeFn, SerializeFn, Store, StoreBuilder}; use tauri::{ plugin::{self, TauriPlugin}, - AppHandle, Manager, ResourceId, RunEvent, Runtime, Webview, + AppHandle, Manager, ResourceId, RunEvent, Runtime, State, }; mod error; mod store; #[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] struct ChangePayload<'a> { path: &'a Path, + resource_id: Option, key: &'a str, - value: &'a JsonValue, + value: Option<&'a JsonValue>, + exists: bool, } -pub struct StoreCollection { - stores: Mutex>>>>, - // frozen: bool, +#[derive(Debug)] +struct StoreState { + stores: Arc>>, + serialize_fns: HashMap, + deserialize_fns: HashMap, + default_serialize: SerializeFn, + default_deserialize: DeserializeFn, +} + +#[derive(Serialize, Deserialize)] +#[serde(untagged)] +enum AutoSave { + DebounceDuration(u64), + Bool(bool), +} + +fn builder( + app: AppHandle, + store_state: State<'_, StoreState>, + path: PathBuf, + auto_save: Option, + serialize_fn_name: Option, + deserialize_fn_name: Option, + create_new: bool, +) -> Result> { + let mut builder = app.store_builder(path); + if let Some(auto_save) = auto_save { + match auto_save { + AutoSave::DebounceDuration(duration) => { + builder = builder.auto_save(Duration::from_millis(duration)); + } + AutoSave::Bool(false) => { + builder = builder.disable_auto_save(); + } + _ => {} + } + } + + if let Some(serialize_fn_name) = serialize_fn_name { + let serialize_fn = store_state + .serialize_fns + .get(&serialize_fn_name) + .ok_or_else(|| crate::Error::SerializeFunctionNotFound(serialize_fn_name))?; + builder = builder.serialize(*serialize_fn); + } + + if let Some(deserialize_fn_name) = deserialize_fn_name { + let deserialize_fn = store_state + .deserialize_fns + .get(&deserialize_fn_name) + .ok_or_else(|| crate::Error::DeserializeFunctionNotFound(deserialize_fn_name))?; + builder = builder.deserialize(*deserialize_fn); + } + + if create_new { + builder = builder.create_new(); + } + + Ok(builder) } #[tauri::command] -async fn create_store( +async fn load( app: AppHandle, - webview: Webview, + store_state: State<'_, StoreState>, path: PathBuf, - auto_save: Option, + auto_save: Option, + serialize_fn_name: Option, + deserialize_fn_name: Option, + create_new: Option, ) -> Result { - let mut builder = app.store_builder(path); - if let Some(auto_save) = auto_save { - builder = builder.auto_save(Duration::from_millis(auto_save)); - } - let store = builder.build(); - Ok(webview.resources_table().add(store)) + let builder = builder( + app, + store_state, + path, + auto_save, + serialize_fn_name, + deserialize_fn_name, + create_new.unwrap_or_default(), + )?; + let (_, rid) = builder.build_inner()?; + Ok(rid) +} + +#[tauri::command] +async fn get_store( + app: AppHandle, + store_state: State<'_, StoreState>, + path: PathBuf, +) -> Result> { + let stores = store_state.stores.lock().unwrap(); + Ok(stores.get(&resolve_store_path(&app, path)?).copied()) } #[tauri::command] async fn set( - webview: Webview, + app: AppHandle, rid: ResourceId, key: String, value: JsonValue, ) -> Result<()> { - let store = webview.resources_table().get::>(rid)?; + let store = app.resources_table().get::>(rid)?; store.set(key, value); Ok(()) } #[tauri::command] async fn get( - webview: Webview, + app: AppHandle, rid: ResourceId, key: String, -) -> Result> { - let store = webview.resources_table().get::>(rid)?; - Ok(store.get(key)) +) -> Result<(Option, bool)> { + let store = app.resources_table().get::>(rid)?; + let value = store.get(key); + let exists = value.is_some(); + Ok((value, exists)) } #[tauri::command] -async fn has(webview: Webview, rid: ResourceId, key: String) -> Result { - let store = webview.resources_table().get::>(rid)?; +async fn has(app: AppHandle, rid: ResourceId, key: String) -> Result { + let store = app.resources_table().get::>(rid)?; Ok(store.has(key)) } #[tauri::command] -async fn delete(webview: Webview, rid: ResourceId, key: String) -> Result { - let store = webview.resources_table().get::>(rid)?; +async fn delete(app: AppHandle, rid: ResourceId, key: String) -> Result { + let store = app.resources_table().get::>(rid)?; Ok(store.delete(key)) } #[tauri::command] -async fn clear(webview: Webview, rid: ResourceId) -> Result<()> { - let store = webview.resources_table().get::>(rid)?; +async fn clear(app: AppHandle, rid: ResourceId) -> Result<()> { + let store = app.resources_table().get::>(rid)?; store.clear(); Ok(()) } #[tauri::command] -async fn reset(webview: Webview, rid: ResourceId) -> Result<()> { - let store = webview.resources_table().get::>(rid)?; +async fn reset(app: AppHandle, rid: ResourceId) -> Result<()> { + let store = app.resources_table().get::>(rid)?; store.reset(); Ok(()) } #[tauri::command] -async fn keys(webview: Webview, rid: ResourceId) -> Result> { - let store = webview.resources_table().get::>(rid)?; +async fn keys(app: AppHandle, rid: ResourceId) -> Result> { + let store = app.resources_table().get::>(rid)?; Ok(store.keys()) } #[tauri::command] -async fn values(webview: Webview, rid: ResourceId) -> Result> { - let store = webview.resources_table().get::>(rid)?; +async fn values(app: AppHandle, rid: ResourceId) -> Result> { + let store = app.resources_table().get::>(rid)?; Ok(store.values()) } #[tauri::command] async fn entries( - webview: Webview, + app: AppHandle, rid: ResourceId, ) -> Result> { - let store = webview.resources_table().get::>(rid)?; + let store = app.resources_table().get::>(rid)?; Ok(store.entries()) } #[tauri::command] -async fn length(webview: Webview, rid: ResourceId) -> Result { - let store = webview.resources_table().get::>(rid)?; +async fn length(app: AppHandle, rid: ResourceId) -> Result { + let store = app.resources_table().get::>(rid)?; Ok(store.length()) } #[tauri::command] -async fn load(webview: Webview, rid: ResourceId) -> Result<()> { - let store = webview.resources_table().get::>(rid)?; - store.load() +async fn reload(app: AppHandle, rid: ResourceId) -> Result<()> { + let store = app.resources_table().get::>(rid)?; + store.reload() } #[tauri::command] -async fn save(webview: Webview, rid: ResourceId) -> Result<()> { - let store = webview.resources_table().get::>(rid)?; +async fn save(app: AppHandle, rid: ResourceId) -> Result<()> { + let store = app.resources_table().get::>(rid)?; store.save() } pub trait StoreExt { - fn store(&self, path: impl AsRef) -> Store; + /// Create a store or load an existing store with default settings at the given path. + /// + /// If the store is already loaded, its instance is automatically returned. + /// + /// # Examples + /// + /// ``` + /// use tauri_plugin_store::StoreExt; + /// + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = app.store("my-store")?; + /// Ok(()) + /// }); + /// ``` + fn store(&self, path: impl AsRef) -> Result>>; + /// Get a store builder. + /// + /// The builder can be used to configure the store. + /// To use the default settings see [`Self::store`]. + /// + /// # Examples + /// + /// ``` + /// use tauri_plugin_store::StoreExt; + /// use std::time::Duration; + /// + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = app.store_builder("users.json").auto_save(Duration::from_secs(1)).build()?; + /// Ok(()) + /// }); + /// ``` fn store_builder(&self, path: impl AsRef) -> StoreBuilder; + /// Get a handle of an already loaded store. + /// + /// If the store is not loaded or does not exist, it returns `None`. + /// + /// Note that using this function can cause race conditions if you fallback to creating or loading the store, + /// so you should consider using [`Self::store`] if you are not sure if the store is loaded or not. + /// + /// # Examples + /// + /// ``` + /// use tauri_plugin_store::StoreExt; + /// + /// tauri::Builder::default() + /// .plugin(tauri_plugin_store::Builder::default().build()) + /// .setup(|app| { + /// let store = if let Some(s) = app.get_store("store.json") { + /// s + /// } else { + /// // this is not thread safe; if another thread is doing the same load/create, + /// // there will be a race condition; in this case we could remove the get_store + /// // and only run app.store() as it will return the existing store if it has been loaded + /// app.store("store.json")? + /// }; + /// Ok(()) + /// }); + /// ``` + fn get_store(&self, path: impl AsRef) -> Option>>; } impl> StoreExt for T { - fn store(&self, path: impl AsRef) -> Store { + fn store(&self, path: impl AsRef) -> Result>> { StoreBuilder::new(self.app_handle(), path).build() } fn store_builder(&self, path: impl AsRef) -> StoreBuilder { StoreBuilder::new(self.app_handle(), path) } + + fn get_store(&self, path: impl AsRef) -> Option>> { + let collection = self.state::(); + let stores = collection.stores.lock().unwrap(); + stores + .get(&resolve_store_path(self.app_handle(), path.as_ref()).ok()?) + .and_then(|rid| self.resources_table().get(*rid).ok()) + } } -// #[derive(Default)] -pub struct Builder { - stores: HashMap>, - // frozen: bool, +fn default_serialize( + cache: &HashMap, +) -> std::result::Result, Box> { + Ok(serde_json::to_vec_pretty(&cache)?) } -impl Default for Builder { +fn default_deserialize( + bytes: &[u8], +) -> std::result::Result, Box> { + serde_json::from_slice(bytes).map_err(Into::into) +} + +pub struct Builder { + serialize_fns: HashMap, + deserialize_fns: HashMap, + default_serialize: SerializeFn, + default_deserialize: DeserializeFn, +} + +impl Default for Builder { fn default() -> Self { Self { - stores: Default::default(), - // frozen: false, + serialize_fns: Default::default(), + deserialize_fns: Default::default(), + default_serialize, + default_deserialize, } } } -impl Builder { +impl Builder { pub fn new() -> Self { Self::default() } - // /// Registers a store with the plugin. - // /// - // /// # Examples - // /// - // /// ``` - // /// use tauri_plugin_store::{StoreBuilder, Builder}; - // /// - // /// tauri::Builder::default() - // /// .setup(|app| { - // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - // /// let builder = Builder::default().store(store); - // /// Ok(()) - // /// }); - // /// ``` - // pub fn store(mut self, store: Store) -> Self { - // self.stores.insert(store.path.clone(), store); - // self - // } + /// Register a serialize function to access it from the JavaScript side + /// + /// # Examples + /// + /// ``` + /// fn no_pretty_json( + /// cache: &std::collections::HashMap, + /// ) -> Result, Box> { + /// Ok(serde_json::to_vec(&cache)?) + /// } + /// + /// tauri::Builder::default() + /// .plugin( + /// tauri_plugin_store::Builder::default() + /// .register_serialize_fn("no-pretty-json".to_owned(), no_pretty_json) + /// .build(), + /// ); + /// ``` + pub fn register_serialize_fn(mut self, name: String, serialize_fn: SerializeFn) -> Self { + self.serialize_fns.insert(name, serialize_fn); + self + } - // /// Registers multiple stores with the plugin. - // /// - // /// # Examples - // /// - // /// ``` - // /// use tauri_plugin_store::{StoreBuilder, Builder}; - // /// - // /// tauri::Builder::default() - // /// .setup(|app| { - // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - // /// let builder = Builder::default().stores([store]); - // /// Ok(()) - // /// }); - // /// ``` - // pub fn stores>>(mut self, stores: T) -> Self { - // self.stores = stores - // .into_iter() - // .map(|store| (store.path.clone(), store)) - // .collect(); - // self - // } + /// Register a deserialize function to access it from the JavaScript side + pub fn register_deserialize_fn(mut self, name: String, deserialize_fn: DeserializeFn) -> Self { + self.deserialize_fns.insert(name, deserialize_fn); + self + } - // /// Freezes the collection. - // /// - // /// This causes requests for plugins that haven't been registered to fail - // /// - // /// # Examples - // /// - // /// ``` - // /// use tauri_plugin_store::{StoreBuilder, Builder}; - // /// - // /// tauri::Builder::default() - // /// .setup(|app| { - // /// let store = StoreBuilder::new("store.bin").build(app.handle().clone()); - // /// app.handle().plugin(Builder::default().freeze().build()); - // /// Ok(()) - // /// }); - // /// ``` - // pub fn freeze(mut self) -> Self { - // self.frozen = true; - // self - // } + /// Use this serialize function for stores by default + /// + /// # Examples + /// + /// ``` + /// fn no_pretty_json( + /// cache: &std::collections::HashMap, + /// ) -> Result, Box> { + /// Ok(serde_json::to_vec(&cache)?) + /// } + /// + /// tauri::Builder::default() + /// .plugin( + /// tauri_plugin_store::Builder::default() + /// .default_serialize_fn(no_pretty_json) + /// .build(), + /// ); + /// ``` + pub fn default_serialize_fn(mut self, serialize_fn: SerializeFn) -> Self { + self.default_serialize = serialize_fn; + self + } + + /// Use this deserialize function for stores by default + pub fn default_deserialize_fn(mut self, deserialize_fn: DeserializeFn) -> Self { + self.default_deserialize = deserialize_fn; + self + } /// Builds the plugin. /// @@ -249,56 +407,37 @@ impl Builder { /// tauri::Builder::default() /// .plugin(tauri_plugin_store::Builder::default().build()) /// .setup(|app| { - /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin").build(); + /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin").build()?; /// Ok(()) /// }); /// ``` - pub fn build(mut self) -> TauriPlugin { + pub fn build(self) -> TauriPlugin { plugin::Builder::new("store") .invoke_handler(tauri::generate_handler![ - create_store, - set, - get, - has, - delete, - clear, - reset, - keys, - values, - length, - entries, - load, - save + load, get_store, set, get, has, delete, clear, reset, keys, values, length, + entries, reload, save, ]) .setup(move |app_handle, _api| { - for (path, store) in self.stores.iter_mut() { - // ignore loading errors, just use the default - if let Err(err) = store.load() { - warn!( - "Failed to load store {path:?} from disk: {err}. Falling back to default values." - ); - } - } - - app_handle.manage(StoreCollection:: { - stores: Mutex::new(HashMap::new()), - // frozen: self.frozen, + app_handle.manage(StoreState { + stores: Arc::new(Mutex::new(HashMap::new())), + serialize_fns: self.serialize_fns, + deserialize_fns: self.deserialize_fns, + default_serialize: self.default_serialize, + default_deserialize: self.default_deserialize, }); - Ok(()) }) - .on_event(|_app_handle, event| { + .on_event(|app_handle, event| { if let RunEvent::Exit = event { - // let collection = app_handle.state::>(); - - // for store in collection.stores.lock().expect("mutex poisoned").values_mut() { - // if let Some(sender) = store.auto_save_debounce_sender.take() { - // let _ = sender.send(AutoSaveMessage::Cancel); - // } - // if let Err(err) = store.save() { - // eprintln!("failed to save store {:?} with error {:?}", store.path, err); - // } - // } + let collection = app_handle.state::(); + let stores = collection.stores.lock().unwrap(); + for (path, rid) in stores.iter() { + if let Ok(store) = app_handle.resources_table().get::>(*rid) { + if let Err(err) = store.save() { + log::error!("failed to save store {path:?} with error {err:?}"); + } + } + } } }) .build() diff --git a/plugins/store/src/store.rs b/plugins/store/src/store.rs index d610525d3..1dc5e1d21 100644 --- a/plugins/store/src/store.rs +++ b/plugins/store/src/store.rs @@ -2,38 +2,32 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use crate::{ChangePayload, StoreCollection}; +use crate::{ChangePayload, StoreState}; use serde_json::Value as JsonValue; use std::{ collections::HashMap, - fs::{create_dir_all, read, File}, - io::Write, + fs, path::{Path, PathBuf}, sync::{Arc, Mutex}, time::Duration, }; -use tauri::{AppHandle, Emitter, Manager, Resource, Runtime}; +use tauri::{path::BaseDirectory, AppHandle, Emitter, Manager, Resource, ResourceId, Runtime}; use tokio::{ select, sync::mpsc::{unbounded_channel, UnboundedSender}, time::sleep, }; -type SerializeFn = +pub type SerializeFn = fn(&HashMap) -> Result, Box>; -pub(crate) type DeserializeFn = +pub type DeserializeFn = fn(&[u8]) -> Result, Box>; -fn default_serialize( - cache: &HashMap, -) -> Result, Box> { - Ok(serde_json::to_vec(&cache)?) -} - -fn default_deserialize( - bytes: &[u8], -) -> Result, Box> { - serde_json::from_slice(bytes).map_err(Into::into) +pub fn resolve_store_path( + app: &AppHandle, + path: impl AsRef, +) -> crate::Result { + Ok(dunce::simplified(&app.path().resolve(path, BaseDirectory::AppData)?).to_path_buf()) } /// Builds a [`Store`] @@ -41,10 +35,10 @@ pub struct StoreBuilder { app: AppHandle, path: PathBuf, defaults: Option>, - cache: HashMap, - serialize: SerializeFn, - deserialize: DeserializeFn, + serialize_fn: SerializeFn, + deserialize_fn: DeserializeFn, auto_save: Option, + create_new: bool, } impl StoreBuilder { @@ -60,15 +54,18 @@ impl StoreBuilder { /// }); /// ``` pub fn new, P: AsRef>(manager: &M, path: P) -> Self { + let app = manager.app_handle().clone(); + let state = app.state::(); + let serialize_fn = state.default_serialize; + let deserialize_fn = state.default_deserialize; Self { - app: manager.app_handle().clone(), - // Since Store.path is only exposed to the user in emit calls we may as well simplify it here already. - path: dunce::simplified(path.as_ref()).to_path_buf(), + app, + path: path.as_ref().to_path_buf(), defaults: None, - cache: Default::default(), - serialize: default_serialize, - deserialize: default_deserialize, - auto_save: None, + serialize_fn, + deserialize_fn, + auto_save: Some(Duration::from_millis(100)), + create_new: false, } } @@ -84,17 +81,16 @@ impl StoreBuilder { /// /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin") /// .defaults(defaults) - /// .build(); + /// .build()?; /// Ok(()) /// }); /// ``` pub fn defaults(mut self, defaults: HashMap) -> Self { - self.cache.clone_from(&defaults); self.defaults = Some(defaults); self } - /// Inserts multiple key-value pairs. + /// Inserts multiple default key-value pairs. /// /// # Examples /// ``` @@ -103,14 +99,13 @@ impl StoreBuilder { /// .setup(|app| { /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.bin") /// .default("foo".to_string(), "bar") - /// .build(); + /// .build()?; /// Ok(()) /// }); /// ``` pub fn default(mut self, key: impl Into, value: impl Into) -> Self { let key = key.into(); let value = value.into(); - self.cache.insert(key.clone(), value.clone()); self.defaults .get_or_insert(HashMap::new()) .insert(key, value); @@ -126,12 +121,12 @@ impl StoreBuilder { /// .setup(|app| { /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") /// .serialize(|cache| serde_json::to_vec(&cache).map_err(Into::into)) - /// .build(); + /// .build()?; /// Ok(()) /// }); /// ``` pub fn serialize(mut self, serialize: SerializeFn) -> Self { - self.serialize = serialize; + self.serialize_fn = serialize; self } @@ -144,28 +139,25 @@ impl StoreBuilder { /// .setup(|app| { /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") /// .deserialize(|bytes| serde_json::from_slice(&bytes).map_err(Into::into)) - /// .build(); + /// .build()?; /// Ok(()) /// }); /// ``` pub fn deserialize(mut self, deserialize: DeserializeFn) -> Self { - self.deserialize = deserialize; + self.deserialize_fn = deserialize; self } /// Auto save on modified with a debounce duration /// - /// Note: only works if this store is managed by the plugin (e.g. made using [`crate::with_store`] or inserted into [`crate::Builder`]) - /// /// # Examples /// ``` - /// /// tauri::Builder::default() /// .plugin(tauri_plugin_store::Builder::default().build()) /// .setup(|app| { /// let store = tauri_plugin_store::StoreBuilder::new(app, "store.json") /// .auto_save(std::time::Duration::from_millis(100)) - /// .build(); + /// .build()?; /// Ok(()) /// }); /// ``` @@ -174,7 +166,64 @@ impl StoreBuilder { self } - /// Builds the [`Store`]. + /// Disable auto save on modified with a debounce duration. + pub fn disable_auto_save(mut self) -> Self { + self.auto_save = None; + self + } + + /// Force create a new store with default values even if it already exists. + pub fn create_new(mut self) -> Self { + self.create_new = true; + self + } + + pub(crate) fn build_inner(mut self) -> crate::Result<(Arc>, ResourceId)> { + let stores = self.app.state::().stores.clone(); + let mut stores = stores.lock().unwrap(); + + self.path = resolve_store_path(&self.app, self.path)?; + + if self.create_new { + if let Some(rid) = stores.remove(&self.path) { + let _ = self.app.resources_table().take::>(rid); + } + } else if let Some(rid) = stores.get(&self.path) { + return Ok((self.app.resources_table().get(*rid).unwrap(), *rid)); + } + + // if stores.contains_key(&self.path) { + // return Err(crate::Error::AlreadyExists(self.path)); + // } + + let mut store_inner = StoreInner::new( + self.app.clone(), + self.path.clone(), + self.defaults.take(), + self.serialize_fn, + self.deserialize_fn, + ); + + if !self.create_new { + let _ = store_inner.load(); + } + + let store = Store { + auto_save: self.auto_save, + auto_save_debounce_sender: Arc::new(Mutex::new(None)), + store: Arc::new(Mutex::new(store_inner)), + }; + + let store = Arc::new(store); + let rid = self.app.resources_table().add_arc(store.clone()); + stores.insert(self.path, rid); + + Ok((store, rid)) + } + + /// Load the existing store with the same path or creates a new [`Store`]. + /// + /// If a store with the same path has already been loaded its instance is returned. /// /// # Examples /// ``` @@ -185,131 +234,116 @@ impl StoreBuilder { /// Ok(()) /// }); /// ``` - pub fn build(self) -> Store { - let collection = self.app.state::>(); - let mut stores = collection.stores.lock().unwrap(); - let store = stores - .get(&self.path) - .and_then(|store| store.upgrade()) - .unwrap_or_else(|| { - let mut store = StoreInner::new(self.app.clone(), self.path.clone()); - let _ = store.load(self.deserialize); - let store = Arc::new(Mutex::new(store)); - stores.insert( - self.path.clone(), - Arc::>>::downgrade(&store), - ); - store - }); - drop(stores); - Store { - defaults: self.defaults, - serialize: self.serialize, - deserialize: self.deserialize, - auto_save: self.auto_save, - auto_save_debounce_sender: Arc::new(Mutex::new(None)), - store, - } + pub fn build(self) -> crate::Result>> { + let (store, _) = self.build_inner()?; + Ok(store) } } -pub(crate) enum AutoSaveMessage { +enum AutoSaveMessage { Reset, Cancel, } #[derive(Clone)] -pub struct StoreInner { - pub(crate) app: AppHandle, - pub(crate) path: PathBuf, - pub(crate) cache: HashMap, +struct StoreInner { + app: AppHandle, + path: PathBuf, + cache: HashMap, + defaults: Option>, + serialize_fn: SerializeFn, + deserialize_fn: DeserializeFn, } impl StoreInner { - pub fn new(app: AppHandle, path: PathBuf) -> Self { + fn new( + app: AppHandle, + path: PathBuf, + defaults: Option>, + serialize_fn: SerializeFn, + deserialize_fn: DeserializeFn, + ) -> Self { Self { app, path, - cache: HashMap::new(), + cache: defaults.clone().unwrap_or_default(), + defaults, + serialize_fn, + deserialize_fn, } } - pub fn save(&self, serialize_fn: SerializeFn) -> crate::Result<()> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); + /// Saves the store to disk at the store's `path`. + pub fn save(&self) -> crate::Result<()> { + fs::create_dir_all(self.path.parent().expect("invalid store path"))?; - create_dir_all(store_path.parent().expect("invalid store path"))?; - - let bytes = serialize_fn(&self.cache).map_err(crate::Error::Serialize)?; - let mut f = File::create(&store_path)?; - f.write_all(&bytes)?; + let bytes = (self.serialize_fn)(&self.cache).map_err(crate::Error::Serialize)?; + fs::write(&self.path, bytes)?; Ok(()) } /// Update the store from the on-disk state - pub fn load(&mut self, deserialize_fn: DeserializeFn) -> crate::Result<()> { - let app_dir = self - .app - .path() - .app_data_dir() - .expect("failed to resolve app dir"); - let store_path = app_dir.join(&self.path); - - let bytes = read(store_path)?; + pub fn load(&mut self) -> crate::Result<()> { + let bytes = fs::read(&self.path)?; self.cache - .extend(deserialize_fn(&bytes).map_err(crate::Error::Deserialize)?); + .extend((self.deserialize_fn)(&bytes).map_err(crate::Error::Deserialize)?); Ok(()) } - pub fn insert(&mut self, key: impl Into, value: impl Into) { + /// Inserts a key-value pair into the store. + pub fn set(&mut self, key: impl Into, value: impl Into) { let key = key.into(); let value = value.into(); self.cache.insert(key.clone(), value.clone()); - let _ = self.emit_change_event(&key, &value); + let _ = self.emit_change_event(&key, Some(&value)); } + /// Returns a reference to the value corresponding to the key. pub fn get(&self, key: impl AsRef) -> Option<&JsonValue> { self.cache.get(key.as_ref()) } + /// Returns `true` if the given `key` exists in the store. pub fn has(&self, key: impl AsRef) -> bool { self.cache.contains_key(key.as_ref()) } + /// Removes a key-value pair from the store. pub fn delete(&mut self, key: impl AsRef) -> bool { let flag = self.cache.remove(key.as_ref()).is_some(); if flag { - let _ = self.emit_change_event(key.as_ref(), &JsonValue::Null); + let _ = self.emit_change_event(key.as_ref(), None); } flag } + /// Clears the store, removing all key-value pairs. + /// + /// Note: To clear the storage and reset it to its `default` value, use [`reset`](Self::reset) instead. pub fn clear(&mut self) { let keys: Vec = self.cache.keys().cloned().collect(); self.cache.clear(); for key in &keys { - let _ = self.emit_change_event(key, &JsonValue::Null); + let _ = self.emit_change_event(key, None); } } - pub fn reset(&mut self, defaults: &Option>) { - if let Some(defaults) = &defaults { + /// Resets the store to its `default` value. + /// + /// If no default value has been set, this method behaves identical to [`clear`](Self::clear). + pub fn reset(&mut self) { + if let Some(defaults) = &self.defaults { for (key, value) in &self.cache { if defaults.get(key) != Some(value) { - let _ = - self.emit_change_event(key, defaults.get(key).unwrap_or(&JsonValue::Null)); + let _ = self.emit_change_event(key, defaults.get(key)); } } for (key, value) in defaults { if !self.cache.contains_key(key) { - let _ = self.emit_change_event(key, value); + let _ = self.emit_change_event(key, Some(value)); } } self.cache.clone_from(defaults); @@ -318,33 +352,43 @@ impl StoreInner { } } + /// An iterator visiting all keys in arbitrary order. pub fn keys(&self) -> impl Iterator { self.cache.keys() } + /// An iterator visiting all values in arbitrary order. pub fn values(&self) -> impl Iterator { self.cache.values() } + /// An iterator visiting all key-value pairs in arbitrary order. pub fn entries(&self) -> impl Iterator { self.cache.iter() } + /// Returns the number of elements in the store. pub fn len(&self) -> usize { self.cache.len() } + /// Returns true if the store contains no elements. pub fn is_empty(&self) -> bool { self.cache.is_empty() } - fn emit_change_event(&self, key: &str, value: &JsonValue) -> crate::Result<()> { + fn emit_change_event(&self, key: &str, value: Option<&JsonValue>) -> crate::Result<()> { + let state = self.app.state::(); + let stores = state.stores.lock().unwrap(); + let exists = value.is_some(); self.app.emit( "store://change", ChangePayload { path: &self.path, + resource_id: stores.get(&self.path).copied(), key, value, + exists, }, )?; Ok(()) @@ -361,38 +405,45 @@ impl std::fmt::Debug for StoreInner { } pub struct Store { - defaults: Option>, - serialize: SerializeFn, - deserialize: DeserializeFn, auto_save: Option, auto_save_debounce_sender: Arc>>>, store: Arc>>, } -impl Resource for Store {} +impl Resource for Store { + fn close(self: Arc) { + let store = self.store.lock().unwrap(); + let state = store.app.state::(); + let mut stores = state.stores.lock().unwrap(); + stores.remove(&store.path); + } +} impl Store { - pub fn with_store( - &self, - f: impl FnOnce(&mut StoreInner) -> crate::Result, - ) -> crate::Result { - let mut store = self.store.lock().unwrap(); - f(&mut store) - } + // /// Do something with the inner store, + // /// useful for batching some work if you need higher performance + // pub fn with_store(&self, f: impl FnOnce(&mut StoreInner) -> T) -> T { + // let mut store = self.store.lock().unwrap(); + // f(&mut store) + // } + /// Inserts a key-value pair into the store. pub fn set(&self, key: impl Into, value: impl Into) { - self.store.lock().unwrap().insert(key.into(), value.into()); + self.store.lock().unwrap().set(key.into(), value.into()); let _ = self.trigger_auto_save(); } + /// Returns the value for the given `key` or `None` if the key does not exist. pub fn get(&self, key: impl AsRef) -> Option { self.store.lock().unwrap().get(key).cloned() } + /// Returns `true` if the given `key` exists in the store. pub fn has(&self, key: impl AsRef) -> bool { self.store.lock().unwrap().has(key) } + /// Removes a key-value pair from the store. pub fn delete(&self, key: impl AsRef) -> bool { let deleted = self.store.lock().unwrap().delete(key); if deleted { @@ -401,24 +452,33 @@ impl Store { deleted } + /// Clears the store, removing all key-value pairs. + /// + /// Note: To clear the storage and reset it to its `default` value, use [`reset`](Self::reset) instead. pub fn clear(&self) { self.store.lock().unwrap().clear(); let _ = self.trigger_auto_save(); } + /// Resets the store to its `default` value. + /// + /// If no default value has been set, this method behaves identical to [`clear`](Self::clear). pub fn reset(&self) { - self.store.lock().unwrap().reset(&self.defaults); + self.store.lock().unwrap().reset(); let _ = self.trigger_auto_save(); } + /// Returns a list of all keys in the store. pub fn keys(&self) -> Vec { self.store.lock().unwrap().keys().cloned().collect() } + /// Returns a list of all values in the store. pub fn values(&self) -> Vec { self.store.lock().unwrap().values().cloned().collect() } + /// Returns a list of all key-value pairs in the store. pub fn entries(&self) -> Vec<(String, JsonValue)> { self.store .lock() @@ -428,19 +488,40 @@ impl Store { .collect() } + /// Returns the number of elements in the store. pub fn length(&self) -> usize { self.store.lock().unwrap().len() } - pub fn load(&self) -> crate::Result<()> { - self.store.lock().unwrap().load(self.deserialize) + /// Returns true if the store contains no elements. + pub fn is_empty(&self) -> bool { + self.store.lock().unwrap().is_empty() } + /// Update the store from the on-disk state + pub fn reload(&self) -> crate::Result<()> { + self.store.lock().unwrap().load() + } + + /// Saves the store to disk at the store's `path`. pub fn save(&self) -> crate::Result<()> { if let Some(sender) = self.auto_save_debounce_sender.lock().unwrap().take() { let _ = sender.send(AutoSaveMessage::Cancel); } - self.store.lock().unwrap().save(self.serialize) + self.store.lock().unwrap().save() + } + + /// Removes the store from the resource table + pub fn close_resource(&self) { + let store = self.store.lock().unwrap(); + let app = store.app.clone(); + let state = app.state::(); + let stores = state.stores.lock().unwrap(); + if let Some(rid) = stores.get(&store.path).copied() { + drop(store); + drop(stores); + let _ = app.resources_table().close(rid); + } } fn trigger_auto_save(&self) -> crate::Result<()> { @@ -459,7 +540,6 @@ impl Store { auto_save_debounce_sender.replace(sender); drop(auto_save_debounce_sender); let store = self.store.clone(); - let serialize_fn = self.serialize; let auto_save_debounce_sender = self.auto_save_debounce_sender.clone(); tauri::async_runtime::spawn(async move { loop { @@ -471,7 +551,7 @@ impl Store { } _ = sleep(auto_save_delay) => { auto_save_debounce_sender.lock().unwrap().take(); - let _ = store.lock().unwrap().save(serialize_fn); + let _ = store.lock().unwrap().save(); return; } }; @@ -479,4 +559,18 @@ impl Store { }); Ok(()) } + + fn apply_pending_auto_save(&self) { + // Cancel and save if auto save is pending + if let Some(sender) = self.auto_save_debounce_sender.lock().unwrap().take() { + let _ = sender.send(AutoSaveMessage::Cancel); + let _ = self.save(); + }; + } +} + +impl Drop for Store { + fn drop(&mut self) { + self.apply_pending_auto_save(); + } } From 1c2f137a8a26136b98c5f51ac4de1a736fa80b76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:12:38 +0800 Subject: [PATCH 632/643] chore(deps): lock file maintenance (#1929) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 265 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 191 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01113a82b..c82086558 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.13" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e614738943d3f68c628ae3dbce7c3daffb196665f82f8c8ea6b65de73c79429" +checksum = "103db485efc3e41214fe4fda9f3dbeae2eb9082f48fd236e6095627a9422066e" dependencies = [ "brotli 7.0.0", "flate2", @@ -598,9 +598,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" dependencies = [ "arrayvec", ] @@ -867,9 +867,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" [[package]] name = "byteorder" @@ -961,9 +961,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.28" +version = "1.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" +checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" dependencies = [ "jobserver", "libc", @@ -2895,9 +2895,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -3029,9 +3029,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "d97eb9a8e0cd5b76afea91d7eecd5cf8338cd44ced04256cf1f800474b227c52" dependencies = [ "bytemuck", "byteorder-lite", @@ -3052,9 +3052,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" dependencies = [ "byteorder-lite", "quick-error 2.0.1", @@ -3062,9 +3062,9 @@ dependencies = [ [[package]] name = "imgref" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" +checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" [[package]] name = "indexmap" @@ -3330,9 +3330,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -3458,9 +3458,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.159" +version = "0.2.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "f0b21006cd1874ae9e650973c565615676dc4a274c965bb0a73796dac838ce4f" [[package]] name = "libflate" @@ -3536,9 +3536,9 @@ dependencies = [ [[package]] name = "libsodium-sys-stable" -version = "1.21.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42631d334de875c636a1aae7adb515653ac2e771e5a2ce74b1053f5a4412df3a" +checksum = "90e7b5bc5a90cb1a680d8b0340f935d575292b8458e077f8da8cf134289d7dcf" dependencies = [ "cc", "libc", @@ -3935,9 +3935,9 @@ dependencies = [ [[package]] name = "notify-debouncer-full" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f5dab59c348b9b50cf7f261960a20e389feb2713636399cd9082cd4b536154" +checksum = "fb7fd166739789c9ff169e654dc1501373db9d80a4c3f972817c8a4d7cf8f34e" dependencies = [ "crossbeam-channel", "file-id", @@ -4100,6 +4100,9 @@ name = "objc-sys" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" +dependencies = [ + "cc", +] [[package]] name = "objc2" @@ -4127,6 +4130,30 @@ dependencies = [ "objc2-quartz-core", ] +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -4151,6 +4178,18 @@ dependencies = [ "objc2-metal", ] +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + [[package]] name = "objc2-encode" version = "4.0.3" @@ -4170,6 +4209,18 @@ dependencies = [ "objc2", ] +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + [[package]] name = "objc2-metal" version = "0.2.2" @@ -4195,6 +4246,74 @@ dependencies = [ "objc2-metal", ] +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + [[package]] name = "objc_id" version = "0.1.1" @@ -4238,9 +4357,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -4279,9 +4398,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -4399,9 +4518,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "pbkdf2" @@ -4749,27 +4868,27 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.87" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" +checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" +checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" dependencies = [ "quote", "syn 2.0.79", @@ -5242,9 +5361,6 @@ name = "rgb" version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", -] [[package]] name = "ring" @@ -5402,9 +5518,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.14" +version = "0.23.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" +checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" dependencies = [ "once_cell", "ring", @@ -5438,9 +5554,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -6490,9 +6606,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.2" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5920aad0804ea5e86808d4b6e8753d3bcbae7efc8f4e41a4da00b45427559868" +checksum = "44438500b50708bfc1e6083844e135d1b516325aae58710dcd8fb67e050ae87c" dependencies = [ "anyhow", "bytes", @@ -7086,9 +7202,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af12ad1af974b274ef1d32a94e6eba27a312b429ef28fcb98abc710df7f9151d" +checksum = "c8f437293d6f5e5dce829250f4dbdce4e0b52905e297a6689cc2963eb53ac728" dependencies = [ "dpi", "gtk", @@ -7105,9 +7221,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45e88aa0b11b302d836e6ea3e507a6359044c4a8bc86b865ba99868c695753d" +checksum = "1431602bcc71f2f840ad623915c9842ecc32999b867c4a787d975a17a9625cc6" dependencies = [ "gtk", "http", @@ -7533,9 +7649,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533fc2d4105e0e3d96ce1c71f2d308c9fbbe2ef9c587cab63dd627ab5bde218f" +checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" dependencies = [ "core-graphics 0.24.0", "crossbeam-channel", @@ -7782,9 +7898,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom 0.2.15", "serde", @@ -7893,9 +8009,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -7904,9 +8020,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", @@ -7919,9 +8035,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -7931,9 +8047,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7941,9 +8057,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", @@ -7954,9 +8070,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" @@ -8033,9 +8149,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -8668,14 +8784,12 @@ dependencies = [ [[package]] name = "wry" -version = "0.44.1" +version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440600584cfbd8b0d28eace95c1f2c253db05dae43780b79380aa1e868f04c73" +checksum = "6fa1c8c760041c64ce6be99f83d6cb55fe3fcd85a1ad46d32895f6e65cee87ba" dependencies = [ "base64 0.22.1", - "block", - "cocoa", - "core-graphics 0.24.0", + "block2", "crossbeam-channel", "dpi", "dunce", @@ -8688,8 +8802,11 @@ dependencies = [ "kuchikiki", "libc", "ndk", - "objc", - "objc_id", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", "once_cell", "percent-encoding", "raw-window-handle", From 854754e10b24369adfbeadafc5d5cd288334ab7c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:13:06 +0800 Subject: [PATCH 633/643] chore(deps): update dependency typescript-eslint to v8.10.0 (#1949) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 1d1897fbe..a14444083 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "rollup": "4.22.4", "tslib": "2.7.0", "typescript": "5.6.3", - "typescript-eslint": "8.9.0" + "typescript-eslint": "8.10.0" }, "resolutions": { "semver": ">=7.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a975f4316..5b1034bf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: 5.6.3 version: 5.6.3 typescript-eslint: - specifier: 8.9.0 - version: 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + specifier: 8.10.0 + version: 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) examples/api: dependencies: @@ -1028,8 +1028,8 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@8.9.0': - resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==} + '@typescript-eslint/eslint-plugin@8.10.0': + resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1039,8 +1039,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.9.0': - resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==} + '@typescript-eslint/parser@8.10.0': + resolution: {integrity: sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1049,12 +1049,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.9.0': - resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} + '@typescript-eslint/scope-manager@8.10.0': + resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.9.0': - resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==} + '@typescript-eslint/type-utils@8.10.0': + resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1062,12 +1062,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.9.0': - resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} + '@typescript-eslint/types@8.10.0': + resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.9.0': - resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} + '@typescript-eslint/typescript-estree@8.10.0': + resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1075,14 +1075,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.9.0': - resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} + '@typescript-eslint/utils@8.10.0': + resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.9.0': - resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} + '@typescript-eslint/visitor-keys@8.10.0': + resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/astro@0.63.1': @@ -2145,8 +2145,8 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - typescript-eslint@8.9.0: - resolution: {integrity: sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==} + typescript-eslint@8.10.0: + resolution: {integrity: sha512-YIu230PeN7z9zpu/EtqCIuRVHPs4iSlqW6TEvjbyDAE3MZsSl2RXBo+5ag+lbABCG8sFM1WVKEXhlQ8Ml8A3Fw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2857,14 +2857,14 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/parser': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/type-utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.10.0 eslint: 9.12.0(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 @@ -2875,12 +2875,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.10.0 debug: 4.3.7(supports-color@8.1.1) eslint: 9.12.0(jiti@2.0.0) optionalDependencies: @@ -2888,15 +2888,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.9.0': + '@typescript-eslint/scope-manager@8.10.0': dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 - '@typescript-eslint/type-utils@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -2905,12 +2905,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.9.0': {} + '@typescript-eslint/types@8.10.0': {} - '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -2922,20 +2922,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) eslint: 9.12.0(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.9.0': + '@typescript-eslint/visitor-keys@8.10.0': dependencies: - '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/types': 8.10.0 eslint-visitor-keys: 3.4.3 '@unocss/astro@0.63.1(rollup@4.22.4)(vite@5.4.8(terser@5.34.1))': @@ -4137,11 +4137,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3): + typescript-eslint@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: From 36207a93f34c45fae506e2df16b0cea82cb56aab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:14:14 +0800 Subject: [PATCH 634/643] chore(deps): update dependency @tauri-apps/cli to v2.0.3 (#1925) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/api/package.json | 2 +- plugins/deep-link/examples/app/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 106 +++++++++--------- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index 690c19f92..33468570a 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -33,7 +33,7 @@ "@iconify-json/codicon": "^1.1.37", "@iconify-json/ph": "^1.1.8", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@tauri-apps/cli": "2.0.2", + "@tauri-apps/cli": "2.0.3", "@unocss/extractor-svelte": "^0.63.0", "svelte": "^4.2.19", "unocss": "^0.63.0", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 2ef38bd34..5b9e8efc4 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -14,7 +14,7 @@ "@tauri-apps/plugin-deep-link": "2.0.0" }, "devDependencies": { - "@tauri-apps/cli": "2.0.2", + "@tauri-apps/cli": "2.0.3", "typescript": "^5.2.2", "vite": "^5.4.7" } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 5b736d55d..7b0d2c5d5 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.0.2" + "@tauri-apps/cli": "2.0.3" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index e36d1bb30..cd2cb1984 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.0.2", + "@tauri-apps/cli": "2.0.3", "vite": "^5.0.12", "typescript": "^5.4.7" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index 4bfbdfd58..e0d196e99 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.0.2", + "@tauri-apps/cli": "2.0.3", "typescript": "^5.3.3", "vite": "^5.4.7" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b1034bf3..e6b89a14e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,8 +125,8 @@ importers: specifier: ^3.0.1 version: 3.1.2(svelte@4.2.19)(vite@5.4.8(terser@5.34.1)) '@tauri-apps/cli': - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 '@unocss/extractor-svelte': specifier: ^0.63.0 version: 0.63.1 @@ -186,8 +186,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 typescript: specifier: ^5.2.2 version: 5.6.3 @@ -276,8 +276,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 plugins/sql: dependencies: @@ -294,8 +294,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 typescript: specifier: ^5.4.7 version: 5.6.3 @@ -334,8 +334,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 typescript: specifier: ^5.3.3 version: 5.6.3 @@ -939,68 +939,68 @@ packages: '@tauri-apps/api@2.0.2': resolution: {integrity: sha512-3wSwmG+1kr6WrgAFKK5ijkNFPp8TT3FLj3YHUb5EwMO+3FxX4uWlfSWkeeBy+Kc1RsKzugtYLuuya+98Flj+3w==} - '@tauri-apps/cli-darwin-arm64@2.0.2': - resolution: {integrity: sha512-B+/a8Q6wAqmB4A4HVeK0oQP5TdQGKW60ZLOI9O2ktH2HPr9ETr3XkwXPuJ2uAOuGEgtRZHBgFOIgG000vMnKlg==} + '@tauri-apps/cli-darwin-arm64@2.0.3': + resolution: {integrity: sha512-jIsbxGWS+As1ZN7umo90nkql/ZAbrDK0GBT6UsgHSz5zSwwArICsZFFwE1pLZip5yoiV5mn3TGG2c1+v+0puzQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.0.2': - resolution: {integrity: sha512-kaurhn6XT4gAVCPAQSSHl/CHFxTS0ljc47N7iGTSlYJ03sCWPRZeNuVa/bn6rolz9MA2JfnRnFqB1pUL6jzp9Q==} + '@tauri-apps/cli-darwin-x64@2.0.3': + resolution: {integrity: sha512-ROITHtLTA1muyrwgyuwyasmaLCGtT4as/Kd1kerXaSDtFcYrnxiM984ZD0+FDUEDl5BgXtYa/sKKkKQFjgmM0A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.2': - resolution: {integrity: sha512-bVrofjlacMxmGMcqK18iBW05tsZXOd19/MnqruFFcHSVjvkGGIXHMtUbMXnZNXBPkHDsnfytNtkY9SZGfCFaBA==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.3': + resolution: {integrity: sha512-bQ3EZwCFfrLg/ZQ2I8sLuifSxESz4TP56SleTkKsPtTIZgNnKpM88PRDz4neiRroHVOq8NK0X276qi9LjGcXPw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.0.2': - resolution: {integrity: sha512-7XCBn0TTBVQGnV42dXcbHPLg/9W8kJoVzuliIozvNGyRWxfXqDbQYzpI48HUQG3LgHMabcw8+pVZAfGhevLrCA==} + '@tauri-apps/cli-linux-arm64-gnu@2.0.3': + resolution: {integrity: sha512-aLfAA8P9OTErVUk3sATxtXqpAtlfDPMPp4fGjDysEELG/MyekGhmh2k/kG/i32OdPeCfO+Nr37wJksARJKubGw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.0.2': - resolution: {integrity: sha512-1xi2SreGVlpAL68MCsDUY63rdItUdPZreXIAcOVqvUehcJRYOa1XGSBhrV0YXRgZeh0AtKC19z6PRzcv4rosZA==} + '@tauri-apps/cli-linux-arm64-musl@2.0.3': + resolution: {integrity: sha512-I4MVD7nf6lLLRmNQPpe5beEIFM6q7Zkmh77ROA5BNu/+vHNL5kiTMD+bmd10ZL2r753A6pO7AvqkIxcBuIl0tg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.0.2': - resolution: {integrity: sha512-WVjwYzPWFqZVg1fx6KSU5w47Q0VbMyaCp34qs5EcS8EIU0/RnofdzqUoOYqvgGVgNgoz7Pj5dXK2SkS8BHXMmA==} + '@tauri-apps/cli-linux-x64-gnu@2.0.3': + resolution: {integrity: sha512-C6Jkx2zZGKkoi+sg5FK9GoH/0EvAaOgrZfF5azV5EALGba46g7VpWcZgp9zFUd7K2IzTi+0OOY8TQ2OVfKZgew==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.0.2': - resolution: {integrity: sha512-h5miE2mctgaQNn/BbG9o1pnJcrx+VGBi2A6JFqGu934lFgSV5+s28M8Gc8AF2JgFH4hQV4IuMkeSw8Chu5Dodg==} + '@tauri-apps/cli-linux-x64-musl@2.0.3': + resolution: {integrity: sha512-qi4ghmTfSAl+EEUDwmwI9AJUiOLNSmU1RgiGgcPRE+7A/W+Am9UnxYySAiRbB/gJgTl9sj/pqH5Y9duP1/sqHg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.0.2': - resolution: {integrity: sha512-2b8oO0+dYonahG5PfA/zoq0zlafLclfmXgqoWDZ++UiPtQHJNpNeEQ8GWbSFKGHQ494Jo6jHvazOojGRE1kqAg==} + '@tauri-apps/cli-win32-arm64-msvc@2.0.3': + resolution: {integrity: sha512-UXxHkYmFesC97qVmZre4vY7oDxRDtC2OeKNv0bH+iSnuUp/ROxzJYGyaelnv9Ybvgl4YVqDCnxgB28qMM938TA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.0.2': - resolution: {integrity: sha512-axgICLunFi0To3EibdCBgbST5RocsSmtM4c04+CbcX8WQQosJ9ziWlCSrrOTRr+gJERAMSvEyVUS98f6bWMw9A==} + '@tauri-apps/cli-win32-ia32-msvc@2.0.3': + resolution: {integrity: sha512-D+xoaa35RGlkXDpnL5uDTpj29untuC5Wp6bN9snfgFDagD0wnFfC8+2ZQGu16bD0IteWqDI0OSoIXhNvy+F+wg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.0.2': - resolution: {integrity: sha512-JR17cM6+DyExZRgpXr2/DdqvcFYi/EKvQt8dI5R1/uQoesWd8jeNnrU7c1FG1Zmw9+pTzDztsNqEKsrNq2sNIg==} + '@tauri-apps/cli-win32-x64-msvc@2.0.3': + resolution: {integrity: sha512-eWV9XWb4dSYHXl13OtYWLjX1JHphUEkHkkGwJrhr8qFBm7RbxXxQvrsUEprSi51ug/dwJenjJgM4zR8By4htfw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.0.2': - resolution: {integrity: sha512-R4ontHZvXORArERAHIidp5zRfZEshZczTiK+poslBv7AGKpQZoMw+E49zns7mOmP64i2Cq9Ci0pJvi4Rm8Okzw==} + '@tauri-apps/cli@2.0.3': + resolution: {integrity: sha512-JwEyhc5BAVpn4E8kxzY/h7+bVOiXQdudR1r3ODMfyyumZBfgIWqpD/WuTcPq6Yjchju1BSS+80jAE/oYwI/RKg==} engines: {node: '>= 10'} hasBin: true @@ -2791,48 +2791,48 @@ snapshots: '@tauri-apps/api@2.0.2': {} - '@tauri-apps/cli-darwin-arm64@2.0.2': + '@tauri-apps/cli-darwin-arm64@2.0.3': optional: true - '@tauri-apps/cli-darwin-x64@2.0.2': + '@tauri-apps/cli-darwin-x64@2.0.3': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.2': + '@tauri-apps/cli-linux-arm-gnueabihf@2.0.3': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.2': + '@tauri-apps/cli-linux-arm64-gnu@2.0.3': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.2': + '@tauri-apps/cli-linux-arm64-musl@2.0.3': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.2': + '@tauri-apps/cli-linux-x64-gnu@2.0.3': optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.2': + '@tauri-apps/cli-linux-x64-musl@2.0.3': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.2': + '@tauri-apps/cli-win32-arm64-msvc@2.0.3': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.2': + '@tauri-apps/cli-win32-ia32-msvc@2.0.3': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.2': + '@tauri-apps/cli-win32-x64-msvc@2.0.3': optional: true - '@tauri-apps/cli@2.0.2': + '@tauri-apps/cli@2.0.3': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.2 - '@tauri-apps/cli-darwin-x64': 2.0.2 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.2 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.2 - '@tauri-apps/cli-linux-arm64-musl': 2.0.2 - '@tauri-apps/cli-linux-x64-gnu': 2.0.2 - '@tauri-apps/cli-linux-x64-musl': 2.0.2 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.2 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.2 - '@tauri-apps/cli-win32-x64-msvc': 2.0.2 + '@tauri-apps/cli-darwin-arm64': 2.0.3 + '@tauri-apps/cli-darwin-x64': 2.0.3 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.3 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.3 + '@tauri-apps/cli-linux-arm64-musl': 2.0.3 + '@tauri-apps/cli-linux-x64-gnu': 2.0.3 + '@tauri-apps/cli-linux-x64-musl': 2.0.3 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.3 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.3 + '@tauri-apps/cli-win32-x64-msvc': 2.0.3 '@types/eslint@9.6.1': dependencies: From 415bf2abc340f47816029e3b261d9420e1cb6427 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 16:54:34 +0800 Subject: [PATCH 635/643] chore(deps): update eslint monorepo to v9.13.0 (#1951) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 76 +++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index a14444083..3daae86cf 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ "format:check": "prettier --check ." }, "devDependencies": { - "@eslint/js": "9.12.0", + "@eslint/js": "9.13.0", "@rollup/plugin-node-resolve": "15.3.0", "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@types/eslint__js": "8.42.3", "covector": "^0.12.3", - "eslint": "9.12.0", + "eslint": "9.13.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-security": "3.0.1", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6b89a14e..5d1da82d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.12.0 - version: 9.12.0 + specifier: 9.13.0 + version: 9.13.0 '@rollup/plugin-node-resolve': specifier: 15.3.0 version: 15.3.0(rollup@4.22.4) @@ -31,11 +31,11 @@ importers: specifier: ^0.12.3 version: 0.12.3(mocha@10.7.3) eslint: - specifier: 9.12.0 - version: 9.12.0(jiti@2.0.0) + specifier: 9.13.0 + version: 9.13.0(jiti@2.0.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.12.0(jiti@2.0.0)) + version: 9.1.0(eslint@9.13.0(jiti@2.0.0)) eslint-plugin-security: specifier: 3.0.1 version: 3.0.1 @@ -53,7 +53,7 @@ importers: version: 5.6.3 typescript-eslint: specifier: 8.10.0 - version: 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + version: 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) examples/api: dependencies: @@ -717,16 +717,16 @@ packages: resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.6.0': - resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.12.0': - resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1431,8 +1431,8 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.12.0: - resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2575,9 +2575,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.0.0))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.0.0))': dependencies: - eslint: 9.12.0(jiti@2.0.0) + eslint: 9.13.0(jiti@2.0.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -2590,7 +2590,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.6.0': {} + '@eslint/core@0.7.0': {} '@eslint/eslintrc@3.1.0': dependencies: @@ -2606,7 +2606,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.12.0': {} + '@eslint/js@9.13.0': {} '@eslint/object-schema@2.1.4': {} @@ -2857,15 +2857,15 @@ snapshots: '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.10.0 - '@typescript-eslint/type-utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.10.0 - eslint: 9.12.0(jiti@2.0.0) + eslint: 9.13.0(jiti@2.0.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -2875,14 +2875,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.10.0 debug: 4.3.7(supports-color@8.1.1) - eslint: 9.12.0(jiti@2.0.0) + eslint: 9.13.0(jiti@2.0.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -2893,10 +2893,10 @@ snapshots: '@typescript-eslint/types': 8.10.0 '@typescript-eslint/visitor-keys': 8.10.0 - '@typescript-eslint/type-utils@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -2922,13 +2922,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.0.0)) '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) - eslint: 9.12.0(jiti@2.0.0) + eslint: 9.13.0(jiti@2.0.0) transitivePeerDependencies: - supports-color - typescript @@ -3371,9 +3371,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@2.0.0)): + eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.0.0)): dependencies: - eslint: 9.12.0(jiti@2.0.0) + eslint: 9.13.0(jiti@2.0.0) eslint-plugin-security@3.0.1: dependencies: @@ -3388,14 +3388,14 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.12.0(jiti@2.0.0): + eslint@9.13.0(jiti@2.0.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.0.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.0.0)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 + '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.12.0 + '@eslint/js': 9.13.0 '@eslint/plugin-kit': 0.2.0 '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 @@ -4137,11 +4137,11 @@ snapshots: type-fest@0.7.1: {} - typescript-eslint@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3): + typescript-eslint@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/parser': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.10.0(eslint@9.12.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3))(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.0.0))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: From 44c50c1275335bd4f785e9c8eff1ee4cb03d394f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 17:28:39 +0800 Subject: [PATCH 636/643] chore(deps): update rust crate tauri to 2.0.4 (#1952) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 8cdb23a94..a17d33eaf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } log = "0.4" -tauri = { version = "2.0.2", default-features = false } +tauri = { version = "2.0.4", default-features = false } tauri-build = "2.0.1" tauri-plugin = "2.0.1" tauri-utils = "2.0.1" From 2302c2db1c49673e61dcbda8cdb01b2c57e9ba6f Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Sun, 20 Oct 2024 19:48:45 +0800 Subject: [PATCH 637/643] fix(dialog): `ask` and `confirm` not using system button texts (#1910) * Fix `ask`'s button texts being ok and cancel * Update change file --- .changes/dialog-native-button-texts.md | 6 ++++ plugins/dialog/api-iife.js | 2 +- plugins/dialog/guest-js/index.ts | 8 ++--- plugins/dialog/src/commands.rs | 44 ++++++++++++++------------ plugins/dialog/src/desktop.rs | 1 + plugins/dialog/src/lib.rs | 3 ++ plugins/dialog/src/models.rs | 2 ++ 7 files changed, 40 insertions(+), 26 deletions(-) create mode 100644 .changes/dialog-native-button-texts.md diff --git a/.changes/dialog-native-button-texts.md b/.changes/dialog-native-button-texts.md new file mode 100644 index 000000000..f8e055bcb --- /dev/null +++ b/.changes/dialog-native-button-texts.md @@ -0,0 +1,6 @@ +--- +"dialog": "patch" +"dialog-js": "patch" +--- + +Fix `ask` and `confirm` not using system button texts diff --git a/plugins/dialog/api-iife.js b/plugins/dialog/api-iife.js index ee6045707..c2e0870c8 100644 --- a/plugins/dialog/api-iife.js +++ b/plugins/dialog/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_DIALOG__=function(t){"use strict";async function n(t,n={},e){return window.__TAURI_INTERNALS__.invoke(t,n,e)}return"function"==typeof SuppressedError&&SuppressedError,t.ask=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|ask",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()??"Yes",cancelButtonLabel:i?.cancelLabel?.toString()??"No"})},t.confirm=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|confirm",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()??"Ok",cancelButtonLabel:i?.cancelLabel?.toString()??"Cancel"})},t.message=async function(t,e){const i="string"==typeof e?{title:e}:e;await n("plugin:dialog|message",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()})},t.open=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|open",{options:t})},t.save=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|save",{options:t})},t}({});Object.defineProperty(window.__TAURI__,"dialog",{value:__TAURI_PLUGIN_DIALOG__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_DIALOG__=function(t){"use strict";async function n(t,n={},e){return window.__TAURI_INTERNALS__.invoke(t,n,e)}return"function"==typeof SuppressedError&&SuppressedError,t.ask=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|ask",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,yesButtonLabel:i?.okLabel?.toString(),noButtonLabel:i?.cancelLabel?.toString()})},t.confirm=async function(t,e){const i="string"==typeof e?{title:e}:e;return await n("plugin:dialog|confirm",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString(),cancelButtonLabel:i?.cancelLabel?.toString()})},t.message=async function(t,e){const i="string"==typeof e?{title:e}:e;await n("plugin:dialog|message",{message:t.toString(),title:i?.title?.toString(),kind:i?.kind,okButtonLabel:i?.okLabel?.toString()})},t.open=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|open",{options:t})},t.save=async function(t={}){return"object"==typeof t&&Object.freeze(t),await n("plugin:dialog|save",{options:t})},t}({});Object.defineProperty(window.__TAURI__,"dialog",{value:__TAURI_PLUGIN_DIALOG__})} diff --git a/plugins/dialog/guest-js/index.ts b/plugins/dialog/guest-js/index.ts index a6301ebee..150be95a0 100644 --- a/plugins/dialog/guest-js/index.ts +++ b/plugins/dialog/guest-js/index.ts @@ -257,8 +257,8 @@ async function ask( message: message.toString(), title: opts?.title?.toString(), kind: opts?.kind, - okButtonLabel: opts?.okLabel?.toString() ?? 'Yes', - cancelButtonLabel: opts?.cancelLabel?.toString() ?? 'No' + yesButtonLabel: opts?.okLabel?.toString(), + noButtonLabel: opts?.cancelLabel?.toString() }) } @@ -287,8 +287,8 @@ async function confirm( message: message.toString(), title: opts?.title?.toString(), kind: opts?.kind, - okButtonLabel: opts?.okLabel?.toString() ?? 'Ok', - cancelButtonLabel: opts?.cancelLabel?.toString() ?? 'Cancel' + okButtonLabel: opts?.okLabel?.toString(), + cancelButtonLabel: opts?.cancelLabel?.toString() }) } diff --git a/plugins/dialog/src/commands.rs b/plugins/dialog/src/commands.rs index 8690a8b02..4129b7b6a 100644 --- a/plugins/dialog/src/commands.rs +++ b/plugins/dialog/src/commands.rs @@ -10,7 +10,7 @@ use tauri_plugin_fs::FsExt; use crate::{ Dialog, FileDialogBuilder, FilePath, MessageDialogButtons, MessageDialogKind, Result, CANCEL, - OK, + NO, OK, YES, }; #[derive(Serialize)] @@ -299,8 +299,8 @@ pub(crate) async fn ask( title: Option, message: String, kind: Option, - ok_button_label: Option, - cancel_button_label: Option, + yes_button_label: Option, + no_button_label: Option, ) -> Result { Ok(message_dialog( window, @@ -308,7 +308,16 @@ pub(crate) async fn ask( title, message, kind, - get_ok_cancel_type(ok_button_label, cancel_button_label), + if let Some(yes_button_label) = yes_button_label { + MessageDialogButtons::OkCancelCustom( + yes_button_label, + no_button_label.unwrap_or(NO.to_string()), + ) + } else if let Some(no_button_label) = no_button_label { + MessageDialogButtons::OkCancelCustom(YES.to_string(), no_button_label) + } else { + MessageDialogButtons::YesNo + }, )) } @@ -328,22 +337,15 @@ pub(crate) async fn confirm( title, message, kind, - get_ok_cancel_type(ok_button_label, cancel_button_label), + if let Some(ok_button_label) = ok_button_label { + MessageDialogButtons::OkCancelCustom( + ok_button_label, + cancel_button_label.unwrap_or(CANCEL.to_string()), + ) + } else if let Some(cancel_button_label) = cancel_button_label { + MessageDialogButtons::OkCancelCustom(OK.to_string(), cancel_button_label) + } else { + MessageDialogButtons::OkCancel + }, )) } - -fn get_ok_cancel_type( - ok_button_label: Option, - cancel_button_label: Option, -) -> MessageDialogButtons { - if let Some(ok_button_label) = ok_button_label { - MessageDialogButtons::OkCancelCustom( - ok_button_label, - cancel_button_label.unwrap_or(CANCEL.to_string()), - ) - } else if let Some(cancel_button_label) = cancel_button_label { - MessageDialogButtons::OkCancelCustom(OK.to_string(), cancel_button_label) - } else { - MessageDialogButtons::OkCancel - } -} diff --git a/plugins/dialog/src/desktop.rs b/plugins/dialog/src/desktop.rs index d30f6bfee..d1a3e8b21 100644 --- a/plugins/dialog/src/desktop.rs +++ b/plugins/dialog/src/desktop.rs @@ -112,6 +112,7 @@ impl From for rfd::MessageButtons { match value { MessageDialogButtons::Ok => Self::Ok, MessageDialogButtons::OkCancel => Self::OkCancel, + MessageDialogButtons::YesNo => Self::YesNo, MessageDialogButtons::OkCustom(ok) => Self::OkCustom(ok), MessageDialogButtons::OkCancelCustom(ok, cancel) => Self::OkCancelCustom(ok, cancel), } diff --git a/plugins/dialog/src/lib.rs b/plugins/dialog/src/lib.rs index a7538e1b1..3d7464d90 100644 --- a/plugins/dialog/src/lib.rs +++ b/plugins/dialog/src/lib.rs @@ -43,6 +43,8 @@ use mobile::*; pub(crate) const OK: &str = "Ok"; pub(crate) const CANCEL: &str = "Cancel"; +pub(crate) const YES: &str = "Yes"; +pub(crate) const NO: &str = "No"; macro_rules! blocking_fn { ($self:ident, $fn:ident) => {{ @@ -236,6 +238,7 @@ impl MessageDialogBuilder { let (ok_button_label, cancel_button_label) = match &self.buttons { MessageDialogButtons::Ok => (Some(OK), None), MessageDialogButtons::OkCancel => (Some(OK), Some(CANCEL)), + MessageDialogButtons::YesNo => (Some(YES), Some(NO)), MessageDialogButtons::OkCustom(ok) => (Some(ok.as_str()), Some(CANCEL)), MessageDialogButtons::OkCancelCustom(ok, cancel) => { (Some(ok.as_str()), Some(cancel.as_str())) diff --git a/plugins/dialog/src/models.rs b/plugins/dialog/src/models.rs index 3f9eb6c13..d6452bce7 100644 --- a/plugins/dialog/src/models.rs +++ b/plugins/dialog/src/models.rs @@ -59,6 +59,8 @@ pub enum MessageDialogButtons { Ok, /// 2 buttons `Ok` and `Cancel` with OS default dialog texts OkCancel, + /// 2 buttons `Yes` and `No` with OS default dialog texts + YesNo, /// A single `Ok` button with custom text OkCustom(String), /// 2 buttons `Ok` and `Cancel` with custom texts From ae8024565f074f313084777c8b10d1b5e3bbe220 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Sun, 20 Oct 2024 14:49:01 +0300 Subject: [PATCH 638/643] perf(fs): improve `FileHandle.read` performance (#1950) * perf(fs): improve `FileHandle.read` performance * handle different target pointer width * improve `writeTextFile` performance * revert packageManager field * change file --------- Co-authored-by: Lucas Nogueira --- .changes/fs-perf.md | 6 ++ plugins/fs/api-iife.js | 2 +- plugins/fs/guest-js/index.ts | 42 +++++++++++-- plugins/fs/src/commands.rs | 111 +++++++++++++++++++---------------- 4 files changed, 104 insertions(+), 57 deletions(-) create mode 100644 .changes/fs-perf.md diff --git a/.changes/fs-perf.md b/.changes/fs-perf.md new file mode 100644 index 000000000..3d4e82c37 --- /dev/null +++ b/.changes/fs-perf.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"fs-js": patch +--- + +Improve performance of the `FileHandle.read` and `writeTextFile` APIs. diff --git a/plugins/fs/api-iife.js b/plugins/fs/api-iife.js index b855277dd..e863d7a93 100644 --- a/plugins/fs/api-iife.js +++ b/plugins/fs/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const[e,n]=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength});return t.set(e),0===n?null:n}async seek(t,e){return await l("plugin:fs|seek",{rid:this.rid,offset:t,whence:e})}async stat(){return p(await l("plugin:fs|fstat",{rid:this.rid}))}async truncate(t){await l("plugin:fs|ftruncate",{rid:this.rid,len:t})}async write(t){return await l("plugin:fs|write",{rid:this.rid,data:t})}}async function h(t){await l("plugin:fs|unwatch",{rid:t})}return t.FileHandle=w,t.copyFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|copy_file",{fromPath:t instanceof URL?t.toString():t,toPath:e instanceof URL?e.toString():e,options:n})},t.create=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|create",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.exists=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|exists",{path:t instanceof URL?t.toString():t,options:e})},t.lstat=async function(t,e){return p(await l("plugin:fs|lstat",{path:t instanceof URL?t.toString():t,options:e}))},t.mkdir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|mkdir",{path:t instanceof URL?t.toString():t,options:e})},t.open=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|open",{path:t instanceof URL?t.toString():t,options:e});return new w(n)},t.readDir=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_dir",{path:t instanceof URL?t.toString():t,options:e})},t.readFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=await l("plugin:fs|read_file",{path:t instanceof URL?t.toString():t,options:e});return n instanceof ArrayBuffer?new Uint8Array(n):Uint8Array.from(n)},t.readTextFile=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");return await l("plugin:fs|read_text_file",{path:t instanceof URL?t.toString():t,options:e})},t.readTextFileLines=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const n=t instanceof URL?t.toString():t;return await Promise.resolve({path:n,rid:null,async next(){null===this.rid&&(this.rid=await l("plugin:fs|read_text_file_lines",{path:n,options:e}));const[t,i]=await l("plugin:fs|read_text_file_lines_next",{rid:this.rid});return i&&(this.rid=null),{value:i?"":t,done:i}},[Symbol.asyncIterator](){return this}})},t.remove=async function(t,e){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|remove",{path:t instanceof URL?t.toString():t,options:e})},t.rename=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol||e instanceof URL&&"file:"!==e.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|rename",{oldPath:t instanceof URL?t.toString():t,newPath:e instanceof URL?e.toString():e,options:n})},t.stat=async function(t,e){return p(await l("plugin:fs|stat",{path:t instanceof URL?t.toString():t,options:e}))},t.truncate=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|truncate",{path:t instanceof URL?t.toString():t,len:e,options:n})},t.watch=async function(t,e,n){const i={recursive:!1,delayMs:2e3,...n},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_text_file",{path:t instanceof URL?t.toString():t,data:e,options:n})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const e=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength}),n=function(t){const e=new Uint8ClampedArray(t),n=e.byteLength;let i=0;for(let t=0;tt instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const i=new TextEncoder;await l("plugin:fs|write_text_file",i.encode(e),{headers:{path:t instanceof URL?t.toString():t,options:JSON.stringify(n)}})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index 1f314f711..57e7518d5 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -243,6 +243,25 @@ function parseFileInfo(r: UnparsedFileInfo): FileInfo { } } +// https://mstn.github.io/2018/06/08/fixed-size-arrays-in-typescript/ +type FixedSizeArray = ReadonlyArray & { + length: N +} + +// https://gist.github.com/zapthedingbat/38ebfbedd98396624e5b5f2ff462611d +/** Converts a big-endian eight byte array to number */ +function fromBytes(buffer: FixedSizeArray): number { + const bytes = new Uint8ClampedArray(buffer) + const size = bytes.byteLength + let x = 0 + for (let i = 0; i < size; i++) { + const byte = bytes[i] + x *= 0x100 + x += byte + } + return x +} + /** * The Tauri abstraction for reading and writing files. * @@ -285,12 +304,20 @@ class FileHandle extends Resource { return 0 } - const [data, nread] = await invoke<[number[], number]>('plugin:fs|read', { + const data = await invoke('plugin:fs|read', { rid: this.rid, len: buffer.byteLength }) - buffer.set(data) + // Rust side will never return an empty array for this command and + // ensure there is at least 8 elements there. + // + // This is an optimization to include the number of read bytes (as bigendian bytes) + // at the end of returned array to avoid serialization overhead of separate values. + const nread = fromBytes(data.slice(-8) as FixedSizeArray) + + const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data + buffer.set(bytes.slice(0, bytes.length - 8)) return nread === 0 ? null : nread } @@ -1041,10 +1068,13 @@ async function writeTextFile( throw new TypeError('Must be a file URL.') } - await invoke('plugin:fs|write_text_file', { - path: path instanceof URL ? path.toString() : path, - data, - options + const encoder = new TextEncoder() + + await invoke('plugin:fs|write_text_file', encoder.encode(data), { + headers: { + path: path instanceof URL ? path.toString() : path, + options: JSON.stringify(options) + } }) } diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index cb40c3eea..58f2ce629 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -9,7 +9,7 @@ use tauri::{ ipc::{CommandScope, GlobalScope}, path::BaseDirectory, utils::config::FsScope, - AppHandle, Manager, Resource, ResourceId, Runtime, Webview, + Manager, Resource, ResourceId, Runtime, Webview, }; use std::{ @@ -301,13 +301,34 @@ pub async fn read_dir( pub async fn read( webview: Webview, rid: ResourceId, - len: u32, -) -> CommandResult<(Vec, usize)> { - let mut data = vec![0; len as usize]; + len: usize, +) -> CommandResult { + let mut data = vec![0; len]; let file = webview.resources_table().get::(rid)?; let nread = StdFileResource::with_lock(&file, |mut file| file.read(&mut data)) .map_err(|e| format!("faied to read bytes from file with error: {e}"))?; - Ok((data, nread)) + + // This is an optimization to include the number of read bytes (as bigendian bytes) + // at the end of returned vector so we can use `tauri::ipc::Response` + // and avoid serialization overhead of separate values. + #[cfg(target_pointer_width = "16")] + let nread = { + let nread = nread.to_be_bytes(); + let mut out = [0; 8]; + out[6..].copy_from_slice(&nread); + }; + #[cfg(target_pointer_width = "32")] + let nread = { + let nread = nread.to_be_bytes(); + let mut out = [0; 8]; + out[4..].copy_from_slice(&nread); + }; + #[cfg(target_pointer_width = "64")] + let nread = nread.to_be_bytes(); + + data.extend(nread); + + Ok(tauri::ipc::Response::new(data)) } #[tauri::command] @@ -783,10 +804,34 @@ fn write_file_inner( webview: Webview, global_scope: &GlobalScope, command_scope: &CommandScope, - path: SafeFilePath, - data: &[u8], - options: Option, + request: tauri::ipc::Request<'_>, ) -> CommandResult<()> { + let data = match request.body() { + tauri::ipc::InvokeBody::Raw(data) => Cow::Borrowed(data), + tauri::ipc::InvokeBody::Json(serde_json::Value::Array(data)) => Cow::Owned( + data.iter() + .flat_map(|v| v.as_number().and_then(|v| v.as_u64().map(|v| v as u8))) + .collect(), + ), + _ => return Err(anyhow::anyhow!("unexpected invoke body").into()), + }; + + let path = request + .headers() + .get("path") + .ok_or_else(|| anyhow::anyhow!("missing file path").into()) + .and_then(|p| { + percent_encoding::percent_decode(p.as_ref()) + .decode_utf8() + .map_err(|_| anyhow::anyhow!("path is not a valid UTF-8").into()) + }) + .and_then(|p| SafeFilePath::from_str(&p).map_err(CommandError::from))?; + let options: Option = request + .headers() + .get("options") + .and_then(|p| p.to_str().ok()) + .and_then(|opts| serde_json::from_str(opts).ok()); + let (mut file, path) = resolve_file( &webview, global_scope, @@ -823,7 +868,7 @@ fn write_file_inner( }, )?; - file.write_all(data) + file.write_all(&data) .map_err(|e| { format!( "failed to write bytes to file at path: {} with error: {e}", @@ -840,52 +885,18 @@ pub async fn write_file( command_scope: CommandScope, request: tauri::ipc::Request<'_>, ) -> CommandResult<()> { - let data = match request.body() { - tauri::ipc::InvokeBody::Raw(data) => Cow::Borrowed(data), - tauri::ipc::InvokeBody::Json(serde_json::Value::Array(data)) => Cow::Owned( - data.iter() - .flat_map(|v| v.as_number().and_then(|v| v.as_u64().map(|v| v as u8))) - .collect(), - ), - _ => return Err(anyhow::anyhow!("unexpected invoke body").into()), - }; - - let path = request - .headers() - .get("path") - .ok_or_else(|| anyhow::anyhow!("missing file path").into()) - .and_then(|p| { - percent_encoding::percent_decode(p.as_ref()) - .decode_utf8() - .map_err(|_| anyhow::anyhow!("path is not a valid UTF-8").into()) - }) - .and_then(|p| SafeFilePath::from_str(&p).map_err(CommandError::from))?; - let options = request - .headers() - .get("options") - .and_then(|p| p.to_str().ok()) - .and_then(|opts| serde_json::from_str(opts).ok()); - write_file_inner(webview, &global_scope, &command_scope, path, &data, options) + write_file_inner(webview, &global_scope, &command_scope, request) } +// TODO, in v3, remove this command and rely on `write_file` command only #[tauri::command] pub async fn write_text_file( - #[allow(unused)] app: AppHandle, - #[allow(unused)] webview: Webview, - #[allow(unused)] global_scope: GlobalScope, - #[allow(unused)] command_scope: CommandScope, - path: SafeFilePath, - data: String, - #[allow(unused)] options: Option, + webview: Webview, + global_scope: GlobalScope, + command_scope: CommandScope, + request: tauri::ipc::Request<'_>, ) -> CommandResult<()> { - write_file_inner( - webview, - &global_scope, - &command_scope, - path, - data.as_bytes(), - options, - ) + write_file_inner(webview, &global_scope, &command_scope, request) } #[tauri::command] From 3fd283121f5ee739ac8a5149fa7e7520f992aeb0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 08:54:26 -0300 Subject: [PATCH 639/643] publish new versions (#1909) Co-authored-by: lucasfernog --- .changes/dialog-native-button-texts.md | 6 ----- .changes/fix-android-mime-type.md | 6 ----- .changes/fix-handleIconState.md | 6 ----- .changes/fs-perf.md | 6 ----- .changes/http-allow-skip-origin.md | 6 ----- .changes/http-headers-order.md | 6 ----- .changes/shell-open-hang-windows.md | 6 ----- .changes/store-plugin-rework-js-feat.md | 7 ----- .changes/store-plugin-rework.md | 23 ----------------- Cargo.lock | 16 ++++++------ examples/api/CHANGELOG.md | 10 ++++++++ examples/api/package.json | 12 ++++----- examples/api/src-tauri/CHANGELOG.md | 10 ++++++++ examples/api/src-tauri/Cargo.toml | 12 ++++----- plugins/dialog/CHANGELOG.md | 7 +++++ plugins/dialog/Cargo.toml | 4 +-- plugins/dialog/package.json | 2 +- plugins/fs/CHANGELOG.md | 4 +++ plugins/fs/Cargo.toml | 2 +- plugins/fs/package.json | 2 +- plugins/http/CHANGELOG.md | 8 ++++++ plugins/http/Cargo.toml | 4 +-- plugins/http/package.json | 2 +- plugins/persisted-scope/CHANGELOG.md | 6 +++++ plugins/persisted-scope/Cargo.toml | 4 +-- plugins/positioner/CHANGELOG.md | 4 +++ plugins/positioner/Cargo.toml | 2 +- plugins/positioner/package.json | 2 +- plugins/shell/CHANGELOG.md | 4 +++ plugins/shell/Cargo.toml | 2 +- plugins/shell/package.json | 2 +- plugins/store/CHANGELOG.md | 16 ++++++++++++ plugins/store/Cargo.toml | 2 +- plugins/store/package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++------------ 35 files changed, 123 insertions(+), 124 deletions(-) delete mode 100644 .changes/dialog-native-button-texts.md delete mode 100644 .changes/fix-android-mime-type.md delete mode 100644 .changes/fix-handleIconState.md delete mode 100644 .changes/fs-perf.md delete mode 100644 .changes/http-allow-skip-origin.md delete mode 100644 .changes/http-headers-order.md delete mode 100644 .changes/shell-open-hang-windows.md delete mode 100644 .changes/store-plugin-rework-js-feat.md delete mode 100644 .changes/store-plugin-rework.md diff --git a/.changes/dialog-native-button-texts.md b/.changes/dialog-native-button-texts.md deleted file mode 100644 index f8e055bcb..000000000 --- a/.changes/dialog-native-button-texts.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"dialog": "patch" -"dialog-js": "patch" ---- - -Fix `ask` and `confirm` not using system button texts diff --git a/.changes/fix-android-mime-type.md b/.changes/fix-android-mime-type.md deleted file mode 100644 index f9d922374..000000000 --- a/.changes/fix-android-mime-type.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"dialog": patch -"dialog-js": patch ---- - -Set `save` dialog mime type from the `filters` extensions on Android. diff --git a/.changes/fix-handleIconState.md b/.changes/fix-handleIconState.md deleted file mode 100644 index 0b5eec3d6..000000000 --- a/.changes/fix-handleIconState.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"positioner": patch -"positioner-js": patch ---- - -Added missing permission for `handleIconState` and fixed its event processing logic. diff --git a/.changes/fs-perf.md b/.changes/fs-perf.md deleted file mode 100644 index 3d4e82c37..000000000 --- a/.changes/fs-perf.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"fs-js": patch ---- - -Improve performance of the `FileHandle.read` and `writeTextFile` APIs. diff --git a/.changes/http-allow-skip-origin.md b/.changes/http-allow-skip-origin.md deleted file mode 100644 index 990622455..000000000 --- a/.changes/http-allow-skip-origin.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"http": "patch" -"http-js": "patch" ---- - -Allow skipping sending `Origin` header in HTTP requests by setting `Origin` header to an empty string when calling `fetch`. diff --git a/.changes/http-headers-order.md b/.changes/http-headers-order.md deleted file mode 100644 index 66940b832..000000000 --- a/.changes/http-headers-order.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"http": "patch" -"http-js": "patch" ---- - -Retain headers order. \ No newline at end of file diff --git a/.changes/shell-open-hang-windows.md b/.changes/shell-open-hang-windows.md deleted file mode 100644 index e9c22c688..000000000 --- a/.changes/shell-open-hang-windows.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"shell": "patch" -"shell-js": "patch" ---- - -On Windows, Fix `open` JS API hanging and freezing the app. \ No newline at end of file diff --git a/.changes/store-plugin-rework-js-feat.md b/.changes/store-plugin-rework-js-feat.md deleted file mode 100644 index 3306af24f..000000000 --- a/.changes/store-plugin-rework-js-feat.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"store-js": minor:feat ---- - -- Add `getStore` -- Add an option to use pre-stored (de)serialize functions (registered on rust) -- Add `LazyStore` diff --git a/.changes/store-plugin-rework.md b/.changes/store-plugin-rework.md deleted file mode 100644 index 0d9584afb..000000000 --- a/.changes/store-plugin-rework.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -"store": minor:breaking ---- - -### Breaking changes: - -- Renamed `StoreCollection` to `StoreState` -- `StoreBuilder::build` now returns a `Result` -- `StoreExt::store` now returns `Result>` - -### Enhancements: - -- Save and cancel pending auto save on drop -- Use absolute path as store's key, fix #984 -- Share store to resource table by default -- Enable auto save with 100ms debounce time by default -- Use pretty json by default, close #1690 - -### New features: - -- Add `get_store` to get shared stores across js and rust side -- Add default (de)serialize functions settings `default_serialize_fn` and `default_deserialize_fn` -- Allow js to use pre-stored (de)serialize functions registered by `register_serialize_fn` and `register_deserialize_fn` diff --git a/Cargo.lock b/Cargo.lock index c82086558..3aeae0770 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.2" +version = "2.0.3" dependencies = [ "log", "serde", @@ -6825,7 +6825,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.1" +version = "2.0.2" dependencies = [ "log", "raw-window-handle", @@ -6841,7 +6841,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.1" +version = "2.0.2" dependencies = [ "anyhow", "dunce", @@ -6901,7 +6901,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.1" +version = "2.0.2" dependencies = [ "data-url", "http", @@ -7005,7 +7005,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.1" +version = "2.0.2" dependencies = [ "aho-corasick", "bincode", @@ -7019,7 +7019,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.0.1" +version = "2.0.2" dependencies = [ "log", "serde", @@ -7040,7 +7040,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.1" +version = "2.0.2" dependencies = [ "encoding_rs", "log", @@ -7091,7 +7091,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.0.1" +version = "2.1.0" dependencies = [ "dunce", "log", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 022ce3f27..0fc70ec03 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## \[2.0.1] + +### Dependencies + +- Upgraded to `dialog-js@2.0.1` +- Upgraded to `fs-js@2.0.1` +- Upgraded to `http-js@2.0.1` +- Upgraded to `shell-js@2.0.1` +- Upgraded to `store-js@2.1.0` + ## \[2.0.0] - [`e2c4dfb6`](https://github.com/tauri-apps/plugins-workspace/commit/e2c4dfb6af43e5dd8d9ceba232c315f5febd55c1) Update to tauri v2 stable release. diff --git a/examples/api/package.json b/examples/api/package.json index 33468570a..8336c7d43 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "svelte-app", "private": true, - "version": "2.0.0", + "version": "2.0.1", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -14,18 +14,18 @@ "@tauri-apps/plugin-biometric": "2.0.0", "@tauri-apps/plugin-cli": "2.0.0", "@tauri-apps/plugin-clipboard-manager": "2.0.0", - "@tauri-apps/plugin-dialog": "2.0.0", - "@tauri-apps/plugin-fs": "2.0.0", + "@tauri-apps/plugin-dialog": "2.0.1", + "@tauri-apps/plugin-fs": "2.0.1", "@tauri-apps/plugin-geolocation": "2.0.0", "@tauri-apps/plugin-global-shortcut": "2.0.0", "@tauri-apps/plugin-haptics": "2.0.0", - "@tauri-apps/plugin-http": "2.0.0", + "@tauri-apps/plugin-http": "2.0.1", "@tauri-apps/plugin-nfc": "2.0.0", "@tauri-apps/plugin-notification": "2.0.0", "@tauri-apps/plugin-os": "2.0.0", "@tauri-apps/plugin-process": "2.0.0", - "@tauri-apps/plugin-shell": "2.0.0", - "@tauri-apps/plugin-store": "2.0.0", + "@tauri-apps/plugin-shell": "2.0.1", + "@tauri-apps/plugin-store": "2.1.0", "@tauri-apps/plugin-updater": "2.0.0", "@zerodevx/svelte-json-view": "1.0.11" }, diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 0f5577322..c8070e638 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## \[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. diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 50cd940f0..b09e54a69 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.2" +version = "2.0.3" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,21 +20,21 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.1" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.1", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.2", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.1" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.1" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.2" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.1" } +], version = "2.0.2" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.1", features = [ "windows7-compat", ] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.0.1" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.0.1" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.1" } -tauri-plugin-store = { path = "../../../plugins/store", version = "2.0.1" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.0.2" } +tauri-plugin-store = { path = "../../../plugins/store", version = "2.1.0" } [dependencies.tauri] workspace = true diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 150e092ef..c124b2ffd 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -2,6 +2,11 @@ ## \[2.0.1] +- [`2302c2db`](https://github.com/tauri-apps/plugins-workspace/commit/2302c2db1c49673e61dcbda8cdb01b2c57e9ba6f) ([#1910](https://github.com/tauri-apps/plugins-workspace/pull/1910) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `ask` and `confirm` not using system button texts +- [`aee14ed4`](https://github.com/tauri-apps/plugins-workspace/commit/aee14ed4261cdedc4ed7cc2686f01f437859a5c7) ([#1892](https://github.com/tauri-apps/plugins-workspace/pull/1892) by [@nashaofu](https://github.com/tauri-apps/plugins-workspace/../../nashaofu)) Set `save` dialog mime type from the `filters` extensions on Android. + +## \[2.0.1] + - [`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 @@ -288,3 +293,5 @@ pull/371)) First v2 alpha release! lpha release! pull/371)) First v2 alpha release! +lease! + pull/371)) First v2 alpha release! diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index eec855bdd..4b6e88b1c 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.1" +version = "2.0.2" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.2" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index 72ebd27ad..27814aed8 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-dialog", - "version": "2.0.0", + "version": "2.0.1", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 41e6411ae..bf04cd1e0 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -2,6 +2,10 @@ ## \[2.0.1] +- [`ae802456`](https://github.com/tauri-apps/plugins-workspace/commit/ae8024565f074f313084777c8b10d1b5e3bbe220) ([#1950](https://github.com/tauri-apps/plugins-workspace/pull/1950) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Improve performance of the `FileHandle.read` and `writeTextFile` APIs. + +## \[2.0.1] + - [`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. ## \[2.0.0] diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 1d9b5f345..17eba40a5 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.1" +version = "2.0.2" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 7a6cf5273..0bce5c6ce 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-fs", - "version": "2.0.0", + "version": "2.0.1", "description": "Access the file system.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index 508780fa2..b08ac758d 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -2,6 +2,11 @@ ## \[2.0.1] +- [`cfd48b3b`](https://github.com/tauri-apps/plugins-workspace/commit/cfd48b3b2ec0fccfc162197518694ed59ceda22c) ([#1941](https://github.com/tauri-apps/plugins-workspace/pull/1941) by [@Nipsuli](https://github.com/tauri-apps/plugins-workspace/../../Nipsuli)) Allow skipping sending `Origin` header in HTTP requests by setting `Origin` header to an empty string when calling `fetch`. +- [`9b2840db`](https://github.com/tauri-apps/plugins-workspace/commit/9b2840db9464cf08db75806270e4441f0af81e5d) ([#1884](https://github.com/tauri-apps/plugins-workspace/pull/1884) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Retain headers order. + +## \[2.0.1] + - [`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 @@ -286,3 +291,6 @@ ha release! ! 371\)) First v2 alpha release! +lease! + ! + 371\)) First v2 alpha release! diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 64b9aa750..bd2359b2d 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.1" +version = "2.0.2" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.2" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/http/package.json b/plugins/http/package.json index 24fb27f7b..493caf758 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-http", - "version": "2.0.0", + "version": "2.0.1", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index b27277fa8..0684eac1b 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.2] + +### Dependencies + +- Upgraded to `fs@2.0.2` + ## \[2.0.1] - [`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. diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index c03276d0e..754eda373 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.1" +version = "2.0.2" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -27,7 +27,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.1" } +tauri-plugin-fs = { path = "../fs", version = "2.0.2" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index ee4c473fb..acbc2cda6 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -2,6 +2,10 @@ ## \[2.0.1] +- [`3c1f3874`](https://github.com/tauri-apps/plugins-workspace/commit/3c1f3874f4c828637b3aa983cba13c77427faf58) ([#1911](https://github.com/tauri-apps/plugins-workspace/pull/1911) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Added missing permission for `handleIconState` and fixed its event processing logic. + +## \[2.0.1] + - [`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. ## \[2.0.0] diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 807d1ed9d..2288999c2 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.0.1" +version = "2.0.2" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index faba11e2d..b738a3428 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.0.0", + "version": "2.0.1", "description": "Position your windows at well-known locations.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index bcc894c8c..a1cfc195d 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -2,6 +2,10 @@ ## \[2.0.1] +- [`51ddf6a7`](https://github.com/tauri-apps/plugins-workspace/commit/51ddf6a71544acfb261ffc9393dab1342da0a219) ([#1881](https://github.com/tauri-apps/plugins-workspace/pull/1881) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) On Windows, Fix `open` JS API hanging and freezing the app. + +## \[2.0.1] + - [`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. ## \[2.0.0] diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index 31c0cc97a..d170cd467 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.0.1" +version = "2.0.2" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/shell/package.json b/plugins/shell/package.json index 0975f8f99..abbc33ead 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-shell", - "version": "2.0.0", + "version": "2.0.1", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 59d4b9b10..51ac5ed2e 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.1.0] + +### feat + +- [`8c67d44a`](https://github.com/tauri-apps/plugins-workspace/commit/8c67d44aef60b1427019538d8420787ef35bd3d5) ([#1860](https://github.com/tauri-apps/plugins-workspace/pull/1860) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) - Add `getStore` + - Add an option to use pre-stored (de)serialize functions (registered on rust) + - Add `LazyStore` + ## \[2.0.1] - [`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. @@ -125,3 +133,11 @@ com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! plugins-workspace/pull/371)) First v2 alpha release! com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! +) First v2 alpha release! + com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + eb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + ps://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + 717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! + plugins-workspace/pull/371)) First v2 alpha release! + com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index d270b1f17..ff181ea45 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.0.1" +version = "2.1.0" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/package.json b/plugins/store/package.json index 034f8873a..e310463cf 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-store", - "version": "2.0.0", + "version": "2.1.0", "description": "Simple, persistent key-value store.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d1da82d6..4abfcf4e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,10 +73,10 @@ importers: specifier: 2.0.0 version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: 2.0.0 + specifier: 2.0.1 version: link:../../plugins/dialog '@tauri-apps/plugin-fs': - specifier: 2.0.0 + specifier: 2.0.1 version: link:../../plugins/fs '@tauri-apps/plugin-geolocation': specifier: 2.0.0 @@ -88,7 +88,7 @@ importers: specifier: 2.0.0 version: link:../../plugins/haptics '@tauri-apps/plugin-http': - specifier: 2.0.0 + specifier: 2.0.1 version: link:../../plugins/http '@tauri-apps/plugin-nfc': specifier: 2.0.0 @@ -103,10 +103,10 @@ importers: specifier: 2.0.0 version: link:../../plugins/process '@tauri-apps/plugin-shell': - specifier: 2.0.0 + specifier: 2.0.1 version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: 2.0.0 + specifier: 2.1.0 version: link:../../plugins/store '@tauri-apps/plugin-updater': specifier: 2.0.0 @@ -2334,9 +2334,9 @@ snapshots: - encoding - mocha - '@covector/assemble@0.12.0': + '@covector/assemble@0.12.0(mocha@10.7.3)': dependencies: - '@covector/command': 0.8.0 + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) js-yaml: 4.1.0 @@ -2347,9 +2347,10 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/changelog@0.12.0': + '@covector/changelog@0.12.0(mocha@10.7.3)': dependencies: '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) @@ -2359,14 +2360,16 @@ snapshots: unified: 9.2.2 transitivePeerDependencies: - encoding + - mocha - supports-color - '@covector/command@0.8.0': + '@covector/command@0.8.0(mocha@10.7.3)': dependencies: - '@effection/process': 2.1.4 + '@effection/process': 2.1.4(mocha@10.7.3) effection: 2.0.8(mocha@10.7.3) transitivePeerDependencies: - encoding + - mocha '@covector/files@0.8.0': dependencies: @@ -2413,10 +2416,8 @@ snapshots: dependencies: effection: 2.0.8(mocha@10.7.3) mocha: 10.7.3 - transitivePeerDependencies: - - encoding - '@effection/process@2.1.4': + '@effection/process@2.1.4(mocha@10.7.3)': dependencies: cross-spawn: 7.0.3 ctrlc-windows: 2.1.0 @@ -2424,6 +2425,7 @@ snapshots: shellwords: 0.1.1 transitivePeerDependencies: - encoding + - mocha '@effection/stream@2.0.6': dependencies: @@ -3234,9 +3236,9 @@ snapshots: dependencies: '@clack/prompts': 0.7.0 '@covector/apply': 0.10.0(mocha@10.7.3) - '@covector/assemble': 0.12.0 - '@covector/changelog': 0.12.0 - '@covector/command': 0.8.0 + '@covector/assemble': 0.12.0(mocha@10.7.3) + '@covector/changelog': 0.12.0(mocha@10.7.3) + '@covector/command': 0.8.0(mocha@10.7.3) '@covector/files': 0.8.0 effection: 2.0.8(mocha@10.7.3) globby: 11.1.0 From 14cee64c82a72655ae6a4ac0892736a2959dbda5 Mon Sep 17 00:00:00 2001 From: bWanShiTong <157274881+bWanShiTong@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:07:55 +0200 Subject: [PATCH 640/643] fix(fs): fix compilation on targets with pointer width 16 and 32 (#1958) --- .changes/change-pr-1958.md | 5 +++++ plugins/fs/src/commands.rs | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 .changes/change-pr-1958.md diff --git a/.changes/change-pr-1958.md b/.changes/change-pr-1958.md new file mode 100644 index 000000000..59f8fc8a8 --- /dev/null +++ b/.changes/change-pr-1958.md @@ -0,0 +1,5 @@ +--- +"fs": patch +--- + +Fix compilation on targets with pointer width of `16` or `32` diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index 58f2ce629..99eb5aa09 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -316,12 +316,14 @@ pub async fn read( let nread = nread.to_be_bytes(); let mut out = [0; 8]; out[6..].copy_from_slice(&nread); + out }; #[cfg(target_pointer_width = "32")] let nread = { let nread = nread.to_be_bytes(); let mut out = [0; 8]; out[4..].copy_from_slice(&nread); + out }; #[cfg(target_pointer_width = "64")] let nread = nread.to_be_bytes(); From 525abc4be552b80621b4af2b26d142e0c87b819e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:13:27 +0300 Subject: [PATCH 641/643] Publish New Versions (v2) (#1961) Co-authored-by: amrbashir --- .changes/change-pr-1958.md | 5 ----- Cargo.lock | 10 +++++----- examples/api/src-tauri/CHANGELOG.md | 8 ++++++++ examples/api/src-tauri/Cargo.toml | 8 ++++---- plugins/dialog/CHANGELOG.md | 8 +++++++- plugins/dialog/Cargo.toml | 4 ++-- plugins/fs/CHANGELOG.md | 4 ++++ plugins/fs/Cargo.toml | 2 +- plugins/http/CHANGELOG.md | 8 +++++++- plugins/http/Cargo.toml | 4 ++-- plugins/persisted-scope/CHANGELOG.md | 6 ++++++ plugins/persisted-scope/Cargo.toml | 4 ++-- 12 files changed, 48 insertions(+), 23 deletions(-) delete mode 100644 .changes/change-pr-1958.md diff --git a/.changes/change-pr-1958.md b/.changes/change-pr-1958.md deleted file mode 100644 index 59f8fc8a8..000000000 --- a/.changes/change-pr-1958.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"fs": patch ---- - -Fix compilation on targets with pointer width of `16` or `32` diff --git a/Cargo.lock b/Cargo.lock index 3aeae0770..2522f63da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "api" -version = "2.0.3" +version = "2.0.4" dependencies = [ "log", "serde", @@ -6825,7 +6825,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.0.2" +version = "2.0.3" dependencies = [ "log", "raw-window-handle", @@ -6841,7 +6841,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.0.2" +version = "2.0.3" dependencies = [ "anyhow", "dunce", @@ -6901,7 +6901,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.0.2" +version = "2.0.3" dependencies = [ "data-url", "http", @@ -7005,7 +7005,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.0.2" +version = "2.0.3" dependencies = [ "aho-corasick", "bincode", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index c8070e638..b914893a7 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## \[2.0.4] + +### Dependencies + +- Upgraded to `fs@2.0.3` +- Upgraded to `dialog@2.0.3` +- Upgraded to `http@2.0.3` + ## \[2.0.3] ### Dependencies diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index b09e54a69..db6ec283d 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.3" +version = "2.0.4" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,14 +20,14 @@ serde = { workspace = true } tiny_http = "0.12" log = { workspace = true } tauri-plugin-log = { path = "../../../plugins/log", version = "2.0.1" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.2", features = [ +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.0.3", features = [ "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.0.1" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.2" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.0.3" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", -], version = "2.0.2" } +], version = "2.0.3" } tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.0.1", features = [ "windows7-compat", ] } diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index c124b2ffd..57c510927 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.3] + +### Dependencies + +- Upgraded to `fs@2.0.3` + ## \[2.0.1] - [`2302c2db`](https://github.com/tauri-apps/plugins-workspace/commit/2302c2db1c49673e61dcbda8cdb01b2c57e9ba6f) ([#1910](https://github.com/tauri-apps/plugins-workspace/pull/1910) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `ask` and `confirm` not using system button texts @@ -293,5 +299,5 @@ pull/371)) First v2 alpha release! lpha release! pull/371)) First v2 alpha release! -lease! + lease! pull/371)) First v2 alpha release! diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 4b6e88b1c..664416a75 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.0.2" +version = "2.0.3" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.0.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.3" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index bf04cd1e0..707733ee0 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.0.3] + +- [`14cee64c`](https://github.com/tauri-apps/plugins-workspace/commit/14cee64c82a72655ae6a4ac0892736a2959dbda5) ([#1958](https://github.com/tauri-apps/plugins-workspace/pull/1958) by [@bWanShiTong](https://github.com/tauri-apps/plugins-workspace/../../bWanShiTong)) Fix compilation on targets with pointer width of `16` or `32` + ## \[2.0.1] - [`ae802456`](https://github.com/tauri-apps/plugins-workspace/commit/ae8024565f074f313084777c8b10d1b5e3bbe220) ([#1950](https://github.com/tauri-apps/plugins-workspace/pull/1950) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Improve performance of the `FileHandle.read` and `writeTextFile` APIs. diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 17eba40a5..cd4e77168 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.0.2" +version = "2.0.3" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index b08ac758d..e814ddd9d 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.3] + +### Dependencies + +- Upgraded to `fs@2.0.3` + ## \[2.0.1] - [`cfd48b3b`](https://github.com/tauri-apps/plugins-workspace/commit/cfd48b3b2ec0fccfc162197518694ed59ceda22c) ([#1941](https://github.com/tauri-apps/plugins-workspace/pull/1941) by [@Nipsuli](https://github.com/tauri-apps/plugins-workspace/../../Nipsuli)) Allow skipping sending `Origin` header in HTTP requests by setting `Origin` header to an empty string when calling `fetch`. @@ -291,6 +297,6 @@ ha release! ! 371\)) First v2 alpha release! -lease! + lease! ! 371\)) First v2 alpha release! diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index bd2359b2d..8c1801a38 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.0.2" +version = "2.0.3" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -34,7 +34,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.0.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.3" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 0684eac1b..b2c1628c5 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.3] + +### Dependencies + +- Upgraded to `fs@2.0.3` + ## \[2.0.2] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index 754eda373..070cf21b8 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.0.2" +version = "2.0.3" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -27,7 +27,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.0.2" } +tauri-plugin-fs = { path = "../fs", version = "2.0.3" } [features] protocol-asset = ["tauri/protocol-asset"] From 77149dc4320d26b413e4a6bbe82c654367c51b32 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Tue, 22 Oct 2024 08:17:37 +0300 Subject: [PATCH 642/643] fix(fs): fix `writeFile` converting UTF-8 characters in path into replacement character (#1965) --- .changes/fs-writeTextFile-utf8-path.md | 5 +++++ plugins/fs/api-iife.js | 2 +- plugins/fs/guest-js/index.ts | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changes/fs-writeTextFile-utf8-path.md diff --git a/.changes/fs-writeTextFile-utf8-path.md b/.changes/fs-writeTextFile-utf8-path.md new file mode 100644 index 000000000..561e83e32 --- /dev/null +++ b/.changes/fs-writeTextFile-utf8-path.md @@ -0,0 +1,5 @@ +--- +"fs-js": "patch" +--- + +Fix `writeTextFile` converting UTF-8 characters (for example `äöü`) in the given path into replacement character (`�`) \ No newline at end of file diff --git a/plugins/fs/api-iife.js b/plugins/fs/api-iife.js index e863d7a93..f1e5360b9 100644 --- a/plugins/fs/api-iife.js +++ b/plugins/fs/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const e=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength}),n=function(t){const e=new Uint8ClampedArray(t),n=e.byteLength;let i=0;for(let t=0;tt instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const i=new TextEncoder;await l("plugin:fs|write_text_file",i.encode(e),{headers:{path:t instanceof URL?t.toString():t,options:JSON.stringify(n)}})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a,s,c;"function"==typeof SuppressedError&&SuppressedError;class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,{}),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a===e(this,o,"f")){n(this,o,a+1),e(this,i,"f").call(this,t);const s=Object.keys(e(this,r,"f"));if(s.length>0){let t=a+1;for(const n of s.sort()){if(parseInt(n)!==t)break;{const o=e(this,r,"f")[n];delete e(this,r,"f")[n],e(this,i,"f").call(this,o),t+=1}}n(this,o,t)}}else e(this,r,"f")[a.toString()]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}toJSON(){return`__CHANNEL__:${this.id}`}}async function l(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}i=new WeakMap,o=new WeakMap,r=new WeakMap;class u{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}function p(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(s=t.BaseDirectory||(t.BaseDirectory={}))[s.Audio=1]="Audio",s[s.Cache=2]="Cache",s[s.Config=3]="Config",s[s.Data=4]="Data",s[s.LocalData=5]="LocalData",s[s.Document=6]="Document",s[s.Download=7]="Download",s[s.Picture=8]="Picture",s[s.Public=9]="Public",s[s.Video=10]="Video",s[s.Resource=11]="Resource",s[s.Temp=12]="Temp",s[s.AppConfig=13]="AppConfig",s[s.AppData=14]="AppData",s[s.AppLocalData=15]="AppLocalData",s[s.AppCache=16]="AppCache",s[s.AppLog=17]="AppLog",s[s.Desktop=18]="Desktop",s[s.Executable=19]="Executable",s[s.Font=20]="Font",s[s.Home=21]="Home",s[s.Runtime=22]="Runtime",s[s.Template=23]="Template",t.SeekMode=void 0,(c=t.SeekMode||(t.SeekMode={}))[c.Start=0]="Start",c[c.Current=1]="Current",c[c.End=2]="End";class w extends u{async read(t){if(0===t.byteLength)return 0;const e=await l("plugin:fs|read",{rid:this.rid,len:t.byteLength}),n=function(t){const e=new Uint8ClampedArray(t),n=e.byteLength;let i=0;for(let t=0;tt instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await l("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{h(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");await l("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const i=new TextEncoder;await l("plugin:fs|write_text_file",i.encode(e),{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})} diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts index 57e7518d5..ed8749d71 100644 --- a/plugins/fs/guest-js/index.ts +++ b/plugins/fs/guest-js/index.ts @@ -1072,7 +1072,7 @@ async function writeTextFile( await invoke('plugin:fs|write_text_file', encoder.encode(data), { headers: { - path: path instanceof URL ? path.toString() : path, + path: encodeURIComponent(path instanceof URL ? path.toString() : path), options: JSON.stringify(options) } }) From 4341d7f500290165a94e05006abbfe7f40045fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E8=89=AF=E4=BB=94?= <32487868+cijiugechu@users.noreply.github.com> Date: Sat, 26 Oct 2024 19:19:59 +0800 Subject: [PATCH 643/643] fix(sql): replace Mutex with RwLock to enable concurrent SQL execution (#1972) --- .changes/fix-sql-blocking.md | 5 +++++ plugins/sql/src/commands.rs | 16 +++++++--------- plugins/sql/src/lib.rs | 8 ++++---- 3 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 .changes/fix-sql-blocking.md diff --git a/.changes/fix-sql-blocking.md b/.changes/fix-sql-blocking.md new file mode 100644 index 000000000..518f02a5c --- /dev/null +++ b/.changes/fix-sql-blocking.md @@ -0,0 +1,5 @@ +--- +sql: patch +--- + +Replace `Mutex` with `RwLock` to enable concurrent SQL execution. \ No newline at end of file diff --git a/plugins/sql/src/commands.rs b/plugins/sql/src/commands.rs index 8cd90e9c5..760d00b2d 100644 --- a/plugins/sql/src/commands.rs +++ b/plugins/sql/src/commands.rs @@ -23,7 +23,7 @@ pub(crate) async fn load( pool.migrate(&migrator).await?; } - db_instances.0.lock().await.insert(db.clone(), pool); + db_instances.0.write().await.insert(db.clone(), pool); Ok(db) } @@ -36,7 +36,7 @@ pub(crate) async fn close( db_instances: State<'_, DbInstances>, db: Option, ) -> Result { - let mut instances = db_instances.0.lock().await; + let instances = db_instances.0.read().await; let pools = if let Some(db) = db { vec![db] @@ -45,9 +45,7 @@ pub(crate) async fn close( }; for pool in pools { - let db = instances - .get_mut(&pool) - .ok_or(Error::DatabaseNotLoaded(pool))?; + let db = instances.get(&pool).ok_or(Error::DatabaseNotLoaded(pool))?; db.close().await; } @@ -62,9 +60,9 @@ pub(crate) async fn execute( query: String, values: Vec, ) -> Result<(u64, LastInsertId), crate::Error> { - let mut instances = db_instances.0.lock().await; + let instances = db_instances.0.read().await; - let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; + let db = instances.get(&db).ok_or(Error::DatabaseNotLoaded(db))?; db.execute(query, values).await } @@ -75,8 +73,8 @@ pub(crate) async fn select( query: String, values: Vec, ) -> Result>, crate::Error> { - let mut instances = db_instances.0.lock().await; + let instances = db_instances.0.read().await; - let db = instances.get_mut(&db).ok_or(Error::DatabaseNotLoaded(db))?; + let db = instances.get(&db).ok_or(Error::DatabaseNotLoaded(db))?; db.select(query, values).await } diff --git a/plugins/sql/src/lib.rs b/plugins/sql/src/lib.rs index f66137b8e..352ffbec5 100644 --- a/plugins/sql/src/lib.rs +++ b/plugins/sql/src/lib.rs @@ -29,12 +29,12 @@ use tauri::{ plugin::{Builder as PluginBuilder, TauriPlugin}, Manager, RunEvent, Runtime, }; -use tokio::sync::Mutex; +use tokio::sync::{Mutex, RwLock}; use std::collections::HashMap; #[derive(Default)] -pub struct DbInstances(pub Mutex>); +pub struct DbInstances(pub RwLock>); #[derive(Serialize)] #[serde(untagged)] @@ -140,7 +140,7 @@ impl Builder { tauri::async_runtime::block_on(async move { let instances = DbInstances::default(); - let mut lock = instances.0.lock().await; + let mut lock = instances.0.write().await; for db in config.preload { let pool = DbPool::connect(&db, app).await?; @@ -168,7 +168,7 @@ impl Builder { if let RunEvent::Exit = event { tauri::async_runtime::block_on(async move { let instances = &*app.state::(); - let instances = instances.0.lock().await; + let instances = instances.0.read().await; for value in instances.values() { value.close().await; }

>qIa)CJDQwHr3JKGv}<_ybIUd;~Q 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%0A(a>@^on~< zzwip$A@EzJjDiN`vZSfTU67`_X4?*2{@~xa`?ShxUh+v3(n!x;j*F*UkUuG$+9pddU9*_9hzBboG-eH0L5b zA9A*F;3zq__8c&#UnEArD)+?YRU(lYBzwzlP8eikIxnyK6t$1+enTl$21OFcncZxM z{B+jf2%d)!C>9=L&?)dh3M||jG|y*J8Q%=J(ci9a6bfL_xkPu3aA)xS@R!ZD*(#)*|1v_R&? z2WQdVZkhw=m9b61i-)wf4;v96{f3Fn`6Ll1%D;jKCc-H35G z*je3Em<%lu;W5+RP``&HDq(2`5(akBm24!_Txba@(r?{XjRyw?1w;G*MU{kpFN%l@ zQMk47KF#dcCEb+^0^F~e%YoDH-a6Rvz_A7>32QIEi@6~i3AH)8Md3$W5%Da-m>+QD z;FCq${Pf-Xy)@a1*0h5r|F0cupD4I4bQFXeEL=7Te%{?|)I2PLQN9A9;*Iu)La(0y z(E*wW&^H^yx;xsx1_2VZ;$9yLEIQ`loYar`cuQui)jHnWT=!gg1rH{Mr94I(0;aP{ z6oZe=jv+QU3DDN$trZ7hAu+wpnvEa6}-zsuhygQfs zY@A=pr00HxiII=n?GvC&1+TzD^mPg^6p;7jzK1e`0d^^v&ye=H0t;4#4@olzS*$ix zvnhJPXov{7JlEEuC#v-@X<5+X#w-qh+Mp?$nK7Ew6Z?LD-DJRUauv+3u%?*?IoRAl z(<>izPV#%g62_u%U;wJR0h5|$HXiebZFUZ-LKg z)5{+e0->L|P5At&sucb;7qMfa!8$V{-I}-wT z^-u(|!zL#pKp;Pxd_j84uHEZyt1%MSCd5IJRxhU@^4;WSHl)zY5dg}*ysF@Zq-se} zP)jRIj5dc-PncAptoG`>Kv%3s>QOS~w{tRQ9$$lFnF5v45&f8^1;bau=FN+YWJ&Wj z4h4Eq%O=bdop-w4XFaUD#!{ZJeH>wNSy68`!ao1pb?+-5oHIG|Eekq3Rm>4(Z|6t% zMIMqn!9k0k+6bcP!7_1icsUvr5b5UZk=7)Z^B|vlPlSH%Ql?~so%7txB08viFCpg{Uj=*9FHogw$?Jo=jV-!pFlPXf z+yS`B|K`|{YH~5rfemci>$VvJ3nz!>H+d1WymcTXDW%@6_v9_M&<@y}m;LV^Bf(m- zQL@YO!U@g|E;n zBIe`k%q(vYnx4@j-#=-DftUCAQX!U>vrvOA*S3bGy)k1H982bfa?*)D<{ryQdv*hG`XgI_4zs! zOA~_h`5^FtqT)3N?Js(|!;h1L^^bq-MO8ZOq&MDjWXl^5IYEj{{vgcFB^KGDUs)++ z{Yz8#Ohl=K^5SuD1{6_(qfwLF7Y$yI-qOQpt|Dl~-Y{2j4)@g8ZI<@qlY@-79cu_^ zO9QtQw(iWt8wK;2g#Qt@?}fOZLKPYeWgdq2-9#SalmhQxKW)^ zIGx_d2bRQJACDLHDEFFM-d#<%ewC`D)k@mb*X$v*jj4_YZT2D56Vlcx%0zYhebEqu zkOmK0@2*QVKFSy`pH5e#@8-U)jjX$S{!I|JsHYeC=Kglg_3-@$w?4Fu=^OIO*lv$d zvGTnG&NMPEo*p97CUunp&Uii=3-y*ZBuB?wts(LM_CvVCr{)` zEa@3k+&Z(1I2$z^R_eAD+(M_j{Sa(QMGS6vH}@E|AF~A}6?jqM_mNW9~kOPopeVI1ZE-r3dtgKzX@kbf2R!N_5;Y4n@#ZL7-}p z3JA($RJcE>V+3Dv9i)S&x2}W@(vX4-bS8-3dU~{GGz-&T?&HF~@9H|}W&dG17X|+$ zJN_tEFJDItqFtp>Vz4Gh3($6sB}xAG@7y-l8#iWXIlz)0Rfj1SHdTY33`BN`D(%xW zF^!i&n7}mn(qV0Yf*--jq+)C!9`wPso zKr4d0)tCGW}z~G+R&WUP#VcNcS z<^)eWna%H}kx6J66D3-sWOJ9h`c9=nZ|-JD4je=AF{bD@aAg*6ZG1aYELoVwoGe`B z1%ITd*U6xWZ3^O+#ImrTP0#%wuf@CR(5i8OIb|6ECoWxv#cQPmF?PRqn0@wWiMiH)eb{$a> z6KcrE1Bk^G*Lx2pR-b#L}|S5?wNc2MKtj5>+jR#C8WhzEZod8(lI(& zS3l&DY}TuOd`$h`u4lry2>5d0%_Qe$;rf+Y&yQ_fls-h~Ri?K)3AOx;NAwrIIf$4M zxiQ&c$uEVNWCv}fH2kteqd$DQSJTwtU^QTzv#2|gWNbv-Qg=UX1pm7eSU%%v(m$zm z5jZRtiUmjPuXC+7=fSEirTZ?dj@#P>*DWYLxQwi&-@XSt%_rZE)e5iuhb|B{?)9(mWs|8-e_T<%~3iqGY zBIW`ucfafxYnl)h^SO{wD7IR!ZGA4d`lq<1u4fiy%=MI8pCBIo-+)q7f7syjhn$vq*u-C|4}6QGm)!gsCgaS%IBd7Z>_t5-Y)U^T zJTn7SP^aH+I3jE9v1`zMN{>g`s%982ADExCWg9>GY!2)!%5)l(u_5?A?hq}(C^_fi zOD?vqWBtH`6Tq5&FUq+5wSf!B2V^8~`M~kmy_27nlm2{C-A~W+2L@AMO}(E~f(Xa< zREg~!gAjVK$W_Q6r(p^I%iDTFRD zhkwmEnhqN`$X1`Ou zmZ`ppqCh&uJHpC-kDddIEBMS%{E*jd@hhMCHo_S(&&Wgv^AoRY^zT;;g-Qh_Ku&a=_*5Ji)=QMKeEp`ps$7Sbnb5>Zeqlatgp z#QGEZ=(7EQ3cR_<+nc}p*77elJ7m^Znmx)>9>IApjEO1}+S?zWRPp@2&Vyr?xJG|- zZ3|1Vv~ScDJ+cfumF^^rE|v|ym9M5y)aF0M~S%WA1^bwyNSx!Ur>T}h#muibcVa#%kjhD`1o@4Hu^T1rq;a#(@_L5b4@G0G$wOD`N?f7q*~ zpZ%DXG2DUjy$a^pw_Kh+kuX6VbQvO=hj?D~e)83NT`JqZMhHsk_TuTPbMUqy?tAO# z?%f8IP@_Kscc*ydx7#Cj+=o$Ve%`yImJVHZJcJ@*pBKU^Z{-tTlv-D@gHDn3&+BdR z?MmlUso52P)(xf&Nx}@Fz?B&PNgtqs8l#&>H}unUoW(_{(i{P&yy@h4}uAIjToypbxP0$F#n|yO0x4VNXE;9*Utx$h62a2#T^mC51)B-p8BtnC)k0s<@lDi>g`A#>z*i` z;5nxagtM7^X_tsj0wb|mnW}J}+NI_&l=p{g1;KgVC;j-Fb|3)DIY}ElSumAlc+~XB z=fmtXvi7A2Xx&IJgP%&tpC#TL(WbmlN`Vd(_H`6tua_;Z%o49(;jcH1c2{W_YPT`t zr6btxiko>yH^M%Y^uK^0^<5M)SR@veQvblBS(-U@LP2Z)q*cA}uZ3DS1ISHmXP!<% z;UK-eTle)zd2*Vv*NA10RUB;Oc!?)V#M-BDnA6=yW&+d+CHxfRH&?@>C<}6X7d`5i z@fZ`=C8UA~luhxy2}=%A=O$ZhSlhPyG(%S-es}vPFAge*fPLFLI024|WU&%CD?)Jh!dI?!ThYI;^I!z%0iRoi|{tbDZZzJ;(q4 zTEdkJ&`>#X!VKRBymM>K)cutLc1dSicO?Oo?OZg(9R9%UR7&7Cz#JY-39z;1uFDJv z7qf@SY*%1;s(SVINOT+Sf(#dv9o1msUR6pW+9|arOHaPX#VPe)eBQV!Ya^7|Mr~^S z9D)Z)&GqK*yqI$K)3@Q1*_ix`kw8n4(Ci_^ZCfOKXx^5l-)bP46NF~(ir&n9j(7es zCcd-b4hU^!oVU>aApZG!`mZG?C(VR?0+(f)%gljva|p$LU<|BZ-GRuyX;0$vFh7By z94TREFJf`2h$M#A%uxzW5}fxi;(%rYIJ`rF2;%i87F0Mtz@$FZ5fCFYTo1(|?=<*k zM&8X!vXgVf5{v!ozYXt*pA~=T2Y#w>ROEO{y8Bit$)+FNlIO}%YvijdH7aV^z;k!A zA%Y3?->xx)lCUqGm8zEiSYNX9bKma!u#D@pK-;~QY4Qq z0cu!y+0IbL-I`ONrj56%IXk1!8n7+&3Ew{As5qseT@quIv|spF5vovX^O45YPwPF+ zm;i>=7%jiXSWqAuT=Pm#;_PZ^$!O<=&XHGF+D^sqEfgDs-JSu?UOH4m`XMN+pHVZ) ziqJ(R5p@077V38R~2xe_%t`vpCKQ(XGgzrey{yjrc>OLYo0b^P~_o7jB!i)z+ z)>cLwflbmBaedC{<;a?3YUuq9dfB1iBvT9`m(*kz5r}Wz*`j%4=lhrE33zDR!lIrA z+ebd`!ndOcc+G^jUHlbU`Z`&3gTDWvKyjyFb<^a1*r+{imt52Bb|?i^;E}g8LWWwZ zRc+;EhkG<46Gh$6<4`XAlmaV~VAl)138aiNvgZIq7F#bjf$`}^jD+bATz*Q!kL#?g zkppNevvQ2ye*rxk{F`UbNIR{*8B7*mP6YVhk-HNKBO$ffwWK$`V}RYMgg`e#P;Rzw zxvGTNxroZU!T^qUX-c|fM1vA-D$}iqrViS7ds=u9 zF&X*9pk3h|cMM19kXI3I9<(%w^l~{+XaMi%0xaca1(LMmnbE!_QXasp8WG}jhv@k# z*UNU{Gu%*3c3@KDE1xr%z_99=Illj;h%pf%zjeKP^J8Ji?@J#eS+Z9ZLB&ICmDcm) z@MxlYt)zC0@hDox4y*4a3I5j;f2&XjGB`%Gj~*yEn(Y{%Vmy$onTi!r1W4?Ki-qX| z&`6pGgV%3##}AeRFcdAlK&Cxlkfy8?j3hYf+eclOgC(k{pg4%~8m+i87;IUc=nGg7 zU)0@pk0X|d-fd1XBZ$p?{sce|!29%dz9~zTNzBjI{vG3qMBl?up5zvw{mbMoJ94S5 ze6;x^dc?o(w{>tmUXLr6*vVDo=vC#UYjx$Nn5*QmfHk8X0wbA#j}u8Z5rKe79`7Ht zP51O4akSJn+1V!|0qiPxjMbjw$do*%+$Ipz|!^iYN;=P#T;M-r1M{!euYAf9@Dv8f3SU~Cs?+<;e0+eTcP@6lI z<@MH&&5NpC{rKMDR~JKN(KYss}bRdVc*5z5=-qcxBV)OPqaPZ54UkpBJjf6S32sfxU$bZEq3F z$T}wwl^b|gSmc`BGY0zU0Df2ZHl2)%8*ALq7nU@!z+td!hg!BmkWlOoNoe1lxT(}U z4c4Em%#54uh=6@}qrO9k2xbIn9OGqKMWnafyY{MFxn|N#?wpNROvzQtqV$I<#=G)Xel;!FwnH2ZEGgL7*;d~<*U(JAE`(`(A_^U`0T$p4mydn z#X-V~=UlAa$f~iv5S^b)>yX3>7mPFU6B)^60b*TjKO8wPGlL+;H>MkdA3~_#=GU52 zQM2W|`em*4B+M#H&_@U$BK_98NWBv*jccjyd%t3^wA?O1Xi5Nli}T3yPB_!>9hH<1 zmu@D&?(v2-NuaOJMpsg?QXzobGJflV+!3hed?Zb^P1!Uoi+UC`LW_N;)sE8K9+<2D zo^-7j7dP4W9moXLO5L!EEU=|9Oy`iNna$FyF2$l#(c*tW-Vssz9CP{Saj7FpCb86# z-3`_RSqzvhWq-@AM|N{uCJDnc$TQBA2kpYy3Rr_+lF42$ZkoND=mnD7e|jt}!;DyU z8oDojhFgocQARCLzW>F|ImYx=LbRyLZbfG5Few=Wkjq;BcUe?30}s&s_Nd>9mak6+ z?9Jb2-*Q=cCTf*Z7#z?cxo-YOh|xa6vbO8M;c6$SZ6^qH(J*|EGG-K{W%9la;eSbS z6OiQ>zrsY9F51o`4oi(lsTAYSGSwgBsAAS#ZlnXO8N)l?n%pZze;ZdN?9Znw{W4%c zgiTTg?==OG5lPNB(bWnuGyOv)^^+Zx1}Q%ef_ z22h4x+Sz5_wn<6)|4>_;ztaG96$W_k;zRf{H+feyQX7dyWT*{Qerbz)u#@_=jkY)g(xL-;Aa-?lYoG1C7*Y3nMiVz3rvhf=wn zPsJ@%Ya9%V|HLTwwHOFTQ~)bPl;A=SHu);&YSI#g$Q;&HqU5AK=*L%LMbbkq!P5yE zzL7l)*hf*U9=I?Hy)NlhkP4Zt7NXEILDYgW|L@(w!9`(Bar zzxrMWw_=&ykcpXVVy?BmxC;V&IPCpS5FcKVx+eV){si0-`8JGE)X+b+8T}eSRQ-Q3 zVOHbvoABRWYZkOiDdm*hz)U}lC^cNMZ~ zPx}E>RSCcn$T*Z3K=@@~+M9PHkNCB2^Y&9^w1WYNc79+!fj>;0lSU!mt1b;(Tz^ja zm6$UrE+77rSOySzT|{AU0+%m zplKIdAQt=1QVf=52f`9=i?+dV<-#IYbYO5N(DqJ`n_}Jv)8*oPv!$OnP{aNOgP$#F zrdtP{;{$#LL?~*g$Ve$kcY;7Q`{K*@kM^T?m}kwfDVx*1AWY0<*<|iJCH4BG2B3sm zdu!l?Gz5_Z_qKgPyifVJ%5JB@>RA5jU4Sc0xi*K6gs3!&3d$Wr%_)>0R;{NC>}ZTa zR0FQ3d3Y#r7G>qI|BEWu?7t=}wfh)Bq2({^7_|N+%pX4Wuyy|YgL84JbS2<@UA7UV zWA~EOp+sK7)O3K5&xL!!>shv){0UYGN$5~u zM=bObSX|b(#U=YQ3*swON;+3|!M|U@o`{b+oZi=I*dCh&O)0_xl9C04pzq{%Xieot z=kOd^kF%C_+0Di|@+UjRgn$@TsOy*;-l?|_?ML>h4Te*FQbR9P z7?72%Ed8pAA%c27)pW3LCq*=HQovelaD$d@d$X!W>b~jl)wZ}r!hq7X2tG>gF}p^$ zSCvhpA_lOUvx7)U*!?VvAu84V7XgviX}t=KFlGA0cegOMndEO3dmpy7-ceq+g^XzN zodwib=I#r_e4rx6E8AI$jx~ObB7={&=4RS7UUw$nuZgu6B~%e$zkZq4#(!$6C3!NA zX6%Vr7i>Ckzsk|xnp|8jD4ZN0{%bOgp>p}Y{*YA(2MbjeU=zHdQ(+||$KEl{K>^FB z6te_D#a|v1f38zIMIulBLZ1bBE^!Z>3HeAcA>6~{UpqR66fF9P9#!g)-@`2R_qYGI zev|^ugSQx%ano1$|8PBY@0_9B6yX)OlR*QGT`>;%xAH9y7|h~yzYh+2FMH;V;4d=t zn_+1IpB|4$mQgl;O5<$>(wydNho{Qs)2WCi^Hm6y(k()uwYZj^K=} zraAH3cbncjPaQ~dt>xdylo`*v-IA`beu#-LBe#3{PEygLd&{*dejrw@E#k^g<+J@hyOFwwGR%DTL*h_|)>pZgKyk~lT~Tm;q0@!JOQ`iCV&>ViB( z3^lC$Z4{Iui^Uzp zrJ3iS8ku7rQ*Pw%H7GfST0~HGcp`q|+-m~l*QHD1m>}@*VBq1;kpylYYRkYGeD*f1 ze=fh&T;?;os(GtUMqr78YAfkON#En(NS-(16H-a{59Tr3Fw&$p>@)~*O>CKu4R=2<8B&`x3;hV+ zEh-k7wEftEz<(A}v9B4V{w&N(SJOv7qV(!`cvu@|RCxCqCvv=j<$qpxt1+GTfetY! zCloJFjytzl^k-S^a|eK)tkMAad6hUbXC+F$<+38=?!nM{9vma<{IZpyGt7ApJlJf2|j4fMY<-3oOf4gDWK9TxL6$OEeVzX(tR-+fj5v+CWe z#9p2ZNYmE%51kz^ntbDo=z4#L|Bo9&pQ0O|e!3qw7PF-45B|l!4Pu9@^Ad^7IyG2v zs9Mjvj&@BJ@1m{(ywrkNr9ZpN74qkHHx>r{Cs!+;xmn??Fpb)2nN*cecVz-(zc;5h z!NFfepM_1jBq@dFm9MmqF01-XWjmZ1if4J61LUo@*To;k+!xK2B31WM@r-w1*ZL@j zb^V-NzQ{C5ts96tn}euQVTN_Z-ohSq8Cc&P`AF)0!QSRCx_Hw#W1?qB zR|5U#6WS6sBic_I(QkkU^1MA%K174F&0WNWln5JMqttGB&D@$bz+nVyQYVK^7>PgL2gB<$6CUay4^Es`K1{Ez zWyz-Dnbhhj#40mSH-X0xPJWC+5f2HEHU~Qr0zK@a z`+L)BxA8=nJY}1mVF5HnBFo9Vd?!PgiVkPV!FA6 zPI#M)*DB)vsY#UbOYXB_<#A7mdQLR^hObhDvA+luKwI=d`@xKJ4#`n@XXh+m_9ewo zb=KWoa7|D-Ycceh=w0F2BtAG^EtFjYDrp0F0GE)fk~-(IK36|!9K1cvO}hS8mZI(t zMbebS49z_Wne@81>d2+ScL=6vv_=xOP`YOfDxL`kB(&!YW9;5LU5>PQjZ(eg=G659 z{&?u&NbJ95gVMC5lmv1#IM$07fOtAR#VRJkf~IPL!GyaLbV3vG`G&?`1AgtmW_J`{ zkItxq&15r7yot0CX9t|DTgbVCQTThnoLw+mEtZIL+k0K3`z)Plg%NL4?9o~}TCI8X zJP?X>T>rw`)8{zV8pSOl*$_^h8*bof8VH}_tL)n#GC7^UjY78Z!PyDH+2soRB_P35 zYpKuFxJBItH=PEaODoxpEV3>P9ut@OmGO6E9=gGkA4PL)OKcAZlxGw@o&f*e0aOZH zhQh}|6!S8vUOhu@!HVbD(%giiX?5^ehbZrO`DSZ?>eVfIxf~xkr4J0Bx8!n^>R#qg zEa2w71Fra~1|hx9Ro&iHcPT`%>O^rD{qL?NIGeCel5Xq3BZ9qXpq(7qZUCjVnbmi$ zRmbdEY~*R6V!bEgCn6I;@zXB9d7pJwd2x8_+yk-CF)uhELUnPS=Ca?TP9Ec(pP*IP zhtzS+sWQ-#U4MuAgN4)*CWa2(gt8w@TLCa_^S2d7kjeP7SxSk;g6QdDqa~&SE1hq` z>NP~gRI#vWfw}t>8-~P=ji!1Y=6(Hb#DXle2=cVVz~2L+!}xLd$E?C_8znd3&W3_x z%a?L>ug}vdzOQjSSBsDswzDDc$jg=VH2YJdyl=S3{%5KVec%)Er|`^@mA%8%uR{|f z=vsMaLx-xEIpkGxE?U*rQf0VP(<4M`>CtMZrQq7#O{}cm?LCGk4BhbVTmMivWy0Ie3Pb;m=|MCja33`f_pz(Zi}f-prGU6`WXjTbs37nML82u3 z)+dyz6)o{|;^s4EjY|n0K9TXOP+EV@x0K26g&oTl*duc-Tca*N5EJK!DPjb1LG|s0>fBZlkHh&?A>YMbPyOx=F?_op=4Q1Ko^6*o7A$T&gLZ{T zul!gB2S;F1n%^RcQ|`8(vN&%V!o{-nxB?vPf%J`OsS=n^WH4a03yprU${>KH^^cX-c@kA|qs%Ec4z+qSS5f(_BbFz#dS?DCMTs3{$ z>B-%}hS59UP?MRujd?bJ72{c${Hw=8`0RHV*VP@pQCX;D#$Nu5RHOs$MU;iuZpR-L zTtF+s9*A+gDNce+OX9B^hiqnaI#W#?rvLedr&u4bQSKhPO0u9F)?8&(n5fu2=7ZgH zlXcBr2mezn5AG1~`64iA_ni0dbMxlH9EjS#G&P(DtSjLtfhpp2m(2~WDz2BL-1$k= z%s0NSIv~3;MX_%0Oltl5B~4}3{-)NEwpv?a^OZbClTux`0vFE$4E(I)PRf5cb2C&UReqz~0N67gL^lmmk>&OdZ2=H3gZ;9TO%dh0!gaRCs%` znLmQ!-VO_QDhqresMhYHJw|{ZsfnjoFKsJyhB=bE#1GS zXJss;aGyb)jVtKEU$T_xBM!`u#!dsYt_g10ChKiNz$)eFb%%&-sTh0Z~&F_M)rtJ4!Be%Nc zbQ!zwc=Qi{V3%6AT-cEUmz9V$iNx|LG@zSSf!_Un&kyUyC={TtQxE!D-KV~tk#x?e z?3&*l5q3-&+}CF)uk|EAM8RvceN^_tTRKx}D|dq}{~a=O9bQyFTdj@__u#uhv540X zks5EGng1mJ>Ajh<)0gwz##>v=Bl-dZX{46MF1PX$xAv5Ma~fpXA(Wlp>x8yRDXv@L zALLVR=`sEyQy5q&7Acu+_0OG*jI5M{^==zPk?|dOg53$38rPQ#Gm^R`?fXbiPVnUC zXl$F6<#}_obHM$n(ZnYad~sEg4YG6yNTDct)I8+L7_4+!WMdyxW%0G#T;!Po^&U`k z{_g>37Se=cbsyh@2)*x)FI=m&eBR$t3n2-0lk*sHzLDeghkr}Ja`CQKcQpC6pK`7T zvJ4@b==Q`tv<@rr_J$WV2BzW1QRm=4&7@}K43B=e&F{l(3i@HXp~P3Z>+%bJS{T66xOerI?buzvvna_s7zfcZV)6g zr^^MzW_`U|_KG?5wf_nZs`h-N-9n$0A#~mLShg1d!d;u4z#)5wR|7<>ckSDIr++6` z)RqIo#=5OOk(VGQJMv$?{a)srSgxtTDS0mk3u3vRy~kQy65J7(_+`jTm!FrRffXS) ztgpM@MMGYF4ZCL|P?W6P5I~_-c=kVu~0VT=c#(o^@I&< z61GWh6VO_IGE{Tmfl`O&nv=v6W6%tPIqiyL{qlG z`K~kp?0IN2v}=@R>wZ}$tbHLg5#v`six`SmFm|1J2`u?@u2$#3DIFf3{RnGZC2Rjk zhI+MM;P`Fw=wwS^U(VPjgfX9kvfM0}`ryUD6j0u1;glWke*I|m-FZ|tQgvkkhFT|* zddU)~T0(h1V~rn^SbiFIbRk}%K*sUDBrudP`Sn6}pu#{emd3{Q^fY&(MBv1CGh~9^ zecOxfW()BNRD|H2-}+X_P`85Y)AttBHPp`nln)Kh!M&Hcq8h)!_W^z}TO2{(xM5l; z(C|6^Eb4~-^}U1hQfUKS+=rq~B}N8fu&>1RNkycQa^Xkk|f5`HMAJT)I1>AUynU2 zb$1=OPC6#P2i2V1p3l(sT7@Eu(R+L&m4XH&X zd>0U1VvjAQ%3)@JnzhSMfazkk=tLn|av5k~y$#|4Y&3z{o>hV%{fH^$(z$-DZKc3K z8{*VCGUo#!6&*1`DmDq(VJ<-;k`qj+Vo#G_l)5|9WuF&0I8oIXUCFGghGL#v(P3^B z+j#_a@HcOP!Y|M;UL>X!UE6M|FPZSXPn7Iv67C0clOPipRCJDaQ9;dT)&lvVTJy+%+Qo6M|oTZ+gdx0~!U^c5oZ-T&+cxzI(0R zOJm#lY(uD)krrzB0St{s=2w@QQi{Kr0PKAHF!iCSoj;;|6xW`@jBwb35p{Bj1=A+y zsbhe0=p7h<4B)`iP6cE5yV}U2T|1^+n_kW9f!Gp!P3KdH_($2M70CwWo6SEuuFK`~ zB-ntHNBmgS(%6Z&BPZmyp$%*o?!ETHM+T%oIg_Us2o1jC(JLI^JQdf}TZ@R5-nFJc z6%Pd-?S1#H3X~({+q+5n2CG<>j^IXNTTuZpfhB7<5cQqetPi2b(yv=Zm@Q`g>htfB z8^Eo>9y;7P&-jNaOh2Z2jSZQy(&dUGD|vht63zjlplQjHoINrHD!WfgaHTo>L=tor zWnZc;a{r$5!e{%LCe9|a_JOrW<#Pa5zXXhhLK8&hN?|>B@*!w>am=Bvk- zqOXIBuQ6Xpl*#VlcdE|sb|=wgcT#a39c{YXW3|PxlJEs0s6&<&IR_t5TM^c%)@QlA@j4XZ!qMfq;QBLr=iNJ^5b4q^Il+JBA5>{&y5;;JV{Q99gR#GVieVze%) z4%!Y4eX08P&UA}oe%QeGDQDJ~YdNadK40W!sN(tg87Tn@4F>s24?w^f81pf&O2qpL zZHedMdwH>wd!xBE3OOtLMx?mUeAUG(97?=zs2MV1CA=bnd6fmvah5VD>dBFVpAiH9 z$UFRZuzXJDv`Qr0SbM_em>!BJep`&>V=Mcy?2)JDYgb@@&p+M5occc-wgkXZ#f*uL zgX6nzJWjsPZ$xdGUfmuVn)h=1|Lg6syI)m{$KnYY;mHdc-&G6WO~kbM%P4||;EPc7 z^8zF!KrHY-8QVqC(UVX^Z6>xwb5uEV_{iOsKPrl0Y103zzNl0ED{Z4ROr9|D}$Ic%PccX9nMK!9)h|zK#_+PkQSFe6y%1vm-J)=zZ`* zJ`WGwb4Ya#Q@qB=3t%5uv<*iIo%QgzjA=;@8d^}-C)BQ+Oq97Qt}h3ZUOV_jgQv`s z_&3L{xD4J;pH#;^O$ZIrNc&V3{e}UEP8M{9HOAGBJfP+w!Zqf7vCV^sPswH1YB96V z_w?l-2d%Ufo9W&Ad$hJ(Z5&ROK5IHFaSNWTsw^!rG#&m+R^3&~M`Q?$tOfyeq+!+! z^PM0Szg#VW&G2LlDe*mM<-dk=yRoNJu7xodm@VG0Vb(y~hG8E4j~!00URw*|Ma*>{ z6KU%)eP#A4{+FcBvY_%5+lpT5<1bgeb~@5s&UN||2z}EK0#)1BPImF{o@;MZN=iQa zi{BlAH>uPH^U+6YCLDXE+#Wme-q+>7PEi&CW`;2sv1D3ye^`Jj zPw(WpgDSgY!q(_=7F#2{-+*ch-1RCsObt*U?}P)J z5wg?O;BR7aW()s|W7rO$xqPFJ0X$SW$N4R zZ&a*8nR@AYSd!ivsqC?|`8O)_un2p!{x_TZcb##zSrb4tgZ-B|BUJri)YoXIFF$V| zCr_3;XwmsvF9+&gHjtT&P<$F91FJX!_DB801^Y@ooG8|i7gOhz;|K%9?IEoBz zoNB-e(us8Sb)4&DHRtr;d-}SDW+VLP7A^n}`AOF@czt2fD<0GgbWw1C#^MC;^$0~Y4wdM5ob-egVi zOQae}RH-(!P=Fi;q!T)e?Re@0N-*k+$0~VN+|Qmwl$g8XwJyNwr-9wg9s@}dbE=*{O)@q28{vhf1_XZ%e7p&M$y14JobGVa0O@)G*|< zdC14pChSnG4_>Am4Eg<}?xENBnk(wgeS5Y3%rZ8j0JP8T?FIL4=SK!?@ifx0ZzG#q z8lKeEL>zs-PT5&Tr%&|l3LQ~Wv|M$s+-MzlPwU(Pdt0XE0FF#K#XX#!+b(B6jE}>& zhd#fLA@DVJpU9}v{0TX3P{df`%>IFi$I_3}kxTsUL3mIIpH-4|3H2RbCt96PtE<-5 zycO3{1HM>RucSs2wfd`Eww|3g2hbx8MB4^lNi54HbX*5?!LlF(zg|%AY2-;OCv4^3 z_q7|jDG6%+qJs|c_gV{z8%ddR5@Pz6zqJg;pOUa2I`DP7&@3sgzTagaB41*zdthMd z(|#C{%zr01vXf5{L{u|V^}H+2*Gz>Y@NFinS|u)VeieeNN>gvBa*^oo)%g>y7ym3X zPBb%7`wzyqXXXVPrXlmTDxomS&MUeT`pUSOn*2i=UQB<=e%Kc<7zj?-n}W&52W)(nws@;QXDlhxqbx1m?EP;{t9Z`*UX@dZ_o?usW9m#1w@!} zgmA#4^%UEJr~;yzh(UBSb<*@83s+L>hmXW3=sQYhmwbt?w8MT zyQ>LNUNwEh-U^F3gmT$T*WQ~lGBo~7xU~TGBr4qOel5=~h9_Pe`TP360IN=*ufxdK zIXqpsM6X%Z>L7BAFyGS}+7F=68oX3%H8lnQ#KHcwEx?IbchY&ZKN3psCwoEUKC{4N z%L!bs{DVFclt8Hr!j1L+;kp%)6x4qYtLme;x~dJQTAy_!6ANaLXM&hKxSz+c{1CoJ zpF~6w|AuvbiLf_-)|eB#hQ?<)cD(ET*3qni0ixx@Kv1(J-~reBjPVV6{->ZfiqoRY zjcQ|sddoi%8w?ZuI(kclk1A*Lb%u7TVCIH_$baEQH?Ok+4dwDXR+0On!XDN1euZBR zEUxD!*4s%yZdCXXeC^>CfdZ%L>|Rg8KBz)R$y)T7TKx1PD_qawD`+4VWF zj3tO59kjB(`89JZw}h@DP$Bg6spS-_UpC#Ojx645NetkQbp)QEjc%MdS^{89x9EVnE>}2HS6h;fNVG_t0}BT>!EFrgud*tlUdv;8^-2!iYpGAviZ4E>O#F z=1Gk%QLU51cmb_}uIVdHI--W)R{gmt6XzT6J<9rnKCbSW&TPwEq`_X7C?8=+5yOknj~eOpwSCi+`7} z7mm@#)Youk(O|sw64Mg-vic%w|+F0SVy)e+xH`u!Z zTRP3B(gc|N>Oc25Zd;RQmPxyRnf|aLTF0ppX{v+rhIInTKuQvNBOW@urqLD{N)%FN zGm5=KzlEfavH!2_YQtA;e>uuCw22#@ma%25b3fU*0;~`i(uoVZX5k!11Mcl zutgDiKa4p0G%Xsb!_997Ar#}xLfV_e#j)Wd@yo1yh6$u)hjl7_Rzd6{viL>H6Yg|dM#{#;>O)UcjN3x_cm~h+~ods+SV>@ zQ?C+1hdt8R^|o5A-Re2lV-YEl>{3dBQ|N~2H!{9fssV}%F%OH$V+b7t_Lr6W##wzF~I1PapL>S!rsOa|4D-5MflcP5sezp$G{Z z%vnhcw*3d?XMm=RqUSG1(PZZMN|OTYXobHhVyfkZqTm3>J?|4Hk8fQ21f5(tN6m3F zEETsR{|^}teQ+AU1ggs}oj;O#wxm1SfRZlXdkszmHlO z3ua9`_e|DmSbXx6q3M@`m0C}Ou%=V0YYa>VQGl^k#(iLh3_tb9_^lK4HjS-sab)M(F=p4g@^%9t>v z4!LsHxB_eDAPOuKpiz!34HkLntGctHup{kF27+bjRcp;bQNKMU-Yt;0>cr(s7UwyB z%Jj;Ns-AH#8&c(rz7wP6<2It7$$uC0>>^W$n*gT9mK0HBr>e^{ zDzOQ__0{ZG#C$X?6HrK7kX8!UXcU*VLdJ3i*P&Vv;er<}TVqH~3yH5YCpL(N$|@%6 zK#vcAf|fr56JYu7=7eR3@?>=PhEvUTc5Mt4&-i?LY{ofi!f9~ch4CSfR!WIn zH>R3Q^U+=~rbuCGryTzBbqPLu8{-g|rWlKGc}O|KhJe>5VMYmCBTf`0V#hA4 zQBt{odli%q9s)9AAW~I~@nr>dHa95S*oD^H+rYA@w%qIOTg1|>BGnor?73TgiCZ%a z#%ksKd3|lI-(DI0<22|rT=|%DZz)gUFDLZ338pVDH^1>X@g;}(?@@3t^3#Ti}Z&$QFEg zI{3PEEG`?oWCNf;=mQEQl!{^Xh`+GE+`E)13FdATa(vl@1F~q+#r>nq%Q(y43`JOpLnJeOb#gvUVLsZJ~Iwl6wf$3u7UZmXBrqr=f<+I2Do{$5pEK`9`)`Z*FB23<%N~79TidwloeLp5kEw`MOr^xn)Q= z-^V#pzl0o7*T#^E=|z5UEj9SeKwv&4XMo^zS&iUDigvyzPgJK z1RoPxnpyVS7%Jar{u(rST!tpW0ID7>5A`ag{(4`|ir)7)R4r47P|@5i{*RUBTsCj^ z-Ln!#{-xP{M&%&ty+mAlqlyprXvI9_uZKzeYt(o-$UpN(_QgVG%q5zBkx*l~@mKpY zgXF*a=p_OIC<)DFSv3viPf)sXrs<)=d4YDcp+J9)%tBj*80r%wf7t1kc|m^6i_0{b zK(T{%v6#=>6Q^8e|Ll>?EXD+F?t9(VL-7kc_H4MDV;<%HUUbg&C>Qu$*Z&DtKIFog zG^5W|fS&o=N%f|yGi)4AKE|wz6tc70BV}CG&Pm#d=u%YRqqQ)SfZiGlRqNj7nQHL7 z`gB~<7B=0`ckx$0z(#0r#%6+(52K|xk<;tRgN$MOrNQAeYE2h3%KB7I18X{S#OHP&PRK^rmiQ=BNjJD)<^h@MBf1F@UMf0n<8&V z{AI#@s3hNVpsruq&sQN%|FNwN&e+@MQ@t0D+BtheJ4xn}(8daIdc3+wEYt1hH$Nqw z*y6*9M}P7s275aG$W@o*ia(oNQZP5w2}(!;BKp{TV}togKA*BD*TG0e zpu@6kquez?s<@d9C0&Lw66}uM^X7tCdW)?M;o71Dh6idO3v4FugDb9C-!B>)ZlGCFSq|AqDv1OMOKwCJX#p$npvw2RbRmkNEo( zR={tv@wmz{PZJYc6tx4PY#$4cTq0~{jub_*V3!z^>;G~CO5Qb7&XaA7Y;=T5rsmmK?Q)%SjopM36}TwXFroXN zwC=5`F-1flYY1AA(m1owB9CXS&d*Z11!$q|hZW^3Cv`*ge2)aE+$)c$I3IfC^n==Q zaYMIt=gwRGxM@W2uxUzk$j|7F7ycavb_4D5ClR$3E_lZJ3rPDV@fboe0Rn|R3U@YD z*jzFh_mkzlB7puhb_i&&W|2Ke`Nh^=P8wd%ewJeaJfJ(;u>^KD1vzLSEdNz;2=bI9 zml0Wo2|}ZuXtW%+kd&#sc^L=cwC7#Ue6JFbT~O22@YBVTT|SauhEO<6uW@u&ZYfO9 z3%^g9#S5`(gDFfnPD(4a>lj`&LRmvNgb1_x*8OT1J(oZhxGa7vVfA|`=#_9>Jw*A{ zC>qi=s*Ss;_2khHMX{a#h);$HCyS_Z_G|Jsjzg_&V!Vl|SlEF*f)5jEb>D=Y>DKx) zrM=xX63Bw*_4mGEt@ly>xr?MHaDz{E|jg$GH^r;%m zGLlA`o!=~TT<-&cOX=c*v3xZhj0Fh1nQ<@mTRyNJ!}*g#tI;LuAPWALfz_Kmbc?u%_sO1W4OeC(TL81dUzbI5nV z7!hUwI&6%`?_bGN2zqk? z(_5$y6u|kmL{|!X|8JOR7{2rN#l1kZWROJRArK_6JkVSW#qd0j6Gz=@k;G^uY!)@@ zAC(h!uW-RpEsVhvk8Jp8xPi^mW1fzFm`QB&PG1Z|-xKXVLQXRy&{4V_X2}T4Aw$^Q z+eh~HCHpT5+WH5({vCabV|}HI3A{Ua8VnW^c;tC8=9~pK2n4(DkaTHIprywNExb6R zs`|@wwOkf`Cy1b142JDtDnj9}F)T|Mv9DQW)OzWhZv7{sVP+|i*2^bZ7W-k6`S`EV zFUx@1PL|SxR*U=a@2ao)QWRslsQXli_tXPK=2jiy?1`B4du09}u^G2zK4+0ot6(%x z`i9*v&v%=)b*=V)W5K>yR4a)U-oNcM1Nj%pnplZ;aD^zPP0q8ffQwyJFC#KKR|5^W{}ANlf2m)eDgcf03!M)*7CdYfegoC}Ooo zr!gEBS>~5uF)FCN&4iBL8>tf&RG`jnLLTZrj5m*mo}HXI`?3+n9zvhhB9)!%B&oNY ztB)b4*DA;_DG(A9D{7fca|OTZF%f@4t34%|93sX4#4=;CFjnEYW&z;p#k+tcwJC0#7pr*#gSM{aL(-DzN&-zbv31(K`%ok#AwVDL?;UW;H{(csjRXV;4 zV~y**c(ebeg1Omf{+`M103+r1)4itKQ~u3t)pk^7|1(r&YI&HS`ODLgQv%OkAt5rd zU@hQREWxhrJu4`r9urz%!f&DLh>%D63%MIUSZ;(bqQ}oGIn{F33iDH|Egi3DqTMhqYu=DF4wI$7lVR z8nMmzYGPf?Uw$ewPw_e{#FbQqf?m>)2OQVB*HMUnU(yMl{A`;~NR`FyRD}Udz&pznN$6jYH zKWKtVdXT_4bkf;jb1aX39_Jc+vyma);{OG#0g5aGb>-maO&wgpvxE@`A76;ehj4qYhx@@YI|MpB-ellHBV)3vb6_x}- z4Kh|Hy38HEiKC4C?$ToW<(_Jw;6A~qnbG&$_mkQeuo0q%}LQaB-f`7}H(bq?>??Vd9|4vUnpk`_N@757Bi zp+1TIW{2W+31b8bz!6Z!UVXnVal^bY%OHd(p11 z>Q~3AXs?;e4b}hY#wS2GvM4jkKq-fv`(G78p}TjqKqze3#Ae1RQT&lcLz&Z{kdDPl zBCqd5T%OCU3&UH1;{V*P(Oguh*PmQM=)M}-c#N}H6aK*rnSga@x^M|vnP4YGaSS4S zw$Gl`U z!7x1N(R0E^=Z=0>u+1)k2 zF#)@sQ$;8`T^Md7O$NL@Bioa|_ol0h3nfVaFG zOxBmD;zZZG0du|~KDJ^CcFGT$V)QWRJ0d&4tGO&Z1N|25MPYg9&EsnAFfL(HX2g1S zsq{vJ_Tncwtt;ZT)rhc1A4RqbVXx$U4Tb;WFQhYQ5#!{Y;AncI14~-(ztNxwepfIM zYMt-B8nfG zuO4vYV%|DGYXT*C$RuofSbwxai|DLV| zT509#!R7kK8TT3vTQ8B4YyCBY*2v>Uh~>YY8m8rTj*+0R%Ija;gcBdxK2OBS=>LSC zR~BX7zE1mr?Zi1^igz|cbek}CPsofo;Tg)63?Pb)QkZggV*o>Eu1>`((C^-b)nWw+ z#e~9_2h9&rlhr8%f8Jqs5auq@K|=N^?;Y(cOQhg`o_djcO>b=SyuXGGk zwQ#A7Cc5dIPmKq;ob(2Q#YJ8RV=!RI`;>kRE}T$#FQ05By&tkB)l?bmbY5cGXE)b< z1)m;K{5O)f>pEGEDdM2hdns2Jv$?R91 zz6w+TVSl^exmich7shru8z<1RdJ2Pn48eJx}W9@Ox8w zy0C)TdwX$;3RH3^DkV7#yFA~80jax-6Oo+1r@f4?H0mt;znCFxkYnZ3iv58f*nvfQ z5q@r+wfu{Hr%ITcLy=f!mPuA$5uRn3huHfx$2uSjLy5iR4a+r-$5YmC!QE|73W+Jw zM5_^G&dMZvoR;siQYim0?WNY^NeS&ilP=FtZpIm(W%y$_2;Z2RT93tmeqKM9{kkDl z6H65tz!`3kN^oSasG$up)VV~LtWk9dyZcPDq$$-d2(l_PC2gCNx4HJ2pqntq9FD`E zHNiqGYW>u<7s}f&j~MB?GqJz|WAN1pFG|8Pm0d=vkNrIcuU?7Kk%Ag}8DWW$>NSVR z&d|#?vX?{9HGJ^0Yv~z2_#54NJY&!BI1kJ%e(4Cm#~>)t4f`dMt237T>&^XOazBZd z$M!WRISYUC#tpH0jIa$JYG+HTEA4dah52S;KZakw?jHwPaw#q+3ETd<0mqX6)*~lA zxQb12rXZQUHP4Pn9ec&IY9`^gG2XEMopmQ%}-q08;8tdU^#_J%^XO8Je? z8U&N$Eb5dCq_}6xQ%ekrPo(D6;m+P|h>0?c&=Iyp&7NxTtDo2Xzy)lhS99rF=ucrxa3dAUBvK5q%p~psZYKHC6Jz_M zFb?2d8rnI)chHAC+Jk~b+nnf%i74ErjRmto9kU_~Vc$?QmC{}e3}mJ%os3w2-RRa0 zM*nc%aB)#k1vc!$cLqGs$tPT0i>Dd&VnO9ImUOzwUdb&!+()=CWsRUUyNgBx$ujCB zpGOX=(loE&TfLNM5v)KxW}l)_S9va7FYS!q`okWl*Daa3UAW^KRT#l&QYH8Ew!fp| z_1wyfl8F#_!(j6n$;Pp-L_$rda9VaZK9+I@Q2?3A;FEdvf&hJ{Fe0 zTf0Oir1_2?DN~L@i?}A(9=_*3W>9wXsTwd_#vze11x?yx(e= zD9>L(YQiz0w1bXpI|0uQ?1p{)Xh)s!Yq^oU2?-TV{%po)Dy^ z7)LOXdqlSh4)C5tkG~DCkP<9w3SaotBEp&}6Q4@UVz@%}G=~~`>CFWXY?-A|f-5)2 zuci=8#~O##6cV5t--dE$E%Rn`uEn-3@o72d9~lpsV-eb5PmOq64@kf53LKs!hRuJB zqL11|-4Sfsga|qt;4Vbqf1*t_u^W)a4u%ubN{#U!N!JCO->D12*}z~Mp?--&>mdCD!pKL=4Ohg=VUXc~Kv#H{Eex0$a`|77@9}(!M!YY{zo2nbcSTrmK+mnY?N@{sf z*oI)N93RY0QI^W2I2B((X6`%e8pL90R^ia!SY(jVww_<|En1loBWWu`6|REQ!KR#V zUf*M34Ec4u3HAI=;2Xh-=l6?4?t?WYDSoc{^<(cRd8C&{#-T#A<9BWx4%udR!-4Bd4T_a`7^(|tEH=DiQ zbLr2c|5zML^R~up{K>j;lO|ARya<)4uauFaJbpYCL)z)Q(oo}e$mZvAV+40@>L>KK zvK;{5n@5Opot#1x?-I4(XuCCD=Q&ZYowtosGS$^n?#UKuh|wR=)ah$NW9L{ zDF&w^Ct)VMptm)#8_5JyhPwn&1hJMWIycFx$vJwZx3_^-wppL75AYV6N@PtnJlD#Q z^WtsbppNo{(Vf1}EheVt2MuR6svq79SGg2b!db`Qwx3*u>KXErO4Jo)>b*Tz$a_RF zE_x)M&l?bPJ%TIi2-JVRG{M``wjbDlm}qZ}0~=1H(x8g|?q!G<9gO7b${9Z+3FU5T z^SR0s-pMG%g?OTvJvMj{8-xs0_&>S}#hgpxcIi_pW@~owP`0!Ey8XvIxr)j9;c6sm zc!|aD-qBN%g5C}Bj1vaEv%&nK0SXQi6Gg3+7W`>(b-}~+~I*W`VAEWY&$s^1D)O!5fLuNMyaoKtL zP!$9J5{*Y{^G>4ruRO4W<~ZA=2dcOXl`CpPir44qS&Q_L#8*t4xd^bi4{~7rzN)XbG;lI};AF!26pVI@6XS9=J>EM%x667#;5|-@E1b_db8QDYM}Pi^ z)xJsWaU}18|MVpNv5!(8PW*9SZtu~5_LQ^@AZXNvYuLfuj3N4CuA)^iVBNj@B_Z*j z!^zLAp>EpZNo=;o$(4oaq)*#0rW&N0b6G#g2Az!51$ul1*Xywf0ybwDnh$>D2D9KU z+LBI(EC8^mU**&miWmFahL@QDKe=oVRYvvVIK=-8(fA-csMWmWqG3 zH_N>EOHeA)5HZg)aC)TFClDE_d~sUsm0o+9``=#wgVB9%z|3R>>cn%$Do>Kg<)QP@Cyr%!LyLpqisCZQUjHV5XUTRHs& z+h6RnU}N}(2+5?sq~^gJ>9u)hHpPJ%UutF)8eSW$z08$-mai(4`WQx|^zH(}iy?C% zrM5`09#*w_@wXw@8-ZP*~Vqo{OH1p8DuoD{PH*;NUJdw z-N?@PgtYuwd4@Y4s^*r^S#<~9EFZ3WiCL45>8vcf>1YFQP=(pjTdDTu|Gp{n!dm3e zXm4sV_Ii4nS&z9FLp!913A<8KtqgyWlQCx+(Ar}*5o}#!dQI+g`95@mh6DD;?pv-h z=BA^wCfQ} z&cTW!m9O)|_bzVj3;_qzPdBh-qq^bNRmqo(xB|3!`kGHRFR8s$zX#CrwI&*&Z4cnB zF~Ygyl2UWZu*LTT`}3@oCGi4yb4&Q$Eb<=f5r|9lOhchkdx{PX;b#aCx3U^qCmTAz)+?|4ADtc%|1OUwT&m%dIDcK+h5@1z5*qkIGc{i6 zr$FkvThE(J-?%FnuP8CH>R}KxJshAh&=^ExtrRt@H zT&+k6q66C&Tq`NR&mxjWj*w4R*>skJ)fje~U{q(eJ?C~8*32S)-zQ&fCx$7et{CLR zWTfmVJ%$&jv^N*h@4U;zHKEc00P;c`RZh8%gm!FQ;x1(dwRvZ3t-lN=|tdp#7xm}M5CZ2aMblld$s)y5t9#W^N*(2ZTfBIVk* z|AMDk)J-{*sInT)9j`R7!Oe~eB?o_Lx{F+ME26=5Uz^vQu#aUVvOM)e?$-uyP+i4s z8!zI$R8z1^$bR?kV!941Xz%&J&Z6hzJ=wz#d&gdgfy+aL^m^+ydS(%l{L!|YQO;r_ z?oNfvf&}ks>nfOu#`?s?6rJ?+#Ly0 z^RE}2x@ERi`Ja)BLLK3GBWgIvKI_rGso5-*?KkUz!Z%g^3_rTwhxA^3DACaBnd zdrfTMMO*zlZOD#a%*Kar3t~O|I-kCdj>EL#G zf-Mo_@hFY5befsQTiD=sC0J%bheep?kp?CTpFni-_)q<#>cO1>Oy?*H#K1Zx_qb}u zma5sWGcWc>#rrQ4cl|x7*iZ%}xeCJAan{m9kf+%a$~7@ZZ3}iA$?8XiXybR05p6>CxvqlE}4|KJv1d z{VSt3?toXReV>%Dj4ZHc{`x6`G7d@^A9nzYk~0=Qx*ZO?3Mr8iGEPY+f?}BjrP4(u z5=8W`IV~3n$fiuU_@?QnvE2#>b3?+oyCT2rxsC&UF z?jbqShj%K~zsOYTjJ&3i-mf+$Z}T7z2>9MTBpZ(%-R;=?JR0|M zH2LI`r#4Tf;O=S!nMtvZ^UDgCb<^&}8%~noNLX>#&78Ka|48$u_^A;+z9sc$2K=EzaOP+d@>yh zc4iS^B}MN@&3PMWgw^#b^I>BvUB!^t=J_+>=f~LIzh|4$YPoxfGO&Hx1a<19EjG@4 z*>EC2#2>uv;-Q~S_QCmuAM3Iuv3+sUz!L7u-{FwGW{+RHx4vqM)4cSZFr)+I)y|M9 ziK>$1FkJdWd`FbGFEfP8V5}O2mn;fgU@bg)*KbPr*kJQS^(*`v{&BR%NvVNrQ=Mj9 zhYVNlJCF9=h=%EEx&u;^d99Z%mMe27zsW;UE2+m(gVzIDvh{rXX()J471 zse?zJLRPRM_M%J+9xpxey;%c_52{L9#hU_}{E7N_2%@;)ZFWN1Gx*fM`*G z^PE+2j@0ZFBzGar@J^X5cun=E6Ge-xYc?$wkFqZZTpm5ljRfa;mPY*E?GD8V8lTTn zdbZOgW}#J-;auQLPxxo>1;R3o_I3e7%SB8f)Z1-fdOa0}khW_|dOs(`{?en&L{BrSW&QR3^ zT=93WSmwanP{mpGlcUjnct_&CSqaV8CA&MwvK45!W~i=?PJ8zZF$O%-!2 zy7vr53f45xKZTF)sLQ4M$$epx%baf3HIdWfmYS^kmSyUtrOCQ3GtasI-QIWx9%rU`kdO_8G*#K%=Tr5v|xuw^*=UQr4Vf{%a}%(L$| zu@+Y~r5sbgxsXA+Y9s!9wHQSU>+eCoeP&9pd)gFKH*DxNyKx6F0f?q_x?FRDUC|R| z)7Q!e0uQTIdBB;S*3)=S0g2h^^FWpFzEB1CtT5^IX^*|Vr(C*ruQpD6Ix+ov^~f8> z5sg)+v1Od^m~Yl9NQ(pGf&+MP%c@-G44b0H%d1N=ojc5|Gh48k!=@VZn?{wC2upnI zL4|AkB=N=Du#PJ+QjQ>vruZ+<_gL)R{+3``-@i=Ronmf&TzWdn-JFw_+P%|?W0aWq zj$=$a+l^!8O$v7~KYeKl@tR!_UW55Iot}1Z-QBH zpDi8{g(J)!BbEeD4vdnm{!9oV$)cda=Jmz|dnbPu@4Gu(&L-uToSs0~Bcy^fCFK7^A3vNITE zJK0LBgj=k;Axw`v=uyDDa*b0|Joa<9iW01E+~6z|^B{5|jdeax5Y$(TLfE+K;r#sJ zARa?kZ$LTA-)P|V(FUa!h$)llH#y6jbplJL4kA%as{f8$qJ zW=WEj`Oc7c;##$gc3Tt;9W~ZRQ9C$xH{1gDWR*+UB?V2FSr^w91?WY%YmWSR)U+5% zAoVifqmKCVcSkSmPm=^TQ`I7%(1!ztL|?1bakd~tr^4!-CoDwAMT7DDdY01-=s8Rc z5su}gqOZG@Jk#GtDT*G|2PN^BNGZK5*n#_ic2kcxW=K93i}}+X zcy>-%640?3GWq_i3X@L-dylp$_Y{v6rmfxfnKAvAZ zLNQMh;7(cZ`79(!pFgq@VHfV&={vRIlQqJSl})X_6K9X-)j0PIBHLs-$53EPqI|4c{w6 z3StUd#D5!BNG3TCLdthuH}lwC=mmXftw-h_$V>&JnWn^A-4ma?63Kz_#5Aed$x?v?(b zCR3}Z%<28nO6`-B!E$ngNf5sQYVB1)>kfHY#skbjeAX80bty0$5J0+)y!L{vF2D6X z8J;vBfkyTU36gOkVDC||2k2%)E_{pxFeb{T( z`#>IXQ%R^avki|3=xBW|T9JAB@k8&yR#4^)&A|_$uYM5g}XC?uCpo>Sjn?EUMA@ za~f{Qv#fIaQrek2h@0YIA!S1Gfe{J(Zi7?lpl-+Cz$MEBvZfzIi~8LTza`(@E@Hek zy_>?ADib&&Rnh%^*V<`Ki0Svc+>V(?UBvCfE5A_L7=w8ueCYPwMm&hC*PgD7M|Kt{~K7R1$8J{YtiBmiX*W;#g-kkK;mIt*Ls*8}Sm%l7~Bcj-Bf6Y_IhY zLhrd!*XJ#Y!be@g;E`;(th?OBhM~%xShbmcArFf$9yeAyUQAs%zt;js3wa1Mg}g|1 zMokEB1b0n1rc<(1554QAltxL_Qd!`znbVqJeUoLaZjq@H*}c1bSSECa?Z)x|M~hJu z=HadK*xxD-VOk@NQblN9y5qw{^QEUsZ1Aw&sQKEGI;hl!Eg5E-WgK>8a5v9_G)*t(Se^ zVqiEoSogJ_I*w8&)Dotsw&8u+VV#KA9n1~xJiN=fY|jxxVSmv!*!v#S?App>vhIIB zS?>oUhgwpksbFYyo6-~@MLzb?hEaGl(Oz4N${WkfaTev=VItU?M!|_?8mH4=vNs@G{^HT&rq#n2QO%`M+G)zTupB1=dh*yHD6Pd`MLTV z&fl$RU)D9W{H7WnYA)Pj--Ix@Cbb>t1y|KdD&9^`rTvxWto1fqdMLVOkT3OpJng!qQ%|L6&u|=M;zih zW|LC25D73PF4S{B4kx%OTxn;7xhNhCHLRIAb}mxf&q+~J)(*=o`z>;&*8+1YAvha8 zRwctUaJpWc?NPJRAjBja)7p;sZbmko&uvisNR{%wY7(1*r(K{F#mG)L-)r|WE*R5NQaq%)|7GB?Z95}SNGm1U(6H13pq=}hxfnJ zybM*z0txjP)@OmTvp`>oGGV3vexOv#1Ly8{RZoe|4C%zvB$6zeWcK4sy#M@HF!^w?l)dx7sSZ2we* zeh7vng-k1i9oPlBvv1FpNHz}RS9ZQyiw{m#Md06RoHhYaY&iTrOZ1s_2Tv-zrjVuO zZR_1eBNRnvtnV(l&%(laP#G>>kOQF|FK97-zzYduLw%JXooV%7Z0xEr`=hG;z#;3F50d%q-8~a zu|5AN9?c$oDEjU6$n=VrQ-+9J5S;q!ddb*i<3@7{w-AH>ILmQ*SCqfK9o4K-*0>bTc;XQ^Ox|{?Ze#dL#j`Pes5;m5I{l<#~|eL{#XQ-68Slw3}%E$Dqhw^)Q$~81(UIY zSE#;0pe`8x2}lDRqL#1=>BA3^Lf(=t^3Cw74)mWb4{L}{Z zJpluC;)IC7E|;2}qSK?b#)c;oJ^2JOoesc^V;J<7Hs>#20a~e0n@*H#h;4?xTVjDv z>Os^FXle9&;#jQGV6)!uzS)kE%ztXg`10+o8qoDx`hHr|C$Uka91gwWf6Yzh*7Hs- zg%_EWrF%ul51^eWgl>h5CLQm2x^{?}aCfD}iw#^kS@o0UxrdE6v`{M3)!e#7-0f>q!NaP?yqYCXC$lU||U^ApQf2mSKf z;k5q2t{gQ>2LQS#OqBhQroA>9zML%^EBw~=zE0w1xSYB_RyAofvgekikwB7y$g5>m z0@|Y_g6~^Ei}m3Hkwh5PC5a00hr00o{7XXdkJ=80+agLG|D6#u*dTRORgbjj;~9TT zq?`uYoa$a3T@&jR(OGTt0tgzxz>TR!^otKY*eU7l&4x0x)+@mL0*nTn&W)xlSPaZg zZ;?iDk=J_UW-BwGc#Cl8lDS;Ym~M9QxEf{mC8r`W121%;*#n#Ll-x^m@m6`Wh!@eY35{CGU}2XBlU{EbG*`T-caalCdD zguY02Mz*;}qy#GN-x2w*WLtyV-bTNrxz6T2NFUIKjEcog9W3W|h@!s}`MT>5t{r%N z*|E56UlSowXYi$1HY=o$N9)sb%%OqaRnu1>rN~bT0r*3KbAUHi;=y6`E5d|(^fC$W zMy%(o&%h19|;2k>noKLA-Qo$$a5uK81J%<;y<{gZRvJ~E#-j$9U zd)^IAOka+jXrOQETHXAXTX9zdDQ4c%p>lx%O+%H%3}}!1OE31Mgm=LYlGD`ludLDs zpQQKOKb?R6p+!#d$@kKevkCY+$hTNc%-JvRc>54fKoBIJPh3LPC>0a7G9_)Y_dOYp zKUMd4CBU&2^SEA7_Z^@iLgEz`5eA8PW&n%wlOllfCaZ2k%?p^jERWbUBd=O$6E6yR z0yL?h00P+3=cG|Xr1GxR#!xK)wN}Z|T);9eaEC;17ZTC?*vS56O7mU0lKK5@uL@0e z4BU6N)-|Voob`fm^kd`Lkr(%+PH(lSAnrc{k8>*y;G(|Nj~9AXWx)FxqtsW&G=1Tz6%-a5j0!JYP@Dt$aZb z`&DKD?|=gR#bV@-S_-cw-NE^ecE$Ce?_9QUz?p>I_KQKHHd48t$Ut*{Uax9~tQ-pj z3unA?c4ebqAjKLx9-HUn@f%0T>-Swhsyq_lri0HCDXDsKz87tAfzk6}ldYd0cRg<{ zPE2XqV+@w`1Z*d3XJcK&KpTty02lh;4iT>9-Y6VszyG*xzk}(8=GM!Sc0YL<&bI!Z zqb*pv+qtX0?y+LbLjYC875d73x50;u>lBW#NqxCZAd*Rp=NkVAeKGH`JxO=JaxEA>(A0wZ8s0 zZ5m4Ewwyo=sZ#n^avo*K)Bk6n4BL`i4(07nS+~HJWRWg2T(|{`nHgcWs)@G{su-Sa z?MJGr_5QbMXQCsu60X1h7ki1yQ_>nMsi-FM%abH$*a`NN2HJ4E$6TR*%vdU1Pn*=6 zfs@XM$RUwP6Ni#&(fr^G)N(IJ1E>2hZESs18IS8CbIxVx;rr7|IDDgEGuqKCjJ{?`zA1^EvBpCTz$E*0|IBjoA3Qw_w9kf`x z)YZQ)=(ovK=#7g)yZ964xD0@x%ApQWbBFssgg`;H^LF#yesrcb&~M#ClMgU9&`4~v zHGIo9ENyr^smXV+MJFg?f~z<&_8Hq#qT?@*RlOvC)Il-_s3R}Maj`!olFaGf1qTzn zmRqhv7EH<_!?=9dzN&)6#!@_e4vY-eG-Xv?8&W%MA74=;afTojw7<(fnjk|ej=-bMRmxaAdnk6!~ovr-qR>l73)Ph z!)JOi4)&TZgDK?Ik^<)NlnzUw@4rMotVs=0ksK(sayWZ%p7>qj9Z3NBtt0TtXs|b0 z921`IFkKJaE8K;$FczOSdIpCs>(C=N{~G{0>_7Djs9M$Lf<^e)k_htFVu1*Rs>%j9 zW#stXF^0B)Des5~iIj9aOJ}!El1y=2(((uI97BWg(NER20#3a~c~@RN66NrWR&8Pu zv!Db%*(O+l@i0#{zO2HQ-EKfc?o)8sHG+8O{fsv*kh<# zFB=!o_Puqf_XN1W=_NaJZlzBQSF3(=`QQS8mz>SJH89gz38!`b!sGjX=~U1@!C5>rcIgd7HF8M4w3pONz?9$hn{Xygvk)<%VbZ$Cy^tfxXhb zsQI*FtPRTplL+9p0OXJ`sWR&^{po}%b#;;Cw%WvnO^X>SkavLXQqYRQ`{dY&?HA!n z$B^A1l=G-YAM^M2lSj8j=l6iM@{lp9V*J#Gr#VFJ`iCC5vcv%Ogs>_8C$Oa6s5?)) z=oI(Z@_nokFMZCm*&3hlw@AlGdK#-I0Fv2rp+smsTP(eOcNP{L*J zd+dVXai!q#aA*Hn0c$o3nY&GGg!cFHzXpk=)2Yj0`hf0lhXXy~<}!xF4FmFBkFu2GT&O1`bn#?`z^cp^iNVyWywMMt#N%T=&-ex<&Qb0(NE@jG_97C z&sIH$&9F6O0e(K_<(M0At7Bt38*dEG>vXfOm@O;7(Zz=Wvg@TWV~^V`Zfki3&^0S|OxeY2iHs)h$#DFFPDY!Q@ZMJf5IazQX8TANdTUkw4cHA$>hH?xexeEv*TwTbBVkhrqJ5+Uu? zeD1nm{XAc+(i764Q#u}YDiQ`mu1!*DgUb9q?J5g}Su#+S_SG=ovXZ7-lBD>2nak*= zV;l^1wDZxr+lZ949zDKLbqQzAk@sZMc}wQbA)aT>S9u{>EZy|;EN_Xv1cU(#%!Q=5Q***S#DMxr+t$aEtZilcWY9_s}0H5YPY;U)GrcL{1sH1e(TDePpF%D z$kwzuIo6R_ej}iXAe1qT$eLQ)k?Sj&q+R|a;}<;JlQfUZeiRu`;d}!?pO-zV08_sB z7>KO$F)>+$bb9y#pXawGqZqGuPpUfM&FM z-f9NhZ}&QI;rocVg+{#=G8(x^9Q#iyif7HbTz&-;E+I^99zAkr5?;9L9LF^(_?0cM zivj9)(wd!JkTxhRF25=Ds!-VCX4GBzMt=O67Mb%+x^qq(*>}Lo%A!8qC3**uci(`& z`U1!%+CJV2$~<#AS*?KmZ<1%CGb&P&fkJN)JL?HPU#E&6|; z=ZBk_zIw6e0+!gn`*|qnjg3NxE9NzENc3TqPZspf!l&vponH1yy>N_~eKxJ1K!emW zFb6#apTA+U{)*QpwVv;{)dO z+@N7y@+R;t!w(f|6fp*KGTt$v7H><24{?$$RNHD}*ky5|w=W&}F-+(4#jC6g+IO62iBmL7>8}ffP^x8BDtOd{4Dj3YJ7bG<(fJW}H13`uF1IXyTywxM|gl#eU z2Q@?M$^Ng3R&!Po>VNW15?hbR2m4mU@-{wIa;?opf1ihyBLn#CvU6iKVh;p2+M#WAYmaQtK9)>+9G3paDGJ?f6uJ17tS+wZQu z*R|$9je;SgV1^Rn`en#bE#f1-On1>hnFq%gRkYR&kd@ynlmIF)bHe-iyX^0+4Q#M$ zz)Xin5P>*bb&yi`lyuazWUCIDQ|n#7zUkiRs6h6=i9AXn3N|hB^ImZ;s;uR2D!8^Yl@cgJ^xcPtZB9hw?X@Eh-4fBR7eD z0R!}gpm#)_%Vy3)lE9XX)X{hXKc6jH)?MJa`j|fS=Qj?{=vFVsmI5M^6F|oZ34Our z`KX_Hu@07N!t{Sz8;#n)^{uWzdHIy5L!Q&V=Gg+ReN|r>XHShqWUSuce8ph1vl7G4 za!(SmDfNn$$|c}wGY_PgW!%NP0}a-gE3KjApm;xhCrvpGLQ!t zFaiZS&Gui8fFKl!hj_ZORY=)kmLF%tuq%KQxc}6Bd17+%nrL@h6=E&urYmic&~0sx zhu(b2rkL~R`2M2um~U;A92dDvwd!b8T*$Heux&f}%_Hag-4YiAnqIH!>7ZK39Zkx4 zO?r2|4PmXwGJ_j_|C}EwQs%Df8qf2IC?t@}@Fem4`v0ELaz*}xSs_8g%dltfVr~DBB z@+Di!8a`e<6bkkb>5nH~vwj@syv@K*6jJTGeMQ{(^^20p(7i_5DO0f9xB4dLyH8aS z1=DXS#WVsZiq&i49qehEx%x~df;|0$V1mbma)`9bUi#}6e*oOf8#ynPyp^}QtU+#! zUNeBwoZUHi53N1}M1&>;(2#fR{c#~OMmy<2P2NuqJq)Y)-5ezknU4GTPK1qs$Bo-t zjHLDr$w{t|I1fMmTJKeO(ni`n5C{5!0mYGWwRZhb$Ih*?1ZAq9R)4jxpBxZ(y=QVi zG$`yqpf6%-P2X`tF-1DCGbO#GG4fYrMHvRtuc&=#U4azczTH9Oza3m%9JDh<$>OY5 zgY{d=mn+DGhPRLh7nbO^&@eUuCv@?MTmNQhk{lj3=;-q__rw?-{59Q+!wLxiJNS#h zjS!q4&?h;J;32;xnM7A9$cP`OI6-YhX?gl-)0rzpD((CRM^9Q7RyF2v<=W(X@87Wc ze5bvyMp`J-Ev$LrdZeh(`ua4U4zQ6jEw`qMX2s!I$T#<=-QVvkg`qkYosk&2?H{%R}>4K;`&zA)Q5Q>~k$^T7~kn5O4C~S0L*Q z6W_{~0MIz3Nxh+ez({u3I>{|PaMBUe+Gx#>DU!RZ;s0@SgE?Nk0ehCkl(VzpXXhLe zbsdy>w4S%xB^Yndjt6;e2!?i0haCxh5)?MjhnGVFR;D z6l?Q%|11q}Gr7I>ZSj@H3$~jdufA~4s*{c|#g|kXpgiM8FGc0#XO(?LodkwQmCkt$x6wW<4J`V9JGE``mB-2GUby!< zg9f`zB5fKMfz0W{m<7EfuNbA~fGisLtJ+uSM^xSZU{y)a`Uy4yzjuq-qAownTx&F6 z@nz&EI$jzIU$%d46Zzk^alcCO}sSiQWeK*y{mLND~oe4m;Lwe(iOLchxpuO zpm`d}tz{f)=|dofu$?0tWOzeaC2O!V;MDZV2hvqN=(}>zFg~!Q#CIW2wA&;aE86%o zskKw_!O2c_k7%D@=DjR}@0e4}Tzt)5vlqJoD&tmW#*2Zna8J}le|R2^og^EGu&jEW`eAM8 z!KuZ?zehlGa?kj0t}VWopGQeL2!Ap_0chz-^ki-0^3YnXwXmCZ`Hjv!BBU&lf;1ES zq)Je3;pp`j9){nzRV9yuzP>g+Kpd!Ilabq^aNPLl=x9L6=X9Ak>pgK+p>tH97o>QV za8Ug{tX7O{aC_iYVV}D-SAVP%C^yYaGr}iUx~2a(345!teP!5Ib?=DZXtd31{JX#= zi|e40n!${4xBjHNBUzm`nHS$yjh;*hv4SBeXu_k4(AZQw>}Wd9=*HbqGD0b~;wy@j zoB|iu*3PcDGKs3oJt6k5g14NL1b_?C5;N|ygr&L~78I-&F?wO>Ami5pp%@p_m0bWV zJ@6XsWCkz6KlaF4;ah!Y%fc|55TI4`A?;d9m|gRc>m`%DJt#}FBI{vX#rdA6*+$Jr zgDYNrwgLkoI;^_#Wv3L0CI`z2^AUwV^&LO) zLLNxMiPS)H^+D?8H{mKdI=;B28IG70j=9Ps$(cu?Pk~*K0LG8g%yY6jM1}5&psdW4 zVMLl-n{~z*-SLRm$5_Au#T42%lfAHq%@-1Ult8|Ib`uIZ`k1B|b#-i5~hosdg5@Z%Hp%ZK&T zn5$&&A>3s~MLw@9Ss&I`fN!qnFq^TZuudlJbKcv!&F$7&(o&0spXP zGSWiNYipdZg@0+4AT^XhELy=kbHVdMagJ;nklwxL4a*G0-GCY@;M_`?0=qoqXLX27 zB(K@gTRZ%PF}hsfLCgs+g7)Bg(cBMNV8bdk-1sLfu0opnq6#qx$JLu^Wz6*Z3%mU} zKIK<@AqtdrtZ&$4idP>OY3RQq{P6Idh0Kq*RMnKaU-J#EIT|2fD{UV0+8-623wv`6 zHp@PPL^!~}Jq^!{`EN{*#?~;%Mz{Q|u)5xvS$|m&;K}xR`esG(Q>B2VlFs zg`-&Y|H*-u{q4TJG92*hTv~CJ$)-DX?7R0tDFY}!eQFT>kXaZOk3M0gVG#bkZmb0? zBL@*`Qg#ttw9LIMrA*=Anp1$(k|O3C=DsBcXx4UFG-+kLl72c-6aPhQNF044UhIfO zxR=E&1(N=17|a>!$=CyFNN0d(*gG%#TWR&mK-x;z5!JaAiRPAzP>AAEw&L1(sCRb$=Vq%gU|yFd zX9?GPvBDDb%c`sr3geYha^lPA;WcGoPgNHwl3et(l*OZNvA%~RaFp>TC9!4LB;33<-_M^v&;yly&^2HTCUFQUuVrHJ;fxX0gr z@7Co*$Nwd!2gcc4oimg1x(hm({j5d`{oC-mY7(e*biUNx(NC=Yr^14`rp2nZ2s*#V0i@Ox%SKfzHS+zJdfEBvlIhk zO{{z&3Ih#)X^%$ink~LGoA|f$zku}5QA{Xd*#G26>nW*&O?y$h~7 z^j)WU<1zUd>S!{W!-D!W)$A^aJ+(Eujsco|4{lA#VM0L`I26xujw6>2wLTl4h!7}d zaP|#Z5Cb2_;bBvp?(2{V!GIX?LA}aL9$OR0Mz*9*>|8`#sGf`AK7KTv=>e@$-F%2? z9C0)@0NT9Tere16{f}en>t)RWG%IZGa@Z_!8=2#bwr}u(8vaFSJ?V0x26=m0U$;#? zxXIF8Y}!`0RdjC5+#lR~O1+=+^~)%}{;F37=s79taN=i>)Z)?o1M+ok8A;Z*XhTdb zO=SFog2s%9WFQsGN6`bhpeo|m^$x-ztLcgjlIv%};zQ>)5)lO3n&V(!fmtkh>j8Ij z<*Z%5imOOuZnmOrmJ@cH_P0p*(rZg}A#8m7+P_oNqrel-DWiLEAkq}aW4Y{8sN*)} z=fcOb`Y)yXlw=8BskUDC&e)MUD4DTczcV%;tb!Ks7KOv@tXo=s2V~eqp?tz+X{bdw zG9}$_o``-Q6@dD1Oi(y)0|Qc+5ib}auWJouPUMF!g0*Ye3jT8dSZ;tE9SpGeY<+y+ zKg^SQAt!lWTZk^W?9f#s8Ol4fDieGaXf_Gk@`hWd&brbtHw7pm$DJn-ID1$eYkCJ$L-&M%%TH^ycZjENV{Y};&W#mB zL_Egyxrns8!v3S&`L<;5y2+40J^Ic_DSh@h+K)qYl|Kqj&IUwWt1RWu>E7dr%zQ0E zH7pXv@rcF6(AGPM!gLJUU8al6b=|RCLw-HD)k9dm1v0ef`>`)V0{qz&K;o%^3aOD> z4Bi1ES(tBo$hAKqCL7PB2=;7$EHmS3A)+^0DQ*-0JO7xSSKx^o=TtE;Kwzy!*X)Ax zj_lC;0HGWvPIfq87~yETlFRq4%jA6;PTOhg9yP?OOm4|k%HRA`i>m)*VYvMKg+7sV z#axt*QxRY0b8jhASDTbkdkZ?*J6uT3IS#Kp9SeK1soK&MmV=?1;DbHu3~{(CvJD~N67+Qmt55cMC5a>mBORw&=YJX>s@0Z!1>D(dtyIQ`YL zFw}v|vuvM-pHonY3}dz+%Zedz{ls$pmUF~1vuxz|vST)@A!uKGH}e%fHIO(2#RI{4 zKA~zrtBWk&++Q#xTq%{!jh_W)knVT`XYGo%t&Z_BvroLGZHUgzUFbJ>>!D61<2-Xp z&?X|Qr#HEH!W73S>USCd+7{2k_1-4_CSkOGMF^x<~p&|WFs#3OoG)3}}i^^^ACti17 zj1fwnz$Og(;RP^JPNrYrlR-k8@*DJh)KgypXA!LUfEnpqMup?XJx|?cMMx0(bJiX1cHlcX51^JO;c=@ z+&~;2Lgi{og=n|UG16-3vEoqQP)Dt|wI=npQkNJhS~O35nMcBhF?GFoxy3p|$WP4H zV|&ZaWDN+oWz=p1ZkfmAzJ$z-Gc%R*PwPCo(vb0ps-v%-$X9Xs0wT%pdtA7izV|NW z|EPDO22tl~Ph__UgaK$rDf34Ja|N3ZK-25VC4Hl$)b&Lkmu#o zROzul>?S1n^Nr^P(E3+Ji_CQ{a9k6N0Q!?T%qD0U#rMD_Bgcjs7%Lf$kNG5p$6TT?gaPieA*8jjNaia^fs`-B&_Q6NWbC%EDA$Rg1Vw zt4{ce-ZlsA&xL|KF(EIN&@Oi0&*`l^VwMag!H^lDVlkFv6K2YjGez?)53;xQ4aWe?pu zFj_PFHP~0iv1Bf2#?<@5wVgoNU2l5J9fW&KDBf}D z2g>uN9&BYIUI^YyM5kq#xiI+DMER0GIfe*yC66W+kc`h>##)w1L62w=3R>}~%oYYmC zjqUk-59(Oh)IItsiTX?5AcP-1c@{M3SZl#ECO{ZXb8gf}e&JnI@h~aZT$aM(K&5Aa z$#Wl3k5))8IiL>z;iM6qzjxYq`K~eTK4sW`Z7ldJqAgv6G6m$ItmLckOH-CiMCksQ z5XgBx4PaHR;U>eup1srB7J7pKn%1iIw{=g>cRJoQwUTFtDWdr3PmJLWjJPXw z72;ba%XUZFfeFcPCdy}ur>~i;^l>1!^3Q8bh?VKm-(x|*Y|_bklDk-Ux?Ls zfj?c-ip`bVG=LY#>IUj-REtKE0)h^{Tn^MklBkNc;ZL~4#t16KyF4!5gq~}an0O{O zwv26)jHI#PxC}^!ecbQp)ce-U-_yG=E~NW_LTwA(M!M05rRF!Ho_o{op3Q@u3#%gw zZ!5wxpx+x1uDB=_@Riog0vpzQaTPWia=Yb2s()J!^=ZR?e5eGNp8TZUOC4E&g{`p+ zwZQJE7MVzZpKh1T$*sKpTXUe>Fy`Na+}^nGze@si>*oKhd$-l?e=DEt-|=q$cAVh0 z^z&~y;ND8ezf}+ZzkjRxe?$Oe;s1#6|0hBSmhE~ii`;>xrv?NpwI|xD)ygl!{s%+Z BiC6#t diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512x512@2x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512x512@2x.png deleted file mode 100644 index 5e9add73161e79c11efd1e2c4e4ee64f243c99e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15001 zcmc(G`9D;D^#7eP*~-3F7$hWXM6wLoWev$rSxUB&eVIWK%9;?eWzW8bX-2YUO+uKN z7E897tiv$#x$p1tH+<%onaAs#*L|IP=iKu;&*wR>L<=(m7Upxz006KU8S35w04Vqq z3NX@xU%R2-jsW1gtC6m@b!h(PV$@@9gSVuA$2O1COAIT*79kNNDSG(%^{xolzIXxX;y*(1*$!VWCxZ3nOc<*~8b@wyL*= zM~D)^A z0jT1fB4-s$5K?dL;YCZiqV>+Na|qitpEUUG_dbt>4UA$1qzd|_Y!Gl7afB##Mk`tj z0A#>pl$uekhkt`ngt!RqZRp&~fIi6k`&9ap>pMV1 z1Oh-wM%bBfBbyLLLG*<8sXCO$a)hvB zqt>@#bOGJWbOC0{-R9;PW0^}sfWZ4UAm24Mx_9Jn9;zNL85{k~!Dh~)U^mwYX3tG8 zbx7CDw^%0)3L`%7O6trX=1iefus5cb9G#G5z2R02|WWI*-n zoq?3?=eUpUcXwXfdK90$D8ar<2LK)|0-Ko+7lfDPZU*>Rn6AVi?exS+fmd8AQ&`W1 zn~0(wU4Q`MC~RtT?V~m`lrHeQ<}o)!UK19*>!0PZCYnGovpuozD$jk7EU`q_9lX~7R^ZdoJ= z%3`iz8J5~+rMY!urV~Yhq#kud|LhZlXB41crw6Y21{XlHT0T_pY&71BO5y8o01f6? z-CPgu!27M=>wt54_vP|p(`*t%0eXXaI1g8|0}v+)0qAw>;nTj8XIZeo^fOUlyLg7p zpg|e37YK&13Gm5U1;9^E(pRowQ~)FuYj>$ zMj!yfb$s5gzL3BcGB=5GvdXrVWX|sg$60xgdNAKLyF4aj+1204r`a$i0p#Z*$k3Ea z5CQN3hBw(z)74dwJ{IRlIi^sdH)5`tC5-1E0zgn?3hlKhxff|y@^8Vkm+<17&CxWg;PL%!8Jkxf$a?Sl*Zlb zSQjyX)c$u3_tTujpijv#gsS&(1IIp1ZRc*HYomcACO#7e^1l8hC^=r0R^81gn1>PC zkM2YBN{k)QBD$@9|0aqCF$et;i4((Cv>S0?YjSi*@QPmNH2=KU?+Q+$s-3IG|L`69 z9js*F>Z9s|Y%=kAwBQSr=G!cp0!pDP_fDS|gM92Z0elW-uSA&pS<}+b;*t$sft=MhN z;(%9Mmi;k16X58NZ4ci;4?5kqGe^u8A&s1_8`Hn$zCag8ka9Bs7hj~0pd57`uG1Nd z@^P*1but~9Gajj~eZSo+23>RZcLz@9#9ZHYE`je@$DEdzMCMrL2P)#_m5O7h6kPPbpfNM1*>JDSvFjHfTk56< zeK?uYVg8gpqsM`5jL$(+`7V%BD_CVS868EZ*-TFyDuk<3VSwz_Zl41+cntE&Ub-$p zbWtxxhPmX2AwV#Tquix_`0AaQaZR64e*-PXag9xlPCyF^sGPIoJt@#7)ZZ1n$Z<{3 z=??duLtB_N#?5y>p6X`1_b{mNt&PX}T1(P5x~Z1BTj!GWVr-Ba+z=^T(G?=zL++=Y zr&^)TURzgGfGYVDp@T3i3ejpkf6MHsxvXJ008{Fp@&K~l5MpRy^0M;vb5Sji^X6(q z_+wIg?@851sneSSFr-TEL7N+2ug62>PagFTqK$nkT~FRIS`5w32p%CAcmHjQVr;m` zg%(`h)lX=i|@%#XQBARZPy`HydW?pHx6QR2xKdpjxLM zdbCu>o}mUmghy0FdE#r8<_|_AKGrv-zn%E#8-`Q6eb%Nj6}%T7Xz#+d7oX9hSJ{(* zAdL}0Ss#}7V>LyL7RB@mpNo<4$2#=~^DnPXao5B4CIomKnM@!>H(C{1{u8;~pxvMp zI|=iBZGfRjzPSCrrL) ztt|$zuXj&CxpkY$>!A`OiSsj?3!aO=>3w^J4vk3$9I=K_@3$e0)pzP8p)c|d912=+ zN4)R`*tlttf1aEL#L0l$}s-Y&6-{_>EgTZ)KM&Uxs-?Qh_OzTY@R z!m;ayyIY7|qIVei{*?F?4FXFx=>ETdKO`2eM=D$r^ySM7zjNUJ%o4So4!BAmZ=S64 z$SU@{bGI_{+%-DPhRHL_(~AN8Y;qB_xu9~#zsZSfPQrhFj&bQjhV`MSuVHhP_K1@Y zUj%s4Hw(=7bjF2}Em0ZiKv5)hk9w~x%m1Z}zzo{bJR-P8s1)!3UB0S&{j2FK8oXN+5<|IHNr(f6D4hu0FTM} z9fs&Qp%kbJTZ{o=+C^wM;q768m8!vKBa~#5GE1~$1|Ys^}?(QfZ# zRXuitV42J=S)x7Xt#qU;xfpen=gGf)79HstyCI2MpND4p)F^mCU!X1l+%}n8PGrnF zJ$QScF%!`@NDSg%BIC}Zt*$slGnYg3{n}z4YxehU(4&8Uh>AaoG5&iE!&@|YKJ0Uv zAt2vm)k`yop;iCgM3lF)Sz86?q^y?$z0&IaiNEOd>-B=kh^^XX2@+l1>Z+F+?O4>* z`4?lK0f(#g{;*}rGECqk+6m8r^+OeduWUNUF(mshO9k>+x0ye{5X|q{o0QZn#}_ZD zv7S12jtKx@@4K80>eVQ~^?4S;_GCYo4v4FYZ)SZ-hWL`a)ClZgt}h(m$t@flep7fJ zlJLnA3m9iDaz2Q-pMGR-8Wgi1AFeREwL1Oqf zs#w+M39R8{d5oGOJ1%GI-BV^s&}30x7eyS#yj4%*CSp(D_l5pH}iG1 zua`u^L+_sB>7@rR8bNcN8+DGX{JFZ8Hd5}R-D6M6dZZ?Yrpez6?;3C2%_8o(NGof6 z($lAl4_z5EqgxG9WceJ7&F6=pc6=r<+p_2io6dK*;B(@&t(1|htvvjiau3FwY3>8n zuuW=l9rMmRr!Z9hcE9 z2J^Z4MjWMSTeo$Z*c358Gx7?nWCf*b=z@qYIYW!)nB*Bbfos1%6(Qb_QGAW}VuN@4 z_B_h=tWw{uriYc|zibxr3ylp3wYl?6eRzFrx(;8)ye0-CmwEOFRDsIw+yeCSNNR+G zmA@K;IC;K!VR`VU*56QK7b37^Am~G>ttb0 z2~dMP7KUh*&Eh`(4O4H@IbOUP+4+u^;dARp#gEYqT@5s^mTR*SR%8ki)zK-K76cqR zXoFjLuzI`P-|Y@f+@Bp6Ow!7Vs{EhI(T%!&yp5k6`Mf;VgMq$LjnEX{2*$>^pja+Q z;9V9#yq`XL>bHx=+j+RlGES6Sc>hmo`_U=xtk$G9<^vbUfhurem%$%aYgO<HIv_~y>Zik7d&5J8YLlkU&PXvp67%e;M)Y|y zm(hp??N6NP%8tt%tv)4zdgAo2uuJ$Gr!BL~;Pm7b{h=tJKH?@=LeK0(1 zDbDz-QHR*O{!f@>P?c4}V05EQtGn|Hm{Z(uR;$n6RL4ke>en09^iB|Il2eMOv@XJ*K1bqvNDGu`T|?l= z6$YGD`-4wU;i@=f(Me{FJYD2cs(SCrXccN82TB5=83@)jSq}@viirRr{F_@C#q`YX z$&>n1@m@Jl#t$Cz8aW@g_j@~egHpeeZ0q@M`rqeYe1^&wW-_l)iFIG0RNy4`ui-6X zk%JmJ*RQ^9x~w(QwR4(D3+0KtcHe#H1j2Iq;YAS%V3&GHjc|q&g*|rjLfRP!)~`^s z*)N|-7{cCr4`DP6X)JU;{cle1mOcOwVEO=5p}D#Jjo{z&?~5wHku%^(TERxeE}bzH z2zUy^27=zAG7^cHKmOFe%79Wd1k^na$mZyqZy%bQ@AqmM0`W`BS39(1#Q>q#?8by#Ppj*k}2-btDWS zG4{Y$`Wv=Xx0K?0S1SuI!N^H4EEf#vXnbuv+E76+AhHmqt^*}7#Ue3eKJrk4J=Y-p z%rbBHy{(JDx5JO1QLgPrAl#_3_O)W9V_?@e)vUIHQQi1Zzc)k>8$08ZuLBRXlkMe& zi$}}?9xpC!lR<{g?sU%&{Om>`oMl@44RbpCsj1Xm(g^&V~c%^Cq3KeVMr z=sf~rpC>B*IK;_@s(|AT= z`VNFX*F&-X7sqhvV}ZscY*X_pRh!}4bM@vo*p9ru^qbKcX2y1Ozu>1Lc1%C0K!rc4 zZGe~O*e@y^>l)*&nUkC5!22DT)6s*%4_1vA)x`Y98`^WCHQ5xM}M6ZlZf`kqhu0ns3{C`%+xs ztPHB|s`dh1+UW}b&vy>qlOTkrVt&Q$a9&=ZEfe)r>)+r|rRmg5iN8^eMnu{t;&_iB z@B;Xw4YjaDD^k~WrO-nbx1pWx!VqD?=a=W)pTQ-HWuNzIx zfmRmH70i6OzN<*pYagBXJxq03Uj3I{RZ6S@A&BpvWahw{4GJbLPYuxR7*b%+2c-JP zD3=pIIqiC}{o`ouMBejz`;)5BlBrC3rp_}Vc;qGZ=NIG8Ur?d<~}9<)19nlw&ew8XVd=8l>hcIsJc z6c|ktzkIv&?`rB;#AqU@x-o$a&^Gw{a%=^oFyoSSFzLkBu!^Ls&K_;{+wQ06C#a<; zOM|vX_vLi3Cr~#(Qqg&V2OnB0?h^YbVpte*pR!WRVhZw%!N4E?1O?0BRYdw9;a4lI zI#f%8#YKu=N@~k6acGN{@;SwLS|dy>^Zpu7EKQ4u9}T`V?ed6COY;R_a>qi4Rx&TR zXeUNiBUPv9LyxaXN=ER4dT&yw3%;>Pkc#Kx{yKpvAew7Zd=)vNn z?c#{^&ZzW|p!@MjR>2o^M3Z-~!=t}rG{zCPOk*(>(=&A}cV-LP6aH3u`|zoce82SW zNU8_(oMtgf@)+M$zMa$JWZAr*GfRys zV@md zG%Cvu(SK;u$t+E}Gt^}Sp@MJBy8x8D`Ie}ieCD1am@ipPQC#+$mxRf`b%SQTO={lQ z58lpvIK8?kr4l;c)Ky!PB}lw}F>hh}_L^GY0SVrBOq0)n@@Kw3sL${~IIzYd%&zt? ziX0LnFrCwX5)SKa45m#j>TCS21UTPtjUXpfi~H_5(~^r%8ofK`=@n=QaC=fv(4pb# zj%L!|Z{XitB>%pJ#&w?f zD$UJa<2v~5rLc`|+J7M~tQjSNe{wMEGOs_q7{$1l;Te(MuBxsN7z=CeQ6qM!-8R^Y z*Z4Rb2F=ZUfmeiiY5pbBQ|exBF%k=}b2$o>o_1*j0+e0=-0v?4`roGJ71LN^5rnfd z2Pa-HGeMdxH3e3rwYNwY(PcN4;5D>QS!b0vfe8J(i$|(FZal&OK6KI(S?%!GBWYoa z$qDKAuYOeJ+qn%%)!kl*t9ZT?Oo?#zgiObXN~TFL(Bya7$OF67>`{M~1NhTsTJjC3 z1$)=tctRYK|A^su%7MHxa3ofHzmWMqflC`Tm$`Aw5`*%WiE1fv#P55}p=rs!KPpOo z@#@K6?;`uJIc+EJ;CUIS0PdgXyvxCZ*B-^AyYAZj5J{BN@k(#tx6l6qdm#B!!^v_L z8T~L?Yz;j)6Fzp*ewyZtC;z^T6DL^Cw?swR9Ln$Fqt3Nad0xO=b@%@umU?hVUMeIS z^goszTV$P>`7{^KyU`HP|CYX+vcvN1?@2R>jg-JdoqD@*NYtqDVCwo3l~N=1j3REq@pF#etmJnOkS;t3x|I1Obm(oIX^8#oa{ushI(LF(Yb^q0?n z`;c}-#AZV^FR9G5$$=XA=Ad2FZfW$jbqjY7NjG_FetGqTj=DNZnU_IM32EGxZVzb> z>skU`JY&6=)^d=h;1$!SsSS~m>h>R z)`!Y(FjU;CKq%j)(!Fib3!W_W-=Qu_I4o_xPVNHYUD;?xVvqKHHa9x)V5ASrM9nw# zMvKnvktR)u$m|Fs<9=lE%D*O_vduy$>|x9Aca*akcbj`q!&vp27QUqxhClT9XI$-#)c=j`yNK8&?m0 zj$@F@Hk3>ItqYY8IC&C6fhW_FLb!LE!~e-X_`xn$&9`e1ZZ~JBJ$0P?X5S@fbKqq5 zIO=9gwEh)#*DkIbB-`);McRM>mt<^D&f7UTbpKqf`OUxN(NWd5Y3|!>`zEfh8Oq(W z`)RTlm0h;h^3I#AJQaQcmN2r`^f*!f?s5=-jblu551!NV42=&?n?O_R+N4{~9@T^YwByUNh>FLFoUF7DSnyGLEd5|Y zUi|j=QYOsu{IFX*#Wo`FPExE#az@5bdv9qY24wo?C*T~knJ{x!hN!i3nApKjv^5=*o`?4k^+HsUhb)p zORZ5!I3)Z9)RAiHd-XN{+PGEfZd5ErtsLyZc;}~6ZG~vOuZeBG-y&D5UMQh0x z(I}ShY*M6@-Y*M5jknwz#fllf&_kw(Kvo?pS|ct1Z!V!SH$Eb7Q&%cgj5pGPCz!N& zcYT}gWHKzi)wD!-4b?WUj%%1ec7Og7)k@?(4VWvNT0Tj*HCT4`SP7-kEy287{;?R* z;M0dlraHdg;?~A=3aZWs2bX&*_}6`LUh;7kO>TX>W=aQy&GFD2iR+T!oqtAOLdC5k z$+>(pHWBy-x0nz2${|oHE?4us)`G*o@#m$bhJbAPo>0LUx5ZVa@w!G`oz9e9xJQzv2bchn{=SkZwVvu4A5AKYv!~~ zoJ@}7xgLBVSYbd-ZQRC$#bWSa^xCipfgX;cx`DJej^rY1QSC17tL254k>hd1i* z!N-K^SoJs`=N_s&3s(ArjL0UWn#)50eCvqZR{OZ1^tYc>7tdZ6?jK^nuW7p491)s? zwNHKm2kPeWZ;;8KiC)ImKi0Txg9oV_o1z8-6H)(u%{{qhG+VDLtjNE#a&exyvTQ6* zZSuyC2dKf_w17time)a~xNJx0BixD&z0bB+JdTj0&DY|jRml7tN= z0vcxc8@ULM!7@N8AYs^IOhn8>XWxHkd#4f+Q>bwwsbE%wJpY&Are$x`dafm@;UVP7 zyDcluT;9vHREJOA(m>1UsC## zu7ubP1F<(72ipoHxhvzTkHDSlAgF(=)ysHI8rFShJ8bjgHL~;R8hFXsBibLXLW@uD z_vmBbnKz(m6^$l)mnB@b5?Y4l)m%V&<>H7?!|EQ$VJvXYOsPRb^O>-d)zlhs5?+FI z@2*0u=wMG@Eh>pF=4cLcb^Z!Q+jRecVZ9B#GHt?uDv-D&q z%7@MCsG}`eKEiGz^4@;qCF%NchK3$Ysao;~rI1plbd#Jdw6~AB8x6PVa{|K7TXb=0 zb+xyD+^2?wjQIQPt@VmQ*u0##<_tgla$3Adc5zg8V4;}uU9}0m|KoXEl6w}4jZYp- zeeOR{{c)rc7I8Q$hHd`~#3Efvk?`Q>E`PIdC7R)s0Qw7nYFP=AcM~@*V?Q4RY#fXY znKA6@LvL$@=HFh~!Eg2N?2M?oyyKOb?Yly^KDO>(ZLM+73|_~XBwTp3)wBDp>kpp< zGPIUA;xaCMYGlmWN*6J0yyh1@7hW(;Rn>gCc}PbITOlJf)H!xB605xoVgOyv$-ljr zOh}BY{44)pswh`jG=A^r zg>rzNv(==gVZ%{pW|7qpDqn+v;{!jv=Je4dFev`|1zQZjV>-E>hgdcv%A1 z^l)_0H)V7rIR)k_{I$(VdL`PMt79Wgc?#&A>$=+RrcY-tSOvB=eF&GErI)pv17QpL zoA&BPMm>*Juw!{*4I7;0tDxPwmnN&f)*$f#l+-T9V;e>R3!aJ{gc^M7F zpFYh$I5I|+D<4?G{k-n!H~RvJ>^m>r|46jRV<=MZcO9DyPwvwcAq0v81Zek{m#Bed zg7)0OoLvxRFLV3u?R`Xc%b~rhR!=rw9L3cj0R%-*j>qPvWn>V{! zq>kSi&Ranoy8C|Z@-Fz!x+tHmyyzlpSe-ZbuPL0&wd{j6xA~UzswH#WeTQ%ak1lV4 zaGx6ofyXs8E7pWg%;h*d%jVa;_i~7CzjuX0GnNw74~;5DUumC=7)S;yyb*YVi+ax$ zw)Ybeog8KWfW0H~Fs~ViyPRWv0G~R50)e9NzLLDbgNu$FX8;h1CYd=oM=iE^K}nnt zVIL6Skx6|#?WuM=d(Yb$0k;bf{u}DZY1s*H)nmrdqcQCQ6(-=PD2QMy2me~4s#bgH zaH0gzhpKWvIiNv)`2A83*fbk&Jw?QX96@f`wNbu@WoqpSo}yN@7tpCan>pOT%NU<3 z1ut=nSbi-8al>-TiimON1}Yn-VleF|9et`Cl29hBwfjGW`>lYuWXLcXR$W`eTwVm zfc>wF@@2n6U0q8y7~XpTs4i;qSPhLqcZEO~vm?3C;m-W{z zxa;VI(lxjT-T%ofZ7ZQ_88g(cViZ~!xkrLI>p%eeAWQZ^*6t4`4HCxSGFqEtP`s%L z(i;(yX@?zoDG2>w1MGjG)t{Sxbf~BvchS@di?I@or&&JPxFG_M26L*US!qNw1P1@Pj`eWF;XdkCFwc<rRRt?1K5rn z2l?ww@1p(ELZTe%Qq($|2Y(@6J@ZAK`qBnV`mwtl^KSqCe!>h3PP$rlK9Q^Hs$vM9 zbobmCj$%$SNHhe7!Qu-}Jvo=z@Zsdn(N-NBi&KLao1^_=`+pu9!)?SzcAJ~VOpN4Jx8Pir>KkyB9P;BT%Ekv2N|fzs{t>Lmy2 zF~%L!L@wO}JU?b-CmVfPKAC!ByF&%pqZeQqF)`BNw5!KDq=ZeH`LpgE0iQnhTB7D8 zRpB7@ktjrxmb@>QH}ka;O<6oA$CsI*I}}*Rdm>o;f2FyprNHa6On0_qKSKN0K?J_v zVoDq0(4T8^ zpZcZ(FMNqZh{wQOP0FAA+H4b=43857c~@2P{ATMeRe?zixVO!gx0sAM2%i@dR!bI? zoP`JPXQNrDi?>4yz^PyTtYE)07rDu8frR<*W%mTQpT^D+;EDTw^|S%=cnVcP6?~H| zgRNZOouKV)zqQm2$xcBeV~IT&%4h%{AwK7RZ^IKA8C8_^Eh<`Hrs;UOe?$?d9RG7K zpY~|IW}c$5yc{;4!>td9Yd!o&%_sVp0@)01jM^~d1tYZ(P$b5QVp{b({mPW~(AM{5 zAXNUjMJ#40&5oQfq%z6f<8JbojcxSWA;`)KCY&lpbZG?#uk7hF_TXiY711<_?jVzo zVf~*+jyt>(26a@ekcx-LGn9YF-83UM`nz)bjb0Q=Xg4wJ4m_?}7?LBO3G>OtztL8T z{Qqo2e|OlO{{oM7?eC>N%@riw!d~i{E3@mTNKFxvQbbmO>2-%0XKG-g3R~Bxxj{iK zDi%4Ch^*uU?Orcn?>INS^FvJQ$!>lS#I0H7$Rpx7N`rfSVHjT9L}HuvPPJqLV@0q| zE}cek)@l{Sgz4#pmP6`=Gbg1<{E*7$RZ1Vuf38EBU(MxYOc2~Qx0dM8%`Qe-gZ%XC-he?A| z7Q9CVwNv2LJHd)wj*qQYs1@XFmsWsr1|2VB=lK57<_*NotvI_Sq`mSk?a-gCilx#o zFL`)qYg&cHYtX~hfNo=pG2U$P-pmt2`_m7f(Nw{J&_K$GlGBx=x3ZzS`#aDjz4f2j4#f|(3<+K>o*qjf4_0LX6^M8 z#(T>7g>I2!a3yWHYxnJ?zdTUdGnq@tRDx^kGsTyrZxr{-SPJy9nlbG91K&I+x>M7t z%jBKe1&nG$_FdFNLqOnD3HEqnzo#-&bB^LyXZqkwdDqrwSX9}E(qey&FRYZ@)RmPu z_3qPt7a##IOre}X9@#>6xN~*$_Im3tm>st|+Tm4dFRm>0CLyok)o;PJ+`O<8%B_Q* zE6qO+{vA&fB76)2DfVS;75I1IXHYye62OEiojohxB%B#z9{ce%{RN}m$qZan;P2GD zS1?C?D4`)YJ0jJ@+&wFU-|nV$OV#xPU---!_Y3-M33A@rlT&g^U5_M~ zBwwQwEn7?(?d>b-_x(rP9FP7*1Rk=auR4SumbK*g9K;z+pB>9v3`4ucHxn&6%O2#) zmC0OB^1YQ7sW4slsYP2kpGIU0vZ;}IXPj45sN94~ZL+@^i%_rmN`e|;I}ieb2V;T_ zR`dzw?I*@xSLH3O9$9v=_@He4r*~f&uPtM2XVN2UTiuakRA-|C6@@lFGg3mr^f{a` zQ{|5Vj|`Y)!d%M@^VdrGCzzT-s$vh?SngIm5uX!bsEx%aGdqhg0ZBf>d;LPTluz?V zEW|Vzpr@1qLy~1m7>}Dn9{Sm}EZ-Gyz2i9x9ty#y1EEP^!|$y&LaHi~oC?F{=Y7(;ZwNpYDZSb{)0*llMQ5L;P>wmSe+OWm#IBmnHxG6!I5ji#o31(I|?p%bM(PR(+q_xco6 zQtPIkch=A7A_1`B?9@7)ymVJ5eq;~vXIZnz5gf{Lf(zTrWil4YDUSPxAFnTf27pJ| zjJ;+U#3sLK@G}2$L}Lph_t&|W4`cp;y9REC%Y5SxAV}~W%R_@wx{S5*sx9S9_bsHnS~f&9cDG|1(g0yeWs#gC z(o*}t1(>o3`&B^`h`UDQgT##2n?JcoF#+j-aOgg%cvtbz{#NFh`wC1kbrktq!o~yk zdcN~rGwI$Ht@f1v@YM24y45xgVC>qtOB0??2-g%W!hgV~!?SqL2FG=~V|1SgR4IK= z>^>sFF@3um5Jy}zz&|@(NTsaXf32E_iLB`^A3XUX&S-C7moY)|8(Q=QT;ne?^4_f}e<+b`w7vY6`Eg-e3U$fL9PjS*?HS`=5=0^zVeD6-NFOkfoxQ zDgfZm1OUJy0Dy;oSFi&Bz>6CII5GzSM6v(?QrEl=O|gFlGz(<~S-{JG)|c+`Q~-d& z0U|4{?Yn%M@0Vt*5Om(#Th-Ben|-*%5RWhsSRBeYjp#xq3+EA-x&-6NM5oF)I^txd zB8!1|R*;eKFqBn%g&6QJ`hQD-$k2%zUSX0z8u~X;$(84O;xlHh*}Hu28g50dzXI&Jm zMo2cv^-o^F%f6{Qs>zdn9p>?9pwi;JG#&AsYs~V@h%6{2N7mHq%O=y}B^U++fUGYg z!3{w^=~OzP#!5qI8l|G?D%Vii9U9Fbn`Sj25>9E_aMZg@KKdmguggl=5j`7_~sCDS&({sVpEi-24@yZ$8CxO-{fIh*nn;N?LgU z0)`UPE#)uerGIgVel+xDDQ#s>&5QsL;!O1x3GTIkx8CeSXu4B>)Pmpo{hmP zqhEdJSa&q11IuSkn0ypTR(-j5sHfe^s*-90p(-d`Ue046p#DKu753?#@wO|rQ4wwchUI;KT)j?+!?Nd{Xu=mVMc%HwMBM#K@aCYfAWnVa`WdMd+W zQ^!uNUuNeKyzk|h@)(RR^5uvBF;((5-T)O!ZbsYP8PLd;7>*?n9BuMvTk2U(QMwI; z&VV%K?@R#d%dO!IDqg)a753;>8zDzBDRwLfP6b~Q2|aOSVIyHSgmU!z>oTZV#l+W^ zExISL!>jZ#NMS9|L)Aj}ETzZFW;5+XETd3Y+HF9~W;ed#mz=kWUH#(cA)hwG&jH6^ zq#PhG?D=MeZW|9So6WEoK53NAH;R4QN1XO-lC006T~l{@p&C_d?G((cF2Tw~oqX?v zL~TXLus@`VHFtS5)+&6w4xzfbpTw|rpuI-mwHKR(iwdDbU-}njhsgN`U-C1$}zmpar@ z>MsBOF>np_Un*43PF0jU69)5EK+3`}*3&XOvKB)64m*>$duxo6Y|}|D5}x$Wp4+M@ zBaWPga!?%QM8mu8Mb%0|KD${8zK_I7S+?~*dkX6YaXSdHT5}m0JjgHqb!t6-XF+7O zy!@FJGYQ2ANMUg8ZtQQ?^1|wyI-y1BNNZ6Q80{1M%c6(Pf>gQ*+IRNUmAZkI?O3CP zG(GP>_lm|tV7*e7BYPp49R*Vg*5V#8Cudf{9s&-SolwDd5DJ=HM1DBH1Mn22DYvSi z8zoijd5%AH9XnV~E zf=d?(j$gE{E(ARf^=C^kP+Tp%*NgCJ1?(?=(Q~ z-)|S>(FkFy*B|Qlc@K<{yRDPhx-G>XCgAD*znz+0@|#xXQbRxy*a8jE#aLnj3i7Wp zs(FFbjDmFVuvKaDL*nOe9R?MM{K>!6_um{CKR4!W<9**D(08xeH)#6?IR{B+?s^qAlP2k_}9DrHr4g#O&4}l^vG4P z%ZY;i!;wH$2X^fYPEy_8-M$`XivNL5^MT=#M>0P6^RNoeno>z?!#3a0wpov1I^vz| zvDKrZ)PDE%rycAbh5?6br2qUF>7(U-SDGy+OowG*GpIbK%p+*DW~W-xgfc(o`aK`K za1?bFdXFV;sfB`W(sBR}BVRKEhav3f9u-EOgNYJ6C9@W`*xcYyS&F`;u+92?5^2qy zhy|);bQ@S)-36D6Mmq8rMJi=g!gVXJ!QoYCJ$CNX!O)hPcCNRRRYpGy6ur57k!VqC zRo67N^g~_l*#J=%J<=hQ*8xMT*SLggKQ@tk#1znyV;x+m3@QjEs-{6t>D#gNUOJW? zVJ=%)5*<|GEB+bSpnZSu>9#uSVkqLPm1~Th);&Oba-WvxE1UHW-)OLvVZI```#_|9 zk7^7OWj;Z|(6!2W`7Qp{fF6>bxX)V?gh{DI;jiL=Zl5Rv!h51c9TthK(HE zEPZ3j4tc{HoHPCdq@bOcvjx0%#DSJ|0v}K;;CKl(y>4QUws2nPB0(Cy#Ypl39)m;4 z-ka85D`;@tXTNHOuvD~T|EV?@xJ2pk$E;vLX5efLmlOZ!sC?3|?%d=cv4b_?o57@a z`(AE%{sK{01f(R*W@{G&8-fB)rS$LBiN#?lDGyY@hT+wETT42mFR0bSph~v)7LNtW z7SXobM>yf)6=~NA*-jzO0vl{bYR?3)U#M|WM>yS-6}+RUL)x2x_IwG5}5;$P5?;O zx6Ea9k6|tTFnAG(R7;-1vhR1k@taTlaj^A24)< z$w-ufQ}8*CcAP9msDEXztq#?^$w+P&BVwg0$SNv2cEI~RrIVqsD5NAc;>a$gP?zaA zvDb^83e8D4`c04T!JR`Z75U8%7(GW*t)w(s5-u2p^Nipm5?e+wWzy{s1o&|}P6%Lv zLJ1qZJTriF0*n-m9do1Kr_tCjdTsWT>l1c=Dm@Gp-gi+h*#~}y?Gw}gMwjOv%dlU_ zdX!MH$`R-LcA~c>bD%gZg`Sq}vL@mGBI`DySyo6lC68~>fWmSJ=MjkF-hl_wBgya` z3w(GdgdDFH3ddmC=nA@iB>MhA!QVr?1cileeB>CPSe?LVGU;{IP=5wAuUOf>HGjJv zNa(ou8lWl2^~zdnreP@?chR;Ewb#YZ`9E|a35#+Va7cU`mRiL>D~$xWF}7U`MSGSC z$6St$ug!?z2a{&MkK;_46sR*a;LvKRY-OeTS9yHII~PXOs(erz>!DV$rC{#zatt`NY|U3jv_sfBZTunkr*_Gz@*>v9}5Jpl3SEB zz7^&0?A!ZY>7XnMjq+Qc=AWo8uvW*vU8xG)jHl6IB`Fy&BAR@PdSk?lwzN3bP_w*X zizx7cpRa>;n-w8hXunX*L*F_%o8>)>9DN|v0;5Q`B%d&2>bIN>#ZGnxNYF-vspNH) zSHN2}Y~rJH|D3ze=E_(pLG-0mURW2M^lX+hNO7Um6FTTrOCx3^ zFf=g-$rk&~Ll zxbsX7dQVAwZv!g6DWX6Mn5QDVOqUYEt5=;4P73;>{XCF-Xv(O9JcdHnr~kb5Ah&>v zcoPL0@zccBC!+AVkP~?lowLN#++$`r(_|V46+a}2(1hz%7LqP_+ry1rEwEF({}K$3 z|EiB9>eqG*40jI*D)8=?1|vsw;;LCSpX$9^*gn~2Cl9#o`0aoma1%&;pH{8hp!rjW zeqky3xMrq74i=%JsOjN0D1e&8hr@%A+BU`tef7XeBoW5lWQX1iRUCi^UKTK8i8o3> z0b#a3!8FFnJ;812U=fI46hE0GYH|`*BlBH|8PTA?mqs8&yyyFb_}uh{xuq4-Q!l9$ z9{s5=mBeDNs91LE>c~ra#9OE5eW||*yE1S_!FF-lq?#L&IdA2=r@+E`1{^8$m(Onq z7=T6sF@LO%x;7WM3EwoUJB57xyJ^M480lorH%7u{a(~(K2>@D^ng2Z9WtgXrY?UCk zsUkkV7{s*58dc}aj}SH(2)72bg@}pPEzwpv2%r=?o<8d0T#F=FJD1xO=MIpRc=EF$ zo{2|oWyVg(ZK9*#!Y2Pak@RJaV?Jz-->ag% zuq*w#6O65gagd#Z3#Ag!D%%KMd{+FAW8KBH?DIn8k=qov$8z#iVyE5>v*0b0v~A01 z8S0QZvexdlq!+x~2<0Y1zNg714`_Iw0iP45wC(NQwQcWc+L1$@n~2flNNn30^CaZB zvCEUaw{5>7eN1?9t;!Nil1-6O`KITI+(bFvW@SHAlO!O7E0r7}X^i!aA_32WV zf@y=j5M|dnt#VuRf0pLSk(z1BPuO*NmzlJwhSl(uqUulLaphO%x8KvOa+SNco{9+^ zElIpZqvTd=R>g*p_}W(ewLP0QtEURyH9r^AM~`&`bU%8Wg?2)QfJL5DtvfhRHaJkGkw*}gMSA;lNr7hoGSY3Sa>1Km^hb^jAc+%Q>y*61okF7<`o!w$^%5n3t1l!^~B4NnSD`=WRbt3p@6) zw_+&rD+~G|=&C2L%Gvbye=Lix{X%Q_yr1wB-vyz1_PdJt_ydC!vfW!FfBZ zZiTYX?7rRc9!y{hGB;`Tsy!EZX8a+{4;UuY^(Rlf)V=F#w|azVto*mZFZM%5{-2so zf;16&@=TV#?9dk3Z zlZ0wOZ`URd#0kVP$+2Jisg0SIiCnX`Uv@irlJJ!*#NLrr4eiC-z1E_TH%z9pFO^(b z7&eK#N^l=sEI;Em4%M7;oX7+$wo6i510qkg5(lXO!X7j%vRLb~j6sos&-)B}4mmR6 zi0_ui25cHrt@Qfx?;uIGl~fow<{{t5DR5g&KtC z(n+6dUl)Zd;6}abZ;v75c~^?Sl9$g&%zy6Mhd5|O|z_>B&ie`_S{Lci`WGoZyD%bYCpnxUuB?K0Pg zGXED`4^wkxFmCxR4`4S=XLG8as)I=dkpPT)Vbd9Qw5p7+X*?vgIIz#|(Vjd}EogD` zmu8f088zF)%N)~l5!c@7_=GJs1S_I3X%jo`s6F4f=|AO6lV}e4n|!Dh`J3>b9cR!o zqi+{-D^rbTHl2!-PT%q)-J~F$HRc){YM+|q+-Y>xiP15%vfgmhw~flB$>p3Oo4Oq6 zb~^p))6cS6tZ}X~cgZZ4f3JZV2b`4A{PwJeF5lNKWK0rS*ox_4=lj;qHnIJqY9~-6 z?~oe@vUR0>E$K05)vdx9&N$PWxbLk0YoX}oLXMC<93%6#l=ECU)M<_vnZPYf*+?VW zn&zwUu`g?h=d(=UzqsNot@K0ywIDUr@-;C#EVEnU}#A zE9=BlH(AfbD*Xj^xrJKuI6ltc_SD9OYfRObJ-)PdY6P2$-NtVVW3OL@^`HU*sv=NM zTjiAfyhM7uJVky_A8HnTxMuP9t-8LryJp*)krkP;@hh`E6y*Rc=9rX@^{Nxod}bHZ ztk}cJWDha-6RAtvgLiDns4|~e9Go++ny{EO-QWv?SYW(=l=LJ#f5&EN{eBZ8O4~Eh zGOyyhr%~F`t>M?9;m2yWq%%JomHs6H1o`IpvU@*1&uEdc0#~k8vXxvuhZ^KYcXx4l zZ^(XCkC`15#{L%RTUR65;Bzv2tk4li*!I#MY_TyzqxSkw6nHs}UCK44DC~i%-yEo7 z|L5rWu0!?*+~sM|)nQ*12hhrS_(@}MAm3Vz&F@_Q+2JFY@S+3N2#meCKA5eZsCHhR z0~xQww^JxfkN&iIhZO>e!(VSJaj_P`<~W5R(jQXRcUlhh=NIKar9;m&w~!yflGFw6 z6%;k%{|fE;?32e^^=meAqW%P$my_6RFC)UnA=BIhmorswh5VVGODllyeq(6b7kLA| z5QSR8Erf|>qE#7Hm@^~t&ofuPLE2^B@Jm?iMfcZABX3H}B>UCZ^f6`4-A<6H z2U!)azi))-Picnt>Q9!l9N^T8rax6v@{qWtMi+h9PXiXlXkmO!j)TK>f@nm()_=2~ zEDOl<6O?IlHRby+%Ca7Qqq3!?t%*5!o9?gQFU6HNMp6WWt0HV4<}d))hRaU%hsH(p zdRp5~W1@d~17_A}%;&vGz;zhYQzYqTz$!rKwa?@aD@dHK1r zwoc9?_5>k2MiV+%bsS`hvd%YvZ5?6ZrDu@nfDNLJl(8}*>y}BI*<%!+sW0gLMbL;n zgFp(Ccly9?_Y`$nESX*R!>-rt~q9|Fa*r0n(weWliGr8%FLbSu5O+#6KmcW?zDz9QxJLi`eOUgJ*YVC z_Fo>VQ{^ohUR$JCyz?~f4C3H4;3N-_UiDjOyylk)YC?Av7#W}zcOeI1^fm2KD3m`x zA6&yzyivcS-b2st@kv|GZi}E(S5a9VP|YbC4mD9NLx9aPO99=Q(00gBWfj? zrY>#af$uqHznehw!73=3BZXfyRJ}x4!W*N9jiJ`^N@|*J&jE}RCPx+zf+*t`nU<~bPXUvDHV;x*UHB2w0p*R zamG2ZPD-+oN#$mUlQi(3?#*ChAFaDSf%i8qJiNFFZxaS$TQ9A#8`sRnvcN0K^&u}oW7^k2T!Por91SW0C>51 z`8c=*IJo(=xdlb|ctrRF*|@nyxVimx@(}+EaB{J-v-bP{0c;EgrGEg+|9J4UbAoz! nesFUAABLAtn+Ghy%`3vq^WRSFwom{3V*n62HQBm%=3)N@nT_HC literal 7879 zcmV;&9ysBNP)P zHJ=)4?XYcnZ3t=r*IEtWTB`wEYc+sttp;$d)c~%w>}LM`c3rvuX&T^QIzUr@w9NY& zz*P>Y?`46eXT2|^d6~(e>9YoO?XYID1fc!|K>Xn4I&kd+(ClGo&KPVb3XeYHW*8Ps zD+14KhGw-ww_4~F`a$cN0=&w>K0GDZcco-%5)zl;i0^|x`ZD~nwa}uQpe1%gw+ErQ zG3b7hUT*fhr^5{r@;YcnBRs1Ue*Gf&O{<|rj)fjM3VN7;*RrmM%=N0N9bOVFfHea7 zf*ailfAA@QUi$beFdPCj_>E?&m!ZHpND9TUcv1`aB-y?#-g}w_FEj@p0gaB+pmm%A zv#v9vANcp`9%=wj0kAIh#@+uUw7#E0AAW{FJs^QJ>f~Pmg|BR?Kw;+`qJt&?{oW(6 zy#&nx4=#c2w!abDym!E8I|1qG#iy+TiJs*EXC#J|q`UWFXnXF3IrgHID5F7v>MMz? zR9Caqv6rF?$KdHU?sJD^Y+l6p>4YZ=E$=&o)!Vy znEB1r51|5)CYm!&|LSl$P6w7<4XbIHgjP(#nUUt%39tg!PSJpF`2wuIpOC>r-7uOk z!5y0R(KO`sol&?(1kS=sU@o~FhFBFGrA=x8=R#KftHB<82HM6OVa2xs?y672 znsX+7>LG2o)c~FduCS2TU58NL56FXWm6mPEQmYk6LzZcv32CNhD)QC?i&pryDQN-Id3*(UmLo*(16q>SO+7?^EqQ$4 z9~aehi6t>-sres-vFcOGotk=(s~g}faJ?5Vg*Eg9t+(w(s$^y5@`Ui>!iV+rM!4a5 z@amUBt6vB|JeO$67E<{kafC-cu0a$glD*L4JH$&*^+ETN5^Q$A#6)q6zmL=)5OGmxj=9ORqBkuB_7%B{%6TFHLpH&z#!kbvQ|xx?Evz-vG+$X27d#?i;+FhT--X% z{yVGd?<2J7Mq2*b3zrfeD3=Kb6ZYKmp)a}^X2ZORTyen$ zR+cOW0A_LB&ggnz`(3aGAES8?62XbW?o-mGo|}Yo+&u_&{KJ&FP}K*p>S$`@WtcBq zKm>-79+13)#-P#KX-7_gzv2dRkB?JKQiY>E=`f@r-L`!s$y+`LGr5bTxur0W`Ce#E zcQ{hD=BKd2?Nh>dRatyX4w^%8S#87h6vDGJ>`>lr_@wqmkt8csTk~Ut7+fCcAi7h@ zf#Y+DwU-wW58*j)0bct6QthV;OSvHaneR)lhe=^ef755AT|Nc2R&@bPofhldwy(h& zUn`B6ywbp3aLDqtky`m#SgWpusb@67lybo0+`3p&%uox=%PT#}oT$Sa|t4BpE^^_Xh1mn4P5`SCBbmrf9a6A|8QFkERecH@LaK!yHPenB9 zwr?V|?TchPv=l(ZFsP)eLvu+BJP6a`KuP8NB_C0eoUb2BRTHP~?Yu{YsVm2+R|mkNL*!Ww{T1fm@08my zF@;8|+iaC<(*O=5wd`7iy5BNm(VADyQo)FMu$Em3d)|B0nw;mpxUXgeM(_P_;`<7; zJ7yEWN_w^3-(}BN4U{ru1mBzzq&*LoPo#y*lR;}lYQYC#Eqbq%f*A)F6F}yHHCEpY zyZI!#_pv;Z%*JJi*t31`_xzxuQatl(aIp50Pia2??~*PQv|>WI5u7REg?r#Nu7=-q zG_Z>bk4_ljmOxRX>M|PxcW->Fv?&B9r(<%-)CBA1SY5zL4~neLO7yD=roAsI z!F|7kPRtV+P$Kr-hSl)e-vF)spP)yM6vl^sh-0TS^j4hc$e3`bX&G78m%-R}D_P8K zIjm$~^xa78fZhLVVE)@HlE62^5-b67Qe*J{bh;oloUXS*n{y7)ipP^QYgy1`(~8A1 zQ8U{=*Cl)5FK;J9YMW%cCW}U~eL+i*-F6C$*W9gw5wlr>MdCOOKy)ko`5%C`-~xm~ zkxZA;3{xX5ZIZXdIg(WCQP!j{Awk|PLibfJfbsq z(tpF46lGS)9Ec#&CbZyPWpmV3VR{O1gMrNIjHl9<8Bjg_!wQ%lSs9tm=mvO$zZZ$| z>~?8PR)o6XM~;Qoc`5}e7G(JBk_K8yu^C3P`)x3{e~H%O`rM2akHdjy;1R&OR^Du` z%4iY?_<5l9EGgI(PvTD_F$~xaE}h>g^RdbR*N*N6w%!JV;=8&V&Crg4bdx;0W;>iY zZ-cSyBV^hol z;5eQbiDP5j#^!{BtL8Nea5+EAD7McEpya?GV7&4lFnQMllPYZ8s)>{yWNHSvEykYj z!a49q*hdpT9$8)*$N|gMv|PA*#`udeE98*At}oJqID^EEkveZ)Rn|IO6#!2FmOB0D zz$otDKZ>VElNcr>Ez;4A1ZtOM;M|U;EHH}bbl{f`{t4#GSITP%x5de!E(sX&OU?Lp zxG!D^`@|o>YM5VISdXqDyo8oD!05A?3o%=O*F+-PZb@>$rb*ClYFO16mP23Ej8jct+PkPwtgzucfSM zzEtaabUhhAdr(*!(W{%m*0=yTf1KEKN7MbUdVm?AfJFGl?)@aSd$GrM(Lqw{F|dBV zsR6W=akoAhEFuM{9KwP$0hfF5o{lu|MIbCB&#do;*Y*Zl^rNNm$qc5OfY)`7+Oc1x zHVOKk8YF;6@&K%MKn4_Q8RW#-<1t*fV-OKj7j94?05JJ6Nb30b1`7`!-Gf_>m?ywxV#F&a=B2ie za#0lbh-+0kD+&XN!Szxi(a&G?85!LPV%8-zf9!7*!ppx*u!-f>FD@I8ib}8#r9Nq9 zer#($Vl+V`1}3mllg%=o%fn~SPGq%k=M_a8&AkjC6E5LB^`L5T4!CQ<}2HDxtC}OMTRJJr)|C!W^99qJ#*S> zTB1c(XG*w4qKL|h>k$%RyHbPxDyxGSFn#=GS(MGson6UE2YQ2&V66%O4k*Z-@dWPN zJ3_$%xidfKq=vMTUDChbSTP6Zbhd~|!cuEg9NY}ZyeTczc?z7ie?V&AW6%blpvcWu zK@GBMbh-XV8l*<;ECJ+Pyt-HDh<(klA2h4S@}s70oYU773;{b`uR{4%|>o;g&Yx(2gsnh zaZwx2?QRvnpB8YlK~`%o--~YWdfc2fW8KW}%Gsf)B;Of$3ZbzV@>|dJdzbBk_Sa_s zFQZk&iVm>+R__6fdwyO&mA_|$>fbsVaMi*tp@fWS#CC$T2%v)<2U%qpg1t~>UqXgA zwO!wVmJckkDLetU@kkhvBQu}PB)|bUJ7NhudLTwtv!2tX;VvfVpv55rpF3hsdWOt= z3cH4i?~+jNkh}LGSi{d0;QMN_v{ToarI9I90ke;=)+-xr!Pzkb_uUpiC z7RwUru0HeVR=)XiL!6Tug}&{}qzvlvgG<)4Yjr{EK3jcMzJe|53=AY&&aUU;SG4xl z>sn4ygJ#&N7=QYvfNP9YwYGa@nu42F8&-^p1OB_5VT^ zOU3dED;O#qFFheTP%9dbmPYuV!x|&PX@^|Aj>aUB0aY}ncv0kNjBG_soeP-1W z(j>m;$i2Cm{LaHP1Fbfq^A164>lf&40qHraXsN?HA0jKWw#$^?%5sx}ERAQz5+Zlm z&uLs~aA@s4zbgWnW963&aCXxBD`QbSHZ+cxqABbrw~Ms`C+{885W?y0O<2>?B!r=) zMEPQ;y8y;SV*l@9t@{|cUZKo)IYvgVy&cdNUr|x%Eeqfv?Yu9M!X~AjbH%SyBt|_U z9jCQ5smW0uxP6HvKD~WE9wF^9?m{KbD|RgI;PK%E?&=%Gn_B8{{o*dHXsn+)kb}KW zEV*Pchc;d(NKwH#7b3m(Fq~x{Lb#!);sw!41~?!$HpP;HxoR{gcaK=o<21Ub(O`Fm zLnV`M0YHBl9>XP@_F<3hp_SaS4oi8kSvya3L)rt65ztSM?Z#J+=*C%!3auQ-8L1UD zHMe{Pp`CXTK3uHSC=6V845{XmU@pE`eO5Jv(Bx=tj3<%uk;jRbDY36>u9ruauqFn; zyfPNUdp7i8kVdrAR67K-46R_z4ML2Z+~@cjF5b8gPYsRAERnL;WIvM`!csfF4c_w? zA-v;j^xp_F@v)rfigUOcjmfH8(owidGXiA*EN^6M+);1+9MbNS3I~o=+fIt!GX@DR z*TcGc%RWSD92)6-g(MNMpG_+ROyZWW*|Hx)sgyWZ=@@%yU>!S()Yd!2jzMeqk1B}Z zp`f#KV!JaY;?p5vSUFQtw5{Yb21{sf$`+|?xuyZn^)^zai|axYjxBgd)p*^vcNot{ zZL}1?bssGKyklZ#%Ej0B3{5y^@v=+TP7ENq?c2b!=OVQI%d)@!$-_!kBYQ(D8f^O*Anc8jRw@ z3v5IztH}L{z6d2Ix7-D5&%Frq)>AIW5J+t?;8Msi)%8|U`MnaUv3YSSeiqA?qEO$s z>*l2zU9lEwg0(7kD{~-eo1+PAOynn1a@{klYTiw;c08`mUDO^J+3)Cj7|sBltV5Rh zFXqt#0^A`a+fIdX%vWSt|0!5^%LX`THr*U&V(2-tjd^l1NWA|@tUE;mBahgTv;|R8 zPDukc1d}wLo8xx+lfrLA?S>3NnGu2Hw!aC+ao-g2=IMA~R+&_#Uyu|qNTqYm z^0=tyqx`up?{(ZM=P^9FikVIFd-1FWTDQB;gK_-bFbxya^)$4yR(4TGqX6Joa_o}% zLaEdn)bo4G^Kj(7Hk##hyO?K2m?FOGIZ4<{u7-8QhtsypbUo^>EPyQ<^pMVJY_0(D zP=oLL0ns6gb8AI*Eby-vhD~7!du0SDSd)b4bW7{3^d|-D1Z6+CPE>?M^GmHJ${{)Y zM3*CPLa6)Aa)hS&siY-cDd--9+h`bhT@E%T4$%7PsCBHUO_%CoD;vT%qRtdM{q+*> zIYojqFJ$2OCP}yyx1OuQEcTGplD5>S#>m*sq{+b6Qxakz2=?#yTJe7i7?j5Ek ztmIr+QpViiYmXIaSS@6+P(nVrk zQkDD7#y4H!KP3z)yKXU3NB=jhWAA`f*OkRDPk-#Y^k9S1Zga@D^^lnK=7XdF-ecKr2$=^(&)gHi%U%qY(RwDAMJ>kwYb1HVOXCRzdU5M$AjNfL zecrx&4y}O@?oJ_=dB8mS-WA7;<*&Pb_05FCjOwne@%qj_AVKWki$2xd(m=E!7V%JfB`m;I+L@CdjqDHgnEH zlw_RAR&puB!2axwCvfK4-H7=)O%EbPAlB<&AGZ)~p-{=i`2v8pMB}(=#{ixji6cp$ zg;YE^_zedl_E|kp!#}SuFzkl`C3WWdLW8_Hf?X zop_dl0F60lL^g5`I4-_Hl62mjwsdv7Qd%}pf2P>*!$VP`9}^gIr5QN>rwsOjGmlFrYssBk8<3 zttF}H%w$njd+6`Utr79!iN;wYeEG0GanLI>;L6j_el*@em2rdpS;4ic;XwmsSpdP! zpGJ~Wr{@mj^8hr_!2d6;!+#zg7Z-NRP#(HU&k3?BeF8K@K6%(MG7ppXGrz4&)3Ua* zXqjsxv&}U{uGIH?2e5H0T4E)wDw5zp2-id!u!5}VO-Tp!+T?1Q2f_9=+|@fQq)w}V z)1M7qwvkmy6&ajYR5em^8Dwn+zt}?2u7@a`c|U0=E}Zz(Yg$natvrCC_5_pEoJj=2 z+C3v^w6sZ?E&gpYP4mZx<9K{v1ZPxuN8wbc!|eRAz%mz*lH0X8p2Q!9V|e^P6wgId zWU>3?4*IxZVH+BV?{@qOZC)>DOv*K~f;w1i)t*h(w4Vno9;^h{og~WevEvq@-ZabH z0XuaqSVKJmbBLI@-N_WzN0WGwUN4L%Mg8g#0@W1dj%7JypVsJK9kT$-8|$+Qz|B$# z7J#Yb@*}82Z)vT^14A*in);+H6aSVYLmOytZrIk3FRtjB@pUSf!@{W3gMt$p>8S*oWlD*-LnPdxHcQGY@VcP?eeL)GnUaim;YH--*>SXFJ~4KaTJ9 z4hnzOt|FAhhB*3rAKlv*Y1!GHA|BoIMR0|a>f2}nH|Uvi$APiMegELR)(K;BSO6SI z@rf->IH#>1qpp|N$YJ83nFi{H9fSDIz_4J$ssUtM*#y5G9L4oJhR{wEkvG)^WmAGu z$JvIY+*IdL-y6hEifWPGiUFKGW3O4zfrzf^rf5jiM2H_By;WB;P1K5*DUOqFcyauz`6owMNPC;QkL3%(IWckSaR(y1EmpGH7=*+1aFR5|^SH{PecJ$**wB|M#dO>yY zST#rK1gq;!JaX(J;VxF&V=^oL+@yeGeql6<^ZvF+sNg~vonTN{8h8)WXP0&f%bc5| zsK!bS+(cl3t>of;YTJJNZX_WLD8In_m1^C`14s4X1d4K%!>`X8fCE5y@b1|&h)--E zET|w_(AdBkAxVyqSYI-?1(#8fpOe(ZO})+Oz@Xnto^kQ&nlFt@;u{Me>m@mz*ts?8c|Js%}$URGz|-CYr!-_?ws zgNl+$)$ga}DS+M2`YfOovm1vvf3klR|Ip9qrDL)Me5O07b-kkg4m_r zL<-N2#qk)07JomQAb>ow5A^g_m_i4^Qj&Wnxr6r|IX|7uU#*o!ru5l`0aeElmh=C% z8&8j?iUK(RT30@D)RksWCrKP5^sX=#I>`2)d$aK^ngL&PPF(@u6DqSldC{!8rWcdAN^~Hx?2<8EdTfJ*k1lA#*ymIg)Yxw3vh1Gga3){WPL0D9~f7E4`3cv0M}Y!Z8ouPwN?YT)@lIP0Iszf lz_nHbxYlX_*V;6+{|DzI^6%F^&QkyY002ovPDHLkV1iRGRc-(P diff --git a/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png b/plugins/deep-link/examples/app/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png index 3546ca10cd77fb1309190807db42bb23b56bf2a5..2a9fbc26ef1ef34cd7b0e4413f40d7912e3a777b 100644 GIT binary patch literal 11091 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 literal 12188 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