+13
-13
README.md
+13
-13
README.md
···
1
1
# VRChat Photo Manager (BETA)
2
2
3
-
Install [here](https://cdn.phaz.uk/vrcpm/vrcpm-installer.exe) (Windows)
3
+
Windows users: Download the setup.exe file [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest)
4
4
5
-
Install [COMING SOON](about:blank) (Linux)
6
-
7
-
This is the rust rewrite.
5
+
Linux Users:
6
+
- I publish .deb, .rpm and .AppImage files [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest)
7
+
- I also publish an [AUR](https://aur.archlinux.org/packages/vrchat-photo-manager) package
8
8
9
9
## Feedback / Bug Reports
10
10
···
12
12
13
13
Also for bug reports if you can, please try replicating the issue with a debug variant of the app and sending the logs along with your issue
14
14
15
-
You can download the debug EXEs using this url format:
16
-
https://cdn.phaz.uk/vrcpm/builds/debug/vrcpm-[YOUR-APP-VERSION]-debug.exe
15
+
You can download the debug EXEs [here](https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases)
17
16
18
17
You can find your app version under appllication settings.
19
-
20
-
(Please note that there are not debug releases for versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3)
21
18
22
19
## A photo manager for VRChat.
23
20
24
-

21
+
<img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/bc702ee6-8891-463d-a987-c2db1dc24678" />
22
+
23
+
Files with VRCX metadata + Fetches world information from VRChat:
24
+
25
+
<img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/aae88c53-aab6-4520-bb89-d6f2bca1c51a" />
26
+
27
+
Searching for photos taken in specific worlds / with specific users:
25
28
26
-
Support for:
27
-
- Files with VRCX metadata 
28
-
- Fetches world information from
29
-
- Searching for photos taken in specific worlds / with specific users 
29
+
<img width="1352" height="739" alt="image" src="https://github.com/user-attachments/assets/f9af1724-5bb2-4276-bc32-e818dab31750" />
+24
build-release.sh
+24
build-release.sh
···
1
+
#!/bin/bash
2
+
3
+
VERSION=0.2.7-hot1
4
+
5
+
# Linux builds
6
+
NO_STRIP=true pnpm tauri build
7
+
8
+
# Windows builds
9
+
pnpm tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc
10
+
pnpm tauri build --debug --runner cargo-xwin --target x86_64-pc-windows-msvc
11
+
12
+
# Move Files
13
+
14
+
mkdir builds
15
+
mkdir builds/$VERSION
16
+
17
+
mv "src-tauri/target/release/bundle/appimage/VRChat Photo Manager_0.0.1_amd64.AppImage" builds/$VERSION/vrcpm-$VERSION.AppImage
18
+
mv "src-tauri/target/release/bundle/deb/VRChat Photo Manager_0.0.1_amd64.deb" builds/$VERSION/vrcpm-$VERSION.deb
19
+
mv "src-tauri/target/release/bundle/rpm/VRChat Photo Manager-0.0.1-1.x86_64.rpm" builds/$VERSION/vrcpm-$VERSION.rpm
20
+
21
+
mv src-tauri/target/x86_64-pc-windows-msvc/release/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION.exe
22
+
mv src-tauri/target/x86_64-pc-windows-msvc/debug/VRChatPhotoManager.exe builds/$VERSION/vrcpm-$VERSION-debug.exe
23
+
24
+
mv "src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/VRChat Photo Manager_0.0.1_x64-setup.exe" builds/$VERSION/vrcpm-$VERSION-setup.exe
+48
-3
changelog
+48
-3
changelog
···
78
78
v0.2.4:
79
79
- Refactor loading system to not load all photos at the start
80
80
(should help with large numbers of photos)
81
-
- Update UI to work on linux
81
+
- Update UI to work on webkitgtk
82
82
- Opening files on linux now works
83
-
- Fixed not rendering properly on linux
83
+
- Fixed not rendering properly when using webkitgtk
84
84
- Switch world data api to vrchat
85
+
- Fixed icons being MASSIVE when using webkitgtk
85
86
- Photos are in the correct order on linux now
87
+
- Fixed photos not rendering if the window isn't resized or reopened when using webkitgtk
88
+
- Fixed scrolling being more and more snappy when the window is closed and reopened when using webkitgtk
89
+
- Fixed render being called multiple times per frame when using webkitgtk
86
90
87
91
Dev Stuff:
88
-
- Implemented a view transition handler, should help with transitions when the app is scaled
92
+
- Implemented a view transition handler, should help with transitions when the app is scaled
93
+
94
+
v0.2.5:
95
+
- Fixed the "Start with windows" button appearing on linux
96
+
- Fixed linux tray icon title
97
+
- Fixed build-release.sh script outputting the wrong names for windows builds
98
+
- Fixed clipboard on linux ( and sped it up on windows )
99
+
- Fixed some icons not fading out when moving to the settings menu
100
+
- Removed the auto updater
101
+
- Removed account login stuff
102
+
- Fixed app name on windows
103
+
- Update styles
104
+
- Fixed filters removing photos without metadata
105
+
106
+
v0.2.6:
107
+
- Fixed photos not being loaded if they're too low resolution
108
+
- Fixed "Open in folder" not selecting files on linux
109
+
- Fixed scroll to top button not animating out
110
+
- Fixed scroll to top button being ontop of filters menu
111
+
- Fixed photo ordering
112
+
- Fixed broken legacy named photos
113
+
- Fixed photos being loaded with the wrong resolution
114
+
115
+
- Added support for multilayer photos
116
+
- Added close to tray toggle
117
+
- Added update available prompt
118
+
119
+
- Remove all sync stuff
120
+
- Removed automatic updates
121
+
122
+
Hotfix 1:
123
+
- Fixed loading when an image file is corrupted
124
+
- Fixed update prompt when not connected to internet
125
+
126
+
v0.2.7:
127
+
- Fixed image resizing when window is thinner than image
128
+
- Fixed closing settings with keybinds
129
+
- Fixed the behaviour of changing the photo path
130
+
- Fixed loading photos in folders that aren't VRChat folders
131
+
132
+
Hotfix 1:
133
+
- Fixed resizing images (again)
+12
-12
package.json
+12
-12
package.json
···
12
12
},
13
13
"license": "MIT",
14
14
"dependencies": {
15
-
"@tauri-apps/api": "2.0.0-rc.0",
16
-
"@tauri-apps/plugin-deep-link": "^2.4.1",
17
-
"@tauri-apps/plugin-http": "2.0.0-rc.1",
18
-
"@tauri-apps/plugin-process": "2.0.0-rc.0",
19
-
"@tauri-apps/plugin-shell": "2.0.0-rc.0",
20
-
"@types/animejs": "^3.1.13",
21
-
"animejs": "^3.2.2",
22
-
"solid-js": "^1.9.7"
15
+
"@tauri-apps/api": "2.9.0",
16
+
"@tauri-apps/plugin-deep-link": "^2.4.5",
17
+
"@tauri-apps/plugin-http": "2.5.4",
18
+
"@tauri-apps/plugin-process": "2.3.1",
19
+
"@tauri-apps/plugin-shell": "2.3.3",
20
+
"animejs": "^4.2.2",
21
+
"solid-js": "^1.9.10"
23
22
},
24
23
"devDependencies": {
25
-
"@tauri-apps/cli": "2.0.0-rc.5",
26
-
"typescript": "^5.8.3",
27
-
"vite": "^5.4.19",
28
-
"vite-plugin-solid": "^2.11.8"
24
+
"@tauri-apps/cli": "2.9.3",
25
+
"@types/animejs": "^3.1.13",
26
+
"typescript": "^5.9.3",
27
+
"vite": "^7.2.2",
28
+
"vite-plugin-solid": "^2.11.10"
29
29
}
30
30
}
+562
-464
pnpm-lock.yaml
+562
-464
pnpm-lock.yaml
···
9
9
.:
10
10
dependencies:
11
11
'@tauri-apps/api':
12
-
specifier: 2.0.0-rc.0
13
-
version: 2.0.0-rc.0
12
+
specifier: 2.9.0
13
+
version: 2.9.0
14
14
'@tauri-apps/plugin-deep-link':
15
-
specifier: ^2.4.1
16
-
version: 2.4.1
15
+
specifier: ^2.4.5
16
+
version: 2.4.5
17
17
'@tauri-apps/plugin-http':
18
-
specifier: 2.0.0-rc.1
19
-
version: 2.0.0-rc.1
18
+
specifier: 2.5.4
19
+
version: 2.5.4
20
20
'@tauri-apps/plugin-process':
21
-
specifier: 2.0.0-rc.0
22
-
version: 2.0.0-rc.0
21
+
specifier: 2.3.1
22
+
version: 2.3.1
23
23
'@tauri-apps/plugin-shell':
24
-
specifier: 2.0.0-rc.0
25
-
version: 2.0.0-rc.0
26
-
'@types/animejs':
27
-
specifier: ^3.1.13
28
-
version: 3.1.13
24
+
specifier: 2.3.3
25
+
version: 2.3.3
29
26
animejs:
30
-
specifier: ^3.2.2
31
-
version: 3.2.2
27
+
specifier: ^4.2.2
28
+
version: 4.2.2
32
29
solid-js:
33
-
specifier: ^1.9.7
34
-
version: 1.9.7
30
+
specifier: ^1.9.10
31
+
version: 1.9.10
35
32
devDependencies:
36
33
'@tauri-apps/cli':
37
-
specifier: 2.0.0-rc.5
38
-
version: 2.0.0-rc.5
34
+
specifier: 2.9.3
35
+
version: 2.9.3
36
+
'@types/animejs':
37
+
specifier: ^3.1.13
38
+
version: 3.1.13
39
39
typescript:
40
-
specifier: ^5.8.3
41
-
version: 5.8.3
40
+
specifier: ^5.9.3
41
+
version: 5.9.3
42
42
vite:
43
-
specifier: ^5.4.19
44
-
version: 5.4.19
43
+
specifier: ^7.2.2
44
+
version: 7.2.2
45
45
vite-plugin-solid:
46
-
specifier: ^2.11.8
47
-
version: 2.11.8(solid-js@1.9.7)(vite@5.4.19)
46
+
specifier: ^2.11.10
47
+
version: 2.11.10(solid-js@1.9.10)(vite@7.2.2)
48
48
49
49
packages:
50
50
51
-
'@ampproject/remapping@2.3.0':
52
-
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
53
-
engines: {node: '>=6.0.0'}
54
-
55
51
'@babel/code-frame@7.27.1':
56
52
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
57
53
engines: {node: '>=6.9.0'}
58
54
59
-
'@babel/compat-data@7.28.0':
60
-
resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
55
+
'@babel/compat-data@7.28.5':
56
+
resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
61
57
engines: {node: '>=6.9.0'}
62
58
63
-
'@babel/core@7.28.0':
64
-
resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
59
+
'@babel/core@7.28.5':
60
+
resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
65
61
engines: {node: '>=6.9.0'}
66
62
67
-
'@babel/generator@7.28.0':
68
-
resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
63
+
'@babel/generator@7.28.5':
64
+
resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
69
65
engines: {node: '>=6.9.0'}
70
66
71
67
'@babel/helper-compilation-targets@7.27.2':
···
84
80
resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
85
81
engines: {node: '>=6.9.0'}
86
82
87
-
'@babel/helper-module-transforms@7.27.3':
88
-
resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
83
+
'@babel/helper-module-transforms@7.28.3':
84
+
resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
89
85
engines: {node: '>=6.9.0'}
90
86
peerDependencies:
91
87
'@babel/core': ^7.0.0
···
98
94
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
99
95
engines: {node: '>=6.9.0'}
100
96
101
-
'@babel/helper-validator-identifier@7.27.1':
102
-
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
97
+
'@babel/helper-validator-identifier@7.28.5':
98
+
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
103
99
engines: {node: '>=6.9.0'}
104
100
105
101
'@babel/helper-validator-option@7.27.1':
106
102
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
107
103
engines: {node: '>=6.9.0'}
108
104
109
-
'@babel/helpers@7.28.2':
110
-
resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==}
105
+
'@babel/helpers@7.28.4':
106
+
resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
111
107
engines: {node: '>=6.9.0'}
112
108
113
-
'@babel/parser@7.28.0':
114
-
resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
109
+
'@babel/parser@7.28.5':
110
+
resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
115
111
engines: {node: '>=6.0.0'}
116
112
hasBin: true
117
113
···
125
121
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
126
122
engines: {node: '>=6.9.0'}
127
123
128
-
'@babel/traverse@7.28.0':
129
-
resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
124
+
'@babel/traverse@7.28.5':
125
+
resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
130
126
engines: {node: '>=6.9.0'}
131
127
132
-
'@babel/types@7.28.2':
133
-
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
128
+
'@babel/types@7.28.5':
129
+
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
134
130
engines: {node: '>=6.9.0'}
135
131
136
-
'@esbuild/aix-ppc64@0.21.5':
137
-
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
138
-
engines: {node: '>=12'}
132
+
'@esbuild/aix-ppc64@0.25.12':
133
+
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
134
+
engines: {node: '>=18'}
139
135
cpu: [ppc64]
140
136
os: [aix]
141
137
142
-
'@esbuild/android-arm64@0.21.5':
143
-
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
144
-
engines: {node: '>=12'}
138
+
'@esbuild/android-arm64@0.25.12':
139
+
resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
140
+
engines: {node: '>=18'}
145
141
cpu: [arm64]
146
142
os: [android]
147
143
148
-
'@esbuild/android-arm@0.21.5':
149
-
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
150
-
engines: {node: '>=12'}
144
+
'@esbuild/android-arm@0.25.12':
145
+
resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
146
+
engines: {node: '>=18'}
151
147
cpu: [arm]
152
148
os: [android]
153
149
154
-
'@esbuild/android-x64@0.21.5':
155
-
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
156
-
engines: {node: '>=12'}
150
+
'@esbuild/android-x64@0.25.12':
151
+
resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
152
+
engines: {node: '>=18'}
157
153
cpu: [x64]
158
154
os: [android]
159
155
160
-
'@esbuild/darwin-arm64@0.21.5':
161
-
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
162
-
engines: {node: '>=12'}
156
+
'@esbuild/darwin-arm64@0.25.12':
157
+
resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
158
+
engines: {node: '>=18'}
163
159
cpu: [arm64]
164
160
os: [darwin]
165
161
166
-
'@esbuild/darwin-x64@0.21.5':
167
-
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
168
-
engines: {node: '>=12'}
162
+
'@esbuild/darwin-x64@0.25.12':
163
+
resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
164
+
engines: {node: '>=18'}
169
165
cpu: [x64]
170
166
os: [darwin]
171
167
172
-
'@esbuild/freebsd-arm64@0.21.5':
173
-
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
174
-
engines: {node: '>=12'}
168
+
'@esbuild/freebsd-arm64@0.25.12':
169
+
resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
170
+
engines: {node: '>=18'}
175
171
cpu: [arm64]
176
172
os: [freebsd]
177
173
178
-
'@esbuild/freebsd-x64@0.21.5':
179
-
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
180
-
engines: {node: '>=12'}
174
+
'@esbuild/freebsd-x64@0.25.12':
175
+
resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
176
+
engines: {node: '>=18'}
181
177
cpu: [x64]
182
178
os: [freebsd]
183
179
184
-
'@esbuild/linux-arm64@0.21.5':
185
-
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
186
-
engines: {node: '>=12'}
180
+
'@esbuild/linux-arm64@0.25.12':
181
+
resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
182
+
engines: {node: '>=18'}
187
183
cpu: [arm64]
188
184
os: [linux]
189
185
190
-
'@esbuild/linux-arm@0.21.5':
191
-
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
192
-
engines: {node: '>=12'}
186
+
'@esbuild/linux-arm@0.25.12':
187
+
resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
188
+
engines: {node: '>=18'}
193
189
cpu: [arm]
194
190
os: [linux]
195
191
196
-
'@esbuild/linux-ia32@0.21.5':
197
-
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
198
-
engines: {node: '>=12'}
192
+
'@esbuild/linux-ia32@0.25.12':
193
+
resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
194
+
engines: {node: '>=18'}
199
195
cpu: [ia32]
200
196
os: [linux]
201
197
202
-
'@esbuild/linux-loong64@0.21.5':
203
-
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
204
-
engines: {node: '>=12'}
198
+
'@esbuild/linux-loong64@0.25.12':
199
+
resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
200
+
engines: {node: '>=18'}
205
201
cpu: [loong64]
206
202
os: [linux]
207
203
208
-
'@esbuild/linux-mips64el@0.21.5':
209
-
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
210
-
engines: {node: '>=12'}
204
+
'@esbuild/linux-mips64el@0.25.12':
205
+
resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
206
+
engines: {node: '>=18'}
211
207
cpu: [mips64el]
212
208
os: [linux]
213
209
214
-
'@esbuild/linux-ppc64@0.21.5':
215
-
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
216
-
engines: {node: '>=12'}
210
+
'@esbuild/linux-ppc64@0.25.12':
211
+
resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
212
+
engines: {node: '>=18'}
217
213
cpu: [ppc64]
218
214
os: [linux]
219
215
220
-
'@esbuild/linux-riscv64@0.21.5':
221
-
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
222
-
engines: {node: '>=12'}
216
+
'@esbuild/linux-riscv64@0.25.12':
217
+
resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
218
+
engines: {node: '>=18'}
223
219
cpu: [riscv64]
224
220
os: [linux]
225
221
226
-
'@esbuild/linux-s390x@0.21.5':
227
-
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
228
-
engines: {node: '>=12'}
222
+
'@esbuild/linux-s390x@0.25.12':
223
+
resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
224
+
engines: {node: '>=18'}
229
225
cpu: [s390x]
230
226
os: [linux]
231
227
232
-
'@esbuild/linux-x64@0.21.5':
233
-
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
234
-
engines: {node: '>=12'}
228
+
'@esbuild/linux-x64@0.25.12':
229
+
resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
230
+
engines: {node: '>=18'}
235
231
cpu: [x64]
236
232
os: [linux]
237
233
238
-
'@esbuild/netbsd-x64@0.21.5':
239
-
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
240
-
engines: {node: '>=12'}
234
+
'@esbuild/netbsd-arm64@0.25.12':
235
+
resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
236
+
engines: {node: '>=18'}
237
+
cpu: [arm64]
238
+
os: [netbsd]
239
+
240
+
'@esbuild/netbsd-x64@0.25.12':
241
+
resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
242
+
engines: {node: '>=18'}
241
243
cpu: [x64]
242
244
os: [netbsd]
243
245
244
-
'@esbuild/openbsd-x64@0.21.5':
245
-
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
246
-
engines: {node: '>=12'}
246
+
'@esbuild/openbsd-arm64@0.25.12':
247
+
resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
248
+
engines: {node: '>=18'}
249
+
cpu: [arm64]
250
+
os: [openbsd]
251
+
252
+
'@esbuild/openbsd-x64@0.25.12':
253
+
resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
254
+
engines: {node: '>=18'}
247
255
cpu: [x64]
248
256
os: [openbsd]
249
257
250
-
'@esbuild/sunos-x64@0.21.5':
251
-
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
252
-
engines: {node: '>=12'}
258
+
'@esbuild/openharmony-arm64@0.25.12':
259
+
resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
260
+
engines: {node: '>=18'}
261
+
cpu: [arm64]
262
+
os: [openharmony]
263
+
264
+
'@esbuild/sunos-x64@0.25.12':
265
+
resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
266
+
engines: {node: '>=18'}
253
267
cpu: [x64]
254
268
os: [sunos]
255
269
256
-
'@esbuild/win32-arm64@0.21.5':
257
-
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
258
-
engines: {node: '>=12'}
270
+
'@esbuild/win32-arm64@0.25.12':
271
+
resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
272
+
engines: {node: '>=18'}
259
273
cpu: [arm64]
260
274
os: [win32]
261
275
262
-
'@esbuild/win32-ia32@0.21.5':
263
-
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
264
-
engines: {node: '>=12'}
276
+
'@esbuild/win32-ia32@0.25.12':
277
+
resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
278
+
engines: {node: '>=18'}
265
279
cpu: [ia32]
266
280
os: [win32]
267
281
268
-
'@esbuild/win32-x64@0.21.5':
269
-
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
270
-
engines: {node: '>=12'}
282
+
'@esbuild/win32-x64@0.25.12':
283
+
resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
284
+
engines: {node: '>=18'}
271
285
cpu: [x64]
272
286
os: [win32]
273
287
274
-
'@jridgewell/gen-mapping@0.3.12':
275
-
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
288
+
'@jridgewell/gen-mapping@0.3.13':
289
+
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
290
+
291
+
'@jridgewell/remapping@2.3.5':
292
+
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
276
293
277
294
'@jridgewell/resolve-uri@3.1.2':
278
295
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
279
296
engines: {node: '>=6.0.0'}
280
297
281
-
'@jridgewell/sourcemap-codec@1.5.4':
282
-
resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
298
+
'@jridgewell/sourcemap-codec@1.5.5':
299
+
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
283
300
284
-
'@jridgewell/trace-mapping@0.3.29':
285
-
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
301
+
'@jridgewell/trace-mapping@0.3.31':
302
+
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
286
303
287
-
'@rollup/rollup-android-arm-eabi@4.46.2':
288
-
resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==}
304
+
'@rollup/rollup-android-arm-eabi@4.52.5':
305
+
resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
289
306
cpu: [arm]
290
307
os: [android]
291
308
292
-
'@rollup/rollup-android-arm64@4.46.2':
293
-
resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==}
309
+
'@rollup/rollup-android-arm64@4.52.5':
310
+
resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
294
311
cpu: [arm64]
295
312
os: [android]
296
313
297
-
'@rollup/rollup-darwin-arm64@4.46.2':
298
-
resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==}
314
+
'@rollup/rollup-darwin-arm64@4.52.5':
315
+
resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
299
316
cpu: [arm64]
300
317
os: [darwin]
301
318
302
-
'@rollup/rollup-darwin-x64@4.46.2':
303
-
resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==}
319
+
'@rollup/rollup-darwin-x64@4.52.5':
320
+
resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
304
321
cpu: [x64]
305
322
os: [darwin]
306
323
307
-
'@rollup/rollup-freebsd-arm64@4.46.2':
308
-
resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==}
324
+
'@rollup/rollup-freebsd-arm64@4.52.5':
325
+
resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
309
326
cpu: [arm64]
310
327
os: [freebsd]
311
328
312
-
'@rollup/rollup-freebsd-x64@4.46.2':
313
-
resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==}
329
+
'@rollup/rollup-freebsd-x64@4.52.5':
330
+
resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
314
331
cpu: [x64]
315
332
os: [freebsd]
316
333
317
-
'@rollup/rollup-linux-arm-gnueabihf@4.46.2':
318
-
resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==}
334
+
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
335
+
resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
319
336
cpu: [arm]
320
337
os: [linux]
321
338
322
-
'@rollup/rollup-linux-arm-musleabihf@4.46.2':
323
-
resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==}
339
+
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
340
+
resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
324
341
cpu: [arm]
325
342
os: [linux]
326
343
327
-
'@rollup/rollup-linux-arm64-gnu@4.46.2':
328
-
resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==}
344
+
'@rollup/rollup-linux-arm64-gnu@4.52.5':
345
+
resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
329
346
cpu: [arm64]
330
347
os: [linux]
331
348
332
-
'@rollup/rollup-linux-arm64-musl@4.46.2':
333
-
resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==}
349
+
'@rollup/rollup-linux-arm64-musl@4.52.5':
350
+
resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
334
351
cpu: [arm64]
335
352
os: [linux]
336
353
337
-
'@rollup/rollup-linux-loongarch64-gnu@4.46.2':
338
-
resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==}
354
+
'@rollup/rollup-linux-loong64-gnu@4.52.5':
355
+
resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
339
356
cpu: [loong64]
340
357
os: [linux]
341
358
342
-
'@rollup/rollup-linux-ppc64-gnu@4.46.2':
343
-
resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==}
359
+
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
360
+
resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
344
361
cpu: [ppc64]
345
362
os: [linux]
346
363
347
-
'@rollup/rollup-linux-riscv64-gnu@4.46.2':
348
-
resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==}
364
+
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
365
+
resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
349
366
cpu: [riscv64]
350
367
os: [linux]
351
368
352
-
'@rollup/rollup-linux-riscv64-musl@4.46.2':
353
-
resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==}
369
+
'@rollup/rollup-linux-riscv64-musl@4.52.5':
370
+
resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
354
371
cpu: [riscv64]
355
372
os: [linux]
356
373
357
-
'@rollup/rollup-linux-s390x-gnu@4.46.2':
358
-
resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==}
374
+
'@rollup/rollup-linux-s390x-gnu@4.52.5':
375
+
resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
359
376
cpu: [s390x]
360
377
os: [linux]
361
378
362
-
'@rollup/rollup-linux-x64-gnu@4.46.2':
363
-
resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==}
379
+
'@rollup/rollup-linux-x64-gnu@4.52.5':
380
+
resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
364
381
cpu: [x64]
365
382
os: [linux]
366
383
367
-
'@rollup/rollup-linux-x64-musl@4.46.2':
368
-
resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==}
384
+
'@rollup/rollup-linux-x64-musl@4.52.5':
385
+
resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
369
386
cpu: [x64]
370
387
os: [linux]
371
388
372
-
'@rollup/rollup-win32-arm64-msvc@4.46.2':
373
-
resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==}
389
+
'@rollup/rollup-openharmony-arm64@4.52.5':
390
+
resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
391
+
cpu: [arm64]
392
+
os: [openharmony]
393
+
394
+
'@rollup/rollup-win32-arm64-msvc@4.52.5':
395
+
resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
374
396
cpu: [arm64]
375
397
os: [win32]
376
398
377
-
'@rollup/rollup-win32-ia32-msvc@4.46.2':
378
-
resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==}
399
+
'@rollup/rollup-win32-ia32-msvc@4.52.5':
400
+
resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
379
401
cpu: [ia32]
380
402
os: [win32]
381
403
382
-
'@rollup/rollup-win32-x64-msvc@4.46.2':
383
-
resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==}
404
+
'@rollup/rollup-win32-x64-gnu@4.52.5':
405
+
resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
384
406
cpu: [x64]
385
407
os: [win32]
386
408
387
-
'@tauri-apps/api@2.0.0-rc.0':
388
-
resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==}
389
-
engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
409
+
'@rollup/rollup-win32-x64-msvc@4.52.5':
410
+
resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
411
+
cpu: [x64]
412
+
os: [win32]
390
413
391
-
'@tauri-apps/api@2.7.0':
392
-
resolution: {integrity: sha512-v7fVE8jqBl8xJFOcBafDzXFc8FnicoH3j8o8DNNs0tHuEBmXUDqrCOAzMRX0UkfpwqZLqvrvK0GNQ45DfnoVDg==}
414
+
'@tauri-apps/api@2.9.0':
415
+
resolution: {integrity: sha512-qD5tMjh7utwBk9/5PrTA/aGr3i5QaJ/Mlt7p8NilQ45WgbifUNPyKWsA63iQ8YfQq6R8ajMapU+/Q8nMcPRLNw==}
393
416
394
-
'@tauri-apps/cli-darwin-arm64@2.0.0-rc.5':
395
-
resolution: {integrity: sha512-EoduJ5SeMfBKCe7I291JBH+lkrf2E0+mQF1rP+Jq4CjWPer11OeEcUSFtHURB3Z3ItzObQ7ALPulMGhMe6E9rg==}
417
+
'@tauri-apps/cli-darwin-arm64@2.9.3':
418
+
resolution: {integrity: sha512-W8FQXZXQmQ0Fmj9UJXNrm2mLdIaLLriKVY7o/FzmizyIKTPIvHjfZALTNybbpTQRbJvKoGHLrW1DNzAWVDWJYg==}
396
419
engines: {node: '>= 10'}
397
420
cpu: [arm64]
398
421
os: [darwin]
399
422
400
-
'@tauri-apps/cli-darwin-x64@2.0.0-rc.5':
401
-
resolution: {integrity: sha512-GdphvNgQWAbVGoD6e2Z5auWFXBcmmbhiwf9UNoKpBQPLfFO6EEJHjXbACr/hAZsqT0nNpZLRoh/5v5HGTmU0XQ==}
423
+
'@tauri-apps/cli-darwin-x64@2.9.3':
424
+
resolution: {integrity: sha512-zDwu40rlshijt3TU6aRvzPUyVpapsx1sNfOlreDMTaMelQLHl6YoQzSRpLHYwrHrhimxyX2uDqnKIiuGel0Lhg==}
402
425
engines: {node: '>= 10'}
403
426
cpu: [x64]
404
427
os: [darwin]
405
428
406
-
'@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.5':
407
-
resolution: {integrity: sha512-S47KwAfyRsO2qTqSoadHP4a1cjO9kfQi4QWkoaDjb0BEETdrhPM94qp43cnKP7QWW+msOToMTdlks9HYlhRUww==}
429
+
'@tauri-apps/cli-linux-arm-gnueabihf@2.9.3':
430
+
resolution: {integrity: sha512-+Oc2OfcTRwYtW93VJqd/HOk77buORwC9IToj/qsEvM7bTMq6Kda4alpZprzwrCHYANSw+zD8PgjJdljTpe4p+g==}
408
431
engines: {node: '>= 10'}
409
432
cpu: [arm]
410
433
os: [linux]
411
434
412
-
'@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.5':
413
-
resolution: {integrity: sha512-Ii9aP/24Rtlci5MaeSaqb6JOLt3cUBA4z4XmGz5VOLLZ+ntRxpfd3xNpLki04V2MOgbAu9BxLAp5UTzELc1/Rg==}
435
+
'@tauri-apps/cli-linux-arm64-gnu@2.9.3':
436
+
resolution: {integrity: sha512-59GqU/J1n9wFyAtleoQOaU0oVIo+kwQynEw4meFDoKRXszKGor6lTsbsS3r0QKLSPbc0o/yYGJhqqCtkYjb/eg==}
414
437
engines: {node: '>= 10'}
415
438
cpu: [arm64]
416
439
os: [linux]
417
440
418
-
'@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.5':
419
-
resolution: {integrity: sha512-noV2sDusI+DsEHl0uMOZ04sQmj65Jo9yjfSg2iv1fnfjBYVbwi6Qj/MaCqyApXESQrpv1XZB3kYI+CkyPnjj2Q==}
441
+
'@tauri-apps/cli-linux-arm64-musl@2.9.3':
442
+
resolution: {integrity: sha512-fzvG+jEn5/iYGNH6Z2IRMheYFC4pJdXa19BR9fFm6Bdn2cuajRLDKdUcEME/DCtwqclphXtFZTrT4oezY5vI/A==}
420
443
engines: {node: '>= 10'}
421
444
cpu: [arm64]
422
445
os: [linux]
423
446
424
-
'@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.5':
425
-
resolution: {integrity: sha512-iTe9gKO+qgFRjU1sxBvbI8bIRbkOedWvFm/yh8RFi1iJcFwbVnsHWQ8z7BwoNMJLnL2dseZgrGntmS5n9/xSSQ==}
447
+
'@tauri-apps/cli-linux-riscv64-gnu@2.9.3':
448
+
resolution: {integrity: sha512-qV8DZXI/fZwawk6T3Th1g6smiNC2KeQTk7XFgKvqZ6btC01z3UTsQmNGvI602zwm3Ld1TBZb4+rEWu2QmQimmw==}
449
+
engines: {node: '>= 10'}
450
+
cpu: [riscv64]
451
+
os: [linux]
452
+
453
+
'@tauri-apps/cli-linux-x64-gnu@2.9.3':
454
+
resolution: {integrity: sha512-tquyEONCNRfqEBWEe4eAHnxFN5yY5lFkCuD4w79XLIovUxVftQ684+xLp7zkhntkt4y20SMj2AgJa/+MOlx4Kg==}
426
455
engines: {node: '>= 10'}
427
456
cpu: [x64]
428
457
os: [linux]
429
458
430
-
'@tauri-apps/cli-linux-x64-musl@2.0.0-rc.5':
431
-
resolution: {integrity: sha512-R7EyfvfdMtRAKC3QxPn5jVGEH56R4g6hSnR5xXkFnEpioND7SNru5UMBGgseGJ22h/hdjFfqS2vc19291gkVsg==}
459
+
'@tauri-apps/cli-linux-x64-musl@2.9.3':
460
+
resolution: {integrity: sha512-v2cBIB/6ji8DL+aiL5QUykU3ZO8OoJGyx50/qv2HQVzkf85KdaYSis3D/oVRemN/pcDz+vyCnnL3XnzFnDl4JQ==}
432
461
engines: {node: '>= 10'}
433
462
cpu: [x64]
434
463
os: [linux]
435
464
436
-
'@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.5':
437
-
resolution: {integrity: sha512-EE7CF//hMWsVZpu9IWXGLDDdMhAiNfHwfLnW4Na1INHKBBb/ynhOd4gKRC3Mi/kgcMfXJAq0nBJFw1mal1q7jg==}
465
+
'@tauri-apps/cli-win32-arm64-msvc@2.9.3':
466
+
resolution: {integrity: sha512-ZGvBy7nvrHPbE0HeKp/ioaiw8bNgAHxWnb7JRZ4/G0A+oFj0SeSFxl9k5uU6FKnM7bHM23Gd1oeaDex9g5Fceg==}
438
467
engines: {node: '>= 10'}
439
468
cpu: [arm64]
440
469
os: [win32]
441
470
442
-
'@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.5':
443
-
resolution: {integrity: sha512-zJosPEw1X1H9nTNsrYVSypRLdMLOiLAY8hlBrgsmw7dmN61lOMLyItWsbiAezYeKIpaFeADurR+5qMHHwzbqeg==}
471
+
'@tauri-apps/cli-win32-ia32-msvc@2.9.3':
472
+
resolution: {integrity: sha512-UsgIwOnpCoY9NK9/65QiwgmWVIE80LE7SwRYVblGtmlY9RYfsYvpbItwsovA/AcHMTiO+OCvS/q9yLeqS3m6Sg==}
444
473
engines: {node: '>= 10'}
445
474
cpu: [ia32]
446
475
os: [win32]
447
476
448
-
'@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.5':
449
-
resolution: {integrity: sha512-PqxbL/e6GraazdwEKN1oX33gYCRf0ns6yuaxHafHM5+Zsv0MZpyPTPLDot/JLKvNBefk6QXZn5fKAIETVtQaGg==}
477
+
'@tauri-apps/cli-win32-x64-msvc@2.9.3':
478
+
resolution: {integrity: sha512-fmw7NrrHE5m49idCvJAx9T9bsupjdJ0a3p3DPCNCZRGANU6R1tA1L+KTlVuUtdAldX2NqU/9UPo2SCslYKgJHQ==}
450
479
engines: {node: '>= 10'}
451
480
cpu: [x64]
452
481
os: [win32]
453
482
454
-
'@tauri-apps/cli@2.0.0-rc.5':
455
-
resolution: {integrity: sha512-JtFfJg8ZNOrj+S+8RKpcrNIcU5hw0X8JSNs2tUjQq0OZgqIGnRSILYjg7BaZDPEakQXUKsDEufbjbYVNJDIp8g==}
483
+
'@tauri-apps/cli@2.9.3':
484
+
resolution: {integrity: sha512-BQ7iLUXTQcyG1PpzLWeVSmBCedYDpnA/6Cm/kRFGtqjTf/eVUlyYO5S2ee07tLum3nWwDBWTGFZeruO8yEukfA==}
456
485
engines: {node: '>= 10'}
457
486
hasBin: true
458
487
459
-
'@tauri-apps/plugin-deep-link@2.4.1':
460
-
resolution: {integrity: sha512-I8Bo+spcAKGhIIJ1qN/gapp/Ot3mosQL98znxr975Zn2ODAkUZ++BQ9FnTpR7PDwfIl5ANSGdIW/YU01zVTcJw==}
488
+
'@tauri-apps/plugin-deep-link@2.4.5':
489
+
resolution: {integrity: sha512-Zf2RTj1D9IQQ45/jqW8XTKvql24HqlPjcpv0mV/O2jHQkNe11HOTZBVj6IK37qs+MWV7xZzcmazx/QVZnhAwaQ==}
461
490
462
-
'@tauri-apps/plugin-http@2.0.0-rc.1':
463
-
resolution: {integrity: sha512-j4WdTEKx0CFa6u8ubke0mo75pCrnu6XtrFtvjsh+zjuNYgMG/l0+A1woWXHm73f2Levskhs+KbKcLQA/nr8k2w==}
491
+
'@tauri-apps/plugin-http@2.5.4':
492
+
resolution: {integrity: sha512-/i4U/9za3mrytTgfRn5RHneKubZE/dwRmshYwyMvNRlkWjvu1m4Ma72kcbVJMZFGXpkbl+qLyWMGrihtWB76Zg==}
464
493
465
-
'@tauri-apps/plugin-process@2.0.0-rc.0':
466
-
resolution: {integrity: sha512-Z12D/kmQzG1vCVf+jLXPhPDUA0pEjFrsg4p0uwO2sotVLM9287IuTM+aIz9cuAYOxFLKcsnDG7amSCL9IfA1gw==}
494
+
'@tauri-apps/plugin-process@2.3.1':
495
+
resolution: {integrity: sha512-nCa4fGVaDL/B9ai03VyPOjfAHRHSBz5v6F/ObsB73r/dA3MHHhZtldaDMIc0V/pnUw9ehzr2iEG+XkSEyC0JJA==}
467
496
468
-
'@tauri-apps/plugin-shell@2.0.0-rc.0':
469
-
resolution: {integrity: sha512-bhUcQcrqZoK8H1DFXapr5r1Z75oh6Kd5Tltz97XpZFLREEqp+KhN2Fvyh8r/fKAyenYsTYUIsDsyGdjdueuF9g==}
497
+
'@tauri-apps/plugin-shell@2.3.3':
498
+
resolution: {integrity: sha512-Xod+pRcFxmOWFWEnqH5yZcA7qwAMuaaDkMR1Sply+F8VfBj++CGnj2xf5UoialmjZ2Cvd8qrvSCbU+7GgNVsKQ==}
470
499
471
500
'@types/animejs@3.1.13':
472
501
resolution: {integrity: sha512-yWg9l1z7CAv/TKpty4/vupEh24jDGUZXv4r26StRkpUPQm04ztJaftgpto8vwdFs8SiTq6XfaPKCSI+wjzNMvQ==}
···
480
509
'@types/babel__template@7.4.4':
481
510
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
482
511
483
-
'@types/babel__traverse@7.20.7':
484
-
resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
512
+
'@types/babel__traverse@7.28.0':
513
+
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
485
514
486
515
'@types/estree@1.0.8':
487
516
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
488
517
489
-
animejs@3.2.2:
490
-
resolution: {integrity: sha512-Ao95qWLpDPXXM+WrmwcKbl6uNlC5tjnowlaRYtuVDHHoygjtIPfDUoK9NthrlZsQSKjZXlmji2TrBUAVbiH0LQ==}
518
+
animejs@4.2.2:
519
+
resolution: {integrity: sha512-Ys3RuvLdAeI14fsdKCQy7ytu4057QX6Bb7m4jwmfd6iKmUmLquTwk1ut0e4NtRQgCeq/s2Lv5+oMBjz6c7ZuIg==}
491
520
492
-
babel-plugin-jsx-dom-expressions@0.39.8:
493
-
resolution: {integrity: sha512-/MVOIIjonylDXnrWmG23ZX82m9mtKATsVHB7zYlPfDR9Vdd/NBE48if+wv27bSkBtyO7EPMUlcUc4J63QwuACQ==}
521
+
babel-plugin-jsx-dom-expressions@0.40.3:
522
+
resolution: {integrity: sha512-5HOwwt0BYiv/zxl7j8Pf2bGL6rDXfV6nUhLs8ygBX+EFJXzBPHM/euj9j/6deMZ6wa52Wb2PBaAV5U/jKwIY1w==}
494
523
peerDependencies:
495
524
'@babel/core': ^7.20.12
496
525
497
-
babel-preset-solid@1.9.6:
498
-
resolution: {integrity: sha512-HXTK9f93QxoH8dYn1M2mJdOlWgMsR88Lg/ul6QCZGkNTktjTE5HAf93YxQumHoCudLEtZrU1cFCMFOVho6GqFg==}
526
+
babel-preset-solid@1.9.10:
527
+
resolution: {integrity: sha512-HCelrgua/Y+kqO8RyL04JBWS/cVdrtUv/h45GntgQY+cJl4eBcKkCDV3TdMjtKx1nXwRaR9QXslM/Npm1dxdZQ==}
499
528
peerDependencies:
500
529
'@babel/core': ^7.0.0
530
+
solid-js: ^1.9.10
531
+
peerDependenciesMeta:
532
+
solid-js:
533
+
optional: true
501
534
502
-
browserslist@4.25.1:
503
-
resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
535
+
baseline-browser-mapping@2.8.25:
536
+
resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==}
537
+
hasBin: true
538
+
539
+
browserslist@4.27.0:
540
+
resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==}
504
541
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
505
542
hasBin: true
506
543
507
-
caniuse-lite@1.0.30001731:
508
-
resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
544
+
caniuse-lite@1.0.30001754:
545
+
resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==}
509
546
510
547
convert-source-map@2.0.0:
511
548
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
···
513
550
csstype@3.1.3:
514
551
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
515
552
516
-
debug@4.4.1:
517
-
resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
553
+
debug@4.4.3:
554
+
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
518
555
engines: {node: '>=6.0'}
519
556
peerDependencies:
520
557
supports-color: '*'
···
522
559
supports-color:
523
560
optional: true
524
561
525
-
electron-to-chromium@1.5.193:
526
-
resolution: {integrity: sha512-eePuBZXM9OVCwfYUhd2OzESeNGnWmLyeu0XAEjf7xjijNjHFdeJSzuRUGN4ueT2tEYo5YqjHramKEFxz67p3XA==}
562
+
electron-to-chromium@1.5.248:
563
+
resolution: {integrity: sha512-zsur2yunphlyAO4gIubdJEXCK6KOVvtpiuDfCIqbM9FjcnMYiyn0ICa3hWfPr0nc41zcLWobgy1iL7VvoOyA2Q==}
527
564
528
565
entities@6.0.1:
529
566
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
530
567
engines: {node: '>=0.12'}
531
568
532
-
esbuild@0.21.5:
533
-
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
534
-
engines: {node: '>=12'}
569
+
esbuild@0.25.12:
570
+
resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
571
+
engines: {node: '>=18'}
535
572
hasBin: true
536
573
537
574
escalade@3.2.0:
538
575
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
539
576
engines: {node: '>=6'}
577
+
578
+
fdir@6.5.0:
579
+
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
580
+
engines: {node: '>=12.0.0'}
581
+
peerDependencies:
582
+
picomatch: ^3 || ^4
583
+
peerDependenciesMeta:
584
+
picomatch:
585
+
optional: true
540
586
541
587
fsevents@2.3.3:
542
588
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
···
582
628
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
583
629
hasBin: true
584
630
585
-
node-releases@2.0.19:
586
-
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
631
+
node-releases@2.0.27:
632
+
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
587
633
588
634
parse5@7.3.0:
589
635
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
···
591
637
picocolors@1.1.1:
592
638
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
593
639
640
+
picomatch@4.0.3:
641
+
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
642
+
engines: {node: '>=12'}
643
+
594
644
postcss@8.5.6:
595
645
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
596
646
engines: {node: ^10 || ^12 || >=14}
597
647
598
-
rollup@4.46.2:
599
-
resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==}
648
+
rollup@4.52.5:
649
+
resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
600
650
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
601
651
hasBin: true
602
652
···
604
654
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
605
655
hasBin: true
606
656
607
-
seroval-plugins@1.3.2:
608
-
resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==}
657
+
seroval-plugins@1.3.3:
658
+
resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==}
609
659
engines: {node: '>=10'}
610
660
peerDependencies:
611
661
seroval: ^1.0
···
614
664
resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
615
665
engines: {node: '>=10'}
616
666
617
-
solid-js@1.9.7:
618
-
resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==}
667
+
solid-js@1.9.10:
668
+
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
619
669
620
670
solid-refresh@0.6.3:
621
671
resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
···
626
676
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
627
677
engines: {node: '>=0.10.0'}
628
678
629
-
typescript@5.8.3:
630
-
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
679
+
tinyglobby@0.2.15:
680
+
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
681
+
engines: {node: '>=12.0.0'}
682
+
683
+
typescript@5.9.3:
684
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
631
685
engines: {node: '>=14.17'}
632
686
hasBin: true
633
687
634
-
update-browserslist-db@1.1.3:
635
-
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
688
+
update-browserslist-db@1.1.4:
689
+
resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
636
690
hasBin: true
637
691
peerDependencies:
638
692
browserslist: '>= 4.21.0'
639
693
640
-
validate-html-nesting@1.2.3:
641
-
resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==}
642
-
643
-
vite-plugin-solid@2.11.8:
644
-
resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==}
694
+
vite-plugin-solid@2.11.10:
695
+
resolution: {integrity: sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw==}
645
696
peerDependencies:
646
697
'@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
647
698
solid-js: ^1.7.2
···
650
701
'@testing-library/jest-dom':
651
702
optional: true
652
703
653
-
vite@5.4.19:
654
-
resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==}
655
-
engines: {node: ^18.0.0 || >=20.0.0}
704
+
vite@7.2.2:
705
+
resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==}
706
+
engines: {node: ^20.19.0 || >=22.12.0}
656
707
hasBin: true
657
708
peerDependencies:
658
-
'@types/node': ^18.0.0 || >=20.0.0
659
-
less: '*'
709
+
'@types/node': ^20.19.0 || >=22.12.0
710
+
jiti: '>=1.21.0'
711
+
less: ^4.0.0
660
712
lightningcss: ^1.21.0
661
-
sass: '*'
662
-
sass-embedded: '*'
663
-
stylus: '*'
664
-
sugarss: '*'
665
-
terser: ^5.4.0
713
+
sass: ^1.70.0
714
+
sass-embedded: ^1.70.0
715
+
stylus: '>=0.54.8'
716
+
sugarss: ^5.0.0
717
+
terser: ^5.16.0
718
+
tsx: ^4.8.1
719
+
yaml: ^2.4.2
666
720
peerDependenciesMeta:
667
721
'@types/node':
722
+
optional: true
723
+
jiti:
668
724
optional: true
669
725
less:
670
726
optional: true
···
679
735
sugarss:
680
736
optional: true
681
737
terser:
738
+
optional: true
739
+
tsx:
740
+
optional: true
741
+
yaml:
682
742
optional: true
683
743
684
744
vitefu@1.1.1:
···
694
754
695
755
snapshots:
696
756
697
-
'@ampproject/remapping@2.3.0':
698
-
dependencies:
699
-
'@jridgewell/gen-mapping': 0.3.12
700
-
'@jridgewell/trace-mapping': 0.3.29
701
-
702
757
'@babel/code-frame@7.27.1':
703
758
dependencies:
704
-
'@babel/helper-validator-identifier': 7.27.1
759
+
'@babel/helper-validator-identifier': 7.28.5
705
760
js-tokens: 4.0.0
706
761
picocolors: 1.1.1
707
762
708
-
'@babel/compat-data@7.28.0': {}
763
+
'@babel/compat-data@7.28.5': {}
709
764
710
-
'@babel/core@7.28.0':
765
+
'@babel/core@7.28.5':
711
766
dependencies:
712
-
'@ampproject/remapping': 2.3.0
713
767
'@babel/code-frame': 7.27.1
714
-
'@babel/generator': 7.28.0
768
+
'@babel/generator': 7.28.5
715
769
'@babel/helper-compilation-targets': 7.27.2
716
-
'@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
717
-
'@babel/helpers': 7.28.2
718
-
'@babel/parser': 7.28.0
770
+
'@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
771
+
'@babel/helpers': 7.28.4
772
+
'@babel/parser': 7.28.5
719
773
'@babel/template': 7.27.2
720
-
'@babel/traverse': 7.28.0
721
-
'@babel/types': 7.28.2
774
+
'@babel/traverse': 7.28.5
775
+
'@babel/types': 7.28.5
776
+
'@jridgewell/remapping': 2.3.5
722
777
convert-source-map: 2.0.0
723
-
debug: 4.4.1
778
+
debug: 4.4.3
724
779
gensync: 1.0.0-beta.2
725
780
json5: 2.2.3
726
781
semver: 6.3.1
727
782
transitivePeerDependencies:
728
783
- supports-color
729
784
730
-
'@babel/generator@7.28.0':
785
+
'@babel/generator@7.28.5':
731
786
dependencies:
732
-
'@babel/parser': 7.28.0
733
-
'@babel/types': 7.28.2
734
-
'@jridgewell/gen-mapping': 0.3.12
735
-
'@jridgewell/trace-mapping': 0.3.29
787
+
'@babel/parser': 7.28.5
788
+
'@babel/types': 7.28.5
789
+
'@jridgewell/gen-mapping': 0.3.13
790
+
'@jridgewell/trace-mapping': 0.3.31
736
791
jsesc: 3.1.0
737
792
738
793
'@babel/helper-compilation-targets@7.27.2':
739
794
dependencies:
740
-
'@babel/compat-data': 7.28.0
795
+
'@babel/compat-data': 7.28.5
741
796
'@babel/helper-validator-option': 7.27.1
742
-
browserslist: 4.25.1
797
+
browserslist: 4.27.0
743
798
lru-cache: 5.1.1
744
799
semver: 6.3.1
745
800
···
747
802
748
803
'@babel/helper-module-imports@7.18.6':
749
804
dependencies:
750
-
'@babel/types': 7.28.2
805
+
'@babel/types': 7.28.5
751
806
752
807
'@babel/helper-module-imports@7.27.1':
753
808
dependencies:
754
-
'@babel/traverse': 7.28.0
755
-
'@babel/types': 7.28.2
809
+
'@babel/traverse': 7.28.5
810
+
'@babel/types': 7.28.5
756
811
transitivePeerDependencies:
757
812
- supports-color
758
813
759
-
'@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
814
+
'@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
760
815
dependencies:
761
-
'@babel/core': 7.28.0
816
+
'@babel/core': 7.28.5
762
817
'@babel/helper-module-imports': 7.27.1
763
-
'@babel/helper-validator-identifier': 7.27.1
764
-
'@babel/traverse': 7.28.0
818
+
'@babel/helper-validator-identifier': 7.28.5
819
+
'@babel/traverse': 7.28.5
765
820
transitivePeerDependencies:
766
821
- supports-color
767
822
···
769
824
770
825
'@babel/helper-string-parser@7.27.1': {}
771
826
772
-
'@babel/helper-validator-identifier@7.27.1': {}
827
+
'@babel/helper-validator-identifier@7.28.5': {}
773
828
774
829
'@babel/helper-validator-option@7.27.1': {}
775
830
776
-
'@babel/helpers@7.28.2':
831
+
'@babel/helpers@7.28.4':
777
832
dependencies:
778
833
'@babel/template': 7.27.2
779
-
'@babel/types': 7.28.2
834
+
'@babel/types': 7.28.5
780
835
781
-
'@babel/parser@7.28.0':
836
+
'@babel/parser@7.28.5':
782
837
dependencies:
783
-
'@babel/types': 7.28.2
838
+
'@babel/types': 7.28.5
784
839
785
-
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
840
+
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
786
841
dependencies:
787
-
'@babel/core': 7.28.0
842
+
'@babel/core': 7.28.5
788
843
'@babel/helper-plugin-utils': 7.27.1
789
844
790
845
'@babel/template@7.27.2':
791
846
dependencies:
792
847
'@babel/code-frame': 7.27.1
793
-
'@babel/parser': 7.28.0
794
-
'@babel/types': 7.28.2
848
+
'@babel/parser': 7.28.5
849
+
'@babel/types': 7.28.5
795
850
796
-
'@babel/traverse@7.28.0':
851
+
'@babel/traverse@7.28.5':
797
852
dependencies:
798
853
'@babel/code-frame': 7.27.1
799
-
'@babel/generator': 7.28.0
854
+
'@babel/generator': 7.28.5
800
855
'@babel/helper-globals': 7.28.0
801
-
'@babel/parser': 7.28.0
856
+
'@babel/parser': 7.28.5
802
857
'@babel/template': 7.27.2
803
-
'@babel/types': 7.28.2
804
-
debug: 4.4.1
858
+
'@babel/types': 7.28.5
859
+
debug: 4.4.3
805
860
transitivePeerDependencies:
806
861
- supports-color
807
862
808
-
'@babel/types@7.28.2':
863
+
'@babel/types@7.28.5':
809
864
dependencies:
810
865
'@babel/helper-string-parser': 7.27.1
811
-
'@babel/helper-validator-identifier': 7.27.1
866
+
'@babel/helper-validator-identifier': 7.28.5
867
+
868
+
'@esbuild/aix-ppc64@0.25.12':
869
+
optional: true
870
+
871
+
'@esbuild/android-arm64@0.25.12':
872
+
optional: true
873
+
874
+
'@esbuild/android-arm@0.25.12':
875
+
optional: true
812
876
813
-
'@esbuild/aix-ppc64@0.21.5':
877
+
'@esbuild/android-x64@0.25.12':
814
878
optional: true
815
879
816
-
'@esbuild/android-arm64@0.21.5':
880
+
'@esbuild/darwin-arm64@0.25.12':
817
881
optional: true
818
882
819
-
'@esbuild/android-arm@0.21.5':
883
+
'@esbuild/darwin-x64@0.25.12':
820
884
optional: true
821
885
822
-
'@esbuild/android-x64@0.21.5':
886
+
'@esbuild/freebsd-arm64@0.25.12':
823
887
optional: true
824
888
825
-
'@esbuild/darwin-arm64@0.21.5':
889
+
'@esbuild/freebsd-x64@0.25.12':
826
890
optional: true
827
891
828
-
'@esbuild/darwin-x64@0.21.5':
892
+
'@esbuild/linux-arm64@0.25.12':
829
893
optional: true
830
894
831
-
'@esbuild/freebsd-arm64@0.21.5':
895
+
'@esbuild/linux-arm@0.25.12':
832
896
optional: true
833
897
834
-
'@esbuild/freebsd-x64@0.21.5':
898
+
'@esbuild/linux-ia32@0.25.12':
835
899
optional: true
836
900
837
-
'@esbuild/linux-arm64@0.21.5':
901
+
'@esbuild/linux-loong64@0.25.12':
838
902
optional: true
839
903
840
-
'@esbuild/linux-arm@0.21.5':
904
+
'@esbuild/linux-mips64el@0.25.12':
841
905
optional: true
842
906
843
-
'@esbuild/linux-ia32@0.21.5':
907
+
'@esbuild/linux-ppc64@0.25.12':
844
908
optional: true
845
909
846
-
'@esbuild/linux-loong64@0.21.5':
910
+
'@esbuild/linux-riscv64@0.25.12':
847
911
optional: true
848
912
849
-
'@esbuild/linux-mips64el@0.21.5':
913
+
'@esbuild/linux-s390x@0.25.12':
850
914
optional: true
851
915
852
-
'@esbuild/linux-ppc64@0.21.5':
916
+
'@esbuild/linux-x64@0.25.12':
853
917
optional: true
854
918
855
-
'@esbuild/linux-riscv64@0.21.5':
919
+
'@esbuild/netbsd-arm64@0.25.12':
856
920
optional: true
857
921
858
-
'@esbuild/linux-s390x@0.21.5':
922
+
'@esbuild/netbsd-x64@0.25.12':
859
923
optional: true
860
924
861
-
'@esbuild/linux-x64@0.21.5':
925
+
'@esbuild/openbsd-arm64@0.25.12':
862
926
optional: true
863
927
864
-
'@esbuild/netbsd-x64@0.21.5':
928
+
'@esbuild/openbsd-x64@0.25.12':
865
929
optional: true
866
930
867
-
'@esbuild/openbsd-x64@0.21.5':
931
+
'@esbuild/openharmony-arm64@0.25.12':
868
932
optional: true
869
933
870
-
'@esbuild/sunos-x64@0.21.5':
934
+
'@esbuild/sunos-x64@0.25.12':
871
935
optional: true
872
936
873
-
'@esbuild/win32-arm64@0.21.5':
937
+
'@esbuild/win32-arm64@0.25.12':
874
938
optional: true
875
939
876
-
'@esbuild/win32-ia32@0.21.5':
940
+
'@esbuild/win32-ia32@0.25.12':
877
941
optional: true
878
942
879
-
'@esbuild/win32-x64@0.21.5':
943
+
'@esbuild/win32-x64@0.25.12':
880
944
optional: true
881
945
882
-
'@jridgewell/gen-mapping@0.3.12':
946
+
'@jridgewell/gen-mapping@0.3.13':
883
947
dependencies:
884
-
'@jridgewell/sourcemap-codec': 1.5.4
885
-
'@jridgewell/trace-mapping': 0.3.29
948
+
'@jridgewell/sourcemap-codec': 1.5.5
949
+
'@jridgewell/trace-mapping': 0.3.31
950
+
951
+
'@jridgewell/remapping@2.3.5':
952
+
dependencies:
953
+
'@jridgewell/gen-mapping': 0.3.13
954
+
'@jridgewell/trace-mapping': 0.3.31
886
955
887
956
'@jridgewell/resolve-uri@3.1.2': {}
888
957
889
-
'@jridgewell/sourcemap-codec@1.5.4': {}
958
+
'@jridgewell/sourcemap-codec@1.5.5': {}
890
959
891
-
'@jridgewell/trace-mapping@0.3.29':
960
+
'@jridgewell/trace-mapping@0.3.31':
892
961
dependencies:
893
962
'@jridgewell/resolve-uri': 3.1.2
894
-
'@jridgewell/sourcemap-codec': 1.5.4
963
+
'@jridgewell/sourcemap-codec': 1.5.5
895
964
896
-
'@rollup/rollup-android-arm-eabi@4.46.2':
965
+
'@rollup/rollup-android-arm-eabi@4.52.5':
897
966
optional: true
898
967
899
-
'@rollup/rollup-android-arm64@4.46.2':
968
+
'@rollup/rollup-android-arm64@4.52.5':
900
969
optional: true
901
970
902
-
'@rollup/rollup-darwin-arm64@4.46.2':
971
+
'@rollup/rollup-darwin-arm64@4.52.5':
903
972
optional: true
904
973
905
-
'@rollup/rollup-darwin-x64@4.46.2':
974
+
'@rollup/rollup-darwin-x64@4.52.5':
906
975
optional: true
907
976
908
-
'@rollup/rollup-freebsd-arm64@4.46.2':
977
+
'@rollup/rollup-freebsd-arm64@4.52.5':
909
978
optional: true
910
979
911
-
'@rollup/rollup-freebsd-x64@4.46.2':
980
+
'@rollup/rollup-freebsd-x64@4.52.5':
912
981
optional: true
913
982
914
-
'@rollup/rollup-linux-arm-gnueabihf@4.46.2':
983
+
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
915
984
optional: true
916
985
917
-
'@rollup/rollup-linux-arm-musleabihf@4.46.2':
986
+
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
918
987
optional: true
919
988
920
-
'@rollup/rollup-linux-arm64-gnu@4.46.2':
989
+
'@rollup/rollup-linux-arm64-gnu@4.52.5':
921
990
optional: true
922
991
923
-
'@rollup/rollup-linux-arm64-musl@4.46.2':
992
+
'@rollup/rollup-linux-arm64-musl@4.52.5':
924
993
optional: true
925
994
926
-
'@rollup/rollup-linux-loongarch64-gnu@4.46.2':
995
+
'@rollup/rollup-linux-loong64-gnu@4.52.5':
927
996
optional: true
928
997
929
-
'@rollup/rollup-linux-ppc64-gnu@4.46.2':
998
+
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
930
999
optional: true
931
1000
932
-
'@rollup/rollup-linux-riscv64-gnu@4.46.2':
1001
+
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
933
1002
optional: true
934
1003
935
-
'@rollup/rollup-linux-riscv64-musl@4.46.2':
1004
+
'@rollup/rollup-linux-riscv64-musl@4.52.5':
936
1005
optional: true
937
1006
938
-
'@rollup/rollup-linux-s390x-gnu@4.46.2':
1007
+
'@rollup/rollup-linux-s390x-gnu@4.52.5':
939
1008
optional: true
940
1009
941
-
'@rollup/rollup-linux-x64-gnu@4.46.2':
1010
+
'@rollup/rollup-linux-x64-gnu@4.52.5':
942
1011
optional: true
943
1012
944
-
'@rollup/rollup-linux-x64-musl@4.46.2':
1013
+
'@rollup/rollup-linux-x64-musl@4.52.5':
945
1014
optional: true
946
1015
947
-
'@rollup/rollup-win32-arm64-msvc@4.46.2':
1016
+
'@rollup/rollup-openharmony-arm64@4.52.5':
948
1017
optional: true
949
1018
950
-
'@rollup/rollup-win32-ia32-msvc@4.46.2':
1019
+
'@rollup/rollup-win32-arm64-msvc@4.52.5':
951
1020
optional: true
952
1021
953
-
'@rollup/rollup-win32-x64-msvc@4.46.2':
1022
+
'@rollup/rollup-win32-ia32-msvc@4.52.5':
954
1023
optional: true
955
1024
956
-
'@tauri-apps/api@2.0.0-rc.0': {}
1025
+
'@rollup/rollup-win32-x64-gnu@4.52.5':
1026
+
optional: true
957
1027
958
-
'@tauri-apps/api@2.7.0': {}
1028
+
'@rollup/rollup-win32-x64-msvc@4.52.5':
1029
+
optional: true
959
1030
960
-
'@tauri-apps/cli-darwin-arm64@2.0.0-rc.5':
1031
+
'@tauri-apps/api@2.9.0': {}
1032
+
1033
+
'@tauri-apps/cli-darwin-arm64@2.9.3':
961
1034
optional: true
962
1035
963
-
'@tauri-apps/cli-darwin-x64@2.0.0-rc.5':
1036
+
'@tauri-apps/cli-darwin-x64@2.9.3':
964
1037
optional: true
965
1038
966
-
'@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-rc.5':
1039
+
'@tauri-apps/cli-linux-arm-gnueabihf@2.9.3':
967
1040
optional: true
968
1041
969
-
'@tauri-apps/cli-linux-arm64-gnu@2.0.0-rc.5':
1042
+
'@tauri-apps/cli-linux-arm64-gnu@2.9.3':
970
1043
optional: true
971
1044
972
-
'@tauri-apps/cli-linux-arm64-musl@2.0.0-rc.5':
1045
+
'@tauri-apps/cli-linux-arm64-musl@2.9.3':
973
1046
optional: true
974
1047
975
-
'@tauri-apps/cli-linux-x64-gnu@2.0.0-rc.5':
1048
+
'@tauri-apps/cli-linux-riscv64-gnu@2.9.3':
976
1049
optional: true
977
1050
978
-
'@tauri-apps/cli-linux-x64-musl@2.0.0-rc.5':
1051
+
'@tauri-apps/cli-linux-x64-gnu@2.9.3':
1052
+
optional: true
1053
+
1054
+
'@tauri-apps/cli-linux-x64-musl@2.9.3':
979
1055
optional: true
980
1056
981
-
'@tauri-apps/cli-win32-arm64-msvc@2.0.0-rc.5':
1057
+
'@tauri-apps/cli-win32-arm64-msvc@2.9.3':
982
1058
optional: true
983
1059
984
-
'@tauri-apps/cli-win32-ia32-msvc@2.0.0-rc.5':
1060
+
'@tauri-apps/cli-win32-ia32-msvc@2.9.3':
985
1061
optional: true
986
1062
987
-
'@tauri-apps/cli-win32-x64-msvc@2.0.0-rc.5':
1063
+
'@tauri-apps/cli-win32-x64-msvc@2.9.3':
988
1064
optional: true
989
1065
990
-
'@tauri-apps/cli@2.0.0-rc.5':
1066
+
'@tauri-apps/cli@2.9.3':
991
1067
optionalDependencies:
992
-
'@tauri-apps/cli-darwin-arm64': 2.0.0-rc.5
993
-
'@tauri-apps/cli-darwin-x64': 2.0.0-rc.5
994
-
'@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-rc.5
995
-
'@tauri-apps/cli-linux-arm64-gnu': 2.0.0-rc.5
996
-
'@tauri-apps/cli-linux-arm64-musl': 2.0.0-rc.5
997
-
'@tauri-apps/cli-linux-x64-gnu': 2.0.0-rc.5
998
-
'@tauri-apps/cli-linux-x64-musl': 2.0.0-rc.5
999
-
'@tauri-apps/cli-win32-arm64-msvc': 2.0.0-rc.5
1000
-
'@tauri-apps/cli-win32-ia32-msvc': 2.0.0-rc.5
1001
-
'@tauri-apps/cli-win32-x64-msvc': 2.0.0-rc.5
1068
+
'@tauri-apps/cli-darwin-arm64': 2.9.3
1069
+
'@tauri-apps/cli-darwin-x64': 2.9.3
1070
+
'@tauri-apps/cli-linux-arm-gnueabihf': 2.9.3
1071
+
'@tauri-apps/cli-linux-arm64-gnu': 2.9.3
1072
+
'@tauri-apps/cli-linux-arm64-musl': 2.9.3
1073
+
'@tauri-apps/cli-linux-riscv64-gnu': 2.9.3
1074
+
'@tauri-apps/cli-linux-x64-gnu': 2.9.3
1075
+
'@tauri-apps/cli-linux-x64-musl': 2.9.3
1076
+
'@tauri-apps/cli-win32-arm64-msvc': 2.9.3
1077
+
'@tauri-apps/cli-win32-ia32-msvc': 2.9.3
1078
+
'@tauri-apps/cli-win32-x64-msvc': 2.9.3
1002
1079
1003
-
'@tauri-apps/plugin-deep-link@2.4.1':
1080
+
'@tauri-apps/plugin-deep-link@2.4.5':
1004
1081
dependencies:
1005
-
'@tauri-apps/api': 2.7.0
1082
+
'@tauri-apps/api': 2.9.0
1006
1083
1007
-
'@tauri-apps/plugin-http@2.0.0-rc.1':
1084
+
'@tauri-apps/plugin-http@2.5.4':
1008
1085
dependencies:
1009
-
'@tauri-apps/api': 2.7.0
1086
+
'@tauri-apps/api': 2.9.0
1010
1087
1011
-
'@tauri-apps/plugin-process@2.0.0-rc.0':
1088
+
'@tauri-apps/plugin-process@2.3.1':
1012
1089
dependencies:
1013
-
'@tauri-apps/api': 2.0.0-rc.0
1090
+
'@tauri-apps/api': 2.9.0
1014
1091
1015
-
'@tauri-apps/plugin-shell@2.0.0-rc.0':
1092
+
'@tauri-apps/plugin-shell@2.3.3':
1016
1093
dependencies:
1017
-
'@tauri-apps/api': 2.0.0-rc.0
1094
+
'@tauri-apps/api': 2.9.0
1018
1095
1019
1096
'@types/animejs@3.1.13': {}
1020
1097
1021
1098
'@types/babel__core@7.20.5':
1022
1099
dependencies:
1023
-
'@babel/parser': 7.28.0
1024
-
'@babel/types': 7.28.2
1100
+
'@babel/parser': 7.28.5
1101
+
'@babel/types': 7.28.5
1025
1102
'@types/babel__generator': 7.27.0
1026
1103
'@types/babel__template': 7.4.4
1027
-
'@types/babel__traverse': 7.20.7
1104
+
'@types/babel__traverse': 7.28.0
1028
1105
1029
1106
'@types/babel__generator@7.27.0':
1030
1107
dependencies:
1031
-
'@babel/types': 7.28.2
1108
+
'@babel/types': 7.28.5
1032
1109
1033
1110
'@types/babel__template@7.4.4':
1034
1111
dependencies:
1035
-
'@babel/parser': 7.28.0
1036
-
'@babel/types': 7.28.2
1112
+
'@babel/parser': 7.28.5
1113
+
'@babel/types': 7.28.5
1037
1114
1038
-
'@types/babel__traverse@7.20.7':
1115
+
'@types/babel__traverse@7.28.0':
1039
1116
dependencies:
1040
-
'@babel/types': 7.28.2
1117
+
'@babel/types': 7.28.5
1041
1118
1042
1119
'@types/estree@1.0.8': {}
1043
1120
1044
-
animejs@3.2.2: {}
1121
+
animejs@4.2.2: {}
1045
1122
1046
-
babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.28.0):
1123
+
babel-plugin-jsx-dom-expressions@0.40.3(@babel/core@7.28.5):
1047
1124
dependencies:
1048
-
'@babel/core': 7.28.0
1125
+
'@babel/core': 7.28.5
1049
1126
'@babel/helper-module-imports': 7.18.6
1050
-
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
1051
-
'@babel/types': 7.28.2
1127
+
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
1128
+
'@babel/types': 7.28.5
1052
1129
html-entities: 2.3.3
1053
1130
parse5: 7.3.0
1054
-
validate-html-nesting: 1.2.3
1055
1131
1056
-
babel-preset-solid@1.9.6(@babel/core@7.28.0):
1132
+
babel-preset-solid@1.9.10(@babel/core@7.28.5)(solid-js@1.9.10):
1057
1133
dependencies:
1058
-
'@babel/core': 7.28.0
1059
-
babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.28.0)
1134
+
'@babel/core': 7.28.5
1135
+
babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.5)
1136
+
optionalDependencies:
1137
+
solid-js: 1.9.10
1060
1138
1061
-
browserslist@4.25.1:
1139
+
baseline-browser-mapping@2.8.25: {}
1140
+
1141
+
browserslist@4.27.0:
1062
1142
dependencies:
1063
-
caniuse-lite: 1.0.30001731
1064
-
electron-to-chromium: 1.5.193
1065
-
node-releases: 2.0.19
1066
-
update-browserslist-db: 1.1.3(browserslist@4.25.1)
1143
+
baseline-browser-mapping: 2.8.25
1144
+
caniuse-lite: 1.0.30001754
1145
+
electron-to-chromium: 1.5.248
1146
+
node-releases: 2.0.27
1147
+
update-browserslist-db: 1.1.4(browserslist@4.27.0)
1067
1148
1068
-
caniuse-lite@1.0.30001731: {}
1149
+
caniuse-lite@1.0.30001754: {}
1069
1150
1070
1151
convert-source-map@2.0.0: {}
1071
1152
1072
1153
csstype@3.1.3: {}
1073
1154
1074
-
debug@4.4.1:
1155
+
debug@4.4.3:
1075
1156
dependencies:
1076
1157
ms: 2.1.3
1077
1158
1078
-
electron-to-chromium@1.5.193: {}
1159
+
electron-to-chromium@1.5.248: {}
1079
1160
1080
1161
entities@6.0.1: {}
1081
1162
1082
-
esbuild@0.21.5:
1163
+
esbuild@0.25.12:
1083
1164
optionalDependencies:
1084
-
'@esbuild/aix-ppc64': 0.21.5
1085
-
'@esbuild/android-arm': 0.21.5
1086
-
'@esbuild/android-arm64': 0.21.5
1087
-
'@esbuild/android-x64': 0.21.5
1088
-
'@esbuild/darwin-arm64': 0.21.5
1089
-
'@esbuild/darwin-x64': 0.21.5
1090
-
'@esbuild/freebsd-arm64': 0.21.5
1091
-
'@esbuild/freebsd-x64': 0.21.5
1092
-
'@esbuild/linux-arm': 0.21.5
1093
-
'@esbuild/linux-arm64': 0.21.5
1094
-
'@esbuild/linux-ia32': 0.21.5
1095
-
'@esbuild/linux-loong64': 0.21.5
1096
-
'@esbuild/linux-mips64el': 0.21.5
1097
-
'@esbuild/linux-ppc64': 0.21.5
1098
-
'@esbuild/linux-riscv64': 0.21.5
1099
-
'@esbuild/linux-s390x': 0.21.5
1100
-
'@esbuild/linux-x64': 0.21.5
1101
-
'@esbuild/netbsd-x64': 0.21.5
1102
-
'@esbuild/openbsd-x64': 0.21.5
1103
-
'@esbuild/sunos-x64': 0.21.5
1104
-
'@esbuild/win32-arm64': 0.21.5
1105
-
'@esbuild/win32-ia32': 0.21.5
1106
-
'@esbuild/win32-x64': 0.21.5
1165
+
'@esbuild/aix-ppc64': 0.25.12
1166
+
'@esbuild/android-arm': 0.25.12
1167
+
'@esbuild/android-arm64': 0.25.12
1168
+
'@esbuild/android-x64': 0.25.12
1169
+
'@esbuild/darwin-arm64': 0.25.12
1170
+
'@esbuild/darwin-x64': 0.25.12
1171
+
'@esbuild/freebsd-arm64': 0.25.12
1172
+
'@esbuild/freebsd-x64': 0.25.12
1173
+
'@esbuild/linux-arm': 0.25.12
1174
+
'@esbuild/linux-arm64': 0.25.12
1175
+
'@esbuild/linux-ia32': 0.25.12
1176
+
'@esbuild/linux-loong64': 0.25.12
1177
+
'@esbuild/linux-mips64el': 0.25.12
1178
+
'@esbuild/linux-ppc64': 0.25.12
1179
+
'@esbuild/linux-riscv64': 0.25.12
1180
+
'@esbuild/linux-s390x': 0.25.12
1181
+
'@esbuild/linux-x64': 0.25.12
1182
+
'@esbuild/netbsd-arm64': 0.25.12
1183
+
'@esbuild/netbsd-x64': 0.25.12
1184
+
'@esbuild/openbsd-arm64': 0.25.12
1185
+
'@esbuild/openbsd-x64': 0.25.12
1186
+
'@esbuild/openharmony-arm64': 0.25.12
1187
+
'@esbuild/sunos-x64': 0.25.12
1188
+
'@esbuild/win32-arm64': 0.25.12
1189
+
'@esbuild/win32-ia32': 0.25.12
1190
+
'@esbuild/win32-x64': 0.25.12
1107
1191
1108
1192
escalade@3.2.0: {}
1109
1193
1194
+
fdir@6.5.0(picomatch@4.0.3):
1195
+
optionalDependencies:
1196
+
picomatch: 4.0.3
1197
+
1110
1198
fsevents@2.3.3:
1111
1199
optional: true
1112
1200
···
1134
1222
1135
1223
nanoid@3.3.11: {}
1136
1224
1137
-
node-releases@2.0.19: {}
1225
+
node-releases@2.0.27: {}
1138
1226
1139
1227
parse5@7.3.0:
1140
1228
dependencies:
···
1142
1230
1143
1231
picocolors@1.1.1: {}
1144
1232
1233
+
picomatch@4.0.3: {}
1234
+
1145
1235
postcss@8.5.6:
1146
1236
dependencies:
1147
1237
nanoid: 3.3.11
1148
1238
picocolors: 1.1.1
1149
1239
source-map-js: 1.2.1
1150
1240
1151
-
rollup@4.46.2:
1241
+
rollup@4.52.5:
1152
1242
dependencies:
1153
1243
'@types/estree': 1.0.8
1154
1244
optionalDependencies:
1155
-
'@rollup/rollup-android-arm-eabi': 4.46.2
1156
-
'@rollup/rollup-android-arm64': 4.46.2
1157
-
'@rollup/rollup-darwin-arm64': 4.46.2
1158
-
'@rollup/rollup-darwin-x64': 4.46.2
1159
-
'@rollup/rollup-freebsd-arm64': 4.46.2
1160
-
'@rollup/rollup-freebsd-x64': 4.46.2
1161
-
'@rollup/rollup-linux-arm-gnueabihf': 4.46.2
1162
-
'@rollup/rollup-linux-arm-musleabihf': 4.46.2
1163
-
'@rollup/rollup-linux-arm64-gnu': 4.46.2
1164
-
'@rollup/rollup-linux-arm64-musl': 4.46.2
1165
-
'@rollup/rollup-linux-loongarch64-gnu': 4.46.2
1166
-
'@rollup/rollup-linux-ppc64-gnu': 4.46.2
1167
-
'@rollup/rollup-linux-riscv64-gnu': 4.46.2
1168
-
'@rollup/rollup-linux-riscv64-musl': 4.46.2
1169
-
'@rollup/rollup-linux-s390x-gnu': 4.46.2
1170
-
'@rollup/rollup-linux-x64-gnu': 4.46.2
1171
-
'@rollup/rollup-linux-x64-musl': 4.46.2
1172
-
'@rollup/rollup-win32-arm64-msvc': 4.46.2
1173
-
'@rollup/rollup-win32-ia32-msvc': 4.46.2
1174
-
'@rollup/rollup-win32-x64-msvc': 4.46.2
1245
+
'@rollup/rollup-android-arm-eabi': 4.52.5
1246
+
'@rollup/rollup-android-arm64': 4.52.5
1247
+
'@rollup/rollup-darwin-arm64': 4.52.5
1248
+
'@rollup/rollup-darwin-x64': 4.52.5
1249
+
'@rollup/rollup-freebsd-arm64': 4.52.5
1250
+
'@rollup/rollup-freebsd-x64': 4.52.5
1251
+
'@rollup/rollup-linux-arm-gnueabihf': 4.52.5
1252
+
'@rollup/rollup-linux-arm-musleabihf': 4.52.5
1253
+
'@rollup/rollup-linux-arm64-gnu': 4.52.5
1254
+
'@rollup/rollup-linux-arm64-musl': 4.52.5
1255
+
'@rollup/rollup-linux-loong64-gnu': 4.52.5
1256
+
'@rollup/rollup-linux-ppc64-gnu': 4.52.5
1257
+
'@rollup/rollup-linux-riscv64-gnu': 4.52.5
1258
+
'@rollup/rollup-linux-riscv64-musl': 4.52.5
1259
+
'@rollup/rollup-linux-s390x-gnu': 4.52.5
1260
+
'@rollup/rollup-linux-x64-gnu': 4.52.5
1261
+
'@rollup/rollup-linux-x64-musl': 4.52.5
1262
+
'@rollup/rollup-openharmony-arm64': 4.52.5
1263
+
'@rollup/rollup-win32-arm64-msvc': 4.52.5
1264
+
'@rollup/rollup-win32-ia32-msvc': 4.52.5
1265
+
'@rollup/rollup-win32-x64-gnu': 4.52.5
1266
+
'@rollup/rollup-win32-x64-msvc': 4.52.5
1175
1267
fsevents: 2.3.3
1176
1268
1177
1269
semver@6.3.1: {}
1178
1270
1179
-
seroval-plugins@1.3.2(seroval@1.3.2):
1271
+
seroval-plugins@1.3.3(seroval@1.3.2):
1180
1272
dependencies:
1181
1273
seroval: 1.3.2
1182
1274
1183
1275
seroval@1.3.2: {}
1184
1276
1185
-
solid-js@1.9.7:
1277
+
solid-js@1.9.10:
1186
1278
dependencies:
1187
1279
csstype: 3.1.3
1188
1280
seroval: 1.3.2
1189
-
seroval-plugins: 1.3.2(seroval@1.3.2)
1281
+
seroval-plugins: 1.3.3(seroval@1.3.2)
1190
1282
1191
-
solid-refresh@0.6.3(solid-js@1.9.7):
1283
+
solid-refresh@0.6.3(solid-js@1.9.10):
1192
1284
dependencies:
1193
-
'@babel/generator': 7.28.0
1285
+
'@babel/generator': 7.28.5
1194
1286
'@babel/helper-module-imports': 7.27.1
1195
-
'@babel/types': 7.28.2
1196
-
solid-js: 1.9.7
1287
+
'@babel/types': 7.28.5
1288
+
solid-js: 1.9.10
1197
1289
transitivePeerDependencies:
1198
1290
- supports-color
1199
1291
1200
1292
source-map-js@1.2.1: {}
1201
1293
1202
-
typescript@5.8.3: {}
1294
+
tinyglobby@0.2.15:
1295
+
dependencies:
1296
+
fdir: 6.5.0(picomatch@4.0.3)
1297
+
picomatch: 4.0.3
1203
1298
1204
-
update-browserslist-db@1.1.3(browserslist@4.25.1):
1299
+
typescript@5.9.3: {}
1300
+
1301
+
update-browserslist-db@1.1.4(browserslist@4.27.0):
1205
1302
dependencies:
1206
-
browserslist: 4.25.1
1303
+
browserslist: 4.27.0
1207
1304
escalade: 3.2.0
1208
1305
picocolors: 1.1.1
1209
1306
1210
-
validate-html-nesting@1.2.3: {}
1211
-
1212
-
vite-plugin-solid@2.11.8(solid-js@1.9.7)(vite@5.4.19):
1307
+
vite-plugin-solid@2.11.10(solid-js@1.9.10)(vite@7.2.2):
1213
1308
dependencies:
1214
-
'@babel/core': 7.28.0
1309
+
'@babel/core': 7.28.5
1215
1310
'@types/babel__core': 7.20.5
1216
-
babel-preset-solid: 1.9.6(@babel/core@7.28.0)
1311
+
babel-preset-solid: 1.9.10(@babel/core@7.28.5)(solid-js@1.9.10)
1217
1312
merge-anything: 5.1.7
1218
-
solid-js: 1.9.7
1219
-
solid-refresh: 0.6.3(solid-js@1.9.7)
1220
-
vite: 5.4.19
1221
-
vitefu: 1.1.1(vite@5.4.19)
1313
+
solid-js: 1.9.10
1314
+
solid-refresh: 0.6.3(solid-js@1.9.10)
1315
+
vite: 7.2.2
1316
+
vitefu: 1.1.1(vite@7.2.2)
1222
1317
transitivePeerDependencies:
1223
1318
- supports-color
1224
1319
1225
-
vite@5.4.19:
1320
+
vite@7.2.2:
1226
1321
dependencies:
1227
-
esbuild: 0.21.5
1322
+
esbuild: 0.25.12
1323
+
fdir: 6.5.0(picomatch@4.0.3)
1324
+
picomatch: 4.0.3
1228
1325
postcss: 8.5.6
1229
-
rollup: 4.46.2
1326
+
rollup: 4.52.5
1327
+
tinyglobby: 0.2.15
1230
1328
optionalDependencies:
1231
1329
fsevents: 2.3.3
1232
1330
1233
-
vitefu@1.1.1(vite@5.4.19):
1331
+
vitefu@1.1.1(vite@7.2.2):
1234
1332
optionalDependencies:
1235
-
vite: 5.4.19
1333
+
vite: 7.2.2
1236
1334
1237
1335
yallist@3.1.1: {}
+1
-1
public/icon/angle-down-solid.svg
+1
-1
public/icon/angle-down-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/></svg>
+1
-1
public/icon/angle-up-solid.svg
+1
-1
public/icon/angle-up-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/></svg>
+1
-1
public/icon/arrow-left-solid.svg
+1
-1
public/icon/arrow-left-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>
+1
-1
public/icon/arrow-right-solid.svg
+1
-1
public/icon/arrow-right-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg>
+1
-1
public/icon/arrows-rotate-solid.svg
+1
-1
public/icon/arrows-rotate-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"/></svg>
+1
-1
public/icon/caret-down-solid.svg
+1
-1
public/icon/caret-down-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>
+1
-1
public/icon/check-solid.svg
+1
-1
public/icon/check-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
+1
-1
public/icon/clock-regular.svg
+1
-1
public/icon/clock-regular.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg>
+1
-1
public/icon/copy-solid.svg
+1
-1
public/icon/copy-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"/></svg>
+1
public/icon/download-solid-full.svg
+1
public/icon/download-solid-full.svg
···
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M352 96C352 78.3 337.7 64 320 64C302.3 64 288 78.3 288 96L288 306.7L246.6 265.3C234.1 252.8 213.8 252.8 201.3 265.3C188.8 277.8 188.8 298.1 201.3 310.6L297.3 406.6C309.8 419.1 330.1 419.1 342.6 406.6L438.6 310.6C451.1 298.1 451.1 277.8 438.6 265.3C426.1 252.8 405.8 252.8 393.3 265.3L352 306.7L352 96zM160 384C124.7 384 96 412.7 96 448L96 480C96 515.3 124.7 544 160 544L480 544C515.3 544 544 515.3 544 480L544 448C544 412.7 515.3 384 480 384L433.1 384L376.5 440.6C345.3 471.8 294.6 471.8 263.4 440.6L206.9 384L160 384zM464 440C477.3 440 488 450.7 488 464C488 477.3 477.3 488 464 488C450.7 488 440 477.3 440 464C440 450.7 450.7 440 464 440z"/></svg>
+1
public/icon/gear-solid-full.svg
+1
public/icon/gear-solid-full.svg
···
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M259.1 73.5C262.1 58.7 275.2 48 290.4 48L350.2 48C365.4 48 378.5 58.7 381.5 73.5L396 143.5C410.1 149.5 423.3 157.2 435.3 166.3L503.1 143.8C517.5 139 533.3 145 540.9 158.2L570.8 210C578.4 223.2 575.7 239.8 564.3 249.9L511 297.3C511.9 304.7 512.3 312.3 512.3 320C512.3 327.7 511.8 335.3 511 342.7L564.4 390.2C575.8 400.3 578.4 417 570.9 430.1L541 481.9C533.4 495 517.6 501.1 503.2 496.3L435.4 473.8C423.3 482.9 410.1 490.5 396.1 496.6L381.7 566.5C378.6 581.4 365.5 592 350.4 592L290.6 592C275.4 592 262.3 581.3 259.3 566.5L244.9 496.6C230.8 490.6 217.7 482.9 205.6 473.8L137.5 496.3C123.1 501.1 107.3 495.1 99.7 481.9L69.8 430.1C62.2 416.9 64.9 400.3 76.3 390.2L129.7 342.7C128.8 335.3 128.4 327.7 128.4 320C128.4 312.3 128.9 304.7 129.7 297.3L76.3 249.8C64.9 239.7 62.3 223 69.8 209.9L99.7 158.1C107.3 144.9 123.1 138.9 137.5 143.7L205.3 166.2C217.4 157.1 230.6 149.5 244.6 143.4L259.1 73.5zM320.3 400C364.5 399.8 400.2 363.9 400 319.7C399.8 275.5 363.9 239.8 319.7 240C275.5 240.2 239.8 276.1 240 320.3C240.2 364.5 276.1 400.2 320.3 400z"/></svg>
+1
public/icon/layer-group-solid-full.svg
+1
public/icon/layer-group-solid-full.svg
···
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M296.5 69.2C311.4 62.3 328.6 62.3 343.5 69.2L562.1 170.2C570.6 174.1 576 182.6 576 192C576 201.4 570.6 209.9 562.1 213.8L343.5 314.8C328.6 321.7 311.4 321.7 296.5 314.8L77.9 213.8C69.4 209.8 64 201.3 64 192C64 182.7 69.4 174.1 77.9 170.2L296.5 69.2zM112.1 282.4L276.4 358.3C304.1 371.1 336 371.1 363.7 358.3L528 282.4L562.1 298.2C570.6 302.1 576 310.6 576 320C576 329.4 570.6 337.9 562.1 341.8L343.5 442.8C328.6 449.7 311.4 449.7 296.5 442.8L77.9 341.8C69.4 337.8 64 329.3 64 320C64 310.7 69.4 302.1 77.9 298.2L112 282.4zM77.9 426.2L112 410.4L276.3 486.3C304 499.1 335.9 499.1 363.6 486.3L527.9 410.4L562 426.2C570.5 430.1 575.9 438.6 575.9 448C575.9 457.4 570.5 465.9 562 469.8L343.4 570.8C328.5 577.7 311.3 577.7 296.4 570.8L77.9 469.8C69.4 465.8 64 457.3 64 448C64 438.7 69.4 430.1 77.9 426.2z"/></svg>
+1
-1
public/icon/minus-solid.svg
+1
-1
public/icon/minus-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"/></svg>
+1
-1
public/icon/sliders-solid.svg
+1
-1
public/icon/sliders-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"/></svg>
+1
-1
public/icon/square-regular.svg
+1
-1
public/icon/square-regular.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
+1
-1
public/icon/trash-solid.svg
+1
-1
public/icon/trash-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>
+1
-1
public/icon/user-solid.svg
+1
-1
public/icon/user-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#fff" d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"/></svg>
+1
-1
public/icon/x-solid.svg
+1
-1
public/icon/x-solid.svg
···
1
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"/></svg>
1
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#fff" d="M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"/></svg>
+26
-9
src/Components/App.tsx
+26
-9
src/Components/App.tsx
···
1
-
import { onMount } from "solid-js";
2
-
import anime from "animejs";
3
-
import { invoke } from '@tauri-apps/api/core';
1
+
import { createSignal, onMount } from "solid-js";
4
2
5
-
import NavBar from "./NavBar";
6
3
import PhotoList from "./PhotoList";
7
4
import PhotoViewer from "./PhotoViewer";
8
5
import SettingsMenu from "./SettingsMenu";
6
+
import { animate, utils } from "animejs";
7
+
import { listen } from "@tauri-apps/api/event";
9
8
10
-
function App() {
11
-
invoke('close_splashscreen')
9
+
let App = () => {
10
+
let [ errorText, setErrorText ] = createSignal('');
12
11
13
12
onMount(() => {
14
-
anime.set('.settings',
13
+
utils.set('.settings',
15
14
{
16
15
display: 'none',
17
16
opacity: 0,
18
17
translateX: '500px'
19
18
})
19
+
20
+
listen<string>('vrcpm-error', ( ev ) => {
21
+
setErrorText(ev.payload);
22
+
23
+
utils.set('.error-notif', { translateX: '-50%', translateY: '-100px' });
24
+
animate('.error-notif', {
25
+
ease: 'outElastic',
26
+
opacity: 1,
27
+
translateY: '0px'
28
+
});
29
+
30
+
setTimeout(() => {
31
+
animate('.error-notif', {
32
+
ease: 'outElastic',
33
+
opacity: 0,
34
+
translateY: '-100px'
35
+
});
36
+
}, 2000);
37
+
});
20
38
})
21
39
22
40
return (
23
41
<div class="container">
24
-
<NavBar />
25
-
26
42
<PhotoList />
27
43
<PhotoViewer />
28
44
29
45
<SettingsMenu />
30
46
31
47
<div class="copy-notif">Image Copied!</div>
48
+
<div class="error-notif">{ errorText() }</div>
32
49
</div>
33
50
);
34
51
}
-133
src/Components/Managers/AccountManager.tsx
-133
src/Components/Managers/AccountManager.tsx
···
1
-
import { invoke } from "@tauri-apps/api/core";
2
-
3
-
import { ProfileData } from "../Structs/ProfileData";
4
-
import { StorageData } from "../Structs/StorageData";
5
-
import { Accessor, createSignal, Setter } from "solid-js";
6
-
7
-
import { listen } from "@tauri-apps/api/event";
8
-
import { fetch } from "@tauri-apps/plugin-http";
9
-
10
-
export class AccountManager{
11
-
public Profile: Accessor<ProfileData | null>;
12
-
public Storage: Accessor<StorageData | null>;
13
-
14
-
public hasAccount: Accessor<boolean>;
15
-
public isLoading: Accessor<boolean>;
16
-
17
-
private _setProfile: Setter<ProfileData | null>;
18
-
private _setStorage: Setter<StorageData | null>;
19
-
20
-
private _setHasAccount: Setter<boolean>;
21
-
private _setIsLoading: Setter<boolean>;
22
-
23
-
private _loginEventCallbacks: Array<() => void> = [];
24
-
25
-
private _emitLoginCallbacks(){
26
-
this._loginEventCallbacks.forEach(e => e());
27
-
}
28
-
29
-
constructor(){
30
-
let [ hasAccount, setHasAccount ] = createSignal(false);
31
-
let [ isLoading, setIsLoading ] = createSignal(true);
32
-
33
-
let [ profile, setProfile ] = createSignal<ProfileData | null>(null);
34
-
let [ storage, setStorage ] = createSignal<StorageData | null>(null);
35
-
36
-
this.Profile = profile;
37
-
this.Storage = storage;
38
-
39
-
this.hasAccount = hasAccount;
40
-
this.isLoading = isLoading;
41
-
42
-
this._setProfile = setProfile;
43
-
this._setStorage = setStorage;
44
-
45
-
this._setHasAccount = setHasAccount;
46
-
this._setIsLoading = setIsLoading;
47
-
48
-
invoke('get_config_value_string', { key: 'token' })
49
-
.then(( token: any ) => {
50
-
this.verifyToken(token);
51
-
})
52
-
53
-
listen('auth-callback', ( event: any ) => {
54
-
window.LoadingManager.SetLoading("");
55
-
56
-
let token = event.payload;
57
-
this.verifyToken(token);
58
-
})
59
-
60
-
listen('auth-denied', () => {
61
-
window.LoadingManager.SetLoading("");
62
-
console.warn('Authetication Denied');
63
-
})
64
-
}
65
-
66
-
private async verifyToken( token: string ){
67
-
if(!token){
68
-
this._setHasAccount(false);
69
-
this._setIsLoading(false);
70
-
71
-
return this._emitLoginCallbacks();
72
-
}
73
-
74
-
let dat = await fetch('https://photos.phazed.xyz/api/v1/account?token='+token);
75
-
if(dat.status !== 200){
76
-
this._setHasAccount(false);
77
-
this._setIsLoading(false);
78
-
79
-
return this._emitLoginCallbacks();
80
-
}
81
-
82
-
let json = await dat.json();
83
-
84
-
let profile = new ProfileData();
85
-
let storage = new StorageData();
86
-
87
-
profile.id = json.user._id;
88
-
profile.username = json.user.username;
89
-
profile.avatar = json.user.avatar;
90
-
profile.serverVersion = json.user.serverVersion;
91
-
92
-
storage.used = json.user.used;
93
-
storage.total = json.user.storage;
94
-
storage.isSyncing = json.user.settings.enableSync;
95
-
96
-
this._setProfile(profile);
97
-
this._setStorage(storage);
98
-
99
-
this._setHasAccount(true);
100
-
this._setIsLoading(false);
101
-
102
-
this._emitLoginCallbacks();
103
-
}
104
-
105
-
public login(){
106
-
window.LoadingManager.SetLoading("Waiting for Authentication");
107
-
invoke('start_user_auth');
108
-
}
109
-
110
-
public async logout(){
111
-
let dat = await fetch('https://photos.phazed.xyz/api/v1/deauth?token='+(await invoke('get_config_value_string', { key: 'token' }))!)
112
-
if(dat.status !== 200)
113
-
throw new Error(dat.statusText);
114
-
115
-
let json = await dat.json();
116
-
if(!json.ok)
117
-
throw new Error(json.error);
118
-
119
-
invoke('set_config_value_string', { key: 'token', value: '' });
120
-
window.location.reload();
121
-
122
-
return json;
123
-
}
124
-
125
-
public async Refresh(){
126
-
let token: string = await invoke('get_config_value_string', { key: 'token' });
127
-
await this.verifyToken(token);
128
-
}
129
-
130
-
public onLoginFinish( cb: () => void ){
131
-
this._loginEventCallbacks.push(cb);
132
-
}
133
-
}
+19
-3
src/Components/Managers/PhotoListRenderingManager.tsx
+19
-3
src/Components/Managers/PhotoListRenderingManager.tsx
···
5
5
6
6
const MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
7
7
8
+
let multilayerIcon = new Image();
9
+
multilayerIcon.src = '/icon/layer-group-solid-full.svg';
10
+
8
11
export class PhotoListRenderingManager{
9
12
private _layout: PhotoListRow[] = [];
10
13
private _canvas!: HTMLCanvasElement;
···
22
25
23
26
let lastDateString = null;
24
27
let row = new PhotoListRow();
25
-
row.Height = 100;
28
+
row.Height = 0;
26
29
27
30
for (let i = 0; i < window.PhotoManager.FilteredPhotos.length; i++) {
28
31
let photo = window.PhotoManager.FilteredPhotos[i];
···
60
63
61
64
public Render( ctx: CanvasRenderingContext2D, canvas: HTMLCanvasElement, scroll: number ){
62
65
let currentY = 0;
63
-
66
+
64
67
// Loop through each row
65
68
for (let i = 0; i < this._layout.length; i++) {
66
69
let row = this._layout[i];
···
124
127
// ctx.strokeStyle = '#f00';
125
128
// ctx.strokeRect((rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, row.Height);
126
129
127
-
if(!photo.loaded)
130
+
if(photo.error){
131
+
ctx.fillStyle = '#fff';
132
+
ctx.textAlign = 'center';
133
+
ctx.textBaseline = 'middle';
134
+
135
+
photo.x = (rowXPos - row.Width / 2) + canvas.width / 2;
136
+
photo.y = currentY - scroll;
137
+
138
+
ctx.font = '18px Rubik'
139
+
ctx.fillText('Error loading image.', photo.x + photo.scaledWidth! / 2, photo.y + photo.scaledHeight! / 2);
140
+
} else if(!photo.loaded)
128
141
// If the photo is not loaded, start a new task and load it in that task
129
142
setTimeout(() => photo.loadImage(), 1);
130
143
else{
···
136
149
// Photo is already loaded so we should draw it on the application
137
150
ctx.globalAlpha = photo.frames / 100;
138
151
ctx.drawImage(photo.image!, (rowXPos - row.Width / 2) + canvas.width / 2, currentY - scroll, photo.scaledWidth!, photo.scaledHeight!);
152
+
153
+
if(photo.isMultiLayer)
154
+
ctx.drawImage(multilayerIcon, ((rowXPos - row.Width / 2) + canvas.width / 2) + 5, (currentY - scroll) + 5, 20, 20);
139
155
140
156
if(photo.frames < 100)
141
157
photo.frames += 10;
+86
-24
src/Components/Managers/PhotoManager.tsx
+86
-24
src/Components/Managers/PhotoManager.tsx
···
35
35
36
36
let setHasBeenIndexed;
37
37
[ this._hasBeenIndexed, setHasBeenIndexed ] = createSignal(false);
38
-
console.log(this._hasBeenIndexed())
39
38
40
39
listen('photos_loaded', ( event: any ) => {
41
40
let photoPaths = event.payload.photos.reverse();
···
44
43
setPhotoCount(photoPaths.length);
45
44
setPhotoSize(event.payload.size);
46
45
47
-
let doesHaveLegacy = false;
48
-
49
46
if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD)
50
47
setHasBeenIndexed(true);
51
48
49
+
let photoLayers: Photo[] = [];
50
+
52
51
photoPaths.forEach(( path: string, i: number ) => {
53
52
let photo
54
53
55
-
if(path.slice(0, 9) === "legacy://"){
54
+
if(path.slice(0, 9) === "legacy://")
56
55
photo = new Photo(path.slice(9), true, i);
57
-
doesHaveLegacy = true;
58
-
} else
56
+
else
59
57
photo = new Photo(path, false, i);
60
58
61
-
this.Photos.push(photo);
59
+
if(!photo.legacy && photo.splitPath[4]){
60
+
photoLayers.push(photo);
61
+
} else
62
+
this.Photos.push(photo);
62
63
63
64
if(photoPaths.length <= Vars.MAX_PHOTOS_BULK_LOAD)
64
65
photo.loadMeta();
65
66
})
66
67
68
+
photoLayers.forEach(photo => {
69
+
let type = photo.splitPath[4];
70
+
photo.splitPath.pop();
71
+
72
+
let mainPhotoPath = photo.splitPath.join('_') + '.png';
73
+
let mainPhoto = this.Photos.find(x => x.path === mainPhotoPath);
74
+
75
+
if(!mainPhoto)
76
+
this.Photos.push(photo);
77
+
else{
78
+
mainPhoto.isMultiLayer = true;
79
+
80
+
switch(type){
81
+
case 'Player.png':
82
+
mainPhoto.playerLayer = photo;
83
+
break;
84
+
case 'Environment.png':
85
+
mainPhoto.environmentLayer = photo;
86
+
break;
87
+
}
88
+
}
89
+
});
90
+
67
91
this.Photos = MergeSort(this.Photos);
92
+
console.log(this.Photos[0]);
68
93
69
94
console.log(this.Photos.length + ' Photos found.');
95
+
70
96
if(this.Photos.length === 0 || photoPaths.length > Vars.MAX_PHOTOS_BULK_LOAD){
71
97
console.log('No photos found or over bulk load limit, Skipping loading stage.');
72
98
···
75
101
76
102
this._finishedLoadingCallbacks.forEach(cb => cb());
77
103
}
78
-
79
-
console.log(this._hasBeenIndexed())
80
104
});
81
105
82
106
listen('photo_meta_loaded', ( event: any ) => {
83
107
let data: PhotoMetadata = event.payload;
84
-
108
+
85
109
let photo = this.Photos.find(x => x.path === data.path);
86
110
if(!photo)return console.error('Cannot find photo.', data);
111
+
// NOTE: this is triggered by multilayer photo layers loading their metadata
112
+
// we don't need to store metadata of those photos as they inherit this
113
+
// data from the main photo.
87
114
115
+
photo.error = data.error;
88
116
this._lastLoaded = photo.index;
89
117
90
118
if(this._onLoadedMeta[photo.index]){
···
102
130
103
131
photo.metadata = data.metadata.split('\u0000').filter(x => x !== '')[1];
104
132
this._amountLoaded++;
105
-
133
+
134
+
photo.loadingMeta = false;
106
135
photo.metaLoaded = true;
107
136
photo.onMetaLoaded();
137
+
138
+
window.PhotoListRenderingManager.ComputeLayout();
108
139
109
140
if(this._amountLoaded === this.Photos.length - 1 && !this.HasFirstLoaded){
110
141
this.FilteredPhotos = this.Photos;
···
116
147
117
148
listen('photo_create', async ( event: any ) => {
118
149
let photo = new Photo(event.payload, false, 0);
119
-
120
-
this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this
121
-
this.Photos.splice(0, 0, photo);
150
+
151
+
if(photo.splitPath[4]){
152
+
let type = photo.splitPath[4];
153
+
photo.splitPath.pop();
154
+
155
+
let mainPhotoPath = photo.splitPath.join('_') + '.png';
156
+
let mainPhoto = this.Photos.find(x => x.path === mainPhotoPath);
157
+
158
+
if(!mainPhoto){
159
+
this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this
160
+
this.Photos.splice(0, 0, photo);
161
+
} else{
162
+
mainPhoto.isMultiLayer = true;
163
+
164
+
switch(type){
165
+
case 'Player.png':
166
+
mainPhoto.playerLayer = photo;
167
+
break;
168
+
case 'Environment.png':
169
+
mainPhoto.environmentLayer = photo;
170
+
break;
171
+
}
172
+
}
173
+
} else{
174
+
this.Photos.forEach(p => p.index++); // Probably a really dumb way of doing this
175
+
this.Photos.splice(0, 0, photo);
176
+
}
122
177
123
178
photo.onMetaLoaded = () => this.ReloadFilters();
124
179
photo.loadMeta();
125
-
126
-
if(!window.SyncManager.IsSyncing() && window.AccountManager.Storage()?.isSyncing){
127
-
window.SyncManager.TriggerSync();
128
-
}
129
180
})
130
-
181
+
131
182
listen('photo_remove', ( event: any ) => {
132
183
this.Photos = this.Photos.filter(x => x.path !== event.payload);
133
-
this.FilteredPhotos = this.FilteredPhotos.filter(x => x.path !== event.payload);
134
-
184
+
135
185
if(event.payload === window.PhotoViewerManager.CurrentPhoto()?.path)
136
186
window.PhotoViewerManager.Close()
137
187
···
174
224
public ReloadFilters(){
175
225
this.FilteredPhotos = [];
176
226
227
+
if(this._filter === ''){
228
+
this.FilteredPhotos = this.Photos;
229
+
window.PhotoListRenderingManager.ComputeLayout();
230
+
231
+
return;
232
+
}
233
+
177
234
switch(this._filterType){
178
235
case FilterType.USER:
179
236
this.Photos.map(p => {
180
237
if(p.metadata){
181
238
try{
182
239
let meta = JSON.parse(p.metadata);
183
-
let photo = meta.players.find(( y: any ) => y.displayName.toLowerCase().includes(this._filter) || y.id === this._filter);
240
+
let photo = meta.players.find(( y: any ) =>
241
+
y.displayName.toLowerCase().includes(this._filter) ||
242
+
y.id === this._filter
243
+
);
184
244
185
245
if(photo)this.FilteredPhotos.push(p);
186
246
} catch(e){}
···
192
252
if(p.metadata){
193
253
try{
194
254
let meta = JSON.parse(p.metadata);
195
-
let photo = meta.world.name.toLowerCase().includes(this._filter) || meta.world.id === this._filter;
196
-
255
+
let photo =
256
+
meta.world.name.toLowerCase().includes(this._filter) ||
257
+
meta.world.id === this._filter;
258
+
197
259
if(photo)this.FilteredPhotos.push(p);
198
260
} catch(e){}
199
261
}
-56
src/Components/Managers/SyncManager.tsx
-56
src/Components/Managers/SyncManager.tsx
···
1
-
import { invoke } from "@tauri-apps/api/core";
2
-
import { listen } from "@tauri-apps/api/event";
3
-
import { Accessor, createSignal, Setter } from "solid-js";
4
-
5
-
export class SyncManager{
6
-
private _setIsSyncing: Setter<boolean>;
7
-
private _setSyncPhotoTotal: Setter<number>;
8
-
private _setSyncPhotoTransfers: Setter<number>;
9
-
private _setSyncType: Setter<string>;
10
-
private _setSyncError: Setter<string>;
11
-
12
-
public IsSyncing: Accessor<boolean>;
13
-
public SyncPhotoTotal: Accessor<number>;
14
-
public SyncPhotoTransfers: Accessor<number>
15
-
public SyncType: Accessor<string>;
16
-
public SyncError: Accessor<string>;
17
-
18
-
constructor(){
19
-
[ this.IsSyncing, this._setIsSyncing ] = createSignal(false);
20
-
[ this.SyncPhotoTotal, this._setSyncPhotoTotal ] = createSignal(-1);
21
-
[ this.SyncPhotoTransfers, this._setSyncPhotoTransfers ] = createSignal(-1);
22
-
[ this.SyncType, this._setSyncType ] = createSignal("");
23
-
[ this.SyncError, this._setSyncError ] = createSignal("");
24
-
25
-
listen('photos-upload-meta', ( e: any ) => {
26
-
this._setIsSyncing(true);
27
-
this._setSyncPhotoTotal(e.payload.photos_total);
28
-
this._setSyncPhotoTransfers(e.payload.photos_total - e.payload.photos_uploading);
29
-
this._setSyncType('Upload');
30
-
31
-
console.log(e.payload)
32
-
})
33
-
34
-
listen('photos-download-meta', ( e: any ) => {
35
-
this._setIsSyncing(true);
36
-
this._setSyncPhotoTotal(e.payload.photos_total);
37
-
this._setSyncPhotoTransfers(e.payload.photos_total - e.payload.photos_uploading);
38
-
this._setSyncType('Download');
39
-
40
-
console.log(e.payload)
41
-
})
42
-
43
-
listen('sync-finished', () => {
44
-
this._setIsSyncing(false);
45
-
})
46
-
47
-
listen('sync-failed', ( e: any ) => {
48
-
this._setSyncError(e.payload);
49
-
})
50
-
}
51
-
52
-
public async TriggerSync(){
53
-
this._setIsSyncing(true);
54
-
invoke('sync_photos', { token: (await invoke('get_config_value_string', { key: 'token' })) });
55
-
}
56
-
}
+1
src/Components/Managers/ViewManager.tsx
+1
src/Components/Managers/ViewManager.tsx
···
9
9
private _eventListeners: { from: ViewState, to: ViewState, cb: () => void }[] = [];
10
10
11
11
public ChangeState( state: ViewState ){
12
+
console.log('From: ' + this._state + ' To: ' + state);
12
13
this._eventListeners.filter(x => x.from === this._state && x.to === state).forEach(c => c.cb());
13
14
this._state = state;
14
15
}
+111
-77
src/Components/PhotoList.tsx
+111
-77
src/Components/PhotoList.tsx
···
1
-
import { onCleanup, onMount } from "solid-js";
1
+
import { createSignal, onCleanup, onMount, Show } from "solid-js";
2
2
import { listen } from '@tauri-apps/api/event';
3
3
import { Window } from "@tauri-apps/api/window";
4
4
5
-
import anime from "animejs";
6
5
import FilterMenu from "./FilterMenu";
7
6
import { ViewState } from "./Managers/ViewManager";
7
+
import { invoke } from "@tauri-apps/api/core";
8
+
import { animate, utils } from "animejs";
8
9
9
10
enum ListPopup{
10
11
FILTERS,
···
12
13
}
13
14
14
15
let PhotoList = () => {
15
-
let photoTreeLoadingContainer: HTMLElement;
16
-
17
16
let scrollToTop: HTMLElement;
18
17
let scrollToTopActive = false;
19
18
20
19
let photoContainer: HTMLCanvasElement;
21
-
let photoContainerBG: HTMLCanvasElement;
22
20
23
21
let filterContainer: HTMLDivElement;
24
22
25
23
let ctx: CanvasRenderingContext2D;
26
-
let ctxBG: CanvasRenderingContext2D;
27
24
28
25
let scroll: number = 0;
29
26
let targetScroll: number = 0;
···
32
29
33
30
let currentPopup = ListPopup.NONE;
34
31
32
+
let [ updateAvailable, setUpdateAvailable ] = createSignal(false);
33
+
35
34
Window.getCurrent().isVisible().then(visible => {
36
35
quitRender = !visible;
37
36
})
38
37
39
38
40
39
window.ViewManager.OnStateTransition(ViewState.PHOTO_LIST, ViewState.SETTINGS, () => {
41
-
anime({ targets: photoContainer, opacity: 0, easing: 'easeInOutQuad', duration: 100 });
40
+
animate(photoContainer, { opacity: 0.5, filter: 'blur(10px)', easing: 'easeInOutQuad', duration: 100 });
41
+
animate('.filter-options', { opacity: 0, easing: 'easeInOutQuad', duration: 100 });
42
+
animate('.scroll-to-top', { opacity: 0, easing: 'easeInOutQuad', duration: 100 });
42
43
});
43
44
44
45
window.ViewManager.OnStateTransition(ViewState.SETTINGS, ViewState.PHOTO_LIST, () => {
45
-
anime({ targets: photoContainer, opacity: 1, easing: 'easeInOutQuad', duration: 100 });
46
+
animate(photoContainer, { opacity: 1, filter: 'blur(0px)', easing: 'easeInOutQuad', duration: 100, onComplete: () => photoContainer.style.filter = '' });
47
+
animate('.filter-options', { opacity: 1, easing: 'easeInOutQuad', duration: 100 });
48
+
animate('.scroll-to-top', { opacity: 1, easing: 'easeInOutQuad', duration: 100 });
46
49
});
47
50
48
51
49
52
window.ViewManager.OnStateTransition(ViewState.PHOTO_LIST, ViewState.PHOTO_VIEWER, () => {
50
-
anime({ targets: photoContainer, opacity: 0, easing: 'easeInOutQuad', duration: 100 });
51
-
anime({ targets: '.filter-options', opacity: 0, easing: 'easeInOutQuad', duration: 100 });
52
-
anime({ targets: '.reload-photos', opacity: 0, easing: 'easeInOutQuad', duration: 100 });
53
+
animate(photoContainer, { opacity: 0.5, filter: 'blur(10px)', easing: 'easeInOutQuad', duration: 100 });
54
+
animate('.filter-options', { opacity: 0, easing: 'easeInOutQuad', duration: 100 });
55
+
animate('.scroll-to-top', { opacity: 0, easing: 'easeInOutQuad', duration: 100 });
53
56
});
54
57
55
58
window.ViewManager.OnStateTransition(ViewState.PHOTO_VIEWER, ViewState.PHOTO_LIST, () => {
56
-
anime({ targets: photoContainer, opacity: 1, easing: 'easeInOutQuad', duration: 100 });
57
-
anime({ targets: '.filter-options', opacity: 1, easing: 'easeInOutQuad', duration: 100 });
58
-
anime({ targets: '.reload-photos', opacity: 1, easing: 'easeInOutQuad', duration: 100 });
59
+
animate(photoContainer, { opacity: 1, filter: 'blur(0px)', easing: 'easeInOutQuad', duration: 100, onComplete: () => photoContainer.style.filter = '' });
60
+
animate('.filter-options', { opacity: 1, easing: 'easeInOutQuad', duration: 100 });
61
+
animate('.scroll-to-top', { opacity: 1, easing: 'easeInOutQuad', duration: 100 });
59
62
});
60
63
61
64
···
65
68
}
66
69
}
67
70
71
+
let onResize = () => {
72
+
photoContainer.width = window.innerWidth;
73
+
photoContainer.height = window.innerHeight;
74
+
75
+
window.PhotoListRenderingManager.ComputeLayout();
76
+
}
77
+
68
78
let closeCurrentPopup = () => {
69
79
switch(currentPopup){
70
80
case ListPopup.FILTERS:
71
-
anime({
72
-
targets: filterContainer!,
81
+
animate(filterContainer!, {
73
82
opacity: 0,
83
+
translateY: '10px',
74
84
easing: 'easeInOutQuad',
75
85
duration: 100,
76
-
complete: () => {
86
+
onComplete: () => {
77
87
filterContainer!.style.display = 'none';
78
88
currentPopup = ListPopup.NONE;
79
89
}
···
83
93
}
84
94
}
85
95
86
-
let render = () => {
96
+
let render = () => {
87
97
if(!quitRender)
88
98
requestAnimationFrame(render);
89
99
else
···
91
101
92
102
if(!scrollToTopActive && scroll > photoContainer.height){
93
103
scrollToTop.style.display = 'flex';
94
-
anime({ targets: scrollToTop, opacity: 1, translateY: '0px', easing: 'easeInOutQuad', duration: 100 });
104
+
animate(scrollToTop, { opacity: 1, translateY: '0px', easing: 'easeInOutQuad', duration: 100 });
95
105
96
106
scrollToTopActive = true;
97
107
} else if(scrollToTopActive && scroll < photoContainer.height){
98
-
anime({ targets: scrollToTop, opacity: 0, translateY: '-10px', complete: () => scrollToTop.style.display = 'none', easing: 'easeInOutQuad', duration: 100 });
108
+
animate(scrollToTop, { opacity: 0, translateY: '-10px', onComplete: () => scrollToTop.style.display = 'none', easing: 'easeInOutQuad', duration: 100 });
109
+
99
110
scrollToTopActive = false;
100
111
}
101
112
102
-
if(!ctx || !ctxBG)return;
113
+
if(!ctx)return;
103
114
ctx.clearRect(0, 0, photoContainer.width, photoContainer.height);
104
-
ctxBG.clearRect(0, 0, photoContainerBG.width, photoContainerBG.height);
105
115
106
-
scroll = scroll + (targetScroll - scroll) * 0.2;
116
+
scroll = scroll + (targetScroll - scroll) * 0.1;
107
117
108
118
window.PhotoListRenderingManager.Render(ctx, photoContainer!, scroll);
109
119
···
116
126
117
127
ctx.fillText("It's looking empty in here! You have no photos :O", photoContainer.width / 2, photoContainer.height / 2);
118
128
}
119
-
120
-
ctxBG.drawImage(photoContainer, 0, 0);
121
129
}
122
130
123
131
listen('hide-window', () => {
124
-
console.log('Hide Window');
125
132
quitRender = true;
133
+
console.log('Hide Window');
126
134
})
127
135
128
136
listen('show-window', () => {
137
+
if(quitRender)quitRender = false;
129
138
console.log('Shown Window');
130
-
quitRender = false;
131
139
132
-
if(window.PhotoManager.HasFirstLoaded)
140
+
photoContainer.width = window.innerWidth;
141
+
photoContainer.height = window.innerHeight;
142
+
143
+
if(window.PhotoManager.HasFirstLoaded){
133
144
requestAnimationFrame(render);
145
+
window.PhotoManager.HasFirstLoaded = false;
146
+
}
134
147
})
135
148
136
149
window.PhotoManager.OnLoadingFinished(() => {
137
-
anime({
138
-
targets: photoTreeLoadingContainer,
139
-
height: 0,
140
-
easing: 'easeInOutQuad',
141
-
duration: 500,
142
-
opacity: 0,
143
-
complete: () => {
144
-
photoTreeLoadingContainer.style.display = 'none';
145
-
}
146
-
})
150
+
invoke('close_splashscreen');
147
151
148
-
anime({
149
-
targets: '.reload-photos',
152
+
animate('.reload-photos', {
150
153
opacity: 1,
151
154
duration: 150,
152
155
easing: 'easeInOutQuad'
153
156
})
154
157
155
158
window.PhotoListRenderingManager.SetCanvas(photoContainer!);
156
-
window.PhotoListRenderingManager.ComputeLayout();
157
-
158
159
render();
159
160
});
160
161
161
162
onMount(() => {
163
+
// Update Stuff
164
+
fetch('https://api.github.com/repos/phaze-the-dumb/VRChat-Photo-Manager/releases/latest')
165
+
.then(data => {
166
+
if(data.status !== 200)return;
167
+
168
+
data.json().then(async data => {
169
+
let currentVersion = await invoke('get_version');
170
+
setUpdateAvailable(data.tag_name !== currentVersion);
171
+
})
172
+
})
173
+
.catch(e => {
174
+
console.error(e);
175
+
setUpdateAvailable(false);
176
+
})
177
+
178
+
// Other Stuff
162
179
ctx = photoContainer.getContext('2d')!;
163
-
ctxBG = photoContainerBG.getContext('2d')!;
164
180
165
181
window.PhotoManager.Load();
166
182
167
-
anime.set(scrollToTop, { opacity: 0, translateY: '-10px', display: 'none' });
183
+
utils.set(scrollToTop, { opacity: 0, translateY: '-10px', display: 'none' });
168
184
169
-
photoContainer.addEventListener('wheel', ( e: WheelEvent ) => {
170
-
targetScroll += e.deltaY;
185
+
photoContainer.onwheel = ( e: WheelEvent ) => {
186
+
targetScroll += e.deltaY * 2;
171
187
172
188
if(targetScroll < 0)
173
189
targetScroll = 0;
174
-
});
190
+
};
175
191
176
192
window.addEventListener('keyup', closeWithKey);
193
+
window.addEventListener('resize', onResize);
177
194
178
195
photoContainer.width = window.innerWidth;
179
196
photoContainer.height = window.innerHeight;
180
197
181
-
photoContainerBG.width = window.innerWidth;
182
-
photoContainerBG.height = window.innerHeight;
183
-
184
-
window.addEventListener('resize', () => {
185
-
photoContainer.width = window.innerWidth;
186
-
photoContainer.height = window.innerHeight;
187
-
188
-
photoContainerBG.width = window.innerWidth;
189
-
photoContainerBG.height = window.innerHeight;
190
-
191
-
window.PhotoListRenderingManager.ComputeLayout();
192
-
})
193
-
194
-
photoContainer.addEventListener('click', ( e: MouseEvent ) => {
198
+
photoContainer.onclick = ( e: MouseEvent ) => {
195
199
let photo = window.PhotoManager.FilteredPhotos.find(x =>
196
200
e.clientX > x.x &&
197
201
e.clientY > x.y &&
···
204
208
window.PhotoViewerManager.OpenPhoto(photo);
205
209
// else
206
210
// currentPhotoIndex = -1;
207
-
})
211
+
}
208
212
})
209
213
210
214
onCleanup(() => {
215
+
photoContainer.onwheel = () => {};
216
+
photoContainer.onclick = () => {};
217
+
211
218
window.removeEventListener('keyup', closeWithKey);
219
+
window.removeEventListener('resize', onResize);
212
220
})
213
221
214
222
return (
215
223
<div class="photo-list">
216
-
<div ref={filterContainer!} class="filter-container" style={{
217
-
height: window.PhotoManager.HasBeenIndexed() ? '83px' : '110px',
218
-
width: window.PhotoManager.HasBeenIndexed() ? '600px' : '650px'
219
-
}}>
224
+
<div ref={filterContainer!} class="filter-container">
220
225
<FilterMenu />
221
226
</div>
222
-
223
-
<div class="photo-tree-loading" ref={( el ) => photoTreeLoadingContainer = el}>Scanning Photo Tree...</div>
224
227
225
228
<div class="scroll-to-top" ref={( el ) => scrollToTop = el} onClick={() => targetScroll = 0}>
226
229
<div class="icon">
227
230
<img draggable="false" src="/icon/angle-up-solid.svg"></img>
228
231
</div>
229
232
</div>
230
-
<div class="reload-photos" onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to reload all photos? This can cause the application to slow down while it is loading...", () => window.location.reload())}>
231
-
<div class="icon" style={{ width: '17px' }}>
232
-
<img draggable="false" width="17" height="17" src="/icon/arrows-rotate-solid.svg"></img>
233
-
</div>
234
-
</div>
235
233
236
234
<div class="filter-options">
237
235
<div>
···
241
239
242
240
filterContainer!.style.display = 'block';
243
241
244
-
anime({
245
-
targets: filterContainer!,
242
+
animate(filterContainer!, {
246
243
opacity: 1,
244
+
translateY: 0,
247
245
easing: 'easeInOutQuad',
248
246
duration: 100
249
247
});
250
-
}} class="icon" style={{ width: '20px', height: '20px', padding: '20px' }}>
248
+
}} class="icon">
251
249
<img draggable="false" style={{ width: "20px", height: "20px" }} src="/icon/sliders-solid.svg"></img>
252
250
</div>
253
251
<div class="icon-label">Filters</div>
254
252
</div>
253
+
254
+
<div>
255
+
<div onClick={() => {
256
+
window.location.reload();
257
+
}} class="icon">
258
+
<img draggable="false" style={{ width: "20px", height: "20px" }} src="/icon/arrows-rotate-solid.svg"></img>
259
+
</div>
260
+
<div class="icon-label">Reload Photos</div>
261
+
</div>
262
+
263
+
<div>
264
+
<div onClick={() => {
265
+
utils.set('.settings', { display: 'block' });
266
+
animate('.settings', {
267
+
opacity: 1,
268
+
translateX: '0px',
269
+
easing: 'easeInOutQuad',
270
+
duration: 250
271
+
})
272
+
273
+
window.ViewManager.ChangeState(ViewState.SETTINGS);
274
+
}} class="icon">
275
+
<img draggable="false" style={{ width: "20px", height: "20px" }} src="/icon/gear-solid-full.svg"></img>
276
+
</div>
277
+
<div class="icon-label">Settings</div>
278
+
</div>
279
+
280
+
<Show when={updateAvailable()}>
281
+
<div>
282
+
<div onClick={() => {
283
+
invoke('open_url', { url: 'https://github.com/phaze-the-dumb/VRChat-Photo-Manager/releases/latest' });
284
+
}} class="icon">
285
+
<img draggable="false" style={{ width: "20px", height: "20px" }} src="/icon/download-solid-full.svg"></img>
286
+
</div>
287
+
<div class="icon-label">Update Available</div>
288
+
</div>
289
+
</Show>
255
290
</div>
256
291
257
292
<canvas class="photo-container" ref={( el ) => photoContainer = el}></canvas>
258
-
<canvas class="photo-container-bg" ref={( el ) => photoContainerBG = el}></canvas>
259
293
</div>
260
294
)
261
295
}
+218
-110
src/Components/PhotoViewer.tsx
+218
-110
src/Components/PhotoViewer.tsx
···
1
1
import { For, Show, createEffect, onCleanup, onMount } from "solid-js";
2
2
import { invoke } from '@tauri-apps/api/core';
3
-
import anime from 'animejs';
4
3
import { WorldCache } from "./Structs/WorldCache";
4
+
import { animate, JSAnimation, utils } from "animejs";
5
5
6
6
let PhotoViewer = () => {
7
7
let viewer: HTMLElement;
···
21
21
let viewerContextMenuButtons: HTMLElement[] = [];
22
22
23
23
let allowedToOpenTray = false;
24
-
let trayInAnimation = false;
25
24
26
25
let authorProfileButton: HTMLDivElement;
26
+
27
+
let photoLayerManager!: HTMLDivElement;
27
28
28
29
let switchPhotoWithKey = ( e: KeyboardEvent ) => {
29
30
switch(e.key){
···
52
53
}
53
54
}
54
55
56
+
let trayAnimation: JSAnimation[] = [];
57
+
55
58
let openTray = () => {
56
-
if(trayOpen || trayInAnimation)return;
59
+
if(trayOpen)return;
60
+
trayOpen = true;
57
61
58
-
trayOpen = true;
59
-
trayInAnimation = true;
62
+
trayAnimation.forEach(anim => anim.cancel());
60
63
61
64
window.CloseAllPopups.forEach(p => p());
62
-
anime({ targets: photoTray, bottom: '0px', duration: 500 });
65
+
trayAnimation[0] = animate(photoTray, { bottom: '-150px', duration: 500, ease: 'outElastic' });
63
66
64
-
anime({
65
-
targets: photoControls,
67
+
trayAnimation[1] = animate(photoControls, {
66
68
bottom: '160px',
69
+
ease: 'outElastic',
67
70
scale: '0.75',
68
71
opacity: 0,
69
72
duration: 500,
70
-
complete: () => {
73
+
onComplete: () => {
71
74
photoControls.style.display = 'none';
72
-
trayInAnimation = false;
73
75
}
74
76
});
75
77
76
78
photoTrayCloseBtn.style.display = 'flex';
77
-
anime({
78
-
targets: photoTrayCloseBtn,
79
+
trayAnimation[2] = animate(photoTrayCloseBtn, {
79
80
bottom: '160px',
81
+
ease: 'outElastic',
80
82
opacity: 1,
81
83
scale: 1,
82
84
duration: 500
···
84
86
}
85
87
86
88
let copyImage = () => {
87
-
let canvas = document.createElement('canvas');
88
-
let ctx = canvas.getContext('2d')!;
89
-
90
-
canvas.width = window.PhotoViewerManager.CurrentPhoto()?.width || 0;
91
-
canvas.height = window.PhotoViewerManager.CurrentPhoto()?.height || 0;
92
-
93
-
ctx.drawImage(imageViewer, 0, 0);
94
-
95
-
canvas.toBlob(( blob ) => {
96
-
navigator.clipboard.write([
97
-
new ClipboardItem({
98
-
'image/png': blob!
99
-
})
100
-
]);
101
-
102
-
canvas.remove();
89
+
let path;
90
+
let photo = window.PhotoViewerManager.CurrentPhoto()!;
103
91
104
-
anime.set('.copy-notif', { translateX: '-50%', translateY: '-100px' });
105
-
anime({
106
-
targets: '.copy-notif',
107
-
opacity: 1,
108
-
translateY: '0px'
109
-
});
92
+
switch(layerManagerViewing){
93
+
case LayerManagerView.DEFAULT:
94
+
path = photo.path;
95
+
break;
96
+
case LayerManagerView.ENVIRONMENT:
97
+
path = photo.environmentLayer!.path;
98
+
break;
99
+
case LayerManagerView.PLAYER:
100
+
path = photo.playerLayer!.path;
101
+
break;
102
+
}
110
103
111
-
setTimeout(() => {
112
-
anime({
113
-
targets: '.copy-notif',
114
-
opacity: 0,
115
-
translateY: '-100px'
104
+
invoke('copy_image', { path })
105
+
.then(() => {
106
+
utils.set('.copy-notif', { translateX: '-50%', translateY: '-100px' });
107
+
animate('.copy-notif', {
108
+
ease: 'outElastic',
109
+
opacity: 1,
110
+
translateY: '0px'
116
111
});
117
-
}, 2000);
118
-
});
112
+
113
+
setTimeout(() => {
114
+
animate('.copy-notif', {
115
+
ease: 'outElastic',
116
+
opacity: 0,
117
+
translateY: '-100px'
118
+
});
119
+
}, 2000);
120
+
})
119
121
}
120
122
121
123
let closeTray = () => {
122
-
if(!trayOpen || trayInAnimation)return;
123
-
trayInAnimation = true;
124
+
if(!trayOpen)return;
125
+
trayOpen = false;
126
+
127
+
trayAnimation.forEach(anim => anim.cancel());
124
128
125
129
window.CloseAllPopups.forEach(p => p());
126
-
anime({ targets: photoTray, bottom: '-150px', duration: 500 });
130
+
trayAnimation[0] = animate(photoTray, { bottom: '-300px', duration: 500, ease: 'outElastic' });
127
131
128
-
anime({
129
-
targets: photoTrayCloseBtn,
132
+
trayAnimation[2] = animate(photoTrayCloseBtn, {
130
133
bottom: '10px',
131
134
scale: '0.75',
135
+
ease: 'outElastic',
132
136
opacity: 0,
133
137
duration: 500,
134
-
complete: () => {
138
+
onComplete: () => {
135
139
photoTrayCloseBtn.style.display = 'none';
136
-
trayOpen = false;
137
-
trayInAnimation = false;
138
140
}
139
141
});
140
142
141
143
photoControls.style.display = 'flex';
142
-
anime({
143
-
targets: photoControls,
144
+
trayAnimation[1] = animate(photoControls, {
144
145
bottom: '10px',
146
+
ease: 'outElastic',
145
147
opacity: 1,
146
148
scale: 1,
147
149
duration: 500,
148
150
})
149
151
}
150
152
153
+
let resizeImage = () => {
154
+
let dstWidth;
155
+
let dstHeight;
156
+
157
+
let imgHeight = imageViewer.naturalHeight;
158
+
let imgWidth = imageViewer.naturalWidth;
159
+
160
+
if(
161
+
imgWidth / window.innerWidth <
162
+
imgHeight / window.innerHeight
163
+
) {
164
+
dstWidth = imgWidth * (window.innerHeight / imgHeight);
165
+
dstHeight = window.innerHeight;
166
+
} else{
167
+
dstWidth = window.innerWidth;
168
+
dstHeight = imgHeight * (window.innerWidth / imgWidth);
169
+
}
170
+
171
+
imageViewer.style.width = dstWidth + 'px';
172
+
imageViewer.style.height = dstHeight + 'px';
173
+
}
174
+
151
175
onMount(() => {
152
-
anime.set(photoControls, { translateX: '-50%' });
153
-
anime.set(photoTrayCloseBtn, { translateX: '-50%', opacity: 0, scale: '0.75', bottom: '10px' });
176
+
utils.set(photoControls, { translateX: '-50%' });
177
+
utils.set(photoTrayCloseBtn, { translateX: '-50%', opacity: 0, scale: '0.75', bottom: '10px' });
178
+
utils.set(photoLayerManager, { translateY: '20px', opacity: 0, display: 'none' });
154
179
155
180
window.addEventListener('keyup', switchPhotoWithKey);
181
+
window.addEventListener('resize', () => resizeImage());
156
182
157
183
let contextMenuOpen = false;
158
184
window.CloseAllPopups.push(() => {
159
185
contextMenuOpen = false;
160
-
anime.set(viewerContextMenu, { opacity: 1, rotate: '0deg' });
186
+
utils.set(viewerContextMenu, { opacity: 1, rotate: '0deg' });
161
187
162
-
anime({
163
-
targets: viewerContextMenu,
188
+
animate(viewerContextMenu, {
164
189
opacity: 0,
165
190
easing: 'easeInOutQuad',
166
191
rotate: '30deg',
167
192
duration: 100,
168
-
complete: () => {
193
+
onComplete: () => {
169
194
viewerContextMenu.style.display = 'none';
170
195
}
171
196
})
172
197
});
173
198
199
+
window.CloseAllPopups.push(() => {
200
+
layerManagerOpen = false;
201
+
if(layerManagerAnimation)layerManagerAnimation.cancel();
202
+
203
+
layerManagerAnimation = animate(photoLayerManager, { translateY: '20px', opacity: 0, duration: 100, onComplete: () => utils.set(photoLayerManager, { display: 'none' }) });
204
+
});
205
+
174
206
viewerContextMenuButtons[0].onclick = async () => {
175
207
window.CloseAllPopups.forEach(p => p());
176
208
// Context Menu -> Open file location
···
189
221
if(contextMenuOpen){
190
222
contextMenuOpen = false;
191
223
192
-
anime.set(viewerContextMenu, { opacity: 1, rotate: '0deg' });
224
+
utils.set(viewerContextMenu, { opacity: 1, rotate: '0deg' });
193
225
194
-
anime({
195
-
targets: viewerContextMenu,
226
+
animate(viewerContextMenu, {
196
227
opacity: 0,
197
228
rotate: '30deg',
198
229
easing: 'easeInOutQuad',
199
230
duration: 100,
200
-
complete: () => {
231
+
onComplete: () => {
201
232
viewerContextMenu.style.display = 'none';
202
233
}
203
234
})
···
208
239
viewerContextMenu.style.left = e.clientX + 'px';
209
240
viewerContextMenu.style.display = 'block';
210
241
211
-
anime.set(viewerContextMenu, { opacity: 0, rotate: '-30deg' });
242
+
utils.set(viewerContextMenu, { opacity: 0, rotate: '-30deg' });
212
243
213
-
anime({
214
-
targets: viewerContextMenu,
244
+
animate(viewerContextMenu, {
215
245
opacity: 1,
216
246
rotate: '0deg',
217
247
easing: 'easeInOutQuad',
···
230
260
imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + window.PhotoViewerManager.CurrentPhoto()?.path.split('\\').join('/') + "?full";
231
261
imageViewer.crossOrigin = 'anonymous';
232
262
233
-
anime({
234
-
targets: imageViewer,
263
+
imageViewer.onload = () => { resizeImage(); }
264
+
265
+
animate(imageViewer, {
235
266
opacity: 1,
236
267
delay: 50,
237
268
duration: 150,
···
291
322
let id = doc.getElementsByTagName('xmp:Author')[0]!.innerHTML;
292
323
293
324
authorProfileButton!.style.display = 'flex';
294
-
authorProfileButton!.onclick = () =>
325
+
authorProfileButton!.onclick = () => {
326
+
console.log(id);
295
327
invoke('open_url', { url: 'https://vrchat.com/home/user/' + id });
328
+
}
296
329
} catch(e){
297
330
console.error(e);
298
331
console.log('Couldn\'t decode metadata')
···
305
338
}
306
339
} else{
307
340
trayButton.style.display = 'none';
341
+
authorProfileButton!.style.display = 'none';
342
+
308
343
closeTray();
309
344
}
310
345
}
···
315
350
if(photo && !isOpen){
316
351
viewer.style.display = 'flex';
317
352
318
-
anime({
319
-
targets: viewer,
353
+
animate(viewer, {
320
354
opacity: 1,
321
355
easing: 'easeInOutQuad',
322
356
duration: 150
323
357
});
324
-
325
-
anime({
326
-
targets: '.navbar',
327
-
top: '-50px'
328
-
})
329
358
330
-
anime.set('.prev-button', { left: '-50px', top: '50%' });
331
-
anime.set('.next-button', { right: '-50px', top: '50%' });
359
+
utils.set('.prev-button', { left: '-50px', top: '50%' });
360
+
utils.set('.next-button', { right: '-50px', top: '50%' });
332
361
333
-
anime({ targets: '.prev-button', left: '0', easing: 'easeInOutQuad', duration: 100 });
334
-
anime({ targets: '.next-button', right: '0', easing: 'easeInOutQuad', duration: 100 });
362
+
animate('.prev-button', { left: '0', easing: 'easeInOutQuad', duration: 100 });
363
+
animate('.next-button', { right: '0', easing: 'easeInOutQuad', duration: 100 });
335
364
336
365
window.CloseAllPopups.forEach(p => p());
337
366
} else if(!photo && isOpen){
338
-
anime({
339
-
targets: viewer,
367
+
animate(viewer, {
340
368
opacity: 0,
341
369
easing: 'easeInOutQuad',
342
370
duration: 150,
343
-
complete: () => {
371
+
onComplete: () => {
344
372
viewer.style.display = 'none';
345
373
}
346
374
});
347
-
348
-
anime({
349
-
targets: '.navbar',
350
-
top: '0px'
351
-
})
352
375
353
376
window.CloseAllPopups.forEach(p => p());
354
377
355
-
anime({ targets: '.prev-button', top: '75%', easing: 'easeInOutQuad', duration: 100 });
356
-
anime({ targets: '.next-button', top: '75%', easing: 'easeInOutQuad', duration: 100 });
378
+
animate('.prev-button', { top: '75%', easing: 'easeInOutQuad', duration: 100 });
379
+
animate('.next-button', { top: '75%', easing: 'easeInOutQuad', duration: 100 });
357
380
}
358
381
359
382
isOpen = photo != null;
···
394
417
)
395
418
}
396
419
420
+
enum LayerManagerView{
421
+
DEFAULT,
422
+
PLAYER,
423
+
ENVIRONMENT
424
+
}
425
+
426
+
let layerManagerOpen = false;
427
+
let layerManagerAnimation: null | JSAnimation = null;
428
+
let layerManagerViewing = LayerManagerView.DEFAULT;
429
+
430
+
let toggleLayerManager = () => {
431
+
if(layerManagerOpen){
432
+
// Close
433
+
layerManagerOpen = false;
434
+
if(layerManagerAnimation)layerManagerAnimation.cancel();
435
+
436
+
layerManagerAnimation = animate(photoLayerManager, { translateY: '20px', opacity: 0, duration: 100, onComplete: () => utils.set(photoLayerManager, { display: 'none' }) });
437
+
} else{
438
+
// Open
439
+
layerManagerOpen = true;
440
+
if(layerManagerAnimation)layerManagerAnimation.cancel();
441
+
442
+
utils.set(photoLayerManager, { display: 'block' });
443
+
layerManagerAnimation = animate(photoLayerManager, { translateY: '0px', opacity: 1, duration: 100 });
444
+
}
445
+
}
446
+
397
447
return (
398
448
<div class="photo-viewer" ref={( el ) => viewer = el}>
449
+
<div class="photo-layer-manager" ref={photoLayerManager}>
450
+
<Show when={window.PhotoViewerManager.CurrentPhoto()?.playerLayer}>
451
+
<div class="photo-layer-manager-layer" onClick={() => {
452
+
let photo = window.PhotoViewerManager.CurrentPhoto()?.playerLayer;
453
+
if(!photo)return;
454
+
455
+
layerManagerViewing = LayerManagerView.PLAYER;
456
+
457
+
imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full";
458
+
imageViewer.crossOrigin = 'anonymous';
459
+
}}>Player Layer</div>
460
+
</Show>
461
+
<Show when={window.PhotoViewerManager.CurrentPhoto()?.environmentLayer}>
462
+
<div class="photo-layer-manager-layer" onClick={() => {
463
+
let photo = window.PhotoViewerManager.CurrentPhoto()?.environmentLayer;
464
+
if(!photo)return;
465
+
466
+
layerManagerViewing = LayerManagerView.ENVIRONMENT;
467
+
468
+
imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full";
469
+
imageViewer.crossOrigin = 'anonymous';
470
+
}}>Environment Layer</div>
471
+
</Show>
472
+
<div class="photo-layer-manager-layer" onClick={() => {
473
+
let photo = window.PhotoViewerManager.CurrentPhoto();
474
+
if(!photo)return;
475
+
476
+
layerManagerViewing = LayerManagerView.DEFAULT;
477
+
478
+
imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + photo.path.split('\\').join('/') + "?full";
479
+
imageViewer.crossOrigin = 'anonymous';
480
+
}}>Default Layer</div>
481
+
</div>
482
+
399
483
<div class="photo-context-menu" ref={( el ) => viewerContextMenu = el}>
400
484
<div ref={( el ) => viewerContextMenuButtons.push(el)}>Open file location</div>
401
485
<div ref={( el ) => viewerContextMenuButtons.push(el)}>Copy image</div>
402
486
</div>
403
487
404
488
<div class="viewer-close viewer-button" onClick={() => window.PhotoViewerManager.Close()}>
405
-
<div class="icon" style={{ width: '10px', margin: '0' }}>
489
+
<div class="icon-small" style={{ width: '10px', margin: '0' }}>
406
490
<img draggable="false" src="/icon/x-solid.svg"></img>
407
491
</div>
408
492
</div>
409
-
<img class="image-container" ref={( el ) => imageViewer = el} />
493
+
494
+
<div style={{
495
+
width: '100%',
496
+
height: '100%',
497
+
display: 'flex',
498
+
"justify-content": 'center',
499
+
'align-items': 'center'
500
+
}}>
501
+
<img class="image-container" ref={( el ) => imageViewer = el} />
502
+
</div>
410
503
411
504
<div class="prev-button" onClick={() => {
412
505
window.CloseAllPopups.forEach(p => p());
413
506
window.PhotoViewerManager.PreviousPhoto();
414
507
}}>
415
-
<div class="icon" style={{ width: '15px', margin: '0' }}>
508
+
<div class="icon-small" style={{ width: '15px', margin: '0' }}>
416
509
<img draggable="false" src="/icon/arrow-left-solid.svg"></img>
417
510
</div>
418
511
</div>
···
421
514
window.CloseAllPopups.forEach(p => p());
422
515
window.PhotoViewerManager.NextPhoto();
423
516
}}>
424
-
<div class="icon" style={{ width: '15px', margin: '0' }}>
517
+
<div class="icon-small" style={{ width: '15px', margin: '0' }}>
425
518
<img draggable="false" src="/icon/arrow-right-solid.svg"></img>
426
519
</div>
427
520
</div>
···
432
525
onClick={() => closeTray()}
433
526
ref={( el ) => photoTrayCloseBtn = el}
434
527
>
435
-
<div class="icon" style={{ width: '12px', margin: '0' }}>
528
+
<div class="icon-small" style={{ width: '12px', margin: '0' }}>
436
529
<img draggable="false" src="/icon/angle-down-solid.svg"></img>
437
530
</div>
438
531
</div>
439
532
440
533
<div class="control-buttons" ref={( el ) => photoControls = el}>
441
534
<div class="viewer-button"
442
-
onMouseOver={( el ) => anime({ targets: el.currentTarget, width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
443
-
onMouseLeave={( el ) => anime({ targets: el.currentTarget, width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
535
+
onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
536
+
onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
444
537
onClick={() => { copyImage(); }}>
445
-
<div class="icon" style={{ width: '12px', margin: '0' }}>
538
+
<div class="icon-small" style={{ width: '12px', margin: '0' }}>
446
539
<img draggable="false" src="/icon/copy-solid.svg"></img>
447
540
</div>
448
541
</div>
449
542
<div class="viewer-button" style={{ width: '50px' }}
450
-
onMouseOver={( el ) => anime({ targets: el.currentTarget, width: '70px', height: '30px', 'margin-left': '10px', 'margin-right': '10px' })}
451
-
onMouseLeave={( el ) => anime({ targets: el.currentTarget, width: '50px', height: '30px', 'margin-left': '20px', 'margin-right': '20px' })}
543
+
onMouseOver={( el ) => animate(el.currentTarget, { width: '70px', height: '30px', 'margin-left': '10px', 'margin-right': '10px' })}
544
+
onMouseLeave={( el ) => animate(el.currentTarget, { width: '50px', height: '30px', 'margin-left': '20px', 'margin-right': '20px' })}
452
545
ref={( el ) => trayButton = el}
453
546
onClick={() => openTray()}
454
547
>
455
-
<div class="icon" style={{ width: '12px', margin: '0' }}>
548
+
<div class="icon-small" style={{ width: '12px', margin: '0' }}>
456
549
<img draggable="false" src="/icon/angle-up-solid.svg"></img>
457
550
</div>
458
551
</div>
459
552
460
553
<div class="viewer-button"
461
554
ref={authorProfileButton!}
462
-
onMouseOver={( el ) => anime({ targets: el.currentTarget, width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
463
-
onMouseLeave={( el ) => anime({ targets: el.currentTarget, width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
555
+
onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
556
+
onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
464
557
>
465
-
<div class="icon" style={{ width: '12px', margin: '0' }}>
558
+
<div class="icon-small" style={{ width: '12px', margin: '0' }}>
466
559
<img draggable="false" src="/icon/user-solid.svg"></img>
467
560
</div>
468
561
</div>
469
562
563
+
<Show when={window.PhotoViewerManager.CurrentPhoto()?.isMultiLayer}>
564
+
<div class="viewer-button"
565
+
onClick={toggleLayerManager}
566
+
onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
567
+
onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
568
+
>
569
+
<div class="icon-small" style={{ width: '17px', margin: '0' }}>
570
+
<img draggable="false" src="/icon/layer-group-solid-full.svg"></img>
571
+
</div>
572
+
</div>
573
+
</Show>
574
+
470
575
<div class="viewer-button"
471
-
onMouseOver={( el ) => anime({ targets: el.currentTarget, width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
472
-
onMouseLeave={( el ) => anime({ targets: el.currentTarget, width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
473
-
onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => { invoke("delete_photo", {
474
-
path: window.PhotoViewerManager.CurrentPhoto()?.path,
475
-
token: (await invoke('get_config_value_string', { key: 'token' })) || "none",
476
-
isSyncing: window.AccountManager.hasAccount() ? window.AccountManager.Storage()?.isSyncing : false
477
-
});
576
+
onMouseOver={( el ) => animate(el.currentTarget, { width: '40px', height: '40px', 'margin-left': '15px', 'margin-right': '15px', 'margin-top': '-10px' })}
577
+
onMouseLeave={( el ) => animate(el.currentTarget, { width: '30px', height: '30px', 'margin-left': '20px', 'margin-right': '20px', 'margin-top': '0px' })}
578
+
onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("Are you sure you want to delete this photo?", async () => {
579
+
let photo = window.PhotoViewerManager.CurrentPhoto();
580
+
if(!photo)return;
581
+
582
+
invoke("delete_photo", { path: photo.path });
583
+
584
+
if(photo.playerLayer)invoke("delete_photo", { path: photo.playerLayer.path });
585
+
if(photo.environmentLayer)invoke("delete_photo", { path: photo.environmentLayer.path });
478
586
})}>
479
-
<div class="icon" style={{ width: '12px', margin: '0' }}>
587
+
<div class="icon-small" style={{ width: '12px', margin: '0' }}>
480
588
<img draggable="false" src="/icon/trash-solid.svg"></img>
481
589
</div>
482
590
</div>
+191
-208
src/Components/SettingsMenu.tsx
+191
-208
src/Components/SettingsMenu.tsx
···
1
1
import { onCleanup, onMount, Show } from "solid-js";
2
2
import { bytesToFormatted } from "../utils";
3
3
import { invoke } from '@tauri-apps/api/core';
4
-
import anime from "animejs";
5
4
import { ViewState } from "./Managers/ViewManager";
5
+
import { animate, utils } from "animejs";
6
6
7
7
let SettingsMenu = () => {
8
-
let sliderBar: HTMLElement;
9
-
let settingsContainer: HTMLElement;
10
-
let currentButton = 0;
11
-
let lastClickedButton = -1;
8
+
// let sliderBar: HTMLElement;
9
+
// let settingsContainer: HTMLElement;
10
+
// let currentButton = 0;
11
+
// let lastClickedButton = -1;
12
12
let finalPathConfirm: HTMLElement;
13
13
let finalPathInput: HTMLElement;
14
14
let finalPathData: string;
···
17
17
let closeWithKey = ( e: KeyboardEvent ) => {
18
18
if(e.key === 'Escape'){
19
19
window.ViewManager.ChangeState(ViewState.PHOTO_LIST);
20
-
anime({
21
-
targets: '.settings',
20
+
console.log('h');
21
+
animate('.settings',{
22
22
opacity: 0,
23
23
translateX: '500px',
24
24
easing: 'easeInOutQuad',
25
25
duration: 250,
26
-
complete: () => {
27
-
anime.set('.settings', { display: 'none' });
26
+
onComplete: () => {
27
+
console.log('h');
28
+
utils.set('.settings', { display: 'none' });
28
29
}
29
30
})
30
31
}
···
34
35
if(await invoke('get_config_value_string', { key: 'transparent' }) === "true"){
35
36
invoke('set_config_value_string', { key: 'transparent', value: 'true' });
36
37
37
-
anime({ targets: document.body, background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
38
-
anime({ targets: '.settings', background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
38
+
animate(document.body, { background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
39
+
animate('.settings', { background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
39
40
} else{
40
41
invoke('set_config_value_string', { key: 'transparent', value: 'false' });
41
42
42
-
anime({ targets: document.body, background: 'rgba(0, 0, 0, 1)', easing: 'linear', duration: 100 });
43
-
anime({ targets: '.settings', background: 'rgba(0, 0, 0, 0)', easing: 'linear', duration: 100 });
43
+
animate(document.body, { background: 'rgba(0, 0, 0, 1)', easing: 'linear', duration: 100 });
44
+
animate('.settings', { background: 'rgba(0, 0, 0, 0)', easing: 'linear', duration: 100 });
44
45
}
45
46
46
-
let sliderMouseDown = false;
47
-
let mouseStartX = 0;
47
+
// let sliderMouseDown = false;
48
+
// let mouseStartX = 0;
48
49
49
-
let width = window.innerWidth;
50
-
let buttons = [ 370, 680 ];
50
+
// let width = window.innerWidth;
51
+
// let buttons = [ 370, 680 ];
51
52
52
-
let sliderPos = width / 2 - buttons[currentButton];
53
-
let sliderScale = width / (buttons[1] - buttons[0]);
53
+
// let sliderPos = width / 2 - buttons[currentButton];
54
+
// let sliderScale = width / (buttons[1] - buttons[0]);
54
55
55
-
let render = () => {
56
-
requestAnimationFrame(render);
56
+
// let render = () => {
57
+
// requestAnimationFrame(render);
57
58
58
-
if(!sliderMouseDown){
59
-
sliderPos = sliderPos + (width / 2 - buttons[currentButton] - sliderPos) * 0.25;
60
-
anime.set(sliderBar, { translateX: sliderPos });
59
+
// if(!sliderMouseDown){
60
+
// sliderPos = sliderPos + (width / 2 - buttons[currentButton] - sliderPos) * 0.25;
61
+
// utils.set(sliderBar, { translateX: sliderPos });
61
62
62
-
settingsContainer.style.left = (sliderPos - (width / 2 - buttons[0])) * sliderScale + 'px';
63
-
}
64
-
}
63
+
// settingsContainer.style.left = (sliderPos - (width / 2 - buttons[0])) * sliderScale + 'px';
64
+
// }
65
+
// }
65
66
66
-
render();
67
-
anime.set(sliderBar, { translateX: sliderPos });
67
+
// render();
68
+
// utils.set(sliderBar, { translateX: sliderPos });
68
69
69
-
sliderBar.addEventListener('touchstart', ( e: TouchEvent ) => {
70
-
sliderMouseDown = true;
71
-
mouseStartX = e.touches[0].clientX;
72
-
})
70
+
// sliderBar.addEventListener('touchstart', ( e: TouchEvent ) => {
71
+
// sliderMouseDown = true;
72
+
// mouseStartX = e.touches[0].clientX;
73
+
// })
73
74
74
-
window.addEventListener('touchmove', ( e: TouchEvent ) => {
75
-
if(sliderMouseDown){
76
-
anime.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.touches[0].clientX) });
77
-
settingsContainer.style.left = (sliderPos - (mouseStartX - e.touches[0].clientX) - (width / 2 - buttons[0])) * sliderScale + 'px';
78
-
}
79
-
})
75
+
// window.addEventListener('touchmove', ( e: TouchEvent ) => {
76
+
// if(sliderMouseDown){
77
+
// utils.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.touches[0].clientX) });
78
+
// settingsContainer.style.left = (sliderPos - (mouseStartX - e.touches[0].clientX) - (width / 2 - buttons[0])) * sliderScale + 'px';
79
+
// }
80
+
// })
80
81
81
82
window.addEventListener('keyup', closeWithKey);
82
83
83
-
window.addEventListener('touchend', ( e: TouchEvent ) => {
84
-
if(sliderMouseDown){
85
-
sliderPos = sliderPos - (mouseStartX - e.touches[0].clientX);
84
+
// window.addEventListener('touchend', ( e: TouchEvent ) => {
85
+
// if(sliderMouseDown){
86
+
// sliderPos = sliderPos - (mouseStartX - e.touches[0].clientX);
86
87
87
-
anime.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.touches[0].clientX) });
88
-
sliderMouseDown = false;
88
+
// utils.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.touches[0].clientX) });
89
+
// sliderMouseDown = false;
89
90
90
-
if(Math.abs(mouseStartX - e.touches[0].clientX) > 50){
91
-
let shortestDistance = 0;
92
-
let selectedButton = -1;
91
+
// if(Math.abs(mouseStartX - e.touches[0].clientX) > 50){
92
+
// let shortestDistance = 0;
93
+
// let selectedButton = -1;
93
94
94
-
buttons.forEach(( pos, indx ) => {
95
-
let dis = Math.abs(sliderPos - (width / 2 - pos));
95
+
// buttons.forEach(( pos, indx ) => {
96
+
// let dis = Math.abs(sliderPos - (width / 2 - pos));
96
97
97
-
if(selectedButton === -1){
98
-
shortestDistance = dis;
99
-
selectedButton = indx;
100
-
} else if(shortestDistance > dis){
101
-
shortestDistance = dis;
102
-
selectedButton = indx;
103
-
}
104
-
})
98
+
// if(selectedButton === -1){
99
+
// shortestDistance = dis;
100
+
// selectedButton = indx;
101
+
// } else if(shortestDistance > dis){
102
+
// shortestDistance = dis;
103
+
// selectedButton = indx;
104
+
// }
105
+
// })
105
106
106
-
currentButton = selectedButton;
107
-
} else if(lastClickedButton != -1){
108
-
currentButton = lastClickedButton;
109
-
lastClickedButton = -1
110
-
}
111
-
}
112
-
})
107
+
// currentButton = selectedButton;
108
+
// } else if(lastClickedButton != -1){
109
+
// currentButton = lastClickedButton;
110
+
// lastClickedButton = -1
111
+
// }
112
+
// }
113
+
// })
113
114
114
-
sliderBar.addEventListener('mousedown', ( e: MouseEvent ) => {
115
-
sliderMouseDown = true;
116
-
mouseStartX = e.clientX;
117
-
});
115
+
// sliderBar.addEventListener('mousedown', ( e: MouseEvent ) => {
116
+
// sliderMouseDown = true;
117
+
// mouseStartX = e.clientX;
118
+
// });
118
119
119
-
window.addEventListener('mousemove', ( e: MouseEvent ) => {
120
-
if(sliderMouseDown){
121
-
anime.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.clientX) });
122
-
settingsContainer.style.left = sliderPos - (mouseStartX - e.clientX) + 'px';
123
-
settingsContainer.style.left = (sliderPos - (mouseStartX - e.clientX) - (width / 2 - buttons[0])) * sliderScale + 'px';
124
-
}
125
-
})
120
+
// window.addEventListener('mousemove', ( e: MouseEvent ) => {
121
+
// if(sliderMouseDown){
122
+
// utils.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.clientX) });
123
+
// settingsContainer.style.left = sliderPos - (mouseStartX - e.clientX) + 'px';
124
+
// settingsContainer.style.left = (sliderPos - (mouseStartX - e.clientX) - (width / 2 - buttons[0])) * sliderScale + 'px';
125
+
// }
126
+
// })
126
127
127
-
window.addEventListener('mouseup', ( e: MouseEvent ) => {
128
-
if(sliderMouseDown){
129
-
sliderPos = sliderPos - (mouseStartX - e.clientX);
128
+
// window.addEventListener('mouseup', ( e: MouseEvent ) => {
129
+
// if(sliderMouseDown){
130
+
// sliderPos = sliderPos - (mouseStartX - e.clientX);
130
131
131
-
anime.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.clientX) });
132
-
sliderMouseDown = false;
132
+
// utils.set(sliderBar, { translateX: sliderPos - (mouseStartX - e.clientX) });
133
+
// sliderMouseDown = false;
133
134
134
-
if(Math.abs(mouseStartX - e.clientX) > 50){
135
-
let shortestDistance = 0;
136
-
let selectedButton = -1;
135
+
// if(Math.abs(mouseStartX - e.clientX) > 50){
136
+
// let shortestDistance = 0;
137
+
// let selectedButton = -1;
137
138
138
-
buttons.forEach(( pos, indx ) => {
139
-
let dis = Math.abs(sliderPos - (width / 2 - pos));
139
+
// buttons.forEach(( pos, indx ) => {
140
+
// let dis = Math.abs(sliderPos - (width / 2 - pos));
140
141
141
-
if(selectedButton === -1){
142
-
shortestDistance = dis;
143
-
selectedButton = indx;
144
-
} else if(shortestDistance > dis){
145
-
shortestDistance = dis;
146
-
selectedButton = indx;
147
-
}
148
-
})
142
+
// if(selectedButton === -1){
143
+
// shortestDistance = dis;
144
+
// selectedButton = indx;
145
+
// } else if(shortestDistance > dis){
146
+
// shortestDistance = dis;
147
+
// selectedButton = indx;
148
+
// }
149
+
// })
149
150
150
-
currentButton = selectedButton;
151
-
} else if(lastClickedButton != -1){
152
-
currentButton = lastClickedButton;
153
-
lastClickedButton = -1
154
-
}
155
-
}
156
-
})
151
+
// currentButton = selectedButton;
152
+
// } else if(lastClickedButton != -1){
153
+
// currentButton = lastClickedButton;
154
+
// lastClickedButton = -1
155
+
// }
156
+
// }
157
+
// })
157
158
158
-
window.addEventListener('resize', () => {
159
-
width = window.innerWidth;
160
-
sliderPos = width / 2 - buttons[currentButton];
161
-
sliderScale = width / (buttons[1] - buttons[0]);
159
+
// window.addEventListener('resize', () => {
160
+
// width = window.innerWidth;
161
+
// sliderPos = width / 2 - buttons[currentButton];
162
+
// sliderScale = width / (buttons[1] - buttons[0]);
162
163
163
-
anime.set(sliderBar, { translateX: sliderPos });
164
-
})
164
+
// utils.set(sliderBar, { translateX: sliderPos });
165
+
// })
165
166
166
-
sliderBar.addEventListener('wheel', ( e: WheelEvent ) => {
167
-
if(e.deltaY > 0){
168
-
if(buttons[currentButton + 1])
169
-
currentButton++;
170
-
} else{
171
-
if(buttons[currentButton - 1])
172
-
currentButton--;
173
-
}
174
-
})
167
+
// sliderBar.addEventListener('wheel', ( e: WheelEvent ) => {
168
+
// if(e.deltaY > 0){
169
+
// if(buttons[currentButton + 1])
170
+
// currentButton++;
171
+
// } else{
172
+
// if(buttons[currentButton - 1])
173
+
// currentButton--;
174
+
// }
175
+
// })
175
176
})
176
177
177
178
onCleanup(() => {
···
180
181
181
182
return (
182
183
<div class="settings">
183
-
<div class="settings-container" ref={( el ) => settingsContainer = el}>
184
+
<div class="settings-close" onClick={() => {
185
+
window.ViewManager.ChangeState(ViewState.PHOTO_LIST);
186
+
animate('.settings',
187
+
{
188
+
opacity: 0,
189
+
translateX: '500px',
190
+
easing: 'easeInOutQuad',
191
+
duration: 250,
192
+
onComplete: () => {
193
+
utils.set('.settings', { display: 'none' });
194
+
}
195
+
})
196
+
}}>
197
+
<div class="icon"><img draggable="false" src="/icon/x-solid.svg"></img></div>
198
+
</div>
199
+
{/* <div class="settings-container" ref={( el ) => settingsContainer = el}> */}
200
+
<div class="settings-container">
184
201
<div class="settings-block">
185
202
<h1>Storage Settings</h1>
186
203
<p>{ window.PhotoManager.PhotoCount() } Photos ({ bytesToFormatted(window.PhotoManager.PhotoSize(), 0) })</p>
···
199
216
200
217
<label for="start-in-bg-check">
201
218
<div class="selection-box">
202
-
<div class="icon" style={{ width: '10px', margin: '0', display: 'inline-flex' }}>
219
+
<div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}>
203
220
<img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img>
204
221
</div>
205
222
</div>
···
207
224
</div>
208
225
209
226
<div class="selector">
210
-
<input type="checkbox" id="start-with-win-check" ref={async ( el ) => {
211
-
el.checked = await invoke('get_config_value_string', { key: 'start-with-win' }) === "true" ? true : false;
227
+
<input type="checkbox" id="close-to-tray-check" ref={async ( el ) => {
228
+
el.checked = await invoke('get_config_value_string', { key: 'close-to-tray' }) === "true" ? true : false;
212
229
}} onChange={( el ) => {
213
230
if(el.target.checked){
214
-
invoke('set_config_value_string', { key: 'start-with-win', value: 'true' });
215
-
invoke("start_with_win", { start: true });
231
+
invoke('set_config_value_string', { key: 'close-to-tray', value: 'true' });
216
232
} else{
217
-
invoke('set_config_value_string', { key: 'start-with-win', value: 'false' });
218
-
invoke("start_with_win", { start: false });
233
+
invoke('set_config_value_string', { key: 'close-to-tray', value: 'false' });
219
234
}
220
235
}} />
221
-
Start with windows
236
+
Close to tray
222
237
223
-
<label for="start-with-win-check">
238
+
<label for="close-to-tray-check">
224
239
<div class="selection-box">
225
-
<div class="icon" style={{ width: '10px', margin: '0', display: 'inline-flex' }}>
240
+
<div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}>
226
241
<img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img>
227
242
</div>
228
243
</div>
229
244
</label>
230
245
</div>
231
246
247
+
<Show when={window.OS === 'windows'}>
248
+
<div class="selector">
249
+
<input type="checkbox" id="start-with-win-check" ref={async ( el ) => {
250
+
el.checked = await invoke('get_config_value_string', { key: 'start-with-win' }) === "true" ? true : false;
251
+
}} onChange={( el ) => {
252
+
if(el.target.checked){
253
+
invoke('set_config_value_string', { key: 'start-with-win', value: 'true' });
254
+
invoke("start_with_win", { start: true });
255
+
} else{
256
+
invoke('set_config_value_string', { key: 'start-with-win', value: 'false' });
257
+
invoke("start_with_win", { start: false });
258
+
}
259
+
}} />
260
+
Start with windows
261
+
262
+
<label for="start-with-win-check">
263
+
<div class="selection-box">
264
+
<div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}>
265
+
<img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img>
266
+
</div>
267
+
</div>
268
+
</label>
269
+
</div>
270
+
</Show>
271
+
232
272
<div class="selector">
233
273
<input type="checkbox" id="transparent-check" ref={async ( el ) => {
234
274
el.checked = await invoke('get_config_value_string', { key: 'transparent' }) === "true" ? true : false;
···
236
276
if(el.target.checked){
237
277
invoke('set_config_value_string', { key: 'transparent', value: 'true' });
238
278
239
-
anime({ targets: document.body, background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
240
-
anime({ targets: '.settings', background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
279
+
animate(document.body, { background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
280
+
animate('.settings', { background: 'rgba(0, 0, 0, 0.5)', easing: 'linear', duration: 100 });
241
281
} else{
242
282
invoke('set_config_value_string', { key: 'transparent', value: 'false' });
243
283
244
-
anime({ targets: document.body, background: 'rgba(0, 0, 0, 1)', easing: 'linear', duration: 100 });
245
-
anime({ targets: '.settings', background: 'rgba(0, 0, 0, 0)', easing: 'linear', duration: 100 });
284
+
animate(document.body, { background: 'rgba(0, 0, 0, 1)', easing: 'linear', duration: 100 });
285
+
animate('.settings', { background: 'rgba(0, 0, 0, 0)', easing: 'linear', duration: 100 });
246
286
}
247
287
}} />
248
288
Window Transparency
249
289
250
290
<label for="transparent-check">
251
291
<div class="selection-box">
252
-
<div class="icon" style={{ width: '10px', margin: '0', display: 'inline-flex' }}>
292
+
<div class="icon-small" style={{ margin: '0', display: 'inline-flex' }}>
253
293
<img draggable="false" width="10" height="10" src="/icon/check-solid.svg"></img>
254
294
</div>
255
295
</div>
···
274
314
</span>
275
315
<span style={{ display: 'none' }} ref={( el ) => finalPathConfirm = el}>
276
316
<span class="path" style={{ color: 'green' }} onClick={async () => {
277
-
finalPathPreviousData = finalPathData;
278
-
finalPathConfirm.style.display = 'none';
317
+
let changed = await invoke('change_final_path', { newPath: finalPathData });
279
318
280
-
await invoke('change_final_path', { newPath: finalPathData });
281
-
await invoke('relaunch');
319
+
if(changed){
320
+
finalPathPreviousData = finalPathData;
321
+
finalPathConfirm.style.display = 'none';
282
322
283
-
anime({
284
-
targets: '.settings',
285
-
opacity: 0,
286
-
translateX: '500px',
287
-
easing: 'easeInOutQuad',
288
-
duration: 250,
289
-
complete: () => {
290
-
anime.set('.settings', { display: 'none' });
291
-
}
292
-
})
323
+
window.location.reload();
293
324
294
-
window.location.reload();
325
+
animate('.settings', {
326
+
opacity: 0,
327
+
translateX: '500px',
328
+
easing: 'easeInOutQuad',
329
+
duration: 250,
330
+
onComplete: () => {
331
+
utils.set('.settings', { display: 'none' });
332
+
}
333
+
})
334
+
335
+
window.location.reload();
336
+
}
295
337
}}>
296
338
Save
297
339
</span>
···
314
356
<br />
315
357
<p>VRChat Photo Manager supports photos with extra metadata provided by VRCX.</p>
316
358
</div>
317
-
<div class="settings-block">
318
-
<h1>Account Settings</h1>
319
-
320
-
<Show when={window.AccountManager.hasAccount()} fallback={
321
-
<div>
322
-
You aren't logged in. To enable cloud sync and sharing features you need to login to your PhazeID.<br /><br />
323
-
<div class="button" onClick={() => {
324
-
window.AccountManager.login();
325
-
}}>Login</div>
326
-
</div>
327
-
}>
328
-
<div class="account-profile">
329
-
<div class="account-pfp" style={{ background: `url('https://cdn.phazed.xyz/id/avatars/${window.AccountManager.Profile()?.id}/${window.AccountManager.Profile()?.avatar}.png')` }}></div>
330
-
<div class="account-desc">
331
-
<div class="reload-photos" onClick={() => window.AccountManager.Refresh()} style={{ opacity: 1 }}>
332
-
<div class="icon" style={{ width: '17px' }}>
333
-
<img draggable="false" width="17" height="17" src="/icon/arrows-rotate-solid.svg"></img>
334
-
</div>
335
-
</div>
336
-
<h2>{ window.AccountManager.Profile()?.username }</h2>
337
-
338
-
<Show when={window.AccountManager.Storage()?.isSyncing}>
339
-
<div class="storage-bar">
340
-
<div class="storage-bar-inner" style={{ width: ((window.AccountManager.Storage()!.used / window.AccountManager.Storage()!.total) * 100) + '%' }}></div>
341
-
</div>
342
-
343
-
<div>
344
-
{ bytesToFormatted(window.AccountManager.Storage()!.used, 0) } / { bytesToFormatted(window.AccountManager.Storage()!.total, 0) }<br /><br />
345
-
346
-
<span style={{ 'font-size': '10px' }}>Server Version: { window.AccountManager.Profile()?.serverVersion }</span>
347
-
</div>
348
-
</Show>
349
-
</div>
350
-
</div>
351
-
352
-
<div class="account-notice">To enable cloud storage or get more storage please contact "_phaz" on discord</div>
353
-
354
-
<div class="account-notice" style={{ display: 'flex' }}>
355
-
<Show when={false} fallback={ "We are deleting your photos, please leave this window open while we delete them." }>
356
-
<div class="button-danger" onClick={() => window.ConfirmationBoxManager.SetConfirmationBox("You are about to delete all your photos from the cloud, and disable syncing. This will NOT delete any local files.", async () => {
357
-
// TODO: Rework all of this
358
-
359
-
// props.setStorageInfo({ used: 0, storage: 0, sync: false });
360
-
// setDeletingPhotos(true);
361
-
362
-
// fetch('https://photos-cdn.phazed.xyz/api/v1/allphotos', {
363
-
// method: 'DELETE',
364
-
// headers: { auth: (await invoke('get_config_value_string', { key: 'token' }))! }
365
-
// })
366
-
// .then(data => data.json())
367
-
// .then(data => {
368
-
// console.log(data);
369
-
// setDeletingPhotos(false);
370
-
// })
371
-
})}>Delete All Photos.</div> <div>This deletes all photos stored in the cloud and disables syncing.</div>
372
-
</Show>
373
-
</div>
374
-
</Show>
375
-
</div>
376
359
</div>
377
360
378
-
<div class="slide-bar-tri"></div>
361
+
{/* <div class="slide-bar-tri"></div>
379
362
<div class="slide-bar">
380
363
<div class="inner-slide-bar" ref={( el ) => sliderBar = el}>
381
364
<div class="slider-dot"></div>
···
386
369
<div class="slider-text" onMouseDown={() => lastClickedButton = 0}>Program Settings</div>
387
370
<div class="slider-dot"></div>
388
371
<div class="slider-dot"></div>
389
-
<div class="slider-text" onMouseDown={() => lastClickedButton = 1}>Account Settings</div>
372
+
<div class="slider-text" onMouseDown={() => lastClickedButton = 1}>Sync Settings</div>
390
373
<div class="slider-dot"></div>
391
374
<div class="slider-dot"></div>
392
375
<div class="slider-dot"></div>
393
376
<div class="slider-dot"></div>
394
377
<div class="slider-dot"></div>
395
378
</div>
396
-
</div>
379
+
</div> */}
397
380
</div>
398
381
)
399
382
}
+43
-16
src/Components/Structs/Photo.ts
+43
-16
src/Components/Structs/Photo.ts
···
6
6
export class Photo{
7
7
path: string;
8
8
loaded: boolean = false;
9
+
loadingMeta: boolean = false;
9
10
loading: boolean = false;
10
11
metaLoaded: boolean = false;
11
12
image?: HTMLCanvasElement;
···
14
15
height?: number;
15
16
loadingRotate: number = 0;
16
17
metadata: any;
18
+
19
+
error: boolean = false;
17
20
18
21
frames: number = 0;
19
22
shown: boolean = false;
···
29
32
legacy: boolean = false;
30
33
index: number = 0;
31
34
35
+
splitPath: string[];
36
+
37
+
playerLayer: Photo | null = null;
38
+
environmentLayer: Photo | null = null;
39
+
isMultiLayer = false;
40
+
32
41
public onMetaLoaded: () => void = () => {};
33
42
34
43
constructor( path: string, isLegacy: boolean = false, i: number ){
···
37
46
this.index = i;
38
47
39
48
let split = this.path.split('_');
49
+
this.splitPath = split;
40
50
41
51
if(this.legacy)
42
52
this.dateString = split[2];
43
53
else
44
54
this.dateString = split[1];
45
55
56
+
let timeString;
57
+
if(this.legacy)
58
+
timeString = split[3];
59
+
else
60
+
timeString = split[2];
61
+
46
62
let splitDateString = this.dateString.split('-');
63
+
let splitTimeString = timeString.split('-');
47
64
48
65
this.date = new Date();
49
66
···
51
68
this.date.setMonth(parseInt(splitDateString[1]));
52
69
this.date.setDate(parseInt(splitDateString[2]));
53
70
54
-
let resSplit = split[3].split('x');
71
+
this.date.setHours(parseInt(splitTimeString[0]));
72
+
this.date.setMinutes(parseInt(splitTimeString[1]));
73
+
this.date.setSeconds(parseInt(splitTimeString[2]));
74
+
75
+
let resSplit;
76
+
if(this.legacy)
77
+
resSplit = split[0].split('x')
78
+
else
79
+
resSplit = split[3].split('x')
80
+
81
+
// let width = parseInt(resSplit[0]);
82
+
// let height = parseInt(resSplit[1]);
83
+
84
+
// if(!isNaN(width) || !isNaN(height)){
85
+
// this.width = width;
86
+
// this.height = height;
55
87
56
-
let width = parseInt(resSplit[0]);
57
-
let height = parseInt(resSplit[1]);
88
+
// let scale = Vars.PHOTO_HEIGHT / this.height;
58
89
59
-
if(!isNaN(width) || !isNaN(height)){
60
-
this.width = width;
61
-
this.height = height;
62
-
63
-
let scale = Vars.PHOTO_HEIGHT / this.height;
64
-
65
-
this.scaledWidth = this.width * scale;
66
-
this.scaledHeight = Vars.PHOTO_HEIGHT;
67
-
}
90
+
// this.scaledWidth = this.width * scale;
91
+
// this.scaledHeight = Vars.PHOTO_HEIGHT;
92
+
// }
68
93
}
69
94
70
95
loadMeta(){
96
+
this.loadingMeta = true;
71
97
invoke('load_photo_meta', { photo: this.path });
72
98
}
73
99
74
100
loadImage(){
75
-
if(this.loading || this.loaded || imagesLoading >= Vars.MAX_IMAGE_LOAD)return;
76
-
77
-
// this.loadMeta();
101
+
if(this.loadingMeta || this.loading || this.loaded || imagesLoading >= Vars.MAX_IMAGE_LOAD)return;
78
102
if(!this.metaLoaded)return this.loadMeta();
79
103
80
104
this.loading = true;
81
-
82
105
imagesLoading++;
83
106
84
107
this.image = document.createElement('canvas');
···
98
121
this.loading = false;
99
122
100
123
imagesLoading--;
124
+
}
125
+
126
+
this.imageEl.onerror = () => {
127
+
console.log('Cannot load image');
101
128
}
102
129
}
103
130
}
-15
src/Components/Structs/PhotoListElements/PhotoListPhoto.ts
-15
src/Components/Structs/PhotoListElements/PhotoListPhoto.ts
···
1
-
<<<<<<< HEAD
2
1
import { Photo } from "../Photo";
3
2
import { PhotoListElement } from "../PhotoListElement";
4
3
import { PhotoListElementType } from "../PhotoListElementType";
···
11
10
this.Type = PhotoListElementType.PHOTO;
12
11
this.Photo = photo;
13
12
}
14
-
=======
15
-
import { Photo } from "../Photo";
16
-
import { PhotoListElement } from "../PhotoListElement";
17
-
import { PhotoListElementType } from "../PhotoListElementType";
18
-
19
-
export class PhotoListPhoto extends PhotoListElement{
20
-
public Photo!: Photo;
21
-
22
-
constructor( photo: Photo ){
23
-
super();
24
-
this.Type = PhotoListElementType.PHOTO;
25
-
this.Photo = photo;
26
-
}
27
-
>>>>>>> e612756 (stuff)
28
13
}
+1
src/Components/Structs/PhotoMetadata.ts
+1
src/Components/Structs/PhotoMetadata.ts
+72
src/css/filters.css
+72
src/css/filters.css
···
1
+
2
+
.filter-options{
3
+
position: fixed;
4
+
top: 10px;
5
+
left: 10px;
6
+
}
7
+
8
+
.filter-container{
9
+
display: none;
10
+
position: fixed;
11
+
bottom: 0;
12
+
left: 0;
13
+
width: 100vw;
14
+
padding: 10px 200px;
15
+
background: rgba(85, 85, 85, 0.904);
16
+
transform: translateY(10px);
17
+
color: #fff;
18
+
text-align: center;
19
+
box-shadow: #0005 0 0 10px;
20
+
opacity: 0;
21
+
z-index: 150;
22
+
}
23
+
24
+
.filter-container > .filter-title{
25
+
font-size: 30px;
26
+
}
27
+
28
+
.filter-type-select{
29
+
display: flex;
30
+
justify-content: center;
31
+
align-items: center;
32
+
width: 75%;
33
+
margin: auto;
34
+
}
35
+
36
+
.filter-type-select > div{
37
+
width: 100%;
38
+
border: #fff 4px solid;
39
+
border-left: #fff 2px solid;
40
+
border-right: #fff 2px solid;
41
+
padding: 5px 0;
42
+
cursor: pointer;
43
+
user-select: none;
44
+
-webkit-user-select: none;
45
+
}
46
+
47
+
.filter-type-select > div:first-child{
48
+
border-left: #fff 4px solid;
49
+
border-radius: 10px 0 0 10px;
50
+
}
51
+
52
+
.filter-type-select > div:last-child{
53
+
border-right: #fff 4px solid;
54
+
border-radius: 0 10px 10px 0;
55
+
}
56
+
57
+
.filter-type-select > .selected-filter{
58
+
background: #00ccff55;
59
+
}
60
+
61
+
.filter-search{
62
+
margin-top: 10px;
63
+
padding: 5px;
64
+
border: #fff 4px solid;
65
+
border-radius: 10px;
66
+
background: #0008;
67
+
outline: none;
68
+
color: white;
69
+
font-size: 15px;
70
+
font-family: 'Rubik';
71
+
width: calc(75% - 18px);
72
+
}
+38
src/css/icons.css
+38
src/css/icons.css
···
1
+
.icon{
2
+
width: 40px;
3
+
height: 40px;
4
+
padding: 10px;
5
+
display: flex;
6
+
align-items: center;
7
+
justify-content: center;
8
+
height: 100%;
9
+
cursor: pointer;
10
+
user-select: none;
11
+
-webkit-user-select: none;
12
+
}
13
+
14
+
.icon-small{
15
+
display: flex;
16
+
align-items: center;
17
+
justify-content: center;
18
+
height: 100%;
19
+
}
20
+
21
+
.icon-label{
22
+
margin-top: -20px;
23
+
margin-right: -200px;
24
+
width: 200px;
25
+
color: white;
26
+
pointer-events: none;
27
+
transform: translate(20px, -9px);
28
+
opacity: 0;
29
+
transition: 0.25s;
30
+
user-select: none;
31
+
-webkit-user-select: none;
32
+
}
33
+
34
+
.icon:hover ~ .icon-label{
35
+
opacity: 1;
36
+
transform: translate(40px, -9px);
37
+
}
38
+
+24
src/css/list.css
+24
src/css/list.css
···
1
+
.photo-list{
2
+
width: 100%;
3
+
height: 100%;
4
+
position: fixed;
5
+
top: 0;
6
+
left: 0;
7
+
overflow: hidden;
8
+
}
9
+
10
+
.scroll-to-top{
11
+
position: fixed;
12
+
bottom: 10px;
13
+
right: 10px;
14
+
color: white;
15
+
width: 40px;
16
+
height: 40px;
17
+
cursor: pointer;
18
+
border-radius: 50%;
19
+
border: 2px solid white;
20
+
display: flex;
21
+
justify-content: center;
22
+
align-items: center;
23
+
z-index: 100;
24
+
}
+84
src/css/settings.css
+84
src/css/settings.css
···
1
+
.settings{
2
+
position: fixed;
3
+
top: 0;
4
+
left: 0;
5
+
width: 100%;
6
+
height: 100%;
7
+
background: rgba(0, 0, 0, 0.4);
8
+
}
9
+
10
+
.settings-container{
11
+
position: fixed;
12
+
top: 50px;
13
+
left: 0px;
14
+
width: 200%;
15
+
height: calc(100% - 100px);
16
+
display: flex;
17
+
}
18
+
19
+
.settings-close{
20
+
position: absolute;
21
+
top: 10px;
22
+
left: 10px;
23
+
z-index: 100;
24
+
cursor: pointer;
25
+
user-select: none;
26
+
width: 40px;
27
+
height: 40px;
28
+
}
29
+
30
+
.settings-block{
31
+
width: 50%;
32
+
height: 100%;
33
+
color: white;
34
+
text-align: center;
35
+
}
36
+
37
+
.selector{
38
+
padding: 10px 20px;
39
+
border-radius: 10px;
40
+
background: #000a;
41
+
display: inline-block;
42
+
margin: 10px;
43
+
}
44
+
45
+
.selector .selection-box{
46
+
height: 20px;
47
+
background: #777a;
48
+
margin: 5px -10px 0 -10px;
49
+
border-radius: 8px;
50
+
user-select: none;
51
+
-webkit-user-select: none;
52
+
cursor: pointer;
53
+
transition: 0.25s;
54
+
color: #fff1;
55
+
}
56
+
57
+
.selector .selection-box:hover{
58
+
height: 20px;
59
+
background: #777a;
60
+
margin: 5px -10px 0 -10px;
61
+
border-radius: 8px;
62
+
user-select: none;
63
+
-webkit-user-select: none;
64
+
cursor: pointer;
65
+
transition: 0.25s;
66
+
color: #fff5;
67
+
}
68
+
69
+
.selector input{
70
+
display: none;
71
+
}
72
+
73
+
.selector input:checked ~ label .selection-box{
74
+
background: rgba(0, 146, 204, 0.705);
75
+
color: #fff;
76
+
}
77
+
78
+
.path{
79
+
padding: 5px 10px;
80
+
background: #000a;
81
+
border-radius: 5px;
82
+
margin-left: 5px;
83
+
cursor: pointer;
84
+
}
+55
src/css/slide-bar.css
+55
src/css/slide-bar.css
···
1
+
.slide-bar{
2
+
position: fixed;
3
+
bottom: 0;
4
+
left: 0;
5
+
width: 100%;
6
+
height: 50px;
7
+
border-top: #aaa 1px solid;
8
+
mask-image: linear-gradient(to left, #0000 0%, #000 20%, #000 80%, #0000 100%);
9
+
background: #aaa2;
10
+
box-shadow: #000 0 0 10px;
11
+
overflow: hidden;
12
+
}
13
+
14
+
.inner-slide-bar{
15
+
display: flex;
16
+
height: 50px;
17
+
width: 200%;
18
+
color: white;
19
+
align-items: center;
20
+
cursor: pointer;
21
+
user-select: none;
22
+
-webkit-user-select: none;
23
+
}
24
+
25
+
.slider-dot{
26
+
width: 5px;
27
+
height: 5px;
28
+
border-radius: 5px;
29
+
background: #aaa;
30
+
margin: auto 25px;
31
+
}
32
+
33
+
.slider-text{
34
+
width: 200px;
35
+
text-align: center;
36
+
height: 50px;
37
+
display: flex;
38
+
justify-content: center;
39
+
align-items: center;
40
+
color: #aaa;
41
+
transition: 0.25s;
42
+
}
43
+
44
+
.slider-text:hover{
45
+
color: #fff;
46
+
}
47
+
48
+
.slide-bar-tri{
49
+
position: fixed;
50
+
bottom: 40px;
51
+
left: 50%;
52
+
transform: translateX(-50%);
53
+
border: transparent solid 5px;
54
+
border-top: #fff solid 5px;
55
+
}
+82
src/css/tray.css
+82
src/css/tray.css
···
1
+
.photo-tray{
2
+
position: fixed;
3
+
bottom: -300px;
4
+
left: 0;
5
+
width: 100%;
6
+
height: 300px;
7
+
background: rgba(43, 43, 43, 0.76);
8
+
backdrop-filter: blur(10px);
9
+
-webkit-backdrop-filter: blur(10px);
10
+
box-shadow: #0008 0 0 10px;
11
+
padding-bottom: 150px;
12
+
}
13
+
14
+
.photo-tray-close{
15
+
position: fixed;
16
+
bottom: 160px;
17
+
left: 50%;
18
+
transform: translate(-50%);
19
+
color: white;
20
+
background: rgba(43, 43, 43, 0.76);
21
+
backdrop-filter: blur(10px);
22
+
-webkit-backdrop-filter: blur(10px);
23
+
box-shadow: #0008 0 0 10px;
24
+
display: flex;
25
+
justify-content: center;
26
+
align-items: center;
27
+
height: 30px;
28
+
width: 50px;
29
+
border-radius: 50px;
30
+
cursor: pointer;
31
+
font-size: 12px;
32
+
user-select: none;
33
+
-webkit-user-select: none;
34
+
transition: 0.25s width;
35
+
}
36
+
37
+
.photo-tray-close:hover{
38
+
width: 70px;
39
+
}
40
+
41
+
.photo-tray-columns{
42
+
width: 100%;
43
+
height: 100%;
44
+
display: flex;
45
+
color: white;
46
+
text-align: center;
47
+
}
48
+
49
+
.photo-tray-column{
50
+
height: 100%;
51
+
width: 100%;
52
+
scrollbar-width: thin;
53
+
overflow-y: auto;
54
+
overflow-x: hidden;
55
+
mask-image: linear-gradient(to bottom, #0000 0%, #000 10%, #000 90%, #0000 100%);
56
+
}
57
+
58
+
.tray-heading{
59
+
font-weight: bold;
60
+
font-size: 20px;
61
+
}
62
+
63
+
.world-tags{
64
+
display: flex;
65
+
width: 100%;
66
+
justify-content: center;
67
+
align-items: center;
68
+
}
69
+
70
+
.world-tags div{
71
+
padding: 0 10px;
72
+
color: #bbb;
73
+
transition: 0.25s;
74
+
}
75
+
76
+
.world-tags div:hover{
77
+
color: #ddd;
78
+
}
79
+
80
+
.world-name{
81
+
font-size: 17px;
82
+
}
+193
src/css/viewer.css
+193
src/css/viewer.css
···
1
+
2
+
.photo-container{
3
+
width: 100%;
4
+
height: 100%;
5
+
}
6
+
7
+
.photo-container-bg{
8
+
width: 100%;
9
+
height: 100%;
10
+
position: fixed;
11
+
top: 0;
12
+
left: 0;
13
+
z-index: -1;
14
+
/* filter: blur(100px); */
15
+
}
16
+
17
+
.single-photo-container{
18
+
margin: 10px;
19
+
display: inline-block;
20
+
}
21
+
22
+
.photo-viewer{
23
+
justify-content: center;
24
+
width: 100%;
25
+
height: 100%;
26
+
position: fixed;
27
+
top: 0;
28
+
left: 0;
29
+
z-index: 5;
30
+
background: #0009;
31
+
opacity: 0;
32
+
display: none;
33
+
}
34
+
35
+
.photo-context-menu{
36
+
position: fixed;
37
+
top: 0;
38
+
left: 0;
39
+
padding: 10px;
40
+
border-radius: 5px;
41
+
background: rgba(43, 43, 43, 0.76);
42
+
color: #aaa;
43
+
box-shadow: #0005 0 0 10px;
44
+
opacity: 0;
45
+
}
46
+
47
+
.photo-context-menu > div{
48
+
padding: 2px 10px;
49
+
width: 100;
50
+
text-align: center;
51
+
transition: 0.1s;
52
+
}
53
+
54
+
.photo-context-menu > div:hover{
55
+
color: #fff;
56
+
cursor: pointer;
57
+
user-select: none;
58
+
-webkit-user-select: none;
59
+
}
60
+
61
+
.image-container{
62
+
max-width: none;
63
+
max-height: none;
64
+
background-size: contain !important;
65
+
background-repeat: no-repeat !important;
66
+
background-position: center !important;
67
+
opacity: 0;
68
+
}
69
+
70
+
.viewer-button{
71
+
color: white;
72
+
width: 30px;
73
+
height: 30px;
74
+
display: flex;
75
+
justify-content: center;
76
+
align-items: center;
77
+
border-radius: 50px;
78
+
font-size: 12px;
79
+
background: #8885;
80
+
user-select: none;
81
+
-webkit-user-select: none;
82
+
cursor: pointer;
83
+
z-index: 7;
84
+
background: rgba(43, 43, 43, 0.76);
85
+
}
86
+
87
+
.viewer-close{
88
+
position: fixed;
89
+
top: 10px;
90
+
right: 10px;
91
+
width: 35px;
92
+
height: 35px;
93
+
}
94
+
95
+
.prev-button{
96
+
transition: 0.25s;
97
+
position: fixed;
98
+
top: 50%;
99
+
left: 0;
100
+
color: white;
101
+
width: 50px;
102
+
height: 150px;
103
+
display: flex;
104
+
justify-content: center;
105
+
align-items: center;
106
+
transform: translateY(-50%);
107
+
background: rgba(255, 255, 255, 0.144);
108
+
border-radius: 0 15px 15px 0;
109
+
cursor: pointer;
110
+
user-select: none;
111
+
-webkit-user-select: none;
112
+
box-shadow: #000 0 0 10px;
113
+
}
114
+
115
+
.prev-button:hover{
116
+
background: rgba(255, 255, 255, 0.349);
117
+
}
118
+
119
+
.next-button{
120
+
transition: 0.25s;
121
+
position: fixed;
122
+
top: 50%;
123
+
right: 0;
124
+
color: white;
125
+
width: 50px;
126
+
height: 150px;
127
+
display: flex;
128
+
justify-content: center;
129
+
align-items: center;
130
+
transform: translateY(-50%);
131
+
background: rgba(255, 255, 255, 0.144);
132
+
border-radius: 15px 0 0 15px;
133
+
cursor: pointer;
134
+
user-select: none;
135
+
-webkit-user-select: none;
136
+
box-shadow: #000 0 0 10px;
137
+
}
138
+
139
+
.next-button:hover{
140
+
background: rgba(255, 255, 255, 0.349);
141
+
}
142
+
143
+
.control-buttons{
144
+
position: fixed;
145
+
bottom: 10px;
146
+
left: 50%;
147
+
transform: translateX(-50%);
148
+
display: flex;
149
+
}
150
+
151
+
.control-buttons div{
152
+
margin: 0 20px;
153
+
}
154
+
155
+
.copy-notif{
156
+
position: fixed;
157
+
top: 40px;
158
+
left: 50%;
159
+
color: white;
160
+
transform: translateX(-50%) translateY(-100px);
161
+
background: rgba(43, 43, 43, 0.76);
162
+
padding: 10px 40px;
163
+
backdrop-filter: blur(10px);
164
+
-webkit-backdrop-filter: blur(10px);
165
+
border-radius: 50px;
166
+
box-shadow: #000 0 0 10px;
167
+
z-index: 12;
168
+
opacity: 0;
169
+
pointer-events: none;
170
+
}
171
+
172
+
.photo-layer-manager{
173
+
background: rgba(43, 43, 43, 0.76);
174
+
color: #fff;
175
+
padding: 10px;
176
+
backdrop-filter: blur(10px);
177
+
position: fixed;
178
+
bottom: 10px;
179
+
left: 10px;
180
+
border-radius: 10px;
181
+
}
182
+
183
+
.photo-layer-manager-layer{
184
+
cursor: pointer;
185
+
-webkit-user-select: none;
186
+
user-select: none;
187
+
padding: 5px 20px;
188
+
transition: 0.1s;
189
+
}
190
+
191
+
.photo-layer-manager-layer:hover{
192
+
color: #bbb;
193
+
}
+9
-6
src/index.tsx
+9
-6
src/index.tsx
···
3
3
4
4
declare global{
5
5
interface Window {
6
-
AccountManager: AccountManager;
7
6
LoadingManager: LoadingManager;
8
7
PhotoManager: PhotoManager;
9
8
ConfirmationBoxManager: ConfirmationBoxManager;
10
9
PhotoViewerManager: PhotoViewerManager;
11
10
WorldCacheManager: WorldCacheManager;
12
11
PhotoListRenderingManager: PhotoListRenderingManager;
13
-
SyncManager: SyncManager;
14
12
ViewManager: ViewManager;
15
13
16
14
CloseAllPopups: (() => void)[];
···
23
21
24
22
window.oncontextmenu = ( e ) => e.preventDefault();
25
23
24
+
import './css/icons.css';
25
+
import './css/tray.css';
26
+
import './css/settings.css';
27
+
import './css/slide-bar.css';
28
+
import './css/viewer.css';
29
+
import './css/filters.css';
30
+
import './css/list.css';
31
+
26
32
import "./styles.css";
33
+
27
34
import App from "./Components/App";
28
35
import { invoke } from "@tauri-apps/api/core";
29
36
30
-
import { AccountManager } from "./Components/Managers/AccountManager";
31
37
import { LoadingManager } from "./Components/Managers/LoadingManager";
32
38
import { PhotoManager } from "./Components/Managers/PhotoManager";
33
39
import { ConfirmationBoxManager } from "./Components/Managers/ConfirmationBoxManager";
34
40
import { PhotoViewerManager } from "./Components/Managers/PhotoViewerManager";
35
41
import { WorldCacheManager } from "./Components/Managers/WorldCacheManager";
36
42
import { PhotoListRenderingManager } from "./Components/Managers/PhotoListRenderingManager";
37
-
import { SyncManager } from "./Components/Managers/SyncManager";
38
43
import { ViewManager } from "./Components/Managers/ViewManager";
39
44
40
-
window.AccountManager = new AccountManager();
41
45
window.LoadingManager = new LoadingManager();
42
46
window.PhotoManager = new PhotoManager();
43
47
window.ConfirmationBoxManager = new ConfirmationBoxManager();
44
48
window.PhotoViewerManager = new PhotoViewerManager();
45
49
window.WorldCacheManager = new WorldCacheManager();
46
50
window.PhotoListRenderingManager = new PhotoListRenderingManager();
47
-
window.SyncManager = new SyncManager();
48
51
window.ViewManager = new ViewManager();
49
52
50
53
(async () => {
+11
-768
src/styles.css
+11
-768
src/styles.css
···
7
7
background: #000;
8
8
margin: 0;
9
9
font-family: Rubik, 'Courier New';
10
+
overflow: hidden;
11
+
}
12
+
13
+
* {
14
+
box-sizing: border-box;
10
15
}
11
16
12
17
.loading{
···
24
29
align-items: center;
25
30
}
26
31
27
-
.navbar{
28
-
background: #555a;
29
-
position: fixed;
30
-
top: 0;
31
-
left: 0;
32
-
width: 100%;
33
-
margin-top: -50px;
34
-
padding-top: 50px;
35
-
height: 50px;
36
-
display: flex;
37
-
backdrop-filter: blur(10px);
38
-
-webkit-backdrop-filter: blur(10px);
39
-
z-index: 10;
40
-
box-shadow: #000 0 0 10px;
41
-
}
42
-
43
-
.navbar .tabs{
44
-
width: calc(100% - 450px);
45
-
height: 100%;
46
-
display: flex;
47
-
}
48
-
49
-
.navbar .account{
50
-
width: 100px;
51
-
height: 100%;
52
-
display: flex;
53
-
justify-content: center;
54
-
align-items: center;
55
-
transition: 0.1s;
56
-
cursor: pointer;
57
-
user-select: none;
58
-
-webkit-user-select: none;
59
-
}
60
-
61
-
.navbar .account:hover{
62
-
background: #0005;
63
-
}
64
-
65
-
.navbar .control-lights{
66
-
width: 150px;
67
-
height: 50px;
68
-
display: flex;
69
-
justify-content: center;
70
-
align-items: center;
71
-
}
72
-
73
-
.control-lights .light{
74
-
user-select: none;
75
-
-webkit-user-select: none;
76
-
font-size: 20px;
77
-
text-align: center;
78
-
color: white;
79
-
width: 100%;
80
-
cursor: pointer;
81
-
display: flex;
82
-
justify-content: center;
83
-
align-items: center;
84
-
height: 50px;
85
-
filter: invert(100%);
86
-
}
87
-
88
-
.control-lights .light:hover{
89
-
background: #fff5;
90
-
}
91
-
92
-
.control-lights .light img{
93
-
width: 25%;
94
-
}
95
-
96
-
.icon{
97
-
width: 15px;
98
-
filter: invert(100%);
99
-
display: flex;
100
-
align-items: center;
101
-
justify-content: center;
102
-
height: 100%;
103
-
}
104
-
105
-
.icon-label{
106
-
margin-top: -20px;
107
-
margin-right: -200px;
108
-
width: 200px;
109
-
color: white;
110
-
pointer-events: none;
111
-
transform: translate(40px, -19px);
112
-
opacity: 0;
113
-
transition: 0.25s;
114
-
user-select: none;
115
-
-webkit-user-select: none;
116
-
}
117
-
118
-
.icon:hover ~ .icon-label{
119
-
opacity: 1;
120
-
transform: translate(60px, -19px);
121
-
}
122
-
123
-
.user-pfp{
124
-
width: 35px;
125
-
height: 35px;
126
-
background-size: cover !important;
127
-
background-position: center !important;
128
-
border-radius: 50%;
129
-
margin-right: 10px;
130
-
}
131
-
132
-
.account-dropdown{
133
-
font-size: 20px;
134
-
color: white;
135
-
}
136
-
137
-
.nav-tab{
138
-
color: white;
139
-
width: 150px;
140
-
height: 100%;
141
-
transition: 0.1s;
142
-
cursor: pointer;
143
-
user-select: none;
144
-
-webkit-user-select: none;
145
-
justify-content: center;
146
-
align-items: center;
147
-
display: flex;
148
-
}
149
-
150
-
.nav-tab:hover{
151
-
background: #0005;
152
-
}
153
-
154
-
.dropdown{
155
-
position: fixed;
156
-
right: 125px;
157
-
top: 60px;
158
-
background: #555a;
159
-
height: 60px;
160
-
width: 150px;
161
-
border-radius: 5px;
162
-
backdrop-filter: blur(5px);
163
-
z-index: 10;
164
-
}
165
-
166
-
.dropdown-button{
167
-
width: 100%;
168
-
text-align: center;
169
-
padding: 5.5px 0;
170
-
color: #aaa;
171
-
cursor: pointer;
172
-
user-select: none;
173
-
-webkit-user-select: none;
174
-
transition: 0.1s;
175
-
}
176
-
177
-
.dropdown-button:hover{
178
-
color: #fff;
179
-
}
180
-
181
-
.photo-list{
182
-
width: 100%;
183
-
height: 100%;
184
-
position: fixed;
185
-
top: 0;
186
-
left: 0;
187
-
overflow: hidden;
188
-
}
189
-
190
-
.filter-options{
191
-
position: fixed;
192
-
top: 55px;
193
-
left: 5px;
194
-
width: 40px;
195
-
height: 50px;
196
-
}
197
-
198
-
.filter-options img{
199
-
cursor: pointer;
200
-
user-select: none;
201
-
-webkit-user-select: none;
202
-
}
203
-
204
-
.filter-container{
205
-
display: none;
206
-
position: fixed;
207
-
bottom: 0;
208
-
left: 50%;
209
-
width: 600px;
210
-
height: 83px;
211
-
transform: translate(-50%);
212
-
padding: 10px;
213
-
border-radius: 5px 5px 0 0;
214
-
backdrop-filter: blur(5px);
215
-
-webkit-backdrop-filter: blur(5px);
216
-
background: #555a;
217
-
color: #fff;
218
-
text-align: center;
219
-
box-shadow: #0005 0 0 10px;
220
-
opacity: 0;
221
-
}
222
-
223
-
.filter-container > .filter-title{
224
-
font-size: 30px;
225
-
}
226
-
227
-
.filter-type-select{
228
-
display: flex;
229
-
justify-content: center;
230
-
align-items: center;
231
-
width: 75%;
232
-
margin: auto;
233
-
}
234
-
235
-
.filter-type-select > div{
236
-
width: 100%;
237
-
border: #fff 4px solid;
238
-
border-left: #fff 2px solid;
239
-
border-right: #fff 2px solid;
240
-
padding: 5px 0;
241
-
cursor: pointer;
242
-
user-select: none;
243
-
-webkit-user-select: none;
244
-
}
245
-
246
-
.filter-type-select > div:first-child{
247
-
border-left: #fff 4px solid;
248
-
border-radius: 10px 0 0 10px;
249
-
}
250
-
251
-
.filter-type-select > div:last-child{
252
-
border-right: #fff 4px solid;
253
-
border-radius: 0 10px 10px 0;
254
-
}
255
-
256
-
.filter-type-select > .selected-filter{
257
-
background: #00ccff55;
258
-
}
259
-
260
-
.filter-search{
261
-
margin-top: 10px;
262
-
padding: 5px;
263
-
border: #fff 4px solid;
264
-
border-radius: 10px;
265
-
background: #0008;
266
-
outline: none;
267
-
color: white;
268
-
font-size: 15px;
269
-
font-family: 'Rubik';
270
-
width: calc(75% - 18px);
271
-
}
272
-
273
-
.date-list{
274
-
mask-image: linear-gradient(to bottom, #0000, #000, #0000);
275
-
overflow: auto;
276
-
scrollbar-width: thin;
277
-
height: calc(100% - 100px);
278
-
padding: 50px 0;
279
-
}
280
-
281
-
.date-list-date{
282
-
padding: 10px;
283
-
user-select: none;
284
-
-webkit-user-select: none;
285
-
cursor: pointer;
286
-
transition: 0.1s;
287
-
border-radius: 10px;
288
-
}
289
-
290
-
.date-list-date:hover{
291
-
background: #0005;
292
-
box-shadow: inset #0005 0 0 10px;
293
-
}
294
-
295
-
.photo-tree-loading{
296
-
position: fixed;
297
-
top: 0;
298
-
left: 0;
299
-
width: 100%;
300
-
height: 100%;
301
-
display: flex;
302
-
justify-content: center;
303
-
align-items: center;
304
-
color: white;
305
-
font-size: 20px;
306
-
}
307
-
308
-
.loading-bar{
309
-
width: 500px;
310
-
height: 8px;
311
-
border-radius: 12px;
312
-
background: #333;
313
-
margin-top: 10px;
314
-
padding: 2px;
315
-
}
316
-
317
-
.loading-bar-inner{
318
-
width: 0%;
319
-
height: 8px;
320
-
border-radius: 18px;
321
-
background: #00ccff;
322
-
}
323
-
324
-
.photo-container{
325
-
width: 100%;
326
-
height: 100%;
327
-
}
328
-
329
-
.photo-container-bg{
330
-
width: 100%;
331
-
height: 100%;
332
-
position: fixed;
333
-
top: 0;
334
-
left: 0;
335
-
z-index: -1;
336
-
filter: blur(100px);
337
-
-webkit-filter: blur(100px);
338
-
}
339
-
340
-
.single-photo-container{
341
-
margin: 10px;
342
-
display: inline-block;
343
-
}
344
-
345
-
.photo-viewer{
346
-
justify-content: center;
347
-
width: 100%;
348
-
height: 100%;
349
-
position: fixed;
350
-
top: 0;
351
-
left: 0;
352
-
z-index: 5;
353
-
background: #0009;
354
-
backdrop-filter: blur(75px);
355
-
-webkit-backdrop-filter: blur(75px);
356
-
opacity: 0;
357
-
display: none;
358
-
}
359
-
360
-
.photo-context-menu{
361
-
position: fixed;
362
-
top: 0;
363
-
left: 0;
364
-
padding: 10px;
365
-
border-radius: 5px;
366
-
backdrop-filter: blur(5px);
367
-
-webkit-backdrop-filter: blur(5px);
368
-
background: #555a;
369
-
color: #aaa;
370
-
box-shadow: #0005 0 0 10px;
371
-
opacity: 0;
372
-
}
373
-
374
-
.photo-context-menu > div{
375
-
padding: 2px 10px;
376
-
width: calc(100% - 10px);
377
-
text-align: center;
378
-
transition: 0.1s;
379
-
}
380
-
381
-
.photo-context-menu > div:hover{
382
-
color: #fff;
383
-
cursor: pointer;
384
-
user-select: none;
385
-
-webkit-user-select: none;
386
-
}
387
-
388
-
.image-container{
389
-
height: 100%;
390
-
background-size: contain !important;
391
-
background-repeat: no-repeat !important;
392
-
background-position: center !important;
393
-
opacity: 0;
394
-
}
395
-
396
-
.viewer-button{
397
-
color: white;
398
-
width: 30px;
399
-
height: 30px;
400
-
display: flex;
401
-
justify-content: center;
402
-
align-items: center;
403
-
border-radius: 50px;
404
-
font-size: 12px;
405
-
background: #8885;
406
-
backdrop-filter: blur(10px);
407
-
-webkit-backdrop-filter: blur(10px);
408
-
user-select: none;
409
-
-webkit-user-select: none;
410
-
cursor: pointer;
411
-
z-index: 7;
412
-
box-shadow: #0008 0 0 10px;
413
-
}
414
-
415
-
.viewer-close{
416
-
position: fixed;
417
-
top: 10px;
418
-
right: 10px;
419
-
width: 35px;
420
-
height: 35px;
421
-
}
422
-
423
-
.prev-button{
424
-
transition: 0.25s;
425
-
position: fixed;
426
-
top: 50%;
427
-
left: 0;
428
-
color: white;
429
-
width: 50px;
430
-
height: 150px;
431
-
display: flex;
432
-
justify-content: center;
433
-
align-items: center;
434
-
transform: translateY(-50%);
435
-
background: rgba(255, 255, 255, 0.144);
436
-
backdrop-filter: blur(50px);
437
-
-webkit-backdrop-filter: blur(50px);
438
-
border-radius: 0 15px 15px 0;
439
-
cursor: pointer;
440
-
user-select: none;
441
-
-webkit-user-select: none;
442
-
box-shadow: #000 0 0 10px;
443
-
}
444
-
445
-
.prev-button:hover{
446
-
background: rgba(255, 255, 255, 0.349);
447
-
}
448
-
449
-
.next-button{
450
-
transition: 0.25s;
451
-
position: fixed;
452
-
top: 50%;
453
-
right: 0;
454
-
color: white;
455
-
width: 50px;
456
-
height: 150px;
457
-
display: flex;
458
-
justify-content: center;
459
-
align-items: center;
460
-
transform: translateY(-50%);
461
-
background: rgba(255, 255, 255, 0.144);
462
-
backdrop-filter: blur(50px);
463
-
-webkit-backdrop-filter: blur(50px);
464
-
border-radius: 15px 0 0 15px;
465
-
cursor: pointer;
466
-
user-select: none;
467
-
-webkit-user-select: none;
468
-
box-shadow: #000 0 0 10px;
469
-
}
470
-
471
-
.next-button:hover{
472
-
background: rgba(255, 255, 255, 0.349);
473
-
}
474
-
475
-
.reload-photos{
476
-
position: fixed;
477
-
top: 70px;
478
-
right: 20px;
479
-
color: white;
480
-
user-select: none;
481
-
-webkit-user-select: none;
482
-
cursor: pointer;
483
-
opacity: 0;
484
-
}
485
-
486
32
.confirmation-box{
487
33
position: fixed;
488
34
top: 0;
···
490
36
width: 100%;
491
37
height: 100%;
492
38
z-index: 15;
493
-
background: #0005;
39
+
background: rgba(0, 0, 0, 0.76);
494
40
transition: 0.25s;
495
-
backdrop-filter: blur(10px);
496
-
-webkit-backdrop-filter: blur(10px);
497
41
}
498
42
499
43
.confirmation-box-container{
···
553
97
box-shadow: #000a inset 0 0 10px;
554
98
}
555
99
556
-
.control-buttons{
557
-
position: fixed;
558
-
bottom: 10px;
559
-
left: 50%;
560
-
transform: translateX(-50%);
561
-
display: flex;
562
-
}
563
-
564
-
.control-buttons div{
565
-
margin: 0 20px;
100
+
img{
101
+
max-width: 100%;
102
+
max-height: 100%;
566
103
}
567
104
568
-
.copy-notif{
105
+
.error-notif{
569
106
position: fixed;
570
107
top: 40px;
571
108
left: 50%;
572
109
color: white;
573
110
transform: translateX(-50%) translateY(-100px);
574
-
background: #8885;
111
+
background: rgba(43, 43, 43, 0.76);
575
112
padding: 10px 40px;
576
113
backdrop-filter: blur(10px);
577
114
-webkit-backdrop-filter: blur(10px);
···
580
117
z-index: 12;
581
118
opacity: 0;
582
119
pointer-events: none;
583
-
}
584
-
585
-
.photo-tray{
586
-
position: fixed;
587
-
bottom: -150px;
588
-
left: 0;
589
-
width: 100%;
590
-
height: 150px;
591
-
background: #7778;
592
-
backdrop-filter: blur(10px);
593
-
-webkit-backdrop-filter: blur(10px);
594
-
box-shadow: #0008 0 0 10px;
595
-
padding-bottom: 150px;
596
-
margin-bottom: -150px;
597
-
}
598
-
599
-
.photo-tray-close{
600
-
position: fixed;
601
-
bottom: 160px;
602
-
left: 50%;
603
-
transform: translate(-50%);
604
-
color: white;
605
-
background: #8885;
606
-
backdrop-filter: blur(10px);
607
-
-webkit-backdrop-filter: blur(10px);
608
-
box-shadow: #0008 0 0 10px;
609
-
display: flex;
610
-
justify-content: center;
611
-
align-items: center;
612
-
height: 30px;
613
-
width: 50px;
614
-
border-radius: 50px;
615
-
cursor: pointer;
616
-
font-size: 12px;
617
-
user-select: none;
618
-
-webkit-user-select: none;
619
-
transition: 0.25s width;
620
-
}
621
-
622
-
.photo-tray-close:hover{
623
-
width: 70px;
624
-
}
625
-
626
-
.photo-tray-columns{
627
-
width: 100%;
628
-
height: 100%;
629
-
display: flex;
630
-
color: white;
631
-
text-align: center;
632
-
}
633
-
634
-
.photo-tray-column{
635
-
height: 100%;
636
-
width: 100%;
637
-
scrollbar-width: thin;
638
-
overflow-y: auto;
639
-
overflow-x: hidden;
640
-
mask-image: linear-gradient(to bottom, #0000 0%, #000 10%, #000 90%, #0000 100%);
641
-
}
642
-
643
-
.tray-heading{
644
-
font-weight: bold;
645
-
font-size: 20px;
646
-
}
647
-
648
-
.world-tags{
649
-
display: flex;
650
-
width: 100%;
651
-
justify-content: center;
652
-
align-items: center;
653
-
}
654
-
655
-
.world-tags div{
656
-
padding: 0 10px;
657
-
color: #bbb;
658
-
transition: 0.25s;
659
-
}
660
-
661
-
.world-tags div:hover{
662
-
color: #ddd;
663
-
}
664
-
665
-
.world-name{
666
-
font-size: 17px;
667
-
}
668
-
669
-
.settings{
670
-
position: fixed;
671
-
top: 0;
672
-
left: 0;
673
-
width: 100%;
674
-
height: 100%;
675
-
background: rgba(0, 0, 0, 0.4);
676
-
backdrop-filter: blur(100px);
677
-
-webkit-backdrop-filter: blur(100px);
678
-
}
679
-
680
-
.slide-bar{
681
-
position: fixed;
682
-
bottom: 0;
683
-
left: 0;
684
-
width: 100%;
685
-
height: 50px;
686
-
border-top: #aaa 1px solid;
687
-
overflow-x: hidden;
688
-
mask-image: linear-gradient(to left, #0000 0%, #000 20%, #000 80%, #0000 100%);
689
-
background: #aaa2;
690
-
box-shadow: #000 0 0 10px;
691
-
}
692
-
693
-
.inner-slide-bar{
694
-
display: flex;
695
-
height: 50px;
696
-
width: 200%;
697
-
color: white;
698
-
align-items: center;
699
-
cursor: pointer;
700
-
user-select: none;
701
-
-webkit-user-select: none;
702
-
}
703
-
704
-
.slider-dot{
705
-
width: 5px;
706
-
height: 5px;
707
-
border-radius: 5px;
708
-
background: #aaa;
709
-
margin: auto 25px;
710
-
}
711
-
712
-
.slider-text{
713
-
width: 200px;
714
-
text-align: center;
715
-
height: 50px;
716
-
display: flex;
717
-
justify-content: center;
718
-
align-items: center;
719
-
color: #aaa;
720
-
transition: 0.25s;
721
-
}
722
-
723
-
.slider-text:hover{
724
-
color: #fff;
725
-
}
726
-
727
-
.slide-bar-tri{
728
-
position: fixed;
729
-
bottom: 40px;
730
-
left: 50%;
731
-
transform: translateX(-50%);
732
-
border: transparent solid 5px;
733
-
border-top: #fff solid 5px;
734
-
}
735
-
736
-
.settings-container{
737
-
position: fixed;
738
-
top: 50px;
739
-
left: 0px;
740
-
width: 200%;
741
-
height: calc(100% - 100px);
742
-
display: flex;
743
-
}
744
-
745
-
.settings-block{
746
-
width: 50%;
747
-
height: 100%;
748
-
color: white;
749
-
text-align: center;
750
-
}
751
-
752
-
.selector{
753
-
padding: 10px 20px;
754
-
border-radius: 10px;
755
-
background: #000a;
756
-
display: inline-block;
757
-
margin: 10px;
758
-
}
759
-
760
-
.selector .selection-box{
761
-
height: 20px;
762
-
background: #777a;
763
-
margin: 5px -10px 0 -10px;
764
-
border-radius: 8px;
765
-
user-select: none;
766
-
-webkit-user-select: none;
767
-
cursor: pointer;
768
-
transition: 0.25s;
769
-
color: #fff1;
770
-
}
771
-
772
-
.selector .selection-box:hover{
773
-
height: 20px;
774
-
background: #777a;
775
-
margin: 5px -10px 0 -10px;
776
-
border-radius: 8px;
777
-
user-select: none;
778
-
-webkit-user-select: none;
779
-
cursor: pointer;
780
-
transition: 0.25s;
781
-
color: #fff5;
782
-
}
783
-
784
-
.selector input{
785
-
display: none;
786
-
}
787
-
788
-
.selector input:checked ~ label .selection-box{
789
-
background: rgba(0, 146, 204, 0.705);
790
-
color: #fff;
791
-
}
792
-
793
-
.path{
794
-
padding: 5px 10px;
795
-
background: #000a;
796
-
border-radius: 5px;
797
-
margin-left: 5px;
798
-
cursor: pointer;
799
-
}
800
-
801
-
.scroll-to-top{
802
-
position: fixed;
803
-
bottom: 10px;
804
-
right: 10px;
805
-
color: white;
806
-
width: 40px;
807
-
height: 40px;
808
-
cursor: pointer;
809
-
border-radius: 50%;
810
-
border: 2px solid white;
811
-
display: flex;
812
-
justify-content: center;
813
-
align-items: center;
814
-
}
815
-
816
-
.account-profile{
817
-
margin: auto;
818
-
width: 50%;
819
-
height: 200px;
820
-
display: flex;
821
-
}
822
-
823
-
.account-pfp{
824
-
width: 200px;
825
-
height: 200px;
826
-
background-position: center !important;
827
-
background-size: cover !important;
828
-
border-radius: 50%;
829
-
box-shadow: #0005 0 0 10px;
830
-
position: relative;
831
-
z-index: 10;
832
-
}
833
-
834
-
.account-desc{
835
-
width: calc(100% - 200px);
836
-
padding-left: 100px;
837
-
height: 150px;
838
-
margin: 25px 0;
839
-
margin-left: -100px;
840
-
background: #0009;
841
-
border-radius: 10px;
842
-
box-shadow: #0005 0 0 10px;
843
-
}
844
-
845
-
.storage-bar{
846
-
width: calc(100% - 20px);
847
-
height: 10px;
848
-
margin-left: 10px;
849
-
background: #555;
850
-
border-radius: 10px;
851
-
display: flex;
852
-
justify-content: left;
853
-
align-items: center;
854
-
margin-bottom: 2px;
855
-
}
856
-
857
-
.storage-bar-inner{
858
-
margin: 2px;
859
-
height: 6px;
860
-
background: #00ccff;
861
-
border-radius: 10px;
862
-
}
863
-
864
-
.account-notice{
865
-
background: #0007;
866
-
border-radius: 5px;
867
-
box-shadow: #0005 0 0 10px;
868
-
padding: 10px;
869
-
margin: auto;
870
-
width: calc(50% - 20px);
871
-
margin-top: 25px;
872
-
}
873
-
874
-
img{
875
-
max-width: 100%;
876
-
max-height: 100%;
877
120
}
+971
-974
src-tauri/Cargo.lock
+971
-974
src-tauri/Cargo.lock
···
3
3
version = 4
4
4
5
5
[[package]]
6
-
name = "addr2line"
7
-
version = "0.24.2"
8
-
source = "registry+https://github.com/rust-lang/crates.io-index"
9
-
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
6
+
name = "VRChatPhotoManager"
7
+
version = "0.2.7"
10
8
dependencies = [
11
-
"gimli",
9
+
"arboard",
10
+
"dirs",
11
+
"fast_image_resize",
12
+
"image",
13
+
"mslnk",
14
+
"notify",
15
+
"open",
16
+
"regex",
17
+
"reqwest",
18
+
"serde",
19
+
"serde_json",
20
+
"tauri",
21
+
"tauri-build",
22
+
"tauri-plugin-http",
23
+
"tauri-plugin-process",
24
+
"tauri-plugin-shell",
25
+
"tauri-plugin-single-instance",
12
26
]
13
27
14
28
[[package]]
···
19
33
20
34
[[package]]
21
35
name = "aho-corasick"
22
-
version = "1.1.3"
36
+
version = "1.1.4"
23
37
source = "registry+https://github.com/rust-lang/crates.io-index"
24
-
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
38
+
checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
25
39
dependencies = [
26
40
"memchr",
27
41
]
···
51
65
]
52
66
53
67
[[package]]
54
-
name = "android-tzdata"
55
-
version = "0.1.1"
56
-
source = "registry+https://github.com/rust-lang/crates.io-index"
57
-
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
58
-
59
-
[[package]]
60
68
name = "android_system_properties"
61
69
version = "0.1.5"
62
70
source = "registry+https://github.com/rust-lang/crates.io-index"
···
67
75
68
76
[[package]]
69
77
name = "anyhow"
70
-
version = "1.0.98"
78
+
version = "1.0.100"
71
79
source = "registry+https://github.com/rust-lang/crates.io-index"
72
-
checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
80
+
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
73
81
74
82
[[package]]
75
83
name = "arbitrary"
76
-
version = "1.4.1"
84
+
version = "1.4.2"
77
85
source = "registry+https://github.com/rust-lang/crates.io-index"
78
-
checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
86
+
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
87
+
88
+
[[package]]
89
+
name = "arboard"
90
+
version = "3.6.1"
91
+
source = "registry+https://github.com/rust-lang/crates.io-index"
92
+
checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf"
93
+
dependencies = [
94
+
"clipboard-win",
95
+
"image",
96
+
"log",
97
+
"objc2 0.6.3",
98
+
"objc2-app-kit",
99
+
"objc2-core-foundation",
100
+
"objc2-core-graphics",
101
+
"objc2-foundation 0.3.2",
102
+
"parking_lot",
103
+
"percent-encoding",
104
+
"windows-sys 0.60.2",
105
+
"x11rb",
106
+
]
79
107
80
108
[[package]]
81
109
name = "arg_enum_proc_macro"
···
85
113
dependencies = [
86
114
"proc-macro2",
87
115
"quote",
88
-
"syn 2.0.104",
116
+
"syn 2.0.109",
89
117
]
90
118
91
119
[[package]]
···
120
148
121
149
[[package]]
122
150
name = "async-executor"
123
-
version = "1.13.2"
151
+
version = "1.13.3"
124
152
source = "registry+https://github.com/rust-lang/crates.io-index"
125
-
checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa"
153
+
checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8"
126
154
dependencies = [
127
155
"async-task",
128
156
"concurrent-queue",
···
133
161
]
134
162
135
163
[[package]]
136
-
name = "async-fs"
137
-
version = "2.1.3"
138
-
source = "registry+https://github.com/rust-lang/crates.io-index"
139
-
checksum = "09f7e37c0ed80b2a977691c47dae8625cfb21e205827106c64f7c588766b2e50"
140
-
dependencies = [
141
-
"async-lock",
142
-
"blocking",
143
-
"futures-lite",
144
-
]
145
-
146
-
[[package]]
147
164
name = "async-io"
148
-
version = "2.5.0"
165
+
version = "2.6.0"
149
166
source = "registry+https://github.com/rust-lang/crates.io-index"
150
-
checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca"
167
+
checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
151
168
dependencies = [
152
-
"async-lock",
169
+
"autocfg",
153
170
"cfg-if",
154
171
"concurrent-queue",
155
172
"futures-io",
···
158
175
"polling",
159
176
"rustix",
160
177
"slab",
161
-
"windows-sys 0.60.2",
178
+
"windows-sys 0.61.2",
162
179
]
163
180
164
181
[[package]]
165
182
name = "async-lock"
166
-
version = "3.4.0"
183
+
version = "3.4.1"
167
184
source = "registry+https://github.com/rust-lang/crates.io-index"
168
-
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
185
+
checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc"
169
186
dependencies = [
170
187
"event-listener",
171
188
"event-listener-strategy",
···
174
191
175
192
[[package]]
176
193
name = "async-process"
177
-
version = "2.4.0"
194
+
version = "2.5.0"
178
195
source = "registry+https://github.com/rust-lang/crates.io-index"
179
-
checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00"
196
+
checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
180
197
dependencies = [
181
198
"async-channel",
182
199
"async-io",
···
198
215
dependencies = [
199
216
"proc-macro2",
200
217
"quote",
201
-
"syn 2.0.104",
218
+
"syn 2.0.109",
202
219
]
203
220
204
221
[[package]]
205
222
name = "async-signal"
206
-
version = "0.2.12"
223
+
version = "0.2.13"
207
224
source = "registry+https://github.com/rust-lang/crates.io-index"
208
-
checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1"
225
+
checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c"
209
226
dependencies = [
210
227
"async-io",
211
228
"async-lock",
···
216
233
"rustix",
217
234
"signal-hook-registry",
218
235
"slab",
219
-
"windows-sys 0.60.2",
236
+
"windows-sys 0.61.2",
220
237
]
221
238
222
239
[[package]]
···
227
244
228
245
[[package]]
229
246
name = "async-trait"
230
-
version = "0.1.88"
247
+
version = "0.1.89"
231
248
source = "registry+https://github.com/rust-lang/crates.io-index"
232
-
checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
249
+
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
233
250
dependencies = [
234
251
"proc-macro2",
235
252
"quote",
236
-
"syn 2.0.104",
253
+
"syn 2.0.109",
237
254
]
238
255
239
256
[[package]]
···
273
290
274
291
[[package]]
275
292
name = "av1-grain"
276
-
version = "0.2.4"
293
+
version = "0.2.5"
277
294
source = "registry+https://github.com/rust-lang/crates.io-index"
278
-
checksum = "4f3efb2ca85bc610acfa917b5aaa36f3fcbebed5b3182d7f877b02531c4b80c8"
295
+
checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8"
279
296
dependencies = [
280
297
"anyhow",
281
298
"arrayvec",
···
287
304
288
305
[[package]]
289
306
name = "avif-serialize"
290
-
version = "0.8.5"
307
+
version = "0.8.6"
291
308
source = "registry+https://github.com/rust-lang/crates.io-index"
292
-
checksum = "2ea8ef51aced2b9191c08197f55450d830876d9933f8f48a429b354f1d496b42"
309
+
checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f"
293
310
dependencies = [
294
311
"arrayvec",
295
312
]
296
313
297
314
[[package]]
298
-
name = "backtrace"
299
-
version = "0.3.75"
300
-
source = "registry+https://github.com/rust-lang/crates.io-index"
301
-
checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
302
-
dependencies = [
303
-
"addr2line",
304
-
"cfg-if",
305
-
"libc",
306
-
"miniz_oxide",
307
-
"object",
308
-
"rustc-demangle",
309
-
"windows-targets 0.52.6",
310
-
]
311
-
312
-
[[package]]
313
315
name = "base64"
314
316
version = "0.21.7"
315
317
source = "registry+https://github.com/rust-lang/crates.io-index"
···
323
325
324
326
[[package]]
325
327
name = "bit_field"
326
-
version = "0.10.2"
328
+
version = "0.10.3"
327
329
source = "registry+https://github.com/rust-lang/crates.io-index"
328
-
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
330
+
checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6"
329
331
330
332
[[package]]
331
333
name = "bitflags"
···
335
337
336
338
[[package]]
337
339
name = "bitflags"
338
-
version = "2.9.1"
340
+
version = "2.10.0"
339
341
source = "registry+https://github.com/rust-lang/crates.io-index"
340
-
checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
342
+
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
341
343
dependencies = [
342
-
"serde",
344
+
"serde_core",
343
345
]
344
346
345
347
[[package]]
···
368
370
369
371
[[package]]
370
372
name = "block2"
371
-
version = "0.6.1"
373
+
version = "0.6.2"
372
374
source = "registry+https://github.com/rust-lang/crates.io-index"
373
-
checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2"
375
+
checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
374
376
dependencies = [
375
-
"objc2 0.6.1",
377
+
"objc2 0.6.3",
376
378
]
377
379
378
380
[[package]]
···
390
392
391
393
[[package]]
392
394
name = "brotli"
393
-
version = "8.0.1"
395
+
version = "8.0.2"
394
396
source = "registry+https://github.com/rust-lang/crates.io-index"
395
-
checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d"
397
+
checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560"
396
398
dependencies = [
397
399
"alloc-no-stdlib",
398
400
"alloc-stdlib",
···
423
425
424
426
[[package]]
425
427
name = "bytemuck"
426
-
version = "1.23.1"
428
+
version = "1.24.0"
427
429
source = "registry+https://github.com/rust-lang/crates.io-index"
428
-
checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422"
430
+
checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
429
431
430
432
[[package]]
431
433
name = "byteorder"
···
454
456
source = "registry+https://github.com/rust-lang/crates.io-index"
455
457
checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
456
458
dependencies = [
457
-
"bitflags 2.9.1",
459
+
"bitflags 2.10.0",
458
460
"cairo-sys-rs",
459
461
"glib",
460
462
"libc",
···
475
477
476
478
[[package]]
477
479
name = "camino"
478
-
version = "1.1.10"
480
+
version = "1.2.1"
479
481
source = "registry+https://github.com/rust-lang/crates.io-index"
480
-
checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab"
482
+
checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609"
481
483
dependencies = [
482
-
"serde",
484
+
"serde_core",
483
485
]
484
486
485
487
[[package]]
···
502
504
"semver",
503
505
"serde",
504
506
"serde_json",
505
-
"thiserror 2.0.12",
507
+
"thiserror 2.0.17",
506
508
]
507
509
508
510
[[package]]
···
512
514
checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77"
513
515
dependencies = [
514
516
"serde",
515
-
"toml 0.9.4",
517
+
"toml 0.9.8",
516
518
]
517
519
518
520
[[package]]
519
521
name = "cc"
520
-
version = "1.2.30"
522
+
version = "1.2.45"
521
523
source = "registry+https://github.com/rust-lang/crates.io-index"
522
-
checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7"
524
+
checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe"
523
525
dependencies = [
526
+
"find-msvc-tools",
524
527
"jobserver",
525
528
"libc",
526
529
"shlex",
···
555
558
556
559
[[package]]
557
560
name = "cfg-if"
558
-
version = "1.0.1"
561
+
version = "1.0.4"
559
562
source = "registry+https://github.com/rust-lang/crates.io-index"
560
-
checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
563
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
561
564
562
565
[[package]]
563
566
name = "cfg_aliases"
···
567
570
568
571
[[package]]
569
572
name = "chrono"
570
-
version = "0.4.41"
573
+
version = "0.4.42"
571
574
source = "registry+https://github.com/rust-lang/crates.io-index"
572
-
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
575
+
checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
573
576
dependencies = [
574
-
"android-tzdata",
575
577
"iana-time-zone",
576
578
"num-traits",
577
579
"serde",
578
-
"windows-link",
580
+
"windows-link 0.2.1",
581
+
]
582
+
583
+
[[package]]
584
+
name = "clipboard-win"
585
+
version = "5.4.1"
586
+
source = "registry+https://github.com/rust-lang/crates.io-index"
587
+
checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4"
588
+
dependencies = [
589
+
"error-code",
579
590
]
580
591
581
592
[[package]]
···
690
701
source = "registry+https://github.com/rust-lang/crates.io-index"
691
702
checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
692
703
dependencies = [
693
-
"bitflags 2.9.1",
704
+
"bitflags 2.10.0",
694
705
"core-foundation 0.10.1",
695
706
"core-graphics-types",
696
707
"foreign-types 0.5.0",
···
703
714
source = "registry+https://github.com/rust-lang/crates.io-index"
704
715
checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
705
716
dependencies = [
706
-
"bitflags 2.9.1",
717
+
"bitflags 2.10.0",
707
718
"core-foundation 0.10.1",
708
719
"libc",
709
720
]
···
800
811
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
801
812
dependencies = [
802
813
"quote",
803
-
"syn 2.0.104",
814
+
"syn 2.0.109",
804
815
]
805
816
806
817
[[package]]
···
810
821
checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
811
822
dependencies = [
812
823
"quote",
813
-
"syn 2.0.104",
824
+
"syn 2.0.109",
814
825
]
815
826
816
827
[[package]]
817
828
name = "darling"
818
-
version = "0.20.11"
829
+
version = "0.21.3"
819
830
source = "registry+https://github.com/rust-lang/crates.io-index"
820
-
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
831
+
checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
821
832
dependencies = [
822
833
"darling_core",
823
834
"darling_macro",
···
825
836
826
837
[[package]]
827
838
name = "darling_core"
828
-
version = "0.20.11"
839
+
version = "0.21.3"
829
840
source = "registry+https://github.com/rust-lang/crates.io-index"
830
-
checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
841
+
checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
831
842
dependencies = [
832
843
"fnv",
833
844
"ident_case",
834
845
"proc-macro2",
835
846
"quote",
836
847
"strsim",
837
-
"syn 2.0.104",
848
+
"syn 2.0.109",
838
849
]
839
850
840
851
[[package]]
841
852
name = "darling_macro"
842
-
version = "0.20.11"
853
+
version = "0.21.3"
843
854
source = "registry+https://github.com/rust-lang/crates.io-index"
844
-
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
855
+
checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
845
856
dependencies = [
846
857
"darling_core",
847
858
"quote",
848
-
"syn 2.0.104",
859
+
"syn 2.0.109",
849
860
]
850
861
851
862
[[package]]
852
863
name = "data-url"
853
-
version = "0.3.1"
864
+
version = "0.3.2"
854
865
source = "registry+https://github.com/rust-lang/crates.io-index"
855
-
checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
866
+
checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376"
856
867
857
868
[[package]]
858
869
name = "deranged"
859
-
version = "0.4.0"
870
+
version = "0.5.5"
860
871
source = "registry+https://github.com/rust-lang/crates.io-index"
861
-
checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
872
+
checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
862
873
dependencies = [
863
874
"powerfmt",
864
-
"serde",
865
-
]
866
-
867
-
[[package]]
868
-
name = "derivative"
869
-
version = "2.2.0"
870
-
source = "registry+https://github.com/rust-lang/crates.io-index"
871
-
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
872
-
dependencies = [
873
-
"proc-macro2",
874
-
"quote",
875
-
"syn 1.0.109",
875
+
"serde_core",
876
876
]
877
877
878
878
[[package]]
···
885
885
"proc-macro2",
886
886
"quote",
887
887
"rustc_version",
888
-
"syn 2.0.104",
888
+
"syn 2.0.109",
889
889
]
890
890
891
891
[[package]]
···
900
900
901
901
[[package]]
902
902
name = "dirs"
903
-
version = "5.0.1"
904
-
source = "registry+https://github.com/rust-lang/crates.io-index"
905
-
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
906
-
dependencies = [
907
-
"dirs-sys 0.4.1",
908
-
]
909
-
910
-
[[package]]
911
-
name = "dirs"
912
903
version = "6.0.0"
913
904
source = "registry+https://github.com/rust-lang/crates.io-index"
914
905
checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
915
906
dependencies = [
916
-
"dirs-sys 0.5.0",
917
-
]
918
-
919
-
[[package]]
920
-
name = "dirs-sys"
921
-
version = "0.4.1"
922
-
source = "registry+https://github.com/rust-lang/crates.io-index"
923
-
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
924
-
dependencies = [
925
-
"libc",
926
-
"option-ext",
927
-
"redox_users 0.4.6",
928
-
"windows-sys 0.48.0",
907
+
"dirs-sys",
929
908
]
930
909
931
910
[[package]]
···
936
915
dependencies = [
937
916
"libc",
938
917
"option-ext",
939
-
"redox_users 0.5.2",
940
-
"windows-sys 0.60.2",
918
+
"redox_users",
919
+
"windows-sys 0.61.2",
941
920
]
942
921
943
922
[[package]]
···
952
931
source = "registry+https://github.com/rust-lang/crates.io-index"
953
932
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
954
933
dependencies = [
955
-
"bitflags 2.9.1",
956
-
"objc2 0.6.1",
934
+
"bitflags 2.10.0",
935
+
"objc2 0.6.3",
957
936
]
958
937
959
938
[[package]]
···
964
943
dependencies = [
965
944
"proc-macro2",
966
945
"quote",
967
-
"syn 2.0.104",
946
+
"syn 2.0.109",
968
947
]
969
948
970
949
[[package]]
971
950
name = "dlopen2"
972
-
version = "0.7.0"
951
+
version = "0.8.0"
973
952
source = "registry+https://github.com/rust-lang/crates.io-index"
974
-
checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6"
953
+
checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff"
975
954
dependencies = [
976
955
"dlopen2_derive",
977
956
"libc",
···
987
966
dependencies = [
988
967
"proc-macro2",
989
968
"quote",
990
-
"syn 2.0.104",
969
+
"syn 2.0.109",
991
970
]
992
971
993
972
[[package]]
···
1001
980
1002
981
[[package]]
1003
982
name = "document-features"
1004
-
version = "0.2.11"
983
+
version = "0.2.12"
1005
984
source = "registry+https://github.com/rust-lang/crates.io-index"
1006
-
checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
985
+
checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
1007
986
dependencies = [
1008
987
"litrs",
1009
988
]
···
1052
1031
1053
1032
[[package]]
1054
1033
name = "embed-resource"
1055
-
version = "3.0.5"
1034
+
version = "3.0.6"
1056
1035
source = "registry+https://github.com/rust-lang/crates.io-index"
1057
-
checksum = "4c6d81016d6c977deefb2ef8d8290da019e27cc26167e102185da528e6c0ab38"
1036
+
checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e"
1058
1037
dependencies = [
1059
1038
"cc",
1060
1039
"memchr",
1061
1040
"rustc_version",
1062
-
"toml 0.9.4",
1041
+
"toml 0.9.8",
1063
1042
"vswhom",
1064
1043
"winreg",
1065
1044
]
···
1103
1082
dependencies = [
1104
1083
"proc-macro2",
1105
1084
"quote",
1106
-
"syn 2.0.104",
1085
+
"syn 2.0.109",
1107
1086
]
1108
1087
1109
1088
[[package]]
···
1123
1102
dependencies = [
1124
1103
"proc-macro2",
1125
1104
"quote",
1126
-
"syn 2.0.104",
1105
+
"syn 2.0.109",
1127
1106
]
1128
1107
1129
1108
[[package]]
···
1134
1113
1135
1114
[[package]]
1136
1115
name = "erased-serde"
1137
-
version = "0.4.6"
1116
+
version = "0.4.9"
1138
1117
source = "registry+https://github.com/rust-lang/crates.io-index"
1139
-
checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
1118
+
checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3"
1140
1119
dependencies = [
1141
1120
"serde",
1121
+
"serde_core",
1142
1122
"typeid",
1143
1123
]
1144
1124
1145
1125
[[package]]
1146
1126
name = "errno"
1147
-
version = "0.3.13"
1127
+
version = "0.3.14"
1148
1128
source = "registry+https://github.com/rust-lang/crates.io-index"
1149
-
checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
1129
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1150
1130
dependencies = [
1151
1131
"libc",
1152
-
"windows-sys 0.60.2",
1132
+
"windows-sys 0.61.2",
1153
1133
]
1154
1134
1155
1135
[[package]]
1136
+
name = "error-code"
1137
+
version = "3.3.2"
1138
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1139
+
checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
1140
+
1141
+
[[package]]
1156
1142
name = "event-listener"
1157
-
version = "5.4.0"
1143
+
version = "5.4.1"
1158
1144
source = "registry+https://github.com/rust-lang/crates.io-index"
1159
-
checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
1145
+
checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
1160
1146
dependencies = [
1161
1147
"concurrent-queue",
1162
1148
"parking",
···
1190
1176
1191
1177
[[package]]
1192
1178
name = "fast_image_resize"
1193
-
version = "4.2.3"
1179
+
version = "5.3.0"
1194
1180
source = "registry+https://github.com/rust-lang/crates.io-index"
1195
-
checksum = "43e5ce628b529e9bd2e2f378c1193215104b526fd494a572aa23414adc4e5553"
1181
+
checksum = "1bd1eda71e8af93f8b00e189404235d82f4de77ea4a0d182b44a7f03994d647c"
1196
1182
dependencies = [
1197
1183
"bytemuck",
1198
1184
"cfg-if",
1199
1185
"document-features",
1200
1186
"image",
1201
1187
"num-traits",
1202
-
"thiserror 1.0.69",
1188
+
"thiserror 2.0.17",
1203
1189
]
1204
1190
1205
1191
[[package]]
···
1209
1195
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
1210
1196
1211
1197
[[package]]
1198
+
name = "fax"
1199
+
version = "0.2.6"
1200
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1201
+
checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab"
1202
+
dependencies = [
1203
+
"fax_derive",
1204
+
]
1205
+
1206
+
[[package]]
1207
+
name = "fax_derive"
1208
+
version = "0.2.0"
1209
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1210
+
checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d"
1211
+
dependencies = [
1212
+
"proc-macro2",
1213
+
"quote",
1214
+
"syn 2.0.109",
1215
+
]
1216
+
1217
+
[[package]]
1212
1218
name = "fdeflate"
1213
1219
version = "0.3.7"
1214
1220
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1228
1234
]
1229
1235
1230
1236
[[package]]
1231
-
name = "filetime"
1232
-
version = "0.2.25"
1237
+
name = "find-msvc-tools"
1238
+
version = "0.1.4"
1233
1239
source = "registry+https://github.com/rust-lang/crates.io-index"
1234
-
checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"
1235
-
dependencies = [
1236
-
"cfg-if",
1237
-
"libc",
1238
-
"libredox",
1239
-
"windows-sys 0.59.0",
1240
-
]
1240
+
checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
1241
1241
1242
1242
[[package]]
1243
1243
name = "flate2"
1244
-
version = "1.1.2"
1244
+
version = "1.1.5"
1245
1245
source = "registry+https://github.com/rust-lang/crates.io-index"
1246
-
checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
1246
+
checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
1247
1247
dependencies = [
1248
1248
"crc32fast",
1249
1249
"miniz_oxide",
···
1282
1282
dependencies = [
1283
1283
"proc-macro2",
1284
1284
"quote",
1285
-
"syn 2.0.104",
1285
+
"syn 2.0.109",
1286
1286
]
1287
1287
1288
1288
[[package]]
···
1299
1299
1300
1300
[[package]]
1301
1301
name = "form_urlencoded"
1302
-
version = "1.2.1"
1302
+
version = "1.2.2"
1303
1303
source = "registry+https://github.com/rust-lang/crates.io-index"
1304
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
1304
+
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
1305
1305
dependencies = [
1306
1306
"percent-encoding",
1307
1307
]
···
1360
1360
1361
1361
[[package]]
1362
1362
name = "futures-lite"
1363
-
version = "2.6.0"
1363
+
version = "2.6.1"
1364
1364
source = "registry+https://github.com/rust-lang/crates.io-index"
1365
-
checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
1365
+
checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
1366
1366
dependencies = [
1367
1367
"fastrand",
1368
1368
"futures-core",
···
1379
1379
dependencies = [
1380
1380
"proc-macro2",
1381
1381
"quote",
1382
-
"syn 2.0.104",
1382
+
"syn 2.0.109",
1383
1383
]
1384
1384
1385
1385
[[package]]
···
1521
1521
1522
1522
[[package]]
1523
1523
name = "generic-array"
1524
-
version = "0.14.7"
1524
+
version = "0.14.9"
1525
1525
source = "registry+https://github.com/rust-lang/crates.io-index"
1526
-
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
1526
+
checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
1527
1527
dependencies = [
1528
1528
"typenum",
1529
1529
"version_check",
1530
+
]
1531
+
1532
+
[[package]]
1533
+
name = "gethostname"
1534
+
version = "1.1.0"
1535
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1536
+
checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
1537
+
dependencies = [
1538
+
"rustix",
1539
+
"windows-link 0.2.1",
1530
1540
]
1531
1541
1532
1542
[[package]]
···
1555
1565
1556
1566
[[package]]
1557
1567
name = "getrandom"
1558
-
version = "0.3.3"
1568
+
version = "0.3.4"
1559
1569
source = "registry+https://github.com/rust-lang/crates.io-index"
1560
-
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
1570
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
1561
1571
dependencies = [
1562
1572
"cfg-if",
1563
1573
"js-sys",
1564
1574
"libc",
1565
1575
"r-efi",
1566
-
"wasi 0.14.2+wasi-0.2.4",
1576
+
"wasip2",
1567
1577
"wasm-bindgen",
1568
1578
]
1569
1579
···
1578
1588
]
1579
1589
1580
1590
[[package]]
1581
-
name = "gimli"
1582
-
version = "0.31.1"
1583
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1584
-
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
1585
-
1586
-
[[package]]
1587
1591
name = "gio"
1588
1592
version = "0.18.4"
1589
1593
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1621
1625
source = "registry+https://github.com/rust-lang/crates.io-index"
1622
1626
checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
1623
1627
dependencies = [
1624
-
"bitflags 2.9.1",
1628
+
"bitflags 2.10.0",
1625
1629
"futures-channel",
1626
1630
"futures-core",
1627
1631
"futures-executor",
···
1649
1653
"proc-macro-error",
1650
1654
"proc-macro2",
1651
1655
"quote",
1652
-
"syn 2.0.104",
1656
+
"syn 2.0.109",
1653
1657
]
1654
1658
1655
1659
[[package]]
···
1664
1668
1665
1669
[[package]]
1666
1670
name = "glob"
1667
-
version = "0.3.2"
1671
+
version = "0.3.3"
1668
1672
source = "registry+https://github.com/rust-lang/crates.io-index"
1669
-
checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
1673
+
checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
1670
1674
1671
1675
[[package]]
1672
1676
name = "gobject-sys"
···
1728
1732
"proc-macro-error",
1729
1733
"proc-macro2",
1730
1734
"quote",
1731
-
"syn 2.0.104",
1735
+
"syn 2.0.109",
1732
1736
]
1733
1737
1734
1738
[[package]]
1735
1739
name = "h2"
1736
-
version = "0.4.11"
1740
+
version = "0.4.12"
1737
1741
source = "registry+https://github.com/rust-lang/crates.io-index"
1738
-
checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785"
1742
+
checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
1739
1743
dependencies = [
1740
1744
"atomic-waker",
1741
1745
"bytes",
···
1743
1747
"futures-core",
1744
1748
"futures-sink",
1745
1749
"http",
1746
-
"indexmap 2.10.0",
1750
+
"indexmap 2.12.0",
1747
1751
"slab",
1748
1752
"tokio",
1749
1753
"tokio-util",
···
1752
1756
1753
1757
[[package]]
1754
1758
name = "half"
1755
-
version = "2.6.0"
1759
+
version = "2.7.1"
1756
1760
source = "registry+https://github.com/rust-lang/crates.io-index"
1757
-
checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
1761
+
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
1758
1762
dependencies = [
1759
1763
"cfg-if",
1760
1764
"crunchy",
1765
+
"zerocopy",
1761
1766
]
1762
1767
1763
1768
[[package]]
···
1774
1779
1775
1780
[[package]]
1776
1781
name = "hashbrown"
1777
-
version = "0.15.4"
1782
+
version = "0.16.0"
1778
1783
source = "registry+https://github.com/rust-lang/crates.io-index"
1779
-
checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
1784
+
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
1780
1785
1781
1786
[[package]]
1782
1787
name = "heck"
···
1856
1861
1857
1862
[[package]]
1858
1863
name = "hyper"
1859
-
version = "1.6.0"
1864
+
version = "1.7.0"
1860
1865
source = "registry+https://github.com/rust-lang/crates.io-index"
1861
-
checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80"
1866
+
checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e"
1862
1867
dependencies = [
1868
+
"atomic-waker",
1863
1869
"bytes",
1864
1870
"futures-channel",
1865
-
"futures-util",
1871
+
"futures-core",
1866
1872
"h2",
1867
1873
"http",
1868
1874
"http-body",
1869
1875
"httparse",
1870
1876
"itoa",
1871
1877
"pin-project-lite",
1878
+
"pin-utils",
1872
1879
"smallvec",
1873
1880
"tokio",
1874
1881
"want",
···
1909
1916
1910
1917
[[package]]
1911
1918
name = "hyper-util"
1912
-
version = "0.1.16"
1919
+
version = "0.1.17"
1913
1920
source = "registry+https://github.com/rust-lang/crates.io-index"
1914
-
checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e"
1921
+
checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8"
1915
1922
dependencies = [
1916
1923
"base64 0.22.1",
1917
1924
"bytes",
···
1925
1932
"libc",
1926
1933
"percent-encoding",
1927
1934
"pin-project-lite",
1928
-
"socket2 0.6.0",
1935
+
"socket2",
1929
1936
"system-configuration",
1930
1937
"tokio",
1931
1938
"tower-service",
···
1935
1942
1936
1943
[[package]]
1937
1944
name = "iana-time-zone"
1938
-
version = "0.1.63"
1945
+
version = "0.1.64"
1939
1946
source = "registry+https://github.com/rust-lang/crates.io-index"
1940
-
checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8"
1947
+
checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
1941
1948
dependencies = [
1942
1949
"android_system_properties",
1943
1950
"core-foundation-sys",
···
1945
1952
"js-sys",
1946
1953
"log",
1947
1954
"wasm-bindgen",
1948
-
"windows-core",
1955
+
"windows-core 0.62.2",
1949
1956
]
1950
1957
1951
1958
[[package]]
···
1964
1971
checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98"
1965
1972
dependencies = [
1966
1973
"byteorder",
1967
-
"png",
1974
+
"png 0.17.16",
1968
1975
]
1969
1976
1970
1977
[[package]]
1971
1978
name = "icu_collections"
1972
-
version = "2.0.0"
1979
+
version = "2.1.1"
1973
1980
source = "registry+https://github.com/rust-lang/crates.io-index"
1974
-
checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
1981
+
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
1975
1982
dependencies = [
1976
1983
"displaydoc",
1977
1984
"potential_utf",
···
1982
1989
1983
1990
[[package]]
1984
1991
name = "icu_locale_core"
1985
-
version = "2.0.0"
1992
+
version = "2.1.1"
1986
1993
source = "registry+https://github.com/rust-lang/crates.io-index"
1987
-
checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
1994
+
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
1988
1995
dependencies = [
1989
1996
"displaydoc",
1990
1997
"litemap",
···
1995
2002
1996
2003
[[package]]
1997
2004
name = "icu_normalizer"
1998
-
version = "2.0.0"
2005
+
version = "2.1.1"
1999
2006
source = "registry+https://github.com/rust-lang/crates.io-index"
2000
-
checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
2007
+
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
2001
2008
dependencies = [
2002
-
"displaydoc",
2003
2009
"icu_collections",
2004
2010
"icu_normalizer_data",
2005
2011
"icu_properties",
···
2010
2016
2011
2017
[[package]]
2012
2018
name = "icu_normalizer_data"
2013
-
version = "2.0.0"
2019
+
version = "2.1.1"
2014
2020
source = "registry+https://github.com/rust-lang/crates.io-index"
2015
-
checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
2021
+
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
2016
2022
2017
2023
[[package]]
2018
2024
name = "icu_properties"
2019
-
version = "2.0.1"
2025
+
version = "2.1.1"
2020
2026
source = "registry+https://github.com/rust-lang/crates.io-index"
2021
-
checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b"
2027
+
checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99"
2022
2028
dependencies = [
2023
-
"displaydoc",
2024
2029
"icu_collections",
2025
2030
"icu_locale_core",
2026
2031
"icu_properties_data",
2027
2032
"icu_provider",
2028
-
"potential_utf",
2029
2033
"zerotrie",
2030
2034
"zerovec",
2031
2035
]
2032
2036
2033
2037
[[package]]
2034
2038
name = "icu_properties_data"
2035
-
version = "2.0.1"
2039
+
version = "2.1.1"
2036
2040
source = "registry+https://github.com/rust-lang/crates.io-index"
2037
-
checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632"
2041
+
checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899"
2038
2042
2039
2043
[[package]]
2040
2044
name = "icu_provider"
2041
-
version = "2.0.0"
2045
+
version = "2.1.1"
2042
2046
source = "registry+https://github.com/rust-lang/crates.io-index"
2043
-
checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
2047
+
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
2044
2048
dependencies = [
2045
2049
"displaydoc",
2046
2050
"icu_locale_core",
2047
-
"stable_deref_trait",
2048
-
"tinystr",
2049
2051
"writeable",
2050
2052
"yoke",
2051
2053
"zerofrom",
···
2061
2063
2062
2064
[[package]]
2063
2065
name = "idna"
2064
-
version = "1.0.3"
2066
+
version = "1.1.0"
2065
2067
source = "registry+https://github.com/rust-lang/crates.io-index"
2066
-
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
2068
+
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
2067
2069
dependencies = [
2068
2070
"idna_adapter",
2069
2071
"smallvec",
···
2082
2084
2083
2085
[[package]]
2084
2086
name = "image"
2085
-
version = "0.25.6"
2087
+
version = "0.25.8"
2086
2088
source = "registry+https://github.com/rust-lang/crates.io-index"
2087
-
checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a"
2089
+
checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7"
2088
2090
dependencies = [
2089
2091
"bytemuck",
2090
2092
"byteorder-lite",
···
2092
2094
"exr",
2093
2095
"gif",
2094
2096
"image-webp",
2097
+
"moxcms",
2095
2098
"num-traits",
2096
-
"png",
2099
+
"png 0.18.0",
2097
2100
"qoi",
2098
2101
"ravif",
2099
2102
"rayon",
···
2105
2108
2106
2109
[[package]]
2107
2110
name = "image-webp"
2108
-
version = "0.2.3"
2111
+
version = "0.2.4"
2109
2112
source = "registry+https://github.com/rust-lang/crates.io-index"
2110
-
checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b"
2113
+
checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
2111
2114
dependencies = [
2112
2115
"byteorder-lite",
2113
2116
"quick-error",
···
2115
2118
2116
2119
[[package]]
2117
2120
name = "imgref"
2118
-
version = "1.11.0"
2121
+
version = "1.12.0"
2119
2122
source = "registry+https://github.com/rust-lang/crates.io-index"
2120
-
checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408"
2123
+
checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8"
2121
2124
2122
2125
[[package]]
2123
2126
name = "indexmap"
···
2132
2135
2133
2136
[[package]]
2134
2137
name = "indexmap"
2135
-
version = "2.10.0"
2138
+
version = "2.12.0"
2136
2139
source = "registry+https://github.com/rust-lang/crates.io-index"
2137
-
checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
2140
+
checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
2138
2141
dependencies = [
2139
2142
"equivalent",
2140
-
"hashbrown 0.15.4",
2143
+
"hashbrown 0.16.0",
2141
2144
"serde",
2145
+
"serde_core",
2142
2146
]
2143
2147
2144
2148
[[package]]
···
2152
2156
2153
2157
[[package]]
2154
2158
name = "inotify"
2155
-
version = "0.9.6"
2159
+
version = "0.11.0"
2156
2160
source = "registry+https://github.com/rust-lang/crates.io-index"
2157
-
checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
2161
+
checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
2158
2162
dependencies = [
2159
-
"bitflags 1.3.2",
2163
+
"bitflags 2.10.0",
2160
2164
"inotify-sys",
2161
2165
"libc",
2162
2166
]
···
2178
2182
dependencies = [
2179
2183
"proc-macro2",
2180
2184
"quote",
2181
-
"syn 2.0.104",
2182
-
]
2183
-
2184
-
[[package]]
2185
-
name = "io-uring"
2186
-
version = "0.7.9"
2187
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2188
-
checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
2189
-
dependencies = [
2190
-
"bitflags 2.9.1",
2191
-
"cfg-if",
2192
-
"libc",
2185
+
"syn 2.0.109",
2193
2186
]
2194
2187
2195
2188
[[package]]
···
2200
2193
2201
2194
[[package]]
2202
2195
name = "iri-string"
2203
-
version = "0.7.8"
2196
+
version = "0.7.9"
2204
2197
source = "registry+https://github.com/rust-lang/crates.io-index"
2205
-
checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
2198
+
checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397"
2206
2199
dependencies = [
2207
2200
"memchr",
2208
2201
"serde",
···
2289
2282
2290
2283
[[package]]
2291
2284
name = "jobserver"
2292
-
version = "0.1.33"
2285
+
version = "0.1.34"
2293
2286
source = "registry+https://github.com/rust-lang/crates.io-index"
2294
-
checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
2287
+
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
2295
2288
dependencies = [
2296
-
"getrandom 0.3.3",
2289
+
"getrandom 0.3.4",
2297
2290
"libc",
2298
2291
]
2299
2292
2300
2293
[[package]]
2301
-
name = "jpeg-decoder"
2302
-
version = "0.3.2"
2303
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2304
-
checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07"
2305
-
2306
-
[[package]]
2307
2294
name = "js-sys"
2308
-
version = "0.3.77"
2295
+
version = "0.3.82"
2309
2296
source = "registry+https://github.com/rust-lang/crates.io-index"
2310
-
checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
2297
+
checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
2311
2298
dependencies = [
2312
2299
"once_cell",
2313
2300
"wasm-bindgen",
···
2341
2328
source = "registry+https://github.com/rust-lang/crates.io-index"
2342
2329
checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
2343
2330
dependencies = [
2344
-
"bitflags 2.9.1",
2331
+
"bitflags 2.10.0",
2345
2332
"serde",
2346
2333
"unicode-segmentation",
2347
2334
]
···
2374
2361
dependencies = [
2375
2362
"cssparser",
2376
2363
"html5ever",
2377
-
"indexmap 2.10.0",
2364
+
"indexmap 2.12.0",
2378
2365
"selectors",
2379
2366
]
2380
2367
···
2386
2373
2387
2374
[[package]]
2388
2375
name = "lebe"
2389
-
version = "0.5.2"
2376
+
version = "0.5.3"
2390
2377
source = "registry+https://github.com/rust-lang/crates.io-index"
2391
-
checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
2378
+
checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
2392
2379
2393
2380
[[package]]
2394
2381
name = "libappindicator"
···
2416
2403
2417
2404
[[package]]
2418
2405
name = "libc"
2419
-
version = "0.2.174"
2406
+
version = "0.2.177"
2420
2407
source = "registry+https://github.com/rust-lang/crates.io-index"
2421
-
checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
2408
+
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
2422
2409
2423
2410
[[package]]
2424
2411
name = "libfuzzer-sys"
···
2442
2429
2443
2430
[[package]]
2444
2431
name = "libredox"
2445
-
version = "0.1.9"
2432
+
version = "0.1.10"
2446
2433
source = "registry+https://github.com/rust-lang/crates.io-index"
2447
-
checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
2434
+
checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
2448
2435
dependencies = [
2449
-
"bitflags 2.9.1",
2436
+
"bitflags 2.10.0",
2450
2437
"libc",
2451
-
"redox_syscall",
2452
2438
]
2453
2439
2454
2440
[[package]]
2455
2441
name = "linux-raw-sys"
2456
-
version = "0.9.4"
2442
+
version = "0.11.0"
2457
2443
source = "registry+https://github.com/rust-lang/crates.io-index"
2458
-
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
2444
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
2459
2445
2460
2446
[[package]]
2461
2447
name = "litemap"
2462
-
version = "0.8.0"
2448
+
version = "0.8.1"
2463
2449
source = "registry+https://github.com/rust-lang/crates.io-index"
2464
-
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
2450
+
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
2465
2451
2466
2452
[[package]]
2467
2453
name = "litrs"
2468
-
version = "0.4.2"
2454
+
version = "1.0.0"
2469
2455
source = "registry+https://github.com/rust-lang/crates.io-index"
2470
-
checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
2456
+
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
2471
2457
2472
2458
[[package]]
2473
2459
name = "lock_api"
2474
-
version = "0.4.13"
2460
+
version = "0.4.14"
2475
2461
source = "registry+https://github.com/rust-lang/crates.io-index"
2476
-
checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
2462
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
2477
2463
dependencies = [
2478
-
"autocfg",
2479
2464
"scopeguard",
2480
2465
]
2481
2466
2482
2467
[[package]]
2483
2468
name = "log"
2484
-
version = "0.4.27"
2469
+
version = "0.4.28"
2485
2470
source = "registry+https://github.com/rust-lang/crates.io-index"
2486
-
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
2471
+
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
2487
2472
2488
2473
[[package]]
2489
2474
name = "loop9"
···
2528
2513
dependencies = [
2529
2514
"proc-macro2",
2530
2515
"quote",
2531
-
"syn 2.0.104",
2516
+
"syn 2.0.109",
2532
2517
]
2533
2518
2534
2519
[[package]]
···
2549
2534
2550
2535
[[package]]
2551
2536
name = "memchr"
2552
-
version = "2.7.5"
2537
+
version = "2.7.6"
2553
2538
source = "registry+https://github.com/rust-lang/crates.io-index"
2554
-
checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
2539
+
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
2555
2540
2556
2541
[[package]]
2557
2542
name = "memoffset"
···
2569
2554
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
2570
2555
2571
2556
[[package]]
2572
-
name = "minimal-lexical"
2573
-
version = "0.2.1"
2574
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2575
-
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
2576
-
2577
-
[[package]]
2578
2557
name = "miniz_oxide"
2579
2558
version = "0.8.9"
2580
2559
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2586
2565
2587
2566
[[package]]
2588
2567
name = "mio"
2589
-
version = "0.8.11"
2568
+
version = "1.1.0"
2590
2569
source = "registry+https://github.com/rust-lang/crates.io-index"
2591
-
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
2570
+
checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
2592
2571
dependencies = [
2593
2572
"libc",
2594
2573
"log",
2595
2574
"wasi 0.11.1+wasi-snapshot-preview1",
2596
-
"windows-sys 0.48.0",
2575
+
"windows-sys 0.61.2",
2597
2576
]
2598
2577
2599
2578
[[package]]
2600
-
name = "mio"
2601
-
version = "1.0.4"
2579
+
name = "moxcms"
2580
+
version = "0.7.9"
2602
2581
source = "registry+https://github.com/rust-lang/crates.io-index"
2603
-
checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
2582
+
checksum = "0fbdd3d7436f8b5e892b8b7ea114271ff0fa00bc5acae845d53b07d498616ef6"
2604
2583
dependencies = [
2605
-
"libc",
2606
-
"wasi 0.11.1+wasi-snapshot-preview1",
2607
-
"windows-sys 0.59.0",
2584
+
"num-traits",
2585
+
"pxfm",
2608
2586
]
2609
2587
2610
2588
[[package]]
···
2628
2606
"dpi",
2629
2607
"gtk",
2630
2608
"keyboard-types",
2631
-
"objc2 0.6.1",
2609
+
"objc2 0.6.3",
2632
2610
"objc2-app-kit",
2633
2611
"objc2-core-foundation",
2634
-
"objc2-foundation 0.3.1",
2612
+
"objc2-foundation 0.3.2",
2635
2613
"once_cell",
2636
-
"png",
2614
+
"png 0.17.16",
2637
2615
"serde",
2638
-
"thiserror 2.0.12",
2616
+
"thiserror 2.0.17",
2639
2617
"windows-sys 0.60.2",
2640
2618
]
2641
2619
···
2662
2640
source = "registry+https://github.com/rust-lang/crates.io-index"
2663
2641
checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
2664
2642
dependencies = [
2665
-
"bitflags 2.9.1",
2643
+
"bitflags 2.10.0",
2666
2644
"jni-sys",
2667
2645
"log",
2668
2646
"ndk-sys",
···
2694
2672
2695
2673
[[package]]
2696
2674
name = "nix"
2697
-
version = "0.27.1"
2675
+
version = "0.30.1"
2698
2676
source = "registry+https://github.com/rust-lang/crates.io-index"
2699
-
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
2677
+
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
2700
2678
dependencies = [
2701
-
"bitflags 2.9.1",
2679
+
"bitflags 2.10.0",
2702
2680
"cfg-if",
2681
+
"cfg_aliases",
2703
2682
"libc",
2704
2683
"memoffset",
2705
2684
]
···
2712
2691
2713
2692
[[package]]
2714
2693
name = "nom"
2715
-
version = "7.1.3"
2694
+
version = "8.0.0"
2716
2695
source = "registry+https://github.com/rust-lang/crates.io-index"
2717
-
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
2696
+
checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
2718
2697
dependencies = [
2719
2698
"memchr",
2720
-
"minimal-lexical",
2721
2699
]
2722
2700
2723
2701
[[package]]
···
2728
2706
2729
2707
[[package]]
2730
2708
name = "notify"
2731
-
version = "6.1.1"
2709
+
version = "8.2.0"
2732
2710
source = "registry+https://github.com/rust-lang/crates.io-index"
2733
-
checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
2711
+
checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3"
2734
2712
dependencies = [
2735
-
"bitflags 2.9.1",
2736
-
"crossbeam-channel",
2737
-
"filetime",
2713
+
"bitflags 2.10.0",
2738
2714
"fsevent-sys",
2739
2715
"inotify",
2740
2716
"kqueue",
2741
2717
"libc",
2742
2718
"log",
2743
-
"mio 0.8.11",
2719
+
"mio",
2720
+
"notify-types",
2744
2721
"walkdir",
2745
-
"windows-sys 0.48.0",
2722
+
"windows-sys 0.60.2",
2746
2723
]
2747
2724
2748
2725
[[package]]
2726
+
name = "notify-types"
2727
+
version = "2.0.0"
2728
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2729
+
checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d"
2730
+
2731
+
[[package]]
2749
2732
name = "num-bigint"
2750
2733
version = "0.4.6"
2751
2734
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2769
2752
dependencies = [
2770
2753
"proc-macro2",
2771
2754
"quote",
2772
-
"syn 2.0.104",
2755
+
"syn 2.0.109",
2773
2756
]
2774
2757
2775
2758
[[package]]
···
2803
2786
2804
2787
[[package]]
2805
2788
name = "num_enum"
2806
-
version = "0.7.4"
2789
+
version = "0.7.5"
2807
2790
source = "registry+https://github.com/rust-lang/crates.io-index"
2808
-
checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a"
2791
+
checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c"
2809
2792
dependencies = [
2810
2793
"num_enum_derive",
2811
2794
"rustversion",
···
2813
2796
2814
2797
[[package]]
2815
2798
name = "num_enum_derive"
2816
-
version = "0.7.4"
2799
+
version = "0.7.5"
2817
2800
source = "registry+https://github.com/rust-lang/crates.io-index"
2818
-
checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d"
2801
+
checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
2819
2802
dependencies = [
2820
-
"proc-macro-crate 2.0.2",
2803
+
"proc-macro-crate 3.4.0",
2821
2804
"proc-macro2",
2822
2805
"quote",
2823
-
"syn 2.0.104",
2806
+
"syn 2.0.109",
2824
2807
]
2825
2808
2826
2809
[[package]]
···
2841
2824
2842
2825
[[package]]
2843
2826
name = "objc2"
2844
-
version = "0.6.1"
2827
+
version = "0.6.3"
2845
2828
source = "registry+https://github.com/rust-lang/crates.io-index"
2846
-
checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551"
2829
+
checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
2847
2830
dependencies = [
2848
2831
"objc2-encode",
2849
2832
"objc2-exception-helper",
···
2851
2834
2852
2835
[[package]]
2853
2836
name = "objc2-app-kit"
2854
-
version = "0.3.1"
2837
+
version = "0.3.2"
2855
2838
source = "registry+https://github.com/rust-lang/crates.io-index"
2856
-
checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc"
2839
+
checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
2857
2840
dependencies = [
2858
-
"bitflags 2.9.1",
2859
-
"block2 0.6.1",
2841
+
"bitflags 2.10.0",
2842
+
"block2 0.6.2",
2860
2843
"libc",
2861
-
"objc2 0.6.1",
2844
+
"objc2 0.6.3",
2862
2845
"objc2-cloud-kit",
2863
2846
"objc2-core-data",
2864
2847
"objc2-core-foundation",
2865
2848
"objc2-core-graphics",
2866
2849
"objc2-core-image",
2867
-
"objc2-foundation 0.3.1",
2868
-
"objc2-quartz-core 0.3.1",
2850
+
"objc2-core-text",
2851
+
"objc2-core-video",
2852
+
"objc2-foundation 0.3.2",
2853
+
"objc2-quartz-core 0.3.2",
2869
2854
]
2870
2855
2871
2856
[[package]]
2872
2857
name = "objc2-cloud-kit"
2873
-
version = "0.3.1"
2858
+
version = "0.3.2"
2874
2859
source = "registry+https://github.com/rust-lang/crates.io-index"
2875
-
checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d"
2860
+
checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
2876
2861
dependencies = [
2877
-
"bitflags 2.9.1",
2878
-
"objc2 0.6.1",
2879
-
"objc2-foundation 0.3.1",
2862
+
"bitflags 2.10.0",
2863
+
"objc2 0.6.3",
2864
+
"objc2-foundation 0.3.2",
2880
2865
]
2881
2866
2882
2867
[[package]]
2883
2868
name = "objc2-core-data"
2884
-
version = "0.3.1"
2869
+
version = "0.3.2"
2885
2870
source = "registry+https://github.com/rust-lang/crates.io-index"
2886
-
checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d"
2871
+
checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa"
2887
2872
dependencies = [
2888
-
"bitflags 2.9.1",
2889
-
"objc2 0.6.1",
2890
-
"objc2-foundation 0.3.1",
2873
+
"bitflags 2.10.0",
2874
+
"objc2 0.6.3",
2875
+
"objc2-foundation 0.3.2",
2891
2876
]
2892
2877
2893
2878
[[package]]
2894
2879
name = "objc2-core-foundation"
2895
-
version = "0.3.1"
2880
+
version = "0.3.2"
2896
2881
source = "registry+https://github.com/rust-lang/crates.io-index"
2897
-
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
2882
+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
2898
2883
dependencies = [
2899
-
"bitflags 2.9.1",
2884
+
"bitflags 2.10.0",
2900
2885
"dispatch2",
2901
-
"objc2 0.6.1",
2886
+
"objc2 0.6.3",
2902
2887
]
2903
2888
2904
2889
[[package]]
2905
2890
name = "objc2-core-graphics"
2906
-
version = "0.3.1"
2891
+
version = "0.3.2"
2907
2892
source = "registry+https://github.com/rust-lang/crates.io-index"
2908
-
checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4"
2893
+
checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
2909
2894
dependencies = [
2910
-
"bitflags 2.9.1",
2895
+
"bitflags 2.10.0",
2911
2896
"dispatch2",
2912
-
"objc2 0.6.1",
2897
+
"objc2 0.6.3",
2913
2898
"objc2-core-foundation",
2914
2899
"objc2-io-surface",
2915
2900
]
2916
2901
2917
2902
[[package]]
2918
2903
name = "objc2-core-image"
2919
-
version = "0.3.1"
2904
+
version = "0.3.2"
2920
2905
source = "registry+https://github.com/rust-lang/crates.io-index"
2921
-
checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e"
2906
+
checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006"
2922
2907
dependencies = [
2923
-
"objc2 0.6.1",
2924
-
"objc2-foundation 0.3.1",
2908
+
"objc2 0.6.3",
2909
+
"objc2-foundation 0.3.2",
2910
+
]
2911
+
2912
+
[[package]]
2913
+
name = "objc2-core-text"
2914
+
version = "0.3.2"
2915
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2916
+
checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d"
2917
+
dependencies = [
2918
+
"bitflags 2.10.0",
2919
+
"objc2 0.6.3",
2920
+
"objc2-core-foundation",
2921
+
"objc2-core-graphics",
2922
+
]
2923
+
2924
+
[[package]]
2925
+
name = "objc2-core-video"
2926
+
version = "0.3.2"
2927
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2928
+
checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6"
2929
+
dependencies = [
2930
+
"bitflags 2.10.0",
2931
+
"objc2 0.6.3",
2932
+
"objc2-core-foundation",
2933
+
"objc2-core-graphics",
2934
+
"objc2-io-surface",
2925
2935
]
2926
2936
2927
2937
[[package]]
···
2945
2955
source = "registry+https://github.com/rust-lang/crates.io-index"
2946
2956
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
2947
2957
dependencies = [
2948
-
"bitflags 2.9.1",
2958
+
"bitflags 2.10.0",
2949
2959
"block2 0.5.1",
2950
2960
"libc",
2951
2961
"objc2 0.5.2",
···
2953
2963
2954
2964
[[package]]
2955
2965
name = "objc2-foundation"
2956
-
version = "0.3.1"
2966
+
version = "0.3.2"
2957
2967
source = "registry+https://github.com/rust-lang/crates.io-index"
2958
-
checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c"
2968
+
checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
2959
2969
dependencies = [
2960
-
"bitflags 2.9.1",
2961
-
"block2 0.6.1",
2970
+
"bitflags 2.10.0",
2971
+
"block2 0.6.2",
2962
2972
"libc",
2963
-
"objc2 0.6.1",
2973
+
"objc2 0.6.3",
2964
2974
"objc2-core-foundation",
2965
2975
]
2966
2976
2967
2977
[[package]]
2968
2978
name = "objc2-io-surface"
2969
-
version = "0.3.1"
2979
+
version = "0.3.2"
2970
2980
source = "registry+https://github.com/rust-lang/crates.io-index"
2971
-
checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c"
2981
+
checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
2972
2982
dependencies = [
2973
-
"bitflags 2.9.1",
2974
-
"objc2 0.6.1",
2983
+
"bitflags 2.10.0",
2984
+
"objc2 0.6.3",
2985
+
"objc2-core-foundation",
2986
+
]
2987
+
2988
+
[[package]]
2989
+
name = "objc2-javascript-core"
2990
+
version = "0.3.2"
2991
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2992
+
checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586"
2993
+
dependencies = [
2994
+
"objc2 0.6.3",
2975
2995
"objc2-core-foundation",
2976
2996
]
2977
2997
···
2981
3001
source = "registry+https://github.com/rust-lang/crates.io-index"
2982
3002
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
2983
3003
dependencies = [
2984
-
"bitflags 2.9.1",
3004
+
"bitflags 2.10.0",
2985
3005
"block2 0.5.1",
2986
3006
"objc2 0.5.2",
2987
3007
"objc2-foundation 0.2.2",
···
2993
3013
source = "registry+https://github.com/rust-lang/crates.io-index"
2994
3014
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
2995
3015
dependencies = [
2996
-
"bitflags 2.9.1",
3016
+
"bitflags 2.10.0",
2997
3017
"block2 0.5.1",
2998
3018
"objc2 0.5.2",
2999
3019
"objc2-foundation 0.2.2",
···
3002
3022
3003
3023
[[package]]
3004
3024
name = "objc2-quartz-core"
3005
-
version = "0.3.1"
3025
+
version = "0.3.2"
3006
3026
source = "registry+https://github.com/rust-lang/crates.io-index"
3007
-
checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5"
3027
+
checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
3008
3028
dependencies = [
3009
-
"bitflags 2.9.1",
3010
-
"objc2 0.6.1",
3011
-
"objc2-foundation 0.3.1",
3029
+
"bitflags 2.10.0",
3030
+
"objc2 0.6.3",
3031
+
"objc2-foundation 0.3.2",
3012
3032
]
3013
3033
3014
3034
[[package]]
3015
-
name = "objc2-ui-kit"
3016
-
version = "0.3.1"
3035
+
name = "objc2-security"
3036
+
version = "0.3.2"
3017
3037
source = "registry+https://github.com/rust-lang/crates.io-index"
3018
-
checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed"
3038
+
checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a"
3019
3039
dependencies = [
3020
-
"bitflags 2.9.1",
3021
-
"objc2 0.6.1",
3040
+
"bitflags 2.10.0",
3041
+
"objc2 0.6.3",
3022
3042
"objc2-core-foundation",
3023
-
"objc2-foundation 0.3.1",
3024
3043
]
3025
3044
3026
3045
[[package]]
3027
-
name = "objc2-web-kit"
3028
-
version = "0.3.1"
3046
+
name = "objc2-ui-kit"
3047
+
version = "0.3.2"
3029
3048
source = "registry+https://github.com/rust-lang/crates.io-index"
3030
-
checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad"
3049
+
checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
3031
3050
dependencies = [
3032
-
"bitflags 2.9.1",
3033
-
"block2 0.6.1",
3034
-
"objc2 0.6.1",
3035
-
"objc2-app-kit",
3051
+
"bitflags 2.10.0",
3052
+
"objc2 0.6.3",
3036
3053
"objc2-core-foundation",
3037
-
"objc2-foundation 0.3.1",
3054
+
"objc2-foundation 0.3.2",
3038
3055
]
3039
3056
3040
3057
[[package]]
3041
-
name = "object"
3042
-
version = "0.36.7"
3058
+
name = "objc2-web-kit"
3059
+
version = "0.3.2"
3043
3060
source = "registry+https://github.com/rust-lang/crates.io-index"
3044
-
checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
3061
+
checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f"
3045
3062
dependencies = [
3046
-
"memchr",
3063
+
"bitflags 2.10.0",
3064
+
"block2 0.6.2",
3065
+
"objc2 0.6.3",
3066
+
"objc2-app-kit",
3067
+
"objc2-core-foundation",
3068
+
"objc2-foundation 0.3.2",
3069
+
"objc2-javascript-core",
3070
+
"objc2-security",
3047
3071
]
3048
3072
3049
3073
[[package]]
···
3066
3090
3067
3091
[[package]]
3068
3092
name = "openssl"
3069
-
version = "0.10.73"
3093
+
version = "0.10.74"
3070
3094
source = "registry+https://github.com/rust-lang/crates.io-index"
3071
-
checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
3095
+
checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654"
3072
3096
dependencies = [
3073
-
"bitflags 2.9.1",
3097
+
"bitflags 2.10.0",
3074
3098
"cfg-if",
3075
3099
"foreign-types 0.3.2",
3076
3100
"libc",
···
3087
3111
dependencies = [
3088
3112
"proc-macro2",
3089
3113
"quote",
3090
-
"syn 2.0.104",
3114
+
"syn 2.0.109",
3091
3115
]
3092
3116
3093
3117
[[package]]
···
3098
3122
3099
3123
[[package]]
3100
3124
name = "openssl-sys"
3101
-
version = "0.9.109"
3125
+
version = "0.9.110"
3102
3126
source = "registry+https://github.com/rust-lang/crates.io-index"
3103
-
checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571"
3127
+
checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2"
3104
3128
dependencies = [
3105
3129
"cc",
3106
3130
"libc",
···
3136
3160
3137
3161
[[package]]
3138
3162
name = "os_pipe"
3139
-
version = "1.2.2"
3163
+
version = "1.2.3"
3140
3164
source = "registry+https://github.com/rust-lang/crates.io-index"
3141
-
checksum = "db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224"
3165
+
checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
3142
3166
dependencies = [
3143
3167
"libc",
3144
-
"windows-sys 0.59.0",
3168
+
"windows-sys 0.61.2",
3145
3169
]
3146
3170
3147
3171
[[package]]
···
3177
3201
3178
3202
[[package]]
3179
3203
name = "parking_lot"
3180
-
version = "0.12.4"
3204
+
version = "0.12.5"
3181
3205
source = "registry+https://github.com/rust-lang/crates.io-index"
3182
-
checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
3206
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
3183
3207
dependencies = [
3184
3208
"lock_api",
3185
3209
"parking_lot_core",
···
3187
3211
3188
3212
[[package]]
3189
3213
name = "parking_lot_core"
3190
-
version = "0.9.11"
3214
+
version = "0.9.12"
3191
3215
source = "registry+https://github.com/rust-lang/crates.io-index"
3192
-
checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
3216
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
3193
3217
dependencies = [
3194
3218
"cfg-if",
3195
3219
"libc",
3196
3220
"redox_syscall",
3197
3221
"smallvec",
3198
-
"windows-targets 0.52.6",
3222
+
"windows-link 0.2.1",
3199
3223
]
3200
3224
3201
3225
[[package]]
···
3212
3236
3213
3237
[[package]]
3214
3238
name = "percent-encoding"
3215
-
version = "2.3.1"
3239
+
version = "2.3.2"
3216
3240
source = "registry+https://github.com/rust-lang/crates.io-index"
3217
-
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
3241
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
3218
3242
3219
3243
[[package]]
3220
3244
name = "phf"
···
3320
3344
"phf_shared 0.11.3",
3321
3345
"proc-macro2",
3322
3346
"quote",
3323
-
"syn 2.0.104",
3347
+
"syn 2.0.109",
3324
3348
]
3325
3349
3326
3350
[[package]]
···
3381
3405
3382
3406
[[package]]
3383
3407
name = "plist"
3384
-
version = "1.7.4"
3408
+
version = "1.8.0"
3385
3409
source = "registry+https://github.com/rust-lang/crates.io-index"
3386
-
checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1"
3410
+
checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07"
3387
3411
dependencies = [
3388
3412
"base64 0.22.1",
3389
-
"indexmap 2.10.0",
3413
+
"indexmap 2.12.0",
3390
3414
"quick-xml",
3391
3415
"serde",
3392
3416
"time",
···
3406
3430
]
3407
3431
3408
3432
[[package]]
3433
+
name = "png"
3434
+
version = "0.18.0"
3435
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3436
+
checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0"
3437
+
dependencies = [
3438
+
"bitflags 2.10.0",
3439
+
"crc32fast",
3440
+
"fdeflate",
3441
+
"flate2",
3442
+
"miniz_oxide",
3443
+
]
3444
+
3445
+
[[package]]
3409
3446
name = "polling"
3410
-
version = "3.9.0"
3447
+
version = "3.11.0"
3411
3448
source = "registry+https://github.com/rust-lang/crates.io-index"
3412
-
checksum = "8ee9b2fa7a4517d2c91ff5bc6c297a427a96749d15f98fcdbb22c05571a4d4b7"
3449
+
checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
3413
3450
dependencies = [
3414
3451
"cfg-if",
3415
3452
"concurrent-queue",
3416
3453
"hermit-abi",
3417
3454
"pin-project-lite",
3418
3455
"rustix",
3419
-
"windows-sys 0.60.2",
3456
+
"windows-sys 0.61.2",
3420
3457
]
3421
3458
3422
3459
[[package]]
3423
3460
name = "potential_utf"
3424
-
version = "0.1.2"
3461
+
version = "0.1.4"
3425
3462
source = "registry+https://github.com/rust-lang/crates.io-index"
3426
-
checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
3463
+
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
3427
3464
dependencies = [
3428
3465
"zerovec",
3429
3466
]
···
3470
3507
]
3471
3508
3472
3509
[[package]]
3510
+
name = "proc-macro-crate"
3511
+
version = "3.4.0"
3512
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3513
+
checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
3514
+
dependencies = [
3515
+
"toml_edit 0.23.7",
3516
+
]
3517
+
3518
+
[[package]]
3473
3519
name = "proc-macro-error"
3474
3520
version = "1.0.4"
3475
3521
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3501
3547
3502
3548
[[package]]
3503
3549
name = "proc-macro2"
3504
-
version = "1.0.95"
3550
+
version = "1.0.103"
3505
3551
source = "registry+https://github.com/rust-lang/crates.io-index"
3506
-
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
3552
+
checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
3507
3553
dependencies = [
3508
3554
"unicode-ident",
3509
3555
]
···
3524
3570
checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b"
3525
3571
dependencies = [
3526
3572
"quote",
3527
-
"syn 2.0.104",
3573
+
"syn 2.0.109",
3528
3574
]
3529
3575
3530
3576
[[package]]
···
3544
3590
]
3545
3591
3546
3592
[[package]]
3593
+
name = "pxfm"
3594
+
version = "0.1.25"
3595
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3596
+
checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84"
3597
+
dependencies = [
3598
+
"num-traits",
3599
+
]
3600
+
3601
+
[[package]]
3547
3602
name = "qoi"
3548
3603
version = "0.4.1"
3549
3604
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3560
3615
3561
3616
[[package]]
3562
3617
name = "quick-xml"
3563
-
version = "0.38.0"
3618
+
version = "0.38.3"
3564
3619
source = "registry+https://github.com/rust-lang/crates.io-index"
3565
-
checksum = "8927b0664f5c5a98265138b7e3f90aa19a6b21353182469ace36d4ac527b7b1b"
3620
+
checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
3566
3621
dependencies = [
3567
3622
"memchr",
3568
3623
]
3569
3624
3570
3625
[[package]]
3571
3626
name = "quinn"
3572
-
version = "0.11.8"
3627
+
version = "0.11.9"
3573
3628
source = "registry+https://github.com/rust-lang/crates.io-index"
3574
-
checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8"
3629
+
checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
3575
3630
dependencies = [
3576
3631
"bytes",
3577
3632
"cfg_aliases",
···
3580
3635
"quinn-udp",
3581
3636
"rustc-hash",
3582
3637
"rustls",
3583
-
"socket2 0.5.10",
3584
-
"thiserror 2.0.12",
3638
+
"socket2",
3639
+
"thiserror 2.0.17",
3585
3640
"tokio",
3586
3641
"tracing",
3587
3642
"web-time",
···
3589
3644
3590
3645
[[package]]
3591
3646
name = "quinn-proto"
3592
-
version = "0.11.12"
3647
+
version = "0.11.13"
3593
3648
source = "registry+https://github.com/rust-lang/crates.io-index"
3594
-
checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e"
3649
+
checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
3595
3650
dependencies = [
3596
3651
"bytes",
3597
-
"getrandom 0.3.3",
3652
+
"getrandom 0.3.4",
3598
3653
"lru-slab",
3599
3654
"rand 0.9.2",
3600
3655
"ring",
···
3602
3657
"rustls",
3603
3658
"rustls-pki-types",
3604
3659
"slab",
3605
-
"thiserror 2.0.12",
3660
+
"thiserror 2.0.17",
3606
3661
"tinyvec",
3607
3662
"tracing",
3608
3663
"web-time",
···
3610
3665
3611
3666
[[package]]
3612
3667
name = "quinn-udp"
3613
-
version = "0.5.13"
3668
+
version = "0.5.14"
3614
3669
source = "registry+https://github.com/rust-lang/crates.io-index"
3615
-
checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970"
3670
+
checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
3616
3671
dependencies = [
3617
3672
"cfg_aliases",
3618
3673
"libc",
3619
3674
"once_cell",
3620
-
"socket2 0.5.10",
3675
+
"socket2",
3621
3676
"tracing",
3622
-
"windows-sys 0.59.0",
3677
+
"windows-sys 0.60.2",
3623
3678
]
3624
3679
3625
3680
[[package]]
3626
3681
name = "quote"
3627
-
version = "1.0.40"
3682
+
version = "1.0.42"
3628
3683
source = "registry+https://github.com/rust-lang/crates.io-index"
3629
-
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
3684
+
checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
3630
3685
dependencies = [
3631
3686
"proc-macro2",
3632
3687
]
···
3726
3781
source = "registry+https://github.com/rust-lang/crates.io-index"
3727
3782
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
3728
3783
dependencies = [
3729
-
"getrandom 0.3.3",
3784
+
"getrandom 0.3.4",
3730
3785
]
3731
3786
3732
3787
[[package]]
···
3805
3860
3806
3861
[[package]]
3807
3862
name = "rayon"
3808
-
version = "1.10.0"
3863
+
version = "1.11.0"
3809
3864
source = "registry+https://github.com/rust-lang/crates.io-index"
3810
-
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
3865
+
checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
3811
3866
dependencies = [
3812
3867
"either",
3813
3868
"rayon-core",
···
3815
3870
3816
3871
[[package]]
3817
3872
name = "rayon-core"
3818
-
version = "1.12.1"
3873
+
version = "1.13.0"
3819
3874
source = "registry+https://github.com/rust-lang/crates.io-index"
3820
-
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
3875
+
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
3821
3876
dependencies = [
3822
3877
"crossbeam-deque",
3823
3878
"crossbeam-utils",
···
3825
3880
3826
3881
[[package]]
3827
3882
name = "redox_syscall"
3828
-
version = "0.5.17"
3883
+
version = "0.5.18"
3829
3884
source = "registry+https://github.com/rust-lang/crates.io-index"
3830
-
checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
3885
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
3831
3886
dependencies = [
3832
-
"bitflags 2.9.1",
3833
-
]
3834
-
3835
-
[[package]]
3836
-
name = "redox_users"
3837
-
version = "0.4.6"
3838
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3839
-
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
3840
-
dependencies = [
3841
-
"getrandom 0.2.16",
3842
-
"libredox",
3843
-
"thiserror 1.0.69",
3887
+
"bitflags 2.10.0",
3844
3888
]
3845
3889
3846
3890
[[package]]
···
3851
3895
dependencies = [
3852
3896
"getrandom 0.2.16",
3853
3897
"libredox",
3854
-
"thiserror 2.0.12",
3898
+
"thiserror 2.0.17",
3855
3899
]
3856
3900
3857
3901
[[package]]
3858
3902
name = "ref-cast"
3859
-
version = "1.0.24"
3903
+
version = "1.0.25"
3860
3904
source = "registry+https://github.com/rust-lang/crates.io-index"
3861
-
checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf"
3905
+
checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
3862
3906
dependencies = [
3863
3907
"ref-cast-impl",
3864
3908
]
3865
3909
3866
3910
[[package]]
3867
3911
name = "ref-cast-impl"
3868
-
version = "1.0.24"
3912
+
version = "1.0.25"
3869
3913
source = "registry+https://github.com/rust-lang/crates.io-index"
3870
-
checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
3914
+
checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
3871
3915
dependencies = [
3872
3916
"proc-macro2",
3873
3917
"quote",
3874
-
"syn 2.0.104",
3918
+
"syn 2.0.109",
3875
3919
]
3876
3920
3877
3921
[[package]]
3878
3922
name = "regex"
3879
-
version = "1.11.1"
3923
+
version = "1.12.2"
3880
3924
source = "registry+https://github.com/rust-lang/crates.io-index"
3881
-
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
3925
+
checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
3882
3926
dependencies = [
3883
3927
"aho-corasick",
3884
3928
"memchr",
···
3888
3932
3889
3933
[[package]]
3890
3934
name = "regex-automata"
3891
-
version = "0.4.9"
3935
+
version = "0.4.13"
3892
3936
source = "registry+https://github.com/rust-lang/crates.io-index"
3893
-
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
3937
+
checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
3894
3938
dependencies = [
3895
3939
"aho-corasick",
3896
3940
"memchr",
···
3899
3943
3900
3944
[[package]]
3901
3945
name = "regex-syntax"
3902
-
version = "0.8.5"
3946
+
version = "0.8.8"
3903
3947
source = "registry+https://github.com/rust-lang/crates.io-index"
3904
-
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
3948
+
checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
3905
3949
3906
3950
[[package]]
3907
3951
name = "reqwest"
3908
-
version = "0.12.22"
3952
+
version = "0.12.24"
3909
3953
source = "registry+https://github.com/rust-lang/crates.io-index"
3910
-
checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531"
3954
+
checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f"
3911
3955
dependencies = [
3912
3956
"base64 0.22.1",
3913
3957
"bytes",
···
3975
4019
3976
4020
[[package]]
3977
4021
name = "rust-ini"
3978
-
version = "0.21.2"
4022
+
version = "0.21.3"
3979
4023
source = "registry+https://github.com/rust-lang/crates.io-index"
3980
-
checksum = "e7295b7ce3bf4806b419dc3420745998b447178b7005e2011947b38fc5aa6791"
4024
+
checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
3981
4025
dependencies = [
3982
4026
"cfg-if",
3983
4027
"ordered-multimap",
3984
4028
]
3985
-
3986
-
[[package]]
3987
-
name = "rustc-demangle"
3988
-
version = "0.1.26"
3989
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3990
-
checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
3991
4029
3992
4030
[[package]]
3993
4031
name = "rustc-hash"
···
4006
4044
4007
4045
[[package]]
4008
4046
name = "rustix"
4009
-
version = "1.0.8"
4047
+
version = "1.1.2"
4010
4048
source = "registry+https://github.com/rust-lang/crates.io-index"
4011
-
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
4049
+
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
4012
4050
dependencies = [
4013
-
"bitflags 2.9.1",
4051
+
"bitflags 2.10.0",
4014
4052
"errno",
4015
4053
"libc",
4016
4054
"linux-raw-sys",
4017
-
"windows-sys 0.60.2",
4055
+
"windows-sys 0.61.2",
4018
4056
]
4019
4057
4020
4058
[[package]]
4021
4059
name = "rustls"
4022
-
version = "0.23.31"
4060
+
version = "0.23.35"
4023
4061
source = "registry+https://github.com/rust-lang/crates.io-index"
4024
-
checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc"
4062
+
checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f"
4025
4063
dependencies = [
4026
4064
"once_cell",
4027
4065
"ring",
···
4033
4071
4034
4072
[[package]]
4035
4073
name = "rustls-pki-types"
4036
-
version = "1.12.0"
4074
+
version = "1.13.0"
4037
4075
source = "registry+https://github.com/rust-lang/crates.io-index"
4038
-
checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79"
4076
+
checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a"
4039
4077
dependencies = [
4040
4078
"web-time",
4041
4079
"zeroize",
···
4043
4081
4044
4082
[[package]]
4045
4083
name = "rustls-webpki"
4046
-
version = "0.103.4"
4084
+
version = "0.103.8"
4047
4085
source = "registry+https://github.com/rust-lang/crates.io-index"
4048
-
checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc"
4086
+
checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
4049
4087
dependencies = [
4050
4088
"ring",
4051
4089
"rustls-pki-types",
···
4054
4092
4055
4093
[[package]]
4056
4094
name = "rustversion"
4057
-
version = "1.0.21"
4095
+
version = "1.0.22"
4058
4096
source = "registry+https://github.com/rust-lang/crates.io-index"
4059
-
checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d"
4097
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
4060
4098
4061
4099
[[package]]
4062
4100
name = "ryu"
···
4075
4113
4076
4114
[[package]]
4077
4115
name = "schannel"
4078
-
version = "0.1.27"
4116
+
version = "0.1.28"
4079
4117
source = "registry+https://github.com/rust-lang/crates.io-index"
4080
-
checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d"
4118
+
checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
4081
4119
dependencies = [
4082
-
"windows-sys 0.59.0",
4120
+
"windows-sys 0.61.2",
4083
4121
]
4084
4122
4085
4123
[[package]]
···
4111
4149
4112
4150
[[package]]
4113
4151
name = "schemars"
4114
-
version = "1.0.4"
4152
+
version = "1.1.0"
4115
4153
source = "registry+https://github.com/rust-lang/crates.io-index"
4116
-
checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
4154
+
checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289"
4117
4155
dependencies = [
4118
4156
"dyn-clone",
4119
4157
"ref-cast",
···
4130
4168
"proc-macro2",
4131
4169
"quote",
4132
4170
"serde_derive_internals",
4133
-
"syn 2.0.104",
4171
+
"syn 2.0.109",
4134
4172
]
4135
4173
4136
4174
[[package]]
···
4145
4183
source = "registry+https://github.com/rust-lang/crates.io-index"
4146
4184
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
4147
4185
dependencies = [
4148
-
"bitflags 2.9.1",
4186
+
"bitflags 2.10.0",
4149
4187
"core-foundation 0.9.4",
4150
4188
"core-foundation-sys",
4151
4189
"libc",
···
4154
4192
4155
4193
[[package]]
4156
4194
name = "security-framework-sys"
4157
-
version = "2.14.0"
4195
+
version = "2.15.0"
4158
4196
source = "registry+https://github.com/rust-lang/crates.io-index"
4159
-
checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32"
4197
+
checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
4160
4198
dependencies = [
4161
4199
"core-foundation-sys",
4162
4200
"libc",
···
4182
4220
4183
4221
[[package]]
4184
4222
name = "semver"
4185
-
version = "1.0.26"
4223
+
version = "1.0.27"
4186
4224
source = "registry+https://github.com/rust-lang/crates.io-index"
4187
-
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
4225
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
4188
4226
dependencies = [
4189
4227
"serde",
4228
+
"serde_core",
4190
4229
]
4191
4230
4192
4231
[[package]]
4193
4232
name = "serde"
4194
-
version = "1.0.219"
4233
+
version = "1.0.228"
4195
4234
source = "registry+https://github.com/rust-lang/crates.io-index"
4196
-
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
4235
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
4197
4236
dependencies = [
4237
+
"serde_core",
4198
4238
"serde_derive",
4199
4239
]
4200
4240
4201
4241
[[package]]
4202
4242
name = "serde-untagged"
4203
-
version = "0.1.7"
4243
+
version = "0.1.9"
4204
4244
source = "registry+https://github.com/rust-lang/crates.io-index"
4205
-
checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e"
4245
+
checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058"
4206
4246
dependencies = [
4207
4247
"erased-serde",
4208
4248
"serde",
4249
+
"serde_core",
4209
4250
"typeid",
4210
4251
]
4211
4252
4212
4253
[[package]]
4254
+
name = "serde_core"
4255
+
version = "1.0.228"
4256
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4257
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
4258
+
dependencies = [
4259
+
"serde_derive",
4260
+
]
4261
+
4262
+
[[package]]
4213
4263
name = "serde_derive"
4214
-
version = "1.0.219"
4264
+
version = "1.0.228"
4215
4265
source = "registry+https://github.com/rust-lang/crates.io-index"
4216
-
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
4266
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
4217
4267
dependencies = [
4218
4268
"proc-macro2",
4219
4269
"quote",
4220
-
"syn 2.0.104",
4270
+
"syn 2.0.109",
4221
4271
]
4222
4272
4223
4273
[[package]]
···
4228
4278
dependencies = [
4229
4279
"proc-macro2",
4230
4280
"quote",
4231
-
"syn 2.0.104",
4281
+
"syn 2.0.109",
4232
4282
]
4233
4283
4234
4284
[[package]]
4235
4285
name = "serde_json"
4236
-
version = "1.0.141"
4286
+
version = "1.0.145"
4237
4287
source = "registry+https://github.com/rust-lang/crates.io-index"
4238
-
checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3"
4288
+
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
4239
4289
dependencies = [
4240
4290
"itoa",
4241
4291
"memchr",
4242
4292
"ryu",
4243
4293
"serde",
4294
+
"serde_core",
4244
4295
]
4245
4296
4246
4297
[[package]]
···
4251
4302
dependencies = [
4252
4303
"proc-macro2",
4253
4304
"quote",
4254
-
"syn 2.0.104",
4305
+
"syn 2.0.109",
4255
4306
]
4256
4307
4257
4308
[[package]]
···
4265
4316
4266
4317
[[package]]
4267
4318
name = "serde_spanned"
4268
-
version = "1.0.0"
4319
+
version = "1.0.3"
4269
4320
source = "registry+https://github.com/rust-lang/crates.io-index"
4270
-
checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83"
4321
+
checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
4271
4322
dependencies = [
4272
-
"serde",
4323
+
"serde_core",
4273
4324
]
4274
4325
4275
4326
[[package]]
···
4286
4337
4287
4338
[[package]]
4288
4339
name = "serde_with"
4289
-
version = "3.14.0"
4340
+
version = "3.15.1"
4290
4341
source = "registry+https://github.com/rust-lang/crates.io-index"
4291
-
checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5"
4342
+
checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04"
4292
4343
dependencies = [
4293
4344
"base64 0.22.1",
4294
4345
"chrono",
4295
4346
"hex",
4296
4347
"indexmap 1.9.3",
4297
-
"indexmap 2.10.0",
4348
+
"indexmap 2.12.0",
4298
4349
"schemars 0.9.0",
4299
-
"schemars 1.0.4",
4300
-
"serde",
4301
-
"serde_derive",
4350
+
"schemars 1.1.0",
4351
+
"serde_core",
4302
4352
"serde_json",
4303
4353
"serde_with_macros",
4304
4354
"time",
···
4306
4356
4307
4357
[[package]]
4308
4358
name = "serde_with_macros"
4309
-
version = "3.14.0"
4359
+
version = "3.15.1"
4310
4360
source = "registry+https://github.com/rust-lang/crates.io-index"
4311
-
checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f"
4361
+
checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955"
4312
4362
dependencies = [
4313
4363
"darling",
4314
4364
"proc-macro2",
4315
4365
"quote",
4316
-
"syn 2.0.104",
4366
+
"syn 2.0.109",
4317
4367
]
4318
4368
4319
4369
[[package]]
4320
4370
name = "serialize-to-javascript"
4321
-
version = "0.1.1"
4371
+
version = "0.1.2"
4322
4372
source = "registry+https://github.com/rust-lang/crates.io-index"
4323
-
checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
4373
+
checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5"
4324
4374
dependencies = [
4325
4375
"serde",
4326
4376
"serde_json",
···
4329
4379
4330
4380
[[package]]
4331
4381
name = "serialize-to-javascript-impl"
4332
-
version = "0.1.1"
4382
+
version = "0.1.2"
4333
4383
source = "registry+https://github.com/rust-lang/crates.io-index"
4334
-
checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
4384
+
checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d"
4335
4385
dependencies = [
4336
4386
"proc-macro2",
4337
4387
"quote",
4338
-
"syn 1.0.109",
4388
+
"syn 2.0.109",
4339
4389
]
4340
4390
4341
4391
[[package]]
···
4349
4399
]
4350
4400
4351
4401
[[package]]
4352
-
name = "sha1"
4353
-
version = "0.10.6"
4354
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4355
-
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
4356
-
dependencies = [
4357
-
"cfg-if",
4358
-
"cpufeatures",
4359
-
"digest",
4360
-
]
4361
-
4362
-
[[package]]
4363
4402
name = "sha2"
4364
4403
version = "0.10.9"
4365
4404
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4410
4449
4411
4450
[[package]]
4412
4451
name = "signal-hook-registry"
4413
-
version = "1.4.5"
4452
+
version = "1.4.6"
4414
4453
source = "registry+https://github.com/rust-lang/crates.io-index"
4415
-
checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410"
4454
+
checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
4416
4455
dependencies = [
4417
4456
"libc",
4418
4457
]
···
4446
4485
4447
4486
[[package]]
4448
4487
name = "slab"
4449
-
version = "0.4.10"
4488
+
version = "0.4.11"
4450
4489
source = "registry+https://github.com/rust-lang/crates.io-index"
4451
-
checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d"
4490
+
checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
4452
4491
4453
4492
[[package]]
4454
4493
name = "smallvec"
···
4458
4497
4459
4498
[[package]]
4460
4499
name = "socket2"
4461
-
version = "0.5.10"
4500
+
version = "0.6.1"
4462
4501
source = "registry+https://github.com/rust-lang/crates.io-index"
4463
-
checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678"
4502
+
checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
4464
4503
dependencies = [
4465
4504
"libc",
4466
-
"windows-sys 0.52.0",
4467
-
]
4468
-
4469
-
[[package]]
4470
-
name = "socket2"
4471
-
version = "0.6.0"
4472
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4473
-
checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
4474
-
dependencies = [
4475
-
"libc",
4476
-
"windows-sys 0.59.0",
4505
+
"windows-sys 0.60.2",
4477
4506
]
4478
4507
4479
4508
[[package]]
···
4526
4555
4527
4556
[[package]]
4528
4557
name = "stable_deref_trait"
4529
-
version = "1.2.0"
4558
+
version = "1.2.1"
4530
4559
source = "registry+https://github.com/rust-lang/crates.io-index"
4531
-
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
4560
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
4532
4561
4533
4562
[[package]]
4534
4563
name = "static_assertions"
···
4597
4626
4598
4627
[[package]]
4599
4628
name = "syn"
4600
-
version = "2.0.104"
4629
+
version = "2.0.109"
4601
4630
source = "registry+https://github.com/rust-lang/crates.io-index"
4602
-
checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
4631
+
checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f"
4603
4632
dependencies = [
4604
4633
"proc-macro2",
4605
4634
"quote",
···
4623
4652
dependencies = [
4624
4653
"proc-macro2",
4625
4654
"quote",
4626
-
"syn 2.0.104",
4655
+
"syn 2.0.109",
4627
4656
]
4628
4657
4629
4658
[[package]]
···
4632
4661
source = "registry+https://github.com/rust-lang/crates.io-index"
4633
4662
checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
4634
4663
dependencies = [
4635
-
"bitflags 2.9.1",
4664
+
"bitflags 2.10.0",
4636
4665
"core-foundation 0.9.4",
4637
4666
"system-configuration-sys",
4638
4667
]
···
4662
4691
4663
4692
[[package]]
4664
4693
name = "tao"
4665
-
version = "0.34.0"
4694
+
version = "0.34.5"
4666
4695
source = "registry+https://github.com/rust-lang/crates.io-index"
4667
-
checksum = "49c380ca75a231b87b6c9dd86948f035012e7171d1a7c40a9c2890489a7ffd8a"
4696
+
checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7"
4668
4697
dependencies = [
4669
-
"bitflags 2.9.1",
4698
+
"bitflags 2.10.0",
4699
+
"block2 0.6.2",
4670
4700
"core-foundation 0.10.1",
4671
4701
"core-graphics",
4672
4702
"crossbeam-channel",
···
4683
4713
"ndk",
4684
4714
"ndk-context",
4685
4715
"ndk-sys",
4686
-
"objc2 0.6.1",
4716
+
"objc2 0.6.3",
4687
4717
"objc2-app-kit",
4688
-
"objc2-foundation 0.3.1",
4718
+
"objc2-foundation 0.3.2",
4689
4719
"once_cell",
4690
4720
"parking_lot",
4691
4721
"raw-window-handle",
···
4694
4724
"unicode-segmentation",
4695
4725
"url",
4696
4726
"windows",
4697
-
"windows-core",
4727
+
"windows-core 0.61.2",
4698
4728
"windows-version",
4699
4729
"x11-dl",
4700
4730
]
···
4707
4737
dependencies = [
4708
4738
"proc-macro2",
4709
4739
"quote",
4710
-
"syn 2.0.104",
4740
+
"syn 2.0.109",
4711
4741
]
4712
4742
4713
4743
[[package]]
···
4718
4748
4719
4749
[[package]]
4720
4750
name = "tauri"
4721
-
version = "2.7.0"
4751
+
version = "2.9.2"
4722
4752
source = "registry+https://github.com/rust-lang/crates.io-index"
4723
-
checksum = "352a4bc7bf6c25f5624227e3641adf475a6535707451b09bb83271df8b7a6ac7"
4753
+
checksum = "8bceb52453e507c505b330afe3398510e87f428ea42b6e76ecb6bd63b15965b5"
4724
4754
dependencies = [
4725
4755
"anyhow",
4726
4756
"bytes",
4727
-
"dirs 6.0.0",
4757
+
"cookie",
4758
+
"dirs",
4728
4759
"dunce",
4729
4760
"embed_plist",
4730
-
"getrandom 0.3.3",
4761
+
"getrandom 0.3.4",
4731
4762
"glob",
4732
4763
"gtk",
4733
4764
"heck 0.5.0",
···
4738
4769
"log",
4739
4770
"mime",
4740
4771
"muda",
4741
-
"objc2 0.6.1",
4772
+
"objc2 0.6.3",
4742
4773
"objc2-app-kit",
4743
-
"objc2-foundation 0.3.1",
4774
+
"objc2-foundation 0.3.2",
4744
4775
"objc2-ui-kit",
4776
+
"objc2-web-kit",
4745
4777
"percent-encoding",
4746
4778
"plist",
4747
4779
"raw-window-handle",
···
4756
4788
"tauri-runtime",
4757
4789
"tauri-runtime-wry",
4758
4790
"tauri-utils",
4759
-
"thiserror 2.0.12",
4791
+
"thiserror 2.0.17",
4760
4792
"tokio",
4761
4793
"tray-icon",
4762
4794
"url",
4763
-
"urlpattern",
4764
4795
"webkit2gtk",
4765
4796
"webview2-com",
4766
4797
"window-vibrancy",
···
4769
4800
4770
4801
[[package]]
4771
4802
name = "tauri-build"
4772
-
version = "2.3.1"
4803
+
version = "2.5.1"
4773
4804
source = "registry+https://github.com/rust-lang/crates.io-index"
4774
-
checksum = "182d688496c06bf08ea896459bf483eb29cdff35c1c4c115fb14053514303064"
4805
+
checksum = "a924b6c50fe83193f0f8b14072afa7c25b7a72752a2a73d9549b463f5fe91a38"
4775
4806
dependencies = [
4776
4807
"anyhow",
4777
4808
"cargo_toml",
4778
-
"dirs 6.0.0",
4809
+
"dirs",
4779
4810
"glob",
4780
4811
"heck 0.5.0",
4781
4812
"json-patch",
···
4785
4816
"serde_json",
4786
4817
"tauri-utils",
4787
4818
"tauri-winres",
4788
-
"toml 0.8.2",
4819
+
"toml 0.9.8",
4789
4820
"walkdir",
4790
4821
]
4791
4822
4792
4823
[[package]]
4793
4824
name = "tauri-codegen"
4794
-
version = "2.3.1"
4825
+
version = "2.5.0"
4795
4826
source = "registry+https://github.com/rust-lang/crates.io-index"
4796
-
checksum = "b54a99a6cd8e01abcfa61508177e6096a4fe2681efecee9214e962f2f073ae4a"
4827
+
checksum = "6c1fe64c74cc40f90848281a90058a6db931eb400b60205840e09801ee30f190"
4797
4828
dependencies = [
4798
4829
"base64 0.22.1",
4799
4830
"brotli",
4800
4831
"ico",
4801
4832
"json-patch",
4802
4833
"plist",
4803
-
"png",
4834
+
"png 0.17.16",
4804
4835
"proc-macro2",
4805
4836
"quote",
4806
4837
"semver",
4807
4838
"serde",
4808
4839
"serde_json",
4809
4840
"sha2",
4810
-
"syn 2.0.104",
4841
+
"syn 2.0.109",
4811
4842
"tauri-utils",
4812
-
"thiserror 2.0.12",
4843
+
"thiserror 2.0.17",
4813
4844
"time",
4814
4845
"url",
4815
4846
"uuid",
···
4818
4849
4819
4850
[[package]]
4820
4851
name = "tauri-macros"
4821
-
version = "2.3.2"
4852
+
version = "2.5.0"
4822
4853
source = "registry+https://github.com/rust-lang/crates.io-index"
4823
-
checksum = "7945b14dc45e23532f2ded6e120170bbdd4af5ceaa45784a6b33d250fbce3f9e"
4854
+
checksum = "260c5d2eb036b76206b9fca20b7be3614cfd21046c5396f7959e0e64a4b07f2f"
4824
4855
dependencies = [
4825
4856
"heck 0.5.0",
4826
4857
"proc-macro2",
4827
4858
"quote",
4828
-
"syn 2.0.104",
4859
+
"syn 2.0.109",
4829
4860
"tauri-codegen",
4830
4861
"tauri-utils",
4831
4862
]
4832
4863
4833
4864
[[package]]
4834
4865
name = "tauri-plugin"
4835
-
version = "2.3.1"
4866
+
version = "2.5.1"
4836
4867
source = "registry+https://github.com/rust-lang/crates.io-index"
4837
-
checksum = "5bd5c1e56990c70a906ef67a9851bbdba9136d26075ee9a2b19c8b46986b3e02"
4868
+
checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d"
4838
4869
dependencies = [
4839
4870
"anyhow",
4840
4871
"glob",
···
4843
4874
"serde",
4844
4875
"serde_json",
4845
4876
"tauri-utils",
4846
-
"toml 0.8.2",
4877
+
"toml 0.9.8",
4847
4878
"walkdir",
4848
4879
]
4849
4880
4850
4881
[[package]]
4851
4882
name = "tauri-plugin-deep-link"
4852
-
version = "2.4.1"
4883
+
version = "2.4.5"
4853
4884
source = "registry+https://github.com/rust-lang/crates.io-index"
4854
-
checksum = "1fec67f32d7a06d80bd3dc009fdb678c35a66116d9cb8cd2bb32e406c2b5bbd2"
4885
+
checksum = "6e82759f7c7d51de3cbde51c04b3f2332de52436ed84541182cd8944b04e9e73"
4855
4886
dependencies = [
4856
4887
"dunce",
4888
+
"plist",
4857
4889
"rust-ini",
4858
4890
"serde",
4859
4891
"serde_json",
4860
4892
"tauri",
4861
4893
"tauri-plugin",
4862
4894
"tauri-utils",
4863
-
"thiserror 2.0.12",
4895
+
"thiserror 2.0.17",
4864
4896
"tracing",
4865
4897
"url",
4866
4898
"windows-registry",
4867
-
"windows-result",
4899
+
"windows-result 0.3.4",
4868
4900
]
4869
4901
4870
4902
[[package]]
4871
4903
name = "tauri-plugin-fs"
4872
-
version = "2.4.1"
4904
+
version = "2.4.4"
4873
4905
source = "registry+https://github.com/rust-lang/crates.io-index"
4874
-
checksum = "8c6ef84ee2f2094ce093e55106d90d763ba343fad57566992962e8f76d113f99"
4906
+
checksum = "47df422695255ecbe7bac7012440eddaeefd026656171eac9559f5243d3230d9"
4875
4907
dependencies = [
4876
4908
"anyhow",
4877
4909
"dunce",
···
4884
4916
"tauri",
4885
4917
"tauri-plugin",
4886
4918
"tauri-utils",
4887
-
"thiserror 2.0.12",
4888
-
"toml 0.8.2",
4919
+
"thiserror 2.0.17",
4920
+
"toml 0.9.8",
4889
4921
"url",
4890
4922
]
4891
4923
4892
4924
[[package]]
4893
4925
name = "tauri-plugin-http"
4894
-
version = "2.5.1"
4926
+
version = "2.5.4"
4895
4927
source = "registry+https://github.com/rust-lang/crates.io-index"
4896
-
checksum = "fcde333d97e565a7765aad82f32d8672458f7bd77b6ee653830d5dded9d7b5c2"
4928
+
checksum = "c00685aceab12643cf024f712ab0448ba8fcadf86f2391d49d2e5aa732aacc70"
4897
4929
dependencies = [
4898
4930
"bytes",
4899
4931
"cookie_store",
···
4907
4939
"tauri",
4908
4940
"tauri-plugin",
4909
4941
"tauri-plugin-fs",
4910
-
"thiserror 2.0.12",
4942
+
"thiserror 2.0.17",
4911
4943
"tokio",
4912
4944
"url",
4913
4945
"urlpattern",
···
4915
4947
4916
4948
[[package]]
4917
4949
name = "tauri-plugin-process"
4918
-
version = "2.3.0"
4950
+
version = "2.3.1"
4919
4951
source = "registry+https://github.com/rust-lang/crates.io-index"
4920
-
checksum = "7461c622a5ea00eb9cd9f7a08dbd3bf79484499fd5c21aa2964677f64ca651ab"
4952
+
checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a"
4921
4953
dependencies = [
4922
4954
"tauri",
4923
4955
"tauri-plugin",
···
4925
4957
4926
4958
[[package]]
4927
4959
name = "tauri-plugin-shell"
4928
-
version = "2.3.0"
4960
+
version = "2.3.3"
4929
4961
source = "registry+https://github.com/rust-lang/crates.io-index"
4930
-
checksum = "2b9ffadec5c3523f11e8273465cacb3d86ea7652a28e6e2a2e9b5c182f791d25"
4962
+
checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c"
4931
4963
dependencies = [
4932
4964
"encoding_rs",
4933
4965
"log",
···
4940
4972
"shared_child",
4941
4973
"tauri",
4942
4974
"tauri-plugin",
4943
-
"thiserror 2.0.12",
4975
+
"thiserror 2.0.17",
4944
4976
"tokio",
4945
4977
]
4946
4978
4947
4979
[[package]]
4948
4980
name = "tauri-plugin-single-instance"
4949
-
version = "2.2.0"
4981
+
version = "2.3.6"
4950
4982
source = "registry+https://github.com/rust-lang/crates.io-index"
4951
-
checksum = "0f36019ee9832dc99e4450bb55a21cfad8633b19c2c18bd17c7741939b070ede"
4983
+
checksum = "dd707f8c86b4e3004e2c141fa24351f1909ba40ce1b8437e30d5ed5277dd3710"
4952
4984
dependencies = [
4953
4985
"serde",
4954
4986
"serde_json",
4955
4987
"tauri",
4956
4988
"tauri-plugin-deep-link",
4957
-
"thiserror 2.0.12",
4989
+
"thiserror 2.0.17",
4958
4990
"tracing",
4959
-
"windows-sys 0.59.0",
4991
+
"windows-sys 0.60.2",
4960
4992
"zbus",
4961
4993
]
4962
4994
4963
4995
[[package]]
4964
4996
name = "tauri-runtime"
4965
-
version = "2.7.1"
4997
+
version = "2.9.1"
4966
4998
source = "registry+https://github.com/rust-lang/crates.io-index"
4967
-
checksum = "2b1cc885be806ea15ff7b0eb47098a7b16323d9228876afda329e34e2d6c4676"
4999
+
checksum = "9368f09358496f2229313fccb37682ad116b7f46fa76981efe116994a0628926"
4968
5000
dependencies = [
4969
5001
"cookie",
4970
5002
"dpi",
4971
5003
"gtk",
4972
5004
"http",
4973
5005
"jni",
4974
-
"objc2 0.6.1",
5006
+
"objc2 0.6.3",
4975
5007
"objc2-ui-kit",
5008
+
"objc2-web-kit",
4976
5009
"raw-window-handle",
4977
5010
"serde",
4978
5011
"serde_json",
4979
5012
"tauri-utils",
4980
-
"thiserror 2.0.12",
5013
+
"thiserror 2.0.17",
4981
5014
"url",
5015
+
"webkit2gtk",
5016
+
"webview2-com",
4982
5017
"windows",
4983
5018
]
4984
5019
4985
5020
[[package]]
4986
5021
name = "tauri-runtime-wry"
4987
-
version = "2.7.2"
5022
+
version = "2.9.1"
4988
5023
source = "registry+https://github.com/rust-lang/crates.io-index"
4989
-
checksum = "fe653a2fbbef19fe898efc774bc52c8742576342a33d3d028c189b57eb1d2439"
5024
+
checksum = "929f5df216f5c02a9e894554401bcdab6eec3e39ec6a4a7731c7067fc8688a93"
4990
5025
dependencies = [
4991
5026
"gtk",
4992
5027
"http",
4993
5028
"jni",
4994
5029
"log",
4995
-
"objc2 0.6.1",
5030
+
"objc2 0.6.3",
4996
5031
"objc2-app-kit",
4997
-
"objc2-foundation 0.3.1",
5032
+
"objc2-foundation 0.3.2",
4998
5033
"once_cell",
4999
5034
"percent-encoding",
5000
5035
"raw-window-handle",
···
5011
5046
5012
5047
[[package]]
5013
5048
name = "tauri-utils"
5014
-
version = "2.6.0"
5049
+
version = "2.8.0"
5015
5050
source = "registry+https://github.com/rust-lang/crates.io-index"
5016
-
checksum = "9330c15cabfe1d9f213478c9e8ec2b0c76dab26bb6f314b8ad1c8a568c1d186e"
5051
+
checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673"
5017
5052
dependencies = [
5018
5053
"anyhow",
5019
5054
"brotli",
···
5039
5074
"serde_json",
5040
5075
"serde_with",
5041
5076
"swift-rs",
5042
-
"thiserror 2.0.12",
5043
-
"toml 0.8.2",
5077
+
"thiserror 2.0.17",
5078
+
"toml 0.9.8",
5044
5079
"url",
5045
5080
"urlpattern",
5046
5081
"uuid",
···
5049
5084
5050
5085
[[package]]
5051
5086
name = "tauri-winres"
5052
-
version = "0.3.2"
5087
+
version = "0.3.3"
5053
5088
source = "registry+https://github.com/rust-lang/crates.io-index"
5054
-
checksum = "7c6d9028d41d4de835e3c482c677a8cb88137ac435d6ff9a71f392d4421576c9"
5089
+
checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074"
5055
5090
dependencies = [
5056
5091
"embed-resource",
5057
-
"indexmap 2.10.0",
5058
-
"toml 0.9.4",
5092
+
"toml 0.9.8",
5059
5093
]
5060
5094
5061
5095
[[package]]
5062
5096
name = "tempfile"
5063
-
version = "3.20.0"
5097
+
version = "3.23.0"
5064
5098
source = "registry+https://github.com/rust-lang/crates.io-index"
5065
-
checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
5099
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
5066
5100
dependencies = [
5067
5101
"fastrand",
5068
-
"getrandom 0.3.3",
5102
+
"getrandom 0.3.4",
5069
5103
"once_cell",
5070
5104
"rustix",
5071
-
"windows-sys 0.59.0",
5105
+
"windows-sys 0.61.2",
5072
5106
]
5073
5107
5074
5108
[[package]]
···
5093
5127
5094
5128
[[package]]
5095
5129
name = "thiserror"
5096
-
version = "2.0.12"
5130
+
version = "2.0.17"
5097
5131
source = "registry+https://github.com/rust-lang/crates.io-index"
5098
-
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
5132
+
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
5099
5133
dependencies = [
5100
-
"thiserror-impl 2.0.12",
5134
+
"thiserror-impl 2.0.17",
5101
5135
]
5102
5136
5103
5137
[[package]]
···
5108
5142
dependencies = [
5109
5143
"proc-macro2",
5110
5144
"quote",
5111
-
"syn 2.0.104",
5145
+
"syn 2.0.109",
5112
5146
]
5113
5147
5114
5148
[[package]]
5115
5149
name = "thiserror-impl"
5116
-
version = "2.0.12"
5150
+
version = "2.0.17"
5117
5151
source = "registry+https://github.com/rust-lang/crates.io-index"
5118
-
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
5152
+
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
5119
5153
dependencies = [
5120
5154
"proc-macro2",
5121
5155
"quote",
5122
-
"syn 2.0.104",
5156
+
"syn 2.0.109",
5123
5157
]
5124
5158
5125
5159
[[package]]
5126
5160
name = "tiff"
5127
-
version = "0.9.1"
5161
+
version = "0.10.3"
5128
5162
source = "registry+https://github.com/rust-lang/crates.io-index"
5129
-
checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
5163
+
checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f"
5130
5164
dependencies = [
5165
+
"fax",
5131
5166
"flate2",
5132
-
"jpeg-decoder",
5167
+
"half",
5168
+
"quick-error",
5133
5169
"weezl",
5170
+
"zune-jpeg",
5134
5171
]
5135
5172
5136
5173
[[package]]
5137
5174
name = "time"
5138
-
version = "0.3.41"
5175
+
version = "0.3.44"
5139
5176
source = "registry+https://github.com/rust-lang/crates.io-index"
5140
-
checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
5177
+
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
5141
5178
dependencies = [
5142
5179
"deranged",
5143
5180
"itoa",
···
5150
5187
5151
5188
[[package]]
5152
5189
name = "time-core"
5153
-
version = "0.1.4"
5190
+
version = "0.1.6"
5154
5191
source = "registry+https://github.com/rust-lang/crates.io-index"
5155
-
checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
5192
+
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
5156
5193
5157
5194
[[package]]
5158
5195
name = "time-macros"
5159
-
version = "0.2.22"
5196
+
version = "0.2.24"
5160
5197
source = "registry+https://github.com/rust-lang/crates.io-index"
5161
-
checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
5198
+
checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
5162
5199
dependencies = [
5163
5200
"num-conv",
5164
5201
"time-core",
···
5175
5212
5176
5213
[[package]]
5177
5214
name = "tinystr"
5178
-
version = "0.8.1"
5215
+
version = "0.8.2"
5179
5216
source = "registry+https://github.com/rust-lang/crates.io-index"
5180
-
checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
5217
+
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
5181
5218
dependencies = [
5182
5219
"displaydoc",
5183
5220
"zerovec",
···
5185
5222
5186
5223
[[package]]
5187
5224
name = "tinyvec"
5188
-
version = "1.9.0"
5225
+
version = "1.10.0"
5189
5226
source = "registry+https://github.com/rust-lang/crates.io-index"
5190
-
checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71"
5227
+
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
5191
5228
dependencies = [
5192
5229
"tinyvec_macros",
5193
5230
]
···
5200
5237
5201
5238
[[package]]
5202
5239
name = "tokio"
5203
-
version = "1.47.0"
5240
+
version = "1.48.0"
5204
5241
source = "registry+https://github.com/rust-lang/crates.io-index"
5205
-
checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35"
5242
+
checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
5206
5243
dependencies = [
5207
-
"backtrace",
5208
5244
"bytes",
5209
-
"io-uring",
5210
5245
"libc",
5211
-
"mio 1.0.4",
5246
+
"mio",
5212
5247
"pin-project-lite",
5213
-
"slab",
5214
-
"socket2 0.6.0",
5248
+
"socket2",
5215
5249
"tokio-macros",
5216
-
"windows-sys 0.59.0",
5250
+
"windows-sys 0.61.2",
5217
5251
]
5218
5252
5219
5253
[[package]]
5220
5254
name = "tokio-macros"
5221
-
version = "2.5.0"
5255
+
version = "2.6.0"
5222
5256
source = "registry+https://github.com/rust-lang/crates.io-index"
5223
-
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
5257
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
5224
5258
dependencies = [
5225
5259
"proc-macro2",
5226
5260
"quote",
5227
-
"syn 2.0.104",
5261
+
"syn 2.0.109",
5228
5262
]
5229
5263
5230
5264
[[package]]
···
5239
5273
5240
5274
[[package]]
5241
5275
name = "tokio-rustls"
5242
-
version = "0.26.2"
5276
+
version = "0.26.4"
5243
5277
source = "registry+https://github.com/rust-lang/crates.io-index"
5244
-
checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b"
5278
+
checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
5245
5279
dependencies = [
5246
5280
"rustls",
5247
5281
"tokio",
···
5249
5283
5250
5284
[[package]]
5251
5285
name = "tokio-util"
5252
-
version = "0.7.15"
5286
+
version = "0.7.17"
5253
5287
source = "registry+https://github.com/rust-lang/crates.io-index"
5254
-
checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
5288
+
checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
5255
5289
dependencies = [
5256
5290
"bytes",
5257
5291
"futures-core",
···
5274
5308
5275
5309
[[package]]
5276
5310
name = "toml"
5277
-
version = "0.9.4"
5311
+
version = "0.9.8"
5278
5312
source = "registry+https://github.com/rust-lang/crates.io-index"
5279
-
checksum = "41ae868b5a0f67631c14589f7e250c1ea2c574ee5ba21c6c8dd4b1485705a5a1"
5313
+
checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
5280
5314
dependencies = [
5281
-
"indexmap 2.10.0",
5282
-
"serde",
5283
-
"serde_spanned 1.0.0",
5284
-
"toml_datetime 0.7.0",
5315
+
"indexmap 2.12.0",
5316
+
"serde_core",
5317
+
"serde_spanned 1.0.3",
5318
+
"toml_datetime 0.7.3",
5285
5319
"toml_parser",
5286
5320
"toml_writer",
5287
-
"winnow 0.7.12",
5321
+
"winnow 0.7.13",
5288
5322
]
5289
5323
5290
5324
[[package]]
···
5298
5332
5299
5333
[[package]]
5300
5334
name = "toml_datetime"
5301
-
version = "0.7.0"
5335
+
version = "0.7.3"
5302
5336
source = "registry+https://github.com/rust-lang/crates.io-index"
5303
-
checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3"
5337
+
checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
5304
5338
dependencies = [
5305
-
"serde",
5339
+
"serde_core",
5306
5340
]
5307
5341
5308
5342
[[package]]
···
5311
5345
source = "registry+https://github.com/rust-lang/crates.io-index"
5312
5346
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
5313
5347
dependencies = [
5314
-
"indexmap 2.10.0",
5348
+
"indexmap 2.12.0",
5315
5349
"toml_datetime 0.6.3",
5316
5350
"winnow 0.5.40",
5317
5351
]
···
5322
5356
source = "registry+https://github.com/rust-lang/crates.io-index"
5323
5357
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
5324
5358
dependencies = [
5325
-
"indexmap 2.10.0",
5359
+
"indexmap 2.12.0",
5326
5360
"serde",
5327
5361
"serde_spanned 0.6.9",
5328
5362
"toml_datetime 0.6.3",
···
5330
5364
]
5331
5365
5332
5366
[[package]]
5367
+
name = "toml_edit"
5368
+
version = "0.23.7"
5369
+
source = "registry+https://github.com/rust-lang/crates.io-index"
5370
+
checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
5371
+
dependencies = [
5372
+
"indexmap 2.12.0",
5373
+
"toml_datetime 0.7.3",
5374
+
"toml_parser",
5375
+
"winnow 0.7.13",
5376
+
]
5377
+
5378
+
[[package]]
5333
5379
name = "toml_parser"
5334
-
version = "1.0.1"
5380
+
version = "1.0.4"
5335
5381
source = "registry+https://github.com/rust-lang/crates.io-index"
5336
-
checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30"
5382
+
checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
5337
5383
dependencies = [
5338
-
"winnow 0.7.12",
5384
+
"winnow 0.7.13",
5339
5385
]
5340
5386
5341
5387
[[package]]
5342
5388
name = "toml_writer"
5343
-
version = "1.0.2"
5389
+
version = "1.0.4"
5344
5390
source = "registry+https://github.com/rust-lang/crates.io-index"
5345
-
checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64"
5391
+
checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
5346
5392
5347
5393
[[package]]
5348
5394
name = "tower"
···
5365
5411
source = "registry+https://github.com/rust-lang/crates.io-index"
5366
5412
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
5367
5413
dependencies = [
5368
-
"bitflags 2.9.1",
5414
+
"bitflags 2.10.0",
5369
5415
"bytes",
5370
5416
"futures-util",
5371
5417
"http",
···
5408
5454
dependencies = [
5409
5455
"proc-macro2",
5410
5456
"quote",
5411
-
"syn 2.0.104",
5457
+
"syn 2.0.109",
5412
5458
]
5413
5459
5414
5460
[[package]]
···
5422
5468
5423
5469
[[package]]
5424
5470
name = "tray-icon"
5425
-
version = "0.21.1"
5471
+
version = "0.21.2"
5426
5472
source = "registry+https://github.com/rust-lang/crates.io-index"
5427
-
checksum = "a0d92153331e7d02ec09137538996a7786fe679c629c279e82a6be762b7e6fe2"
5473
+
checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b"
5428
5474
dependencies = [
5429
5475
"crossbeam-channel",
5430
-
"dirs 6.0.0",
5476
+
"dirs",
5431
5477
"libappindicator",
5432
5478
"muda",
5433
-
"objc2 0.6.1",
5479
+
"objc2 0.6.3",
5434
5480
"objc2-app-kit",
5435
5481
"objc2-core-foundation",
5436
5482
"objc2-core-graphics",
5437
-
"objc2-foundation 0.3.1",
5483
+
"objc2-foundation 0.3.2",
5438
5484
"once_cell",
5439
-
"png",
5485
+
"png 0.17.16",
5440
5486
"serde",
5441
-
"thiserror 2.0.12",
5442
-
"windows-sys 0.59.0",
5487
+
"thiserror 2.0.17",
5488
+
"windows-sys 0.60.2",
5443
5489
]
5444
5490
5445
5491
[[package]]
···
5456
5502
5457
5503
[[package]]
5458
5504
name = "typenum"
5459
-
version = "1.18.0"
5505
+
version = "1.19.0"
5460
5506
source = "registry+https://github.com/rust-lang/crates.io-index"
5461
-
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
5507
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
5462
5508
5463
5509
[[package]]
5464
5510
name = "uds_windows"
···
5514
5560
5515
5561
[[package]]
5516
5562
name = "unicode-ident"
5517
-
version = "1.0.18"
5563
+
version = "1.0.22"
5518
5564
source = "registry+https://github.com/rust-lang/crates.io-index"
5519
-
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
5565
+
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
5520
5566
5521
5567
[[package]]
5522
5568
name = "unicode-segmentation"
···
5532
5578
5533
5579
[[package]]
5534
5580
name = "url"
5535
-
version = "2.5.4"
5581
+
version = "2.5.7"
5536
5582
source = "registry+https://github.com/rust-lang/crates.io-index"
5537
-
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
5583
+
checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
5538
5584
dependencies = [
5539
5585
"form_urlencoded",
5540
5586
"idna",
···
5568
5614
5569
5615
[[package]]
5570
5616
name = "uuid"
5571
-
version = "1.17.0"
5617
+
version = "1.18.1"
5572
5618
source = "registry+https://github.com/rust-lang/crates.io-index"
5573
-
checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d"
5619
+
checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
5574
5620
dependencies = [
5575
-
"getrandom 0.3.3",
5621
+
"getrandom 0.3.4",
5576
5622
"js-sys",
5577
5623
"serde",
5578
5624
"wasm-bindgen",
···
5597
5643
5598
5644
[[package]]
5599
5645
name = "version-compare"
5600
-
version = "0.2.0"
5646
+
version = "0.2.1"
5601
5647
source = "registry+https://github.com/rust-lang/crates.io-index"
5602
-
checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
5648
+
checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
5603
5649
5604
5650
[[package]]
5605
5651
name = "version_check"
···
5608
5654
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
5609
5655
5610
5656
[[package]]
5611
-
name = "vrcpm-rs"
5612
-
version = "0.2.4"
5613
-
dependencies = [
5614
-
"dirs 5.0.1",
5615
-
"fast_image_resize",
5616
-
"image",
5617
-
"mslnk",
5618
-
"notify",
5619
-
"open",
5620
-
"regex",
5621
-
"reqwest",
5622
-
"serde",
5623
-
"serde_json",
5624
-
"tauri",
5625
-
"tauri-build",
5626
-
"tauri-plugin-deep-link",
5627
-
"tauri-plugin-http",
5628
-
"tauri-plugin-process",
5629
-
"tauri-plugin-shell",
5630
-
"tauri-plugin-single-instance",
5631
-
]
5632
-
5633
-
[[package]]
5634
5657
name = "vswhom"
5635
5658
version = "0.1.0"
5636
5659
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5682
5705
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
5683
5706
5684
5707
[[package]]
5685
-
name = "wasi"
5686
-
version = "0.14.2+wasi-0.2.4"
5708
+
name = "wasip2"
5709
+
version = "1.0.1+wasi-0.2.4"
5687
5710
source = "registry+https://github.com/rust-lang/crates.io-index"
5688
-
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
5711
+
checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
5689
5712
dependencies = [
5690
-
"wit-bindgen-rt",
5713
+
"wit-bindgen",
5691
5714
]
5692
5715
5693
5716
[[package]]
5694
5717
name = "wasm-bindgen"
5695
-
version = "0.2.100"
5718
+
version = "0.2.105"
5696
5719
source = "registry+https://github.com/rust-lang/crates.io-index"
5697
-
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
5720
+
checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
5698
5721
dependencies = [
5699
5722
"cfg-if",
5700
5723
"once_cell",
5701
5724
"rustversion",
5702
5725
"wasm-bindgen-macro",
5703
-
]
5704
-
5705
-
[[package]]
5706
-
name = "wasm-bindgen-backend"
5707
-
version = "0.2.100"
5708
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5709
-
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
5710
-
dependencies = [
5711
-
"bumpalo",
5712
-
"log",
5713
-
"proc-macro2",
5714
-
"quote",
5715
-
"syn 2.0.104",
5716
5726
"wasm-bindgen-shared",
5717
5727
]
5718
5728
5719
5729
[[package]]
5720
5730
name = "wasm-bindgen-futures"
5721
-
version = "0.4.50"
5731
+
version = "0.4.55"
5722
5732
source = "registry+https://github.com/rust-lang/crates.io-index"
5723
-
checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
5733
+
checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0"
5724
5734
dependencies = [
5725
5735
"cfg-if",
5726
5736
"js-sys",
···
5731
5741
5732
5742
[[package]]
5733
5743
name = "wasm-bindgen-macro"
5734
-
version = "0.2.100"
5744
+
version = "0.2.105"
5735
5745
source = "registry+https://github.com/rust-lang/crates.io-index"
5736
-
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
5746
+
checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
5737
5747
dependencies = [
5738
5748
"quote",
5739
5749
"wasm-bindgen-macro-support",
···
5741
5751
5742
5752
[[package]]
5743
5753
name = "wasm-bindgen-macro-support"
5744
-
version = "0.2.100"
5754
+
version = "0.2.105"
5745
5755
source = "registry+https://github.com/rust-lang/crates.io-index"
5746
-
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
5756
+
checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
5747
5757
dependencies = [
5758
+
"bumpalo",
5748
5759
"proc-macro2",
5749
5760
"quote",
5750
-
"syn 2.0.104",
5751
-
"wasm-bindgen-backend",
5761
+
"syn 2.0.109",
5752
5762
"wasm-bindgen-shared",
5753
5763
]
5754
5764
5755
5765
[[package]]
5756
5766
name = "wasm-bindgen-shared"
5757
-
version = "0.2.100"
5767
+
version = "0.2.105"
5758
5768
source = "registry+https://github.com/rust-lang/crates.io-index"
5759
-
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
5769
+
checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
5760
5770
dependencies = [
5761
5771
"unicode-ident",
5762
5772
]
···
5776
5786
5777
5787
[[package]]
5778
5788
name = "web-sys"
5779
-
version = "0.3.77"
5789
+
version = "0.3.82"
5780
5790
source = "registry+https://github.com/rust-lang/crates.io-index"
5781
-
checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
5791
+
checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1"
5782
5792
dependencies = [
5783
5793
"js-sys",
5784
5794
"wasm-bindgen",
···
5840
5850
5841
5851
[[package]]
5842
5852
name = "webpki-roots"
5843
-
version = "1.0.2"
5853
+
version = "1.0.4"
5844
5854
source = "registry+https://github.com/rust-lang/crates.io-index"
5845
-
checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2"
5855
+
checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e"
5846
5856
dependencies = [
5847
5857
"rustls-pki-types",
5848
5858
]
···
5856
5866
"webview2-com-macros",
5857
5867
"webview2-com-sys",
5858
5868
"windows",
5859
-
"windows-core",
5869
+
"windows-core 0.61.2",
5860
5870
"windows-implement",
5861
5871
"windows-interface",
5862
5872
]
···
5869
5879
dependencies = [
5870
5880
"proc-macro2",
5871
5881
"quote",
5872
-
"syn 2.0.104",
5882
+
"syn 2.0.109",
5873
5883
]
5874
5884
5875
5885
[[package]]
···
5878
5888
source = "registry+https://github.com/rust-lang/crates.io-index"
5879
5889
checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c"
5880
5890
dependencies = [
5881
-
"thiserror 2.0.12",
5891
+
"thiserror 2.0.17",
5882
5892
"windows",
5883
-
"windows-core",
5893
+
"windows-core 0.61.2",
5884
5894
]
5885
5895
5886
5896
[[package]]
···
5907
5917
5908
5918
[[package]]
5909
5919
name = "winapi-util"
5910
-
version = "0.1.9"
5920
+
version = "0.1.11"
5911
5921
source = "registry+https://github.com/rust-lang/crates.io-index"
5912
-
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
5922
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
5913
5923
dependencies = [
5914
-
"windows-sys 0.59.0",
5924
+
"windows-sys 0.61.2",
5915
5925
]
5916
5926
5917
5927
[[package]]
···
5926
5936
source = "registry+https://github.com/rust-lang/crates.io-index"
5927
5937
checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c"
5928
5938
dependencies = [
5929
-
"objc2 0.6.1",
5939
+
"objc2 0.6.3",
5930
5940
"objc2-app-kit",
5931
5941
"objc2-core-foundation",
5932
-
"objc2-foundation 0.3.1",
5942
+
"objc2-foundation 0.3.2",
5933
5943
"raw-window-handle",
5934
5944
"windows-sys 0.59.0",
5935
5945
"windows-version",
···
5942
5952
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
5943
5953
dependencies = [
5944
5954
"windows-collections",
5945
-
"windows-core",
5955
+
"windows-core 0.61.2",
5946
5956
"windows-future",
5947
-
"windows-link",
5957
+
"windows-link 0.1.3",
5948
5958
"windows-numerics",
5949
5959
]
5950
5960
···
5954
5964
source = "registry+https://github.com/rust-lang/crates.io-index"
5955
5965
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
5956
5966
dependencies = [
5957
-
"windows-core",
5967
+
"windows-core 0.61.2",
5958
5968
]
5959
5969
5960
5970
[[package]]
···
5965
5975
dependencies = [
5966
5976
"windows-implement",
5967
5977
"windows-interface",
5968
-
"windows-link",
5969
-
"windows-result",
5970
-
"windows-strings",
5978
+
"windows-link 0.1.3",
5979
+
"windows-result 0.3.4",
5980
+
"windows-strings 0.4.2",
5981
+
]
5982
+
5983
+
[[package]]
5984
+
name = "windows-core"
5985
+
version = "0.62.2"
5986
+
source = "registry+https://github.com/rust-lang/crates.io-index"
5987
+
checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
5988
+
dependencies = [
5989
+
"windows-implement",
5990
+
"windows-interface",
5991
+
"windows-link 0.2.1",
5992
+
"windows-result 0.4.1",
5993
+
"windows-strings 0.5.1",
5971
5994
]
5972
5995
5973
5996
[[package]]
···
5976
5999
source = "registry+https://github.com/rust-lang/crates.io-index"
5977
6000
checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
5978
6001
dependencies = [
5979
-
"windows-core",
5980
-
"windows-link",
6002
+
"windows-core 0.61.2",
6003
+
"windows-link 0.1.3",
5981
6004
"windows-threading",
5982
6005
]
5983
6006
5984
6007
[[package]]
5985
6008
name = "windows-implement"
5986
-
version = "0.60.0"
6009
+
version = "0.60.2"
5987
6010
source = "registry+https://github.com/rust-lang/crates.io-index"
5988
-
checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
6011
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
5989
6012
dependencies = [
5990
6013
"proc-macro2",
5991
6014
"quote",
5992
-
"syn 2.0.104",
6015
+
"syn 2.0.109",
5993
6016
]
5994
6017
5995
6018
[[package]]
5996
6019
name = "windows-interface"
5997
-
version = "0.59.1"
6020
+
version = "0.59.3"
5998
6021
source = "registry+https://github.com/rust-lang/crates.io-index"
5999
-
checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
6022
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
6000
6023
dependencies = [
6001
6024
"proc-macro2",
6002
6025
"quote",
6003
-
"syn 2.0.104",
6026
+
"syn 2.0.109",
6004
6027
]
6005
6028
6006
6029
[[package]]
···
6010
6033
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
6011
6034
6012
6035
[[package]]
6036
+
name = "windows-link"
6037
+
version = "0.2.1"
6038
+
source = "registry+https://github.com/rust-lang/crates.io-index"
6039
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
6040
+
6041
+
[[package]]
6013
6042
name = "windows-numerics"
6014
6043
version = "0.2.0"
6015
6044
source = "registry+https://github.com/rust-lang/crates.io-index"
6016
6045
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
6017
6046
dependencies = [
6018
-
"windows-core",
6019
-
"windows-link",
6047
+
"windows-core 0.61.2",
6048
+
"windows-link 0.1.3",
6020
6049
]
6021
6050
6022
6051
[[package]]
···
6025
6054
source = "registry+https://github.com/rust-lang/crates.io-index"
6026
6055
checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e"
6027
6056
dependencies = [
6028
-
"windows-link",
6029
-
"windows-result",
6030
-
"windows-strings",
6057
+
"windows-link 0.1.3",
6058
+
"windows-result 0.3.4",
6059
+
"windows-strings 0.4.2",
6031
6060
]
6032
6061
6033
6062
[[package]]
···
6036
6065
source = "registry+https://github.com/rust-lang/crates.io-index"
6037
6066
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
6038
6067
dependencies = [
6039
-
"windows-link",
6068
+
"windows-link 0.1.3",
6069
+
]
6070
+
6071
+
[[package]]
6072
+
name = "windows-result"
6073
+
version = "0.4.1"
6074
+
source = "registry+https://github.com/rust-lang/crates.io-index"
6075
+
checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
6076
+
dependencies = [
6077
+
"windows-link 0.2.1",
6040
6078
]
6041
6079
6042
6080
[[package]]
···
6045
6083
source = "registry+https://github.com/rust-lang/crates.io-index"
6046
6084
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
6047
6085
dependencies = [
6048
-
"windows-link",
6086
+
"windows-link 0.1.3",
6049
6087
]
6050
6088
6051
6089
[[package]]
6052
-
name = "windows-sys"
6053
-
version = "0.45.0"
6090
+
name = "windows-strings"
6091
+
version = "0.5.1"
6054
6092
source = "registry+https://github.com/rust-lang/crates.io-index"
6055
-
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
6093
+
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
6056
6094
dependencies = [
6057
-
"windows-targets 0.42.2",
6095
+
"windows-link 0.2.1",
6058
6096
]
6059
6097
6060
6098
[[package]]
6061
6099
name = "windows-sys"
6062
-
version = "0.48.0"
6100
+
version = "0.45.0"
6063
6101
source = "registry+https://github.com/rust-lang/crates.io-index"
6064
-
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
6102
+
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
6065
6103
dependencies = [
6066
-
"windows-targets 0.48.5",
6104
+
"windows-targets 0.42.2",
6067
6105
]
6068
6106
6069
6107
[[package]]
···
6090
6128
source = "registry+https://github.com/rust-lang/crates.io-index"
6091
6129
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
6092
6130
dependencies = [
6093
-
"windows-targets 0.53.3",
6131
+
"windows-targets 0.53.5",
6132
+
]
6133
+
6134
+
[[package]]
6135
+
name = "windows-sys"
6136
+
version = "0.61.2"
6137
+
source = "registry+https://github.com/rust-lang/crates.io-index"
6138
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
6139
+
dependencies = [
6140
+
"windows-link 0.2.1",
6094
6141
]
6095
6142
6096
6143
[[package]]
···
6110
6157
6111
6158
[[package]]
6112
6159
name = "windows-targets"
6113
-
version = "0.48.5"
6114
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6115
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
6116
-
dependencies = [
6117
-
"windows_aarch64_gnullvm 0.48.5",
6118
-
"windows_aarch64_msvc 0.48.5",
6119
-
"windows_i686_gnu 0.48.5",
6120
-
"windows_i686_msvc 0.48.5",
6121
-
"windows_x86_64_gnu 0.48.5",
6122
-
"windows_x86_64_gnullvm 0.48.5",
6123
-
"windows_x86_64_msvc 0.48.5",
6124
-
]
6125
-
6126
-
[[package]]
6127
-
name = "windows-targets"
6128
6160
version = "0.52.6"
6129
6161
source = "registry+https://github.com/rust-lang/crates.io-index"
6130
6162
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
···
6141
6173
6142
6174
[[package]]
6143
6175
name = "windows-targets"
6144
-
version = "0.53.3"
6176
+
version = "0.53.5"
6145
6177
source = "registry+https://github.com/rust-lang/crates.io-index"
6146
-
checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91"
6178
+
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
6147
6179
dependencies = [
6148
-
"windows-link",
6149
-
"windows_aarch64_gnullvm 0.53.0",
6150
-
"windows_aarch64_msvc 0.53.0",
6151
-
"windows_i686_gnu 0.53.0",
6152
-
"windows_i686_gnullvm 0.53.0",
6153
-
"windows_i686_msvc 0.53.0",
6154
-
"windows_x86_64_gnu 0.53.0",
6155
-
"windows_x86_64_gnullvm 0.53.0",
6156
-
"windows_x86_64_msvc 0.53.0",
6180
+
"windows-link 0.2.1",
6181
+
"windows_aarch64_gnullvm 0.53.1",
6182
+
"windows_aarch64_msvc 0.53.1",
6183
+
"windows_i686_gnu 0.53.1",
6184
+
"windows_i686_gnullvm 0.53.1",
6185
+
"windows_i686_msvc 0.53.1",
6186
+
"windows_x86_64_gnu 0.53.1",
6187
+
"windows_x86_64_gnullvm 0.53.1",
6188
+
"windows_x86_64_msvc 0.53.1",
6157
6189
]
6158
6190
6159
6191
[[package]]
···
6162
6194
source = "registry+https://github.com/rust-lang/crates.io-index"
6163
6195
checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
6164
6196
dependencies = [
6165
-
"windows-link",
6197
+
"windows-link 0.1.3",
6166
6198
]
6167
6199
6168
6200
[[package]]
6169
6201
name = "windows-version"
6170
-
version = "0.1.4"
6202
+
version = "0.1.7"
6171
6203
source = "registry+https://github.com/rust-lang/crates.io-index"
6172
-
checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c"
6204
+
checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631"
6173
6205
dependencies = [
6174
-
"windows-link",
6206
+
"windows-link 0.2.1",
6175
6207
]
6176
6208
6177
6209
[[package]]
···
6182
6214
6183
6215
[[package]]
6184
6216
name = "windows_aarch64_gnullvm"
6185
-
version = "0.48.5"
6186
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6187
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
6188
-
6189
-
[[package]]
6190
-
name = "windows_aarch64_gnullvm"
6191
6217
version = "0.52.6"
6192
6218
source = "registry+https://github.com/rust-lang/crates.io-index"
6193
6219
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
6194
6220
6195
6221
[[package]]
6196
6222
name = "windows_aarch64_gnullvm"
6197
-
version = "0.53.0"
6223
+
version = "0.53.1"
6198
6224
source = "registry+https://github.com/rust-lang/crates.io-index"
6199
-
checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
6225
+
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
6200
6226
6201
6227
[[package]]
6202
6228
name = "windows_aarch64_msvc"
···
6206
6232
6207
6233
[[package]]
6208
6234
name = "windows_aarch64_msvc"
6209
-
version = "0.48.5"
6210
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6211
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
6212
-
6213
-
[[package]]
6214
-
name = "windows_aarch64_msvc"
6215
6235
version = "0.52.6"
6216
6236
source = "registry+https://github.com/rust-lang/crates.io-index"
6217
6237
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
6218
6238
6219
6239
[[package]]
6220
6240
name = "windows_aarch64_msvc"
6221
-
version = "0.53.0"
6241
+
version = "0.53.1"
6222
6242
source = "registry+https://github.com/rust-lang/crates.io-index"
6223
-
checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
6243
+
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
6224
6244
6225
6245
[[package]]
6226
6246
name = "windows_i686_gnu"
···
6230
6250
6231
6251
[[package]]
6232
6252
name = "windows_i686_gnu"
6233
-
version = "0.48.5"
6234
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6235
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
6236
-
6237
-
[[package]]
6238
-
name = "windows_i686_gnu"
6239
6253
version = "0.52.6"
6240
6254
source = "registry+https://github.com/rust-lang/crates.io-index"
6241
6255
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
6242
6256
6243
6257
[[package]]
6244
6258
name = "windows_i686_gnu"
6245
-
version = "0.53.0"
6259
+
version = "0.53.1"
6246
6260
source = "registry+https://github.com/rust-lang/crates.io-index"
6247
-
checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
6261
+
checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
6248
6262
6249
6263
[[package]]
6250
6264
name = "windows_i686_gnullvm"
···
6254
6268
6255
6269
[[package]]
6256
6270
name = "windows_i686_gnullvm"
6257
-
version = "0.53.0"
6271
+
version = "0.53.1"
6258
6272
source = "registry+https://github.com/rust-lang/crates.io-index"
6259
-
checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
6273
+
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
6260
6274
6261
6275
[[package]]
6262
6276
name = "windows_i686_msvc"
···
6266
6280
6267
6281
[[package]]
6268
6282
name = "windows_i686_msvc"
6269
-
version = "0.48.5"
6270
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6271
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
6272
-
6273
-
[[package]]
6274
-
name = "windows_i686_msvc"
6275
6283
version = "0.52.6"
6276
6284
source = "registry+https://github.com/rust-lang/crates.io-index"
6277
6285
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
6278
6286
6279
6287
[[package]]
6280
6288
name = "windows_i686_msvc"
6281
-
version = "0.53.0"
6289
+
version = "0.53.1"
6282
6290
source = "registry+https://github.com/rust-lang/crates.io-index"
6283
-
checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
6291
+
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
6284
6292
6285
6293
[[package]]
6286
6294
name = "windows_x86_64_gnu"
···
6290
6298
6291
6299
[[package]]
6292
6300
name = "windows_x86_64_gnu"
6293
-
version = "0.48.5"
6294
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6295
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
6296
-
6297
-
[[package]]
6298
-
name = "windows_x86_64_gnu"
6299
6301
version = "0.52.6"
6300
6302
source = "registry+https://github.com/rust-lang/crates.io-index"
6301
6303
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
6302
6304
6303
6305
[[package]]
6304
6306
name = "windows_x86_64_gnu"
6305
-
version = "0.53.0"
6307
+
version = "0.53.1"
6306
6308
source = "registry+https://github.com/rust-lang/crates.io-index"
6307
-
checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
6309
+
checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
6308
6310
6309
6311
[[package]]
6310
6312
name = "windows_x86_64_gnullvm"
···
6314
6316
6315
6317
[[package]]
6316
6318
name = "windows_x86_64_gnullvm"
6317
-
version = "0.48.5"
6318
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6319
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
6320
-
6321
-
[[package]]
6322
-
name = "windows_x86_64_gnullvm"
6323
6319
version = "0.52.6"
6324
6320
source = "registry+https://github.com/rust-lang/crates.io-index"
6325
6321
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
6326
6322
6327
6323
[[package]]
6328
6324
name = "windows_x86_64_gnullvm"
6329
-
version = "0.53.0"
6325
+
version = "0.53.1"
6330
6326
source = "registry+https://github.com/rust-lang/crates.io-index"
6331
-
checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
6327
+
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
6332
6328
6333
6329
[[package]]
6334
6330
name = "windows_x86_64_msvc"
···
6338
6334
6339
6335
[[package]]
6340
6336
name = "windows_x86_64_msvc"
6341
-
version = "0.48.5"
6342
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6343
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
6344
-
6345
-
[[package]]
6346
-
name = "windows_x86_64_msvc"
6347
6337
version = "0.52.6"
6348
6338
source = "registry+https://github.com/rust-lang/crates.io-index"
6349
6339
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
6350
6340
6351
6341
[[package]]
6352
6342
name = "windows_x86_64_msvc"
6353
-
version = "0.53.0"
6343
+
version = "0.53.1"
6354
6344
source = "registry+https://github.com/rust-lang/crates.io-index"
6355
-
checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
6345
+
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
6356
6346
6357
6347
[[package]]
6358
6348
name = "winnow"
···
6365
6355
6366
6356
[[package]]
6367
6357
name = "winnow"
6368
-
version = "0.7.12"
6358
+
version = "0.7.13"
6369
6359
source = "registry+https://github.com/rust-lang/crates.io-index"
6370
-
checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
6360
+
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
6361
+
dependencies = [
6362
+
"memchr",
6363
+
]
6371
6364
6372
6365
[[package]]
6373
6366
name = "winreg"
···
6380
6373
]
6381
6374
6382
6375
[[package]]
6383
-
name = "wit-bindgen-rt"
6384
-
version = "0.39.0"
6376
+
name = "wit-bindgen"
6377
+
version = "0.46.0"
6385
6378
source = "registry+https://github.com/rust-lang/crates.io-index"
6386
-
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
6387
-
dependencies = [
6388
-
"bitflags 2.9.1",
6389
-
]
6379
+
checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
6390
6380
6391
6381
[[package]]
6392
6382
name = "writeable"
6393
-
version = "0.6.1"
6383
+
version = "0.6.2"
6394
6384
source = "registry+https://github.com/rust-lang/crates.io-index"
6395
-
checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
6385
+
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
6396
6386
6397
6387
[[package]]
6398
6388
name = "wry"
6399
-
version = "0.52.1"
6389
+
version = "0.53.5"
6400
6390
source = "registry+https://github.com/rust-lang/crates.io-index"
6401
-
checksum = "12a714d9ba7075aae04a6e50229d6109e3d584774b99a6a8c60de1698ca111b9"
6391
+
checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2"
6402
6392
dependencies = [
6403
6393
"base64 0.22.1",
6404
-
"block2 0.6.1",
6394
+
"block2 0.6.2",
6405
6395
"cookie",
6406
6396
"crossbeam-channel",
6397
+
"dirs",
6407
6398
"dpi",
6408
6399
"dunce",
6409
6400
"gdkx11",
···
6415
6406
"kuchikiki",
6416
6407
"libc",
6417
6408
"ndk",
6418
-
"objc2 0.6.1",
6409
+
"objc2 0.6.3",
6419
6410
"objc2-app-kit",
6420
6411
"objc2-core-foundation",
6421
-
"objc2-foundation 0.3.1",
6412
+
"objc2-foundation 0.3.2",
6422
6413
"objc2-ui-kit",
6423
6414
"objc2-web-kit",
6424
6415
"once_cell",
···
6427
6418
"sha2",
6428
6419
"soup3",
6429
6420
"tao-macros",
6430
-
"thiserror 2.0.12",
6421
+
"thiserror 2.0.17",
6431
6422
"url",
6432
6423
"webkit2gtk",
6433
6424
"webkit2gtk-sys",
6434
6425
"webview2-com",
6435
6426
"windows",
6436
-
"windows-core",
6427
+
"windows-core 0.61.2",
6437
6428
"windows-version",
6438
6429
"x11-dl",
6439
6430
]
···
6460
6451
]
6461
6452
6462
6453
[[package]]
6463
-
name = "xdg-home"
6464
-
version = "1.3.0"
6454
+
name = "x11rb"
6455
+
version = "0.13.2"
6465
6456
source = "registry+https://github.com/rust-lang/crates.io-index"
6466
-
checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
6457
+
checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
6467
6458
dependencies = [
6468
-
"libc",
6469
-
"windows-sys 0.59.0",
6459
+
"gethostname",
6460
+
"rustix",
6461
+
"x11rb-protocol",
6470
6462
]
6471
6463
6472
6464
[[package]]
6465
+
name = "x11rb-protocol"
6466
+
version = "0.13.2"
6467
+
source = "registry+https://github.com/rust-lang/crates.io-index"
6468
+
checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
6469
+
6470
+
[[package]]
6473
6471
name = "yoke"
6474
-
version = "0.8.0"
6472
+
version = "0.8.1"
6475
6473
source = "registry+https://github.com/rust-lang/crates.io-index"
6476
-
checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
6474
+
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
6477
6475
dependencies = [
6478
-
"serde",
6479
6476
"stable_deref_trait",
6480
6477
"yoke-derive",
6481
6478
"zerofrom",
···
6483
6480
6484
6481
[[package]]
6485
6482
name = "yoke-derive"
6486
-
version = "0.8.0"
6483
+
version = "0.8.1"
6487
6484
source = "registry+https://github.com/rust-lang/crates.io-index"
6488
-
checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
6485
+
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
6489
6486
dependencies = [
6490
6487
"proc-macro2",
6491
6488
"quote",
6492
-
"syn 2.0.104",
6489
+
"syn 2.0.109",
6493
6490
"synstructure",
6494
6491
]
6495
6492
6496
6493
[[package]]
6497
6494
name = "zbus"
6498
-
version = "4.0.1"
6495
+
version = "5.12.0"
6499
6496
source = "registry+https://github.com/rust-lang/crates.io-index"
6500
-
checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030"
6497
+
checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91"
6501
6498
dependencies = [
6502
6499
"async-broadcast",
6503
6500
"async-executor",
6504
-
"async-fs",
6505
6501
"async-io",
6506
6502
"async-lock",
6507
6503
"async-process",
···
6509
6505
"async-task",
6510
6506
"async-trait",
6511
6507
"blocking",
6512
-
"derivative",
6513
6508
"enumflags2",
6514
6509
"event-listener",
6515
6510
"futures-core",
6516
-
"futures-sink",
6517
-
"futures-util",
6511
+
"futures-lite",
6518
6512
"hex",
6519
6513
"nix",
6520
6514
"ordered-stream",
6521
-
"rand 0.8.5",
6522
6515
"serde",
6523
6516
"serde_repr",
6524
-
"sha1",
6525
-
"static_assertions",
6526
6517
"tracing",
6527
6518
"uds_windows",
6528
-
"windows-sys 0.52.0",
6529
-
"xdg-home",
6519
+
"uuid",
6520
+
"windows-sys 0.61.2",
6521
+
"winnow 0.7.13",
6530
6522
"zbus_macros",
6531
6523
"zbus_names",
6532
6524
"zvariant",
···
6534
6526
6535
6527
[[package]]
6536
6528
name = "zbus_macros"
6537
-
version = "4.0.1"
6529
+
version = "5.12.0"
6538
6530
source = "registry+https://github.com/rust-lang/crates.io-index"
6539
-
checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7"
6531
+
checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314"
6540
6532
dependencies = [
6541
-
"proc-macro-crate 1.3.1",
6533
+
"proc-macro-crate 3.4.0",
6542
6534
"proc-macro2",
6543
6535
"quote",
6544
-
"regex",
6545
-
"syn 1.0.109",
6536
+
"syn 2.0.109",
6537
+
"zbus_names",
6538
+
"zvariant",
6546
6539
"zvariant_utils",
6547
6540
]
6548
6541
6549
6542
[[package]]
6550
6543
name = "zbus_names"
6551
-
version = "3.0.0"
6544
+
version = "4.2.0"
6552
6545
source = "registry+https://github.com/rust-lang/crates.io-index"
6553
-
checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
6546
+
checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
6554
6547
dependencies = [
6555
6548
"serde",
6556
6549
"static_assertions",
6550
+
"winnow 0.7.13",
6557
6551
"zvariant",
6558
6552
]
6559
6553
6560
6554
[[package]]
6561
6555
name = "zerocopy"
6562
-
version = "0.8.26"
6556
+
version = "0.8.27"
6563
6557
source = "registry+https://github.com/rust-lang/crates.io-index"
6564
-
checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
6558
+
checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
6565
6559
dependencies = [
6566
6560
"zerocopy-derive",
6567
6561
]
6568
6562
6569
6563
[[package]]
6570
6564
name = "zerocopy-derive"
6571
-
version = "0.8.26"
6565
+
version = "0.8.27"
6572
6566
source = "registry+https://github.com/rust-lang/crates.io-index"
6573
-
checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
6567
+
checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
6574
6568
dependencies = [
6575
6569
"proc-macro2",
6576
6570
"quote",
6577
-
"syn 2.0.104",
6571
+
"syn 2.0.109",
6578
6572
]
6579
6573
6580
6574
[[package]]
···
6594
6588
dependencies = [
6595
6589
"proc-macro2",
6596
6590
"quote",
6597
-
"syn 2.0.104",
6591
+
"syn 2.0.109",
6598
6592
"synstructure",
6599
6593
]
6600
6594
6601
6595
[[package]]
6602
6596
name = "zeroize"
6603
-
version = "1.8.1"
6597
+
version = "1.8.2"
6604
6598
source = "registry+https://github.com/rust-lang/crates.io-index"
6605
-
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
6599
+
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
6606
6600
6607
6601
[[package]]
6608
6602
name = "zerotrie"
6609
-
version = "0.2.2"
6603
+
version = "0.2.3"
6610
6604
source = "registry+https://github.com/rust-lang/crates.io-index"
6611
-
checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
6605
+
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
6612
6606
dependencies = [
6613
6607
"displaydoc",
6614
6608
"yoke",
···
6617
6611
6618
6612
[[package]]
6619
6613
name = "zerovec"
6620
-
version = "0.11.2"
6614
+
version = "0.11.5"
6621
6615
source = "registry+https://github.com/rust-lang/crates.io-index"
6622
-
checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
6616
+
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
6623
6617
dependencies = [
6624
6618
"yoke",
6625
6619
"zerofrom",
···
6628
6622
6629
6623
[[package]]
6630
6624
name = "zerovec-derive"
6631
-
version = "0.11.1"
6625
+
version = "0.11.2"
6632
6626
source = "registry+https://github.com/rust-lang/crates.io-index"
6633
-
checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
6627
+
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
6634
6628
dependencies = [
6635
6629
"proc-macro2",
6636
6630
"quote",
6637
-
"syn 2.0.104",
6631
+
"syn 2.0.109",
6638
6632
]
6639
6633
6640
6634
[[package]]
···
6654
6648
6655
6649
[[package]]
6656
6650
name = "zune-jpeg"
6657
-
version = "0.4.20"
6651
+
version = "0.4.21"
6658
6652
source = "registry+https://github.com/rust-lang/crates.io-index"
6659
-
checksum = "fc1f7e205ce79eb2da3cd71c5f55f3589785cb7c79f6a03d1c8d1491bda5d089"
6653
+
checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
6660
6654
dependencies = [
6661
6655
"zune-core",
6662
6656
]
6663
6657
6664
6658
[[package]]
6665
6659
name = "zvariant"
6666
-
version = "4.0.0"
6660
+
version = "5.8.0"
6667
6661
source = "registry+https://github.com/rust-lang/crates.io-index"
6668
-
checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65"
6662
+
checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c"
6669
6663
dependencies = [
6670
6664
"endi",
6671
6665
"enumflags2",
6672
6666
"serde",
6673
-
"static_assertions",
6667
+
"winnow 0.7.13",
6674
6668
"zvariant_derive",
6669
+
"zvariant_utils",
6675
6670
]
6676
6671
6677
6672
[[package]]
6678
6673
name = "zvariant_derive"
6679
-
version = "4.0.0"
6674
+
version = "5.8.0"
6680
6675
source = "registry+https://github.com/rust-lang/crates.io-index"
6681
-
checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e"
6676
+
checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006"
6682
6677
dependencies = [
6683
-
"proc-macro-crate 1.3.1",
6678
+
"proc-macro-crate 3.4.0",
6684
6679
"proc-macro2",
6685
6680
"quote",
6686
-
"syn 1.0.109",
6681
+
"syn 2.0.109",
6687
6682
"zvariant_utils",
6688
6683
]
6689
6684
6690
6685
[[package]]
6691
6686
name = "zvariant_utils"
6692
-
version = "1.1.0"
6687
+
version = "3.2.1"
6693
6688
source = "registry+https://github.com/rust-lang/crates.io-index"
6694
-
checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
6689
+
checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599"
6695
6690
dependencies = [
6696
6691
"proc-macro2",
6697
6692
"quote",
6698
-
"syn 1.0.109",
6693
+
"serde",
6694
+
"syn 2.0.109",
6695
+
"winnow 0.7.13",
6699
6696
]
+15
-16
src-tauri/Cargo.toml
+15
-16
src-tauri/Cargo.toml
···
1
1
[package]
2
-
name = "vrcpm-rs"
3
-
version = "0.2.4"
2
+
name = "VRChatPhotoManager"
3
+
version = "0.2.7-hot1"
4
4
description = "VRChat Photo Manager"
5
5
authors = ["_phaz"]
6
6
edition = "2021"
···
11
11
tauri-build = { version = "2.0.0-rc", features = [] }
12
12
13
13
[dependencies]
14
-
tauri = { version = "2.0.0-rc", features = ["tray-icon", "image-png"] }
14
+
tauri = { version = "2.9", features = [ "tray-icon", "image-png", "devtools" ] }
15
15
serde = { version = "1.0", features = ["derive"] }
16
16
serde_json = "1.0"
17
-
open = "5.1.2"
18
-
tauri-plugin-deep-link = "2.0.1"
19
-
dirs = "5.0.1"
20
-
notify = "6.1.1"
21
-
regex = "1.10.4"
17
+
open = "5.3"
18
+
dirs = "6.0"
19
+
notify = "8.2"
20
+
regex = "1.12"
22
21
reqwest = { version = "0.12", features = ["blocking"] }
23
-
tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] }
24
-
tauri-plugin-shell = "2.0.0-rc.2"
25
-
tauri-plugin-http = "2.0.0-rc.0"
26
-
tauri-plugin-process = "2.0.0-rc.0"
27
-
image = "0.25.2"
28
-
fast_image_resize = { version = "4.2.1", features = [ "image" ] }
29
-
22
+
image = "0.25"
23
+
fast_image_resize = { version = "5.3", features = [ "image" ] }
24
+
arboard = "3.6"
25
+
tauri-plugin-single-instance = { version = "2.3", features = ["deep-link"] }
26
+
tauri-plugin-shell = "2.3"
27
+
tauri-plugin-http = "2.5"
28
+
tauri-plugin-process = "2.3"
30
29
[target.'cfg(windows)'.dependencies]
31
-
mslnk = { version = "0.1.8" }
30
+
mslnk = { version = "0.1" }
32
31
33
32
[features]
34
33
# this feature is used for production builds or when `devPath` points to the filesystem
+1
-1
src-tauri/gen/schemas/acl-manifests.json
+1
-1
src-tauri/gen/schemas/acl-manifests.json
···
1
-
{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"deep-link":{"default_permission":{"identifier":"default","description":"Allows reading the opened deep link via the get_current command","permissions":["allow-get-current"]},"permissions":{"allow-get-current":{"identifier":"allow-get-current","description":"Enables the get_current command without any pre-configured scope.","commands":{"allow":["get_current"],"deny":[]}},"allow-is-registered":{"identifier":"allow-is-registered","description":"Enables the is_registered command without any pre-configured scope.","commands":{"allow":["is_registered"],"deny":[]}},"allow-register":{"identifier":"allow-register","description":"Enables the register command without any pre-configured scope.","commands":{"allow":["register"],"deny":[]}},"allow-unregister":{"identifier":"allow-unregister","description":"Enables the unregister command without any pre-configured scope.","commands":{"allow":["unregister"],"deny":[]}},"deny-get-current":{"identifier":"deny-get-current","description":"Denies the get_current command without any pre-configured scope.","commands":{"allow":[],"deny":["get_current"]}},"deny-is-registered":{"identifier":"deny-is-registered","description":"Denies the is_registered command without any pre-configured scope.","commands":{"allow":[],"deny":["is_registered"]}},"deny-register":{"identifier":"deny-register","description":"Denies the register command without any pre-configured scope.","commands":{"allow":[],"deny":["register"]}},"deny-unregister":{"identifier":"deny-unregister","description":"Denies the unregister command without any pre-configured scope.","commands":{"allow":[],"deny":["unregister"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","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","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","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"},{"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"}},"required":["url"],"type":"object"}],"description":"HTTP scope entry.","title":"HttpScopeEntry"}},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"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.","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]: <https://docs.rs/regex/latest/regex/#syntax>","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}}
1
+
{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"http":{"default_permission":{"identifier":"default","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","permissions":["allow-fetch","allow-fetch-cancel","allow-fetch-read-body","allow-fetch-send"]},"permissions":{"allow-fetch":{"identifier":"allow-fetch","description":"Enables the fetch command without any pre-configured scope.","commands":{"allow":["fetch"],"deny":[]}},"allow-fetch-cancel":{"identifier":"allow-fetch-cancel","description":"Enables the fetch_cancel command without any pre-configured scope.","commands":{"allow":["fetch_cancel"],"deny":[]}},"allow-fetch-read-body":{"identifier":"allow-fetch-read-body","description":"Enables the fetch_read_body command without any pre-configured scope.","commands":{"allow":["fetch_read_body"],"deny":[]}},"allow-fetch-send":{"identifier":"allow-fetch-send","description":"Enables the fetch_send command without any pre-configured scope.","commands":{"allow":["fetch_send"],"deny":[]}},"deny-fetch":{"identifier":"deny-fetch","description":"Denies the fetch command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch"]}},"deny-fetch-cancel":{"identifier":"deny-fetch-cancel","description":"Denies the fetch_cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_cancel"]}},"deny-fetch-read-body":{"identifier":"deny-fetch-read-body","description":"Denies the fetch_read_body command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_read_body"]}},"deny-fetch-send":{"identifier":"deny-fetch-send","description":"Denies the fetch_send command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_send"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","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"},{"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"}},"required":["url"],"type":"object"}],"description":"HTTP scope entry.","title":"HttpScopeEntry"}},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"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"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"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.","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]: <https://docs.rs/regex/latest/regex/#syntax>","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"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 [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}}
+50
-56
src-tauri/gen/schemas/desktop-schema.json
+50
-56
src-tauri/gen/schemas/desktop-schema.json
···
519
519
"markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\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`"
520
520
},
521
521
{
522
-
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`",
522
+
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`",
523
523
"type": "string",
524
524
"const": "core:app:default",
525
-
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`"
525
+
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`"
526
526
},
527
527
{
528
528
"description": "Enables the app_hide command without any pre-configured scope.",
···
567
567
"markdownDescription": "Enables the name command without any pre-configured scope."
568
568
},
569
569
{
570
+
"description": "Enables the register_listener command without any pre-configured scope.",
571
+
"type": "string",
572
+
"const": "core:app:allow-register-listener",
573
+
"markdownDescription": "Enables the register_listener command without any pre-configured scope."
574
+
},
575
+
{
570
576
"description": "Enables the remove_data_store command without any pre-configured scope.",
571
577
"type": "string",
572
578
"const": "core:app:allow-remove-data-store",
573
579
"markdownDescription": "Enables the remove_data_store command without any pre-configured scope."
574
580
},
575
581
{
582
+
"description": "Enables the remove_listener command without any pre-configured scope.",
583
+
"type": "string",
584
+
"const": "core:app:allow-remove-listener",
585
+
"markdownDescription": "Enables the remove_listener command without any pre-configured scope."
586
+
},
587
+
{
576
588
"description": "Enables the set_app_theme command without any pre-configured scope.",
577
589
"type": "string",
578
590
"const": "core:app:allow-set-app-theme",
···
639
651
"markdownDescription": "Denies the name command without any pre-configured scope."
640
652
},
641
653
{
654
+
"description": "Denies the register_listener command without any pre-configured scope.",
655
+
"type": "string",
656
+
"const": "core:app:deny-register-listener",
657
+
"markdownDescription": "Denies the register_listener command without any pre-configured scope."
658
+
},
659
+
{
642
660
"description": "Denies the remove_data_store command without any pre-configured scope.",
643
661
"type": "string",
644
662
"const": "core:app:deny-remove-data-store",
645
663
"markdownDescription": "Denies the remove_data_store command without any pre-configured scope."
664
+
},
665
+
{
666
+
"description": "Denies the remove_listener command without any pre-configured scope.",
667
+
"type": "string",
668
+
"const": "core:app:deny-remove-listener",
669
+
"markdownDescription": "Denies the remove_listener command without any pre-configured scope."
646
670
},
647
671
{
648
672
"description": "Denies the set_app_theme command without any pre-configured scope.",
···
1827
1851
"markdownDescription": "Enables the set_focus command without any pre-configured scope."
1828
1852
},
1829
1853
{
1854
+
"description": "Enables the set_focusable command without any pre-configured scope.",
1855
+
"type": "string",
1856
+
"const": "core:window:allow-set-focusable",
1857
+
"markdownDescription": "Enables the set_focusable command without any pre-configured scope."
1858
+
},
1859
+
{
1830
1860
"description": "Enables the set_fullscreen command without any pre-configured scope.",
1831
1861
"type": "string",
1832
1862
"const": "core:window:allow-set-fullscreen",
···
1897
1927
"type": "string",
1898
1928
"const": "core:window:allow-set-shadow",
1899
1929
"markdownDescription": "Enables the set_shadow command without any pre-configured scope."
1930
+
},
1931
+
{
1932
+
"description": "Enables the set_simple_fullscreen command without any pre-configured scope.",
1933
+
"type": "string",
1934
+
"const": "core:window:allow-set-simple-fullscreen",
1935
+
"markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope."
1900
1936
},
1901
1937
{
1902
1938
"description": "Enables the set_size command without any pre-configured scope.",
···
2271
2307
"markdownDescription": "Denies the set_focus command without any pre-configured scope."
2272
2308
},
2273
2309
{
2310
+
"description": "Denies the set_focusable command without any pre-configured scope.",
2311
+
"type": "string",
2312
+
"const": "core:window:deny-set-focusable",
2313
+
"markdownDescription": "Denies the set_focusable command without any pre-configured scope."
2314
+
},
2315
+
{
2274
2316
"description": "Denies the set_fullscreen command without any pre-configured scope.",
2275
2317
"type": "string",
2276
2318
"const": "core:window:deny-set-fullscreen",
···
2341
2383
"type": "string",
2342
2384
"const": "core:window:deny-set-shadow",
2343
2385
"markdownDescription": "Denies the set_shadow command without any pre-configured scope."
2386
+
},
2387
+
{
2388
+
"description": "Denies the set_simple_fullscreen command without any pre-configured scope.",
2389
+
"type": "string",
2390
+
"const": "core:window:deny-set-simple-fullscreen",
2391
+
"markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope."
2344
2392
},
2345
2393
{
2346
2394
"description": "Denies the set_size command without any pre-configured scope.",
···
2431
2479
"type": "string",
2432
2480
"const": "core:window:deny-unminimize",
2433
2481
"markdownDescription": "Denies the unminimize command without any pre-configured scope."
2434
-
},
2435
-
{
2436
-
"description": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`",
2437
-
"type": "string",
2438
-
"const": "deep-link:default",
2439
-
"markdownDescription": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`"
2440
-
},
2441
-
{
2442
-
"description": "Enables the get_current command without any pre-configured scope.",
2443
-
"type": "string",
2444
-
"const": "deep-link:allow-get-current",
2445
-
"markdownDescription": "Enables the get_current command without any pre-configured scope."
2446
-
},
2447
-
{
2448
-
"description": "Enables the is_registered command without any pre-configured scope.",
2449
-
"type": "string",
2450
-
"const": "deep-link:allow-is-registered",
2451
-
"markdownDescription": "Enables the is_registered command without any pre-configured scope."
2452
-
},
2453
-
{
2454
-
"description": "Enables the register command without any pre-configured scope.",
2455
-
"type": "string",
2456
-
"const": "deep-link:allow-register",
2457
-
"markdownDescription": "Enables the register command without any pre-configured scope."
2458
-
},
2459
-
{
2460
-
"description": "Enables the unregister command without any pre-configured scope.",
2461
-
"type": "string",
2462
-
"const": "deep-link:allow-unregister",
2463
-
"markdownDescription": "Enables the unregister command without any pre-configured scope."
2464
-
},
2465
-
{
2466
-
"description": "Denies the get_current command without any pre-configured scope.",
2467
-
"type": "string",
2468
-
"const": "deep-link:deny-get-current",
2469
-
"markdownDescription": "Denies the get_current command without any pre-configured scope."
2470
-
},
2471
-
{
2472
-
"description": "Denies the is_registered command without any pre-configured scope.",
2473
-
"type": "string",
2474
-
"const": "deep-link:deny-is-registered",
2475
-
"markdownDescription": "Denies the is_registered command without any pre-configured scope."
2476
-
},
2477
-
{
2478
-
"description": "Denies the register command without any pre-configured scope.",
2479
-
"type": "string",
2480
-
"const": "deep-link:deny-register",
2481
-
"markdownDescription": "Denies the register command without any pre-configured scope."
2482
-
},
2483
-
{
2484
-
"description": "Denies the unregister command without any pre-configured scope.",
2485
-
"type": "string",
2486
-
"const": "deep-link:deny-unregister",
2487
-
"markdownDescription": "Denies the unregister command without any pre-configured scope."
2488
2482
},
2489
2483
{
2490
2484
"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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
+50
-56
src-tauri/gen/schemas/linux-schema.json
+50
-56
src-tauri/gen/schemas/linux-schema.json
···
519
519
"markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\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`"
520
520
},
521
521
{
522
-
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`",
522
+
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`",
523
523
"type": "string",
524
524
"const": "core:app:default",
525
-
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`"
525
+
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`"
526
526
},
527
527
{
528
528
"description": "Enables the app_hide command without any pre-configured scope.",
···
567
567
"markdownDescription": "Enables the name command without any pre-configured scope."
568
568
},
569
569
{
570
+
"description": "Enables the register_listener command without any pre-configured scope.",
571
+
"type": "string",
572
+
"const": "core:app:allow-register-listener",
573
+
"markdownDescription": "Enables the register_listener command without any pre-configured scope."
574
+
},
575
+
{
570
576
"description": "Enables the remove_data_store command without any pre-configured scope.",
571
577
"type": "string",
572
578
"const": "core:app:allow-remove-data-store",
573
579
"markdownDescription": "Enables the remove_data_store command without any pre-configured scope."
574
580
},
575
581
{
582
+
"description": "Enables the remove_listener command without any pre-configured scope.",
583
+
"type": "string",
584
+
"const": "core:app:allow-remove-listener",
585
+
"markdownDescription": "Enables the remove_listener command without any pre-configured scope."
586
+
},
587
+
{
576
588
"description": "Enables the set_app_theme command without any pre-configured scope.",
577
589
"type": "string",
578
590
"const": "core:app:allow-set-app-theme",
···
639
651
"markdownDescription": "Denies the name command without any pre-configured scope."
640
652
},
641
653
{
654
+
"description": "Denies the register_listener command without any pre-configured scope.",
655
+
"type": "string",
656
+
"const": "core:app:deny-register-listener",
657
+
"markdownDescription": "Denies the register_listener command without any pre-configured scope."
658
+
},
659
+
{
642
660
"description": "Denies the remove_data_store command without any pre-configured scope.",
643
661
"type": "string",
644
662
"const": "core:app:deny-remove-data-store",
645
663
"markdownDescription": "Denies the remove_data_store command without any pre-configured scope."
664
+
},
665
+
{
666
+
"description": "Denies the remove_listener command without any pre-configured scope.",
667
+
"type": "string",
668
+
"const": "core:app:deny-remove-listener",
669
+
"markdownDescription": "Denies the remove_listener command without any pre-configured scope."
646
670
},
647
671
{
648
672
"description": "Denies the set_app_theme command without any pre-configured scope.",
···
1827
1851
"markdownDescription": "Enables the set_focus command without any pre-configured scope."
1828
1852
},
1829
1853
{
1854
+
"description": "Enables the set_focusable command without any pre-configured scope.",
1855
+
"type": "string",
1856
+
"const": "core:window:allow-set-focusable",
1857
+
"markdownDescription": "Enables the set_focusable command without any pre-configured scope."
1858
+
},
1859
+
{
1830
1860
"description": "Enables the set_fullscreen command without any pre-configured scope.",
1831
1861
"type": "string",
1832
1862
"const": "core:window:allow-set-fullscreen",
···
1897
1927
"type": "string",
1898
1928
"const": "core:window:allow-set-shadow",
1899
1929
"markdownDescription": "Enables the set_shadow command without any pre-configured scope."
1930
+
},
1931
+
{
1932
+
"description": "Enables the set_simple_fullscreen command without any pre-configured scope.",
1933
+
"type": "string",
1934
+
"const": "core:window:allow-set-simple-fullscreen",
1935
+
"markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope."
1900
1936
},
1901
1937
{
1902
1938
"description": "Enables the set_size command without any pre-configured scope.",
···
2271
2307
"markdownDescription": "Denies the set_focus command without any pre-configured scope."
2272
2308
},
2273
2309
{
2310
+
"description": "Denies the set_focusable command without any pre-configured scope.",
2311
+
"type": "string",
2312
+
"const": "core:window:deny-set-focusable",
2313
+
"markdownDescription": "Denies the set_focusable command without any pre-configured scope."
2314
+
},
2315
+
{
2274
2316
"description": "Denies the set_fullscreen command without any pre-configured scope.",
2275
2317
"type": "string",
2276
2318
"const": "core:window:deny-set-fullscreen",
···
2341
2383
"type": "string",
2342
2384
"const": "core:window:deny-set-shadow",
2343
2385
"markdownDescription": "Denies the set_shadow command without any pre-configured scope."
2386
+
},
2387
+
{
2388
+
"description": "Denies the set_simple_fullscreen command without any pre-configured scope.",
2389
+
"type": "string",
2390
+
"const": "core:window:deny-set-simple-fullscreen",
2391
+
"markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope."
2344
2392
},
2345
2393
{
2346
2394
"description": "Denies the set_size command without any pre-configured scope.",
···
2431
2479
"type": "string",
2432
2480
"const": "core:window:deny-unminimize",
2433
2481
"markdownDescription": "Denies the unminimize command without any pre-configured scope."
2434
-
},
2435
-
{
2436
-
"description": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`",
2437
-
"type": "string",
2438
-
"const": "deep-link:default",
2439
-
"markdownDescription": "Allows reading the opened deep link via the get_current command\n#### This default permission set includes:\n\n- `allow-get-current`"
2440
-
},
2441
-
{
2442
-
"description": "Enables the get_current command without any pre-configured scope.",
2443
-
"type": "string",
2444
-
"const": "deep-link:allow-get-current",
2445
-
"markdownDescription": "Enables the get_current command without any pre-configured scope."
2446
-
},
2447
-
{
2448
-
"description": "Enables the is_registered command without any pre-configured scope.",
2449
-
"type": "string",
2450
-
"const": "deep-link:allow-is-registered",
2451
-
"markdownDescription": "Enables the is_registered command without any pre-configured scope."
2452
-
},
2453
-
{
2454
-
"description": "Enables the register command without any pre-configured scope.",
2455
-
"type": "string",
2456
-
"const": "deep-link:allow-register",
2457
-
"markdownDescription": "Enables the register command without any pre-configured scope."
2458
-
},
2459
-
{
2460
-
"description": "Enables the unregister command without any pre-configured scope.",
2461
-
"type": "string",
2462
-
"const": "deep-link:allow-unregister",
2463
-
"markdownDescription": "Enables the unregister command without any pre-configured scope."
2464
-
},
2465
-
{
2466
-
"description": "Denies the get_current command without any pre-configured scope.",
2467
-
"type": "string",
2468
-
"const": "deep-link:deny-get-current",
2469
-
"markdownDescription": "Denies the get_current command without any pre-configured scope."
2470
-
},
2471
-
{
2472
-
"description": "Denies the is_registered command without any pre-configured scope.",
2473
-
"type": "string",
2474
-
"const": "deep-link:deny-is-registered",
2475
-
"markdownDescription": "Denies the is_registered command without any pre-configured scope."
2476
-
},
2477
-
{
2478
-
"description": "Denies the register command without any pre-configured scope.",
2479
-
"type": "string",
2480
-
"const": "deep-link:deny-register",
2481
-
"markdownDescription": "Denies the register command without any pre-configured scope."
2482
-
},
2483
-
{
2484
-
"description": "Denies the unregister command without any pre-configured scope.",
2485
-
"type": "string",
2486
-
"const": "deep-link:deny-unregister",
2487
-
"markdownDescription": "Denies the unregister command without any pre-configured scope."
2488
2482
},
2489
2483
{
2490
2484
"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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
+894
-406
src-tauri/gen/schemas/windows-schema.json
+894
-406
src-tauri/gen/schemas/windows-schema.json
···
37
37
],
38
38
"definitions": {
39
39
"Capability": {
40
-
"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\"] } ```",
40
+
"description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its 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 programmatic 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\"] } ```",
41
41
"type": "object",
42
42
"required": [
43
43
"identifier",
···
49
49
"type": "string"
50
50
},
51
51
"description": {
52
-
"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.",
52
+
"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 programmatic access to files selected by the user.",
53
53
"default": "",
54
54
"type": "string"
55
55
},
···
70
70
"type": "boolean"
71
71
},
72
72
"windows": {
73
-
"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\"]`",
73
+
"description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`",
74
74
"type": "array",
75
75
"items": {
76
76
"type": "string"
77
77
}
78
78
},
79
79
"webviews": {
80
-
"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\"]`",
80
+
"description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`",
81
81
"type": "array",
82
82
"items": {
83
83
"type": "string"
84
84
}
85
85
},
86
86
"permissions": {
87
-
"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\" }] } ```",
87
+
"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\" }] } ] ```",
88
88
"type": "array",
89
89
"items": {
90
90
"$ref": "#/definitions/PermissionEntry"
···
140
140
"identifier": {
141
141
"anyOf": [
142
142
{
143
-
"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",
143
+
"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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
144
144
"type": "string",
145
-
"const": "http:default"
145
+
"const": "http:default",
146
+
"markdownDescription": "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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`"
146
147
},
147
148
{
148
149
"description": "Enables the fetch command without any pre-configured scope.",
149
150
"type": "string",
150
-
"const": "http:allow-fetch"
151
+
"const": "http:allow-fetch",
152
+
"markdownDescription": "Enables the fetch command without any pre-configured scope."
151
153
},
152
154
{
153
155
"description": "Enables the fetch_cancel command without any pre-configured scope.",
154
156
"type": "string",
155
-
"const": "http:allow-fetch-cancel"
157
+
"const": "http:allow-fetch-cancel",
158
+
"markdownDescription": "Enables the fetch_cancel command without any pre-configured scope."
156
159
},
157
160
{
158
161
"description": "Enables the fetch_read_body command without any pre-configured scope.",
159
162
"type": "string",
160
-
"const": "http:allow-fetch-read-body"
163
+
"const": "http:allow-fetch-read-body",
164
+
"markdownDescription": "Enables the fetch_read_body command without any pre-configured scope."
161
165
},
162
166
{
163
167
"description": "Enables the fetch_send command without any pre-configured scope.",
164
168
"type": "string",
165
-
"const": "http:allow-fetch-send"
169
+
"const": "http:allow-fetch-send",
170
+
"markdownDescription": "Enables the fetch_send command without any pre-configured scope."
166
171
},
167
172
{
168
173
"description": "Denies the fetch command without any pre-configured scope.",
169
174
"type": "string",
170
-
"const": "http:deny-fetch"
175
+
"const": "http:deny-fetch",
176
+
"markdownDescription": "Denies the fetch command without any pre-configured scope."
171
177
},
172
178
{
173
179
"description": "Denies the fetch_cancel command without any pre-configured scope.",
174
180
"type": "string",
175
-
"const": "http:deny-fetch-cancel"
181
+
"const": "http:deny-fetch-cancel",
182
+
"markdownDescription": "Denies the fetch_cancel command without any pre-configured scope."
176
183
},
177
184
{
178
185
"description": "Denies the fetch_read_body command without any pre-configured scope.",
179
186
"type": "string",
180
-
"const": "http:deny-fetch-read-body"
187
+
"const": "http:deny-fetch-read-body",
188
+
"markdownDescription": "Denies the fetch_read_body command without any pre-configured scope."
181
189
},
182
190
{
183
191
"description": "Denies the fetch_send command without any pre-configured scope.",
184
192
"type": "string",
185
-
"const": "http:deny-fetch-send"
193
+
"const": "http:deny-fetch-send",
194
+
"markdownDescription": "Denies the fetch_send command without any pre-configured scope."
186
195
}
187
196
]
188
197
}
···
257
266
"identifier": {
258
267
"anyOf": [
259
268
{
260
-
"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",
269
+
"description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`",
261
270
"type": "string",
262
-
"const": "shell:default"
271
+
"const": "shell:default",
272
+
"markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`"
263
273
},
264
274
{
265
275
"description": "Enables the execute command without any pre-configured scope.",
266
276
"type": "string",
267
-
"const": "shell:allow-execute"
277
+
"const": "shell:allow-execute",
278
+
"markdownDescription": "Enables the execute command without any pre-configured scope."
268
279
},
269
280
{
270
281
"description": "Enables the kill command without any pre-configured scope.",
271
282
"type": "string",
272
-
"const": "shell:allow-kill"
283
+
"const": "shell:allow-kill",
284
+
"markdownDescription": "Enables the kill command without any pre-configured scope."
273
285
},
274
286
{
275
287
"description": "Enables the open command without any pre-configured scope.",
276
288
"type": "string",
277
-
"const": "shell:allow-open"
289
+
"const": "shell:allow-open",
290
+
"markdownDescription": "Enables the open command without any pre-configured scope."
278
291
},
279
292
{
280
293
"description": "Enables the spawn command without any pre-configured scope.",
281
294
"type": "string",
282
-
"const": "shell:allow-spawn"
295
+
"const": "shell:allow-spawn",
296
+
"markdownDescription": "Enables the spawn command without any pre-configured scope."
283
297
},
284
298
{
285
299
"description": "Enables the stdin_write command without any pre-configured scope.",
286
300
"type": "string",
287
-
"const": "shell:allow-stdin-write"
301
+
"const": "shell:allow-stdin-write",
302
+
"markdownDescription": "Enables the stdin_write command without any pre-configured scope."
288
303
},
289
304
{
290
305
"description": "Denies the execute command without any pre-configured scope.",
291
306
"type": "string",
292
-
"const": "shell:deny-execute"
307
+
"const": "shell:deny-execute",
308
+
"markdownDescription": "Denies the execute command without any pre-configured scope."
293
309
},
294
310
{
295
311
"description": "Denies the kill command without any pre-configured scope.",
296
312
"type": "string",
297
-
"const": "shell:deny-kill"
313
+
"const": "shell:deny-kill",
314
+
"markdownDescription": "Denies the kill command without any pre-configured scope."
298
315
},
299
316
{
300
317
"description": "Denies the open command without any pre-configured scope.",
301
318
"type": "string",
302
-
"const": "shell:deny-open"
319
+
"const": "shell:deny-open",
320
+
"markdownDescription": "Denies the open command without any pre-configured scope."
303
321
},
304
322
{
305
323
"description": "Denies the spawn command without any pre-configured scope.",
306
324
"type": "string",
307
-
"const": "shell:deny-spawn"
325
+
"const": "shell:deny-spawn",
326
+
"markdownDescription": "Denies the spawn command without any pre-configured scope."
308
327
},
309
328
{
310
329
"description": "Denies the stdin_write command without any pre-configured scope.",
311
330
"type": "string",
312
-
"const": "shell:deny-stdin-write"
331
+
"const": "shell:deny-stdin-write",
332
+
"markdownDescription": "Denies the stdin_write command without any pre-configured scope."
313
333
}
314
334
]
315
335
}
···
493
513
"description": "Permission identifier",
494
514
"oneOf": [
495
515
{
496
-
"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",
516
+
"description": "Default core plugins set.\n#### This default permission set includes:\n\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`",
497
517
"type": "string",
498
-
"const": "core:default"
518
+
"const": "core:default",
519
+
"markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\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`"
499
520
},
500
521
{
501
-
"description": "Default permissions for the plugin.",
522
+
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`",
502
523
"type": "string",
503
-
"const": "core:app:default"
524
+
"const": "core:app:default",
525
+
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`"
504
526
},
505
527
{
506
528
"description": "Enables the app_hide command without any pre-configured scope.",
507
529
"type": "string",
508
-
"const": "core:app:allow-app-hide"
530
+
"const": "core:app:allow-app-hide",
531
+
"markdownDescription": "Enables the app_hide command without any pre-configured scope."
509
532
},
510
533
{
511
534
"description": "Enables the app_show command without any pre-configured scope.",
512
535
"type": "string",
513
-
"const": "core:app:allow-app-show"
536
+
"const": "core:app:allow-app-show",
537
+
"markdownDescription": "Enables the app_show command without any pre-configured scope."
538
+
},
539
+
{
540
+
"description": "Enables the bundle_type command without any pre-configured scope.",
541
+
"type": "string",
542
+
"const": "core:app:allow-bundle-type",
543
+
"markdownDescription": "Enables the bundle_type command without any pre-configured scope."
514
544
},
515
545
{
516
546
"description": "Enables the default_window_icon command without any pre-configured scope.",
517
547
"type": "string",
518
-
"const": "core:app:allow-default-window-icon"
548
+
"const": "core:app:allow-default-window-icon",
549
+
"markdownDescription": "Enables the default_window_icon command without any pre-configured scope."
550
+
},
551
+
{
552
+
"description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.",
553
+
"type": "string",
554
+
"const": "core:app:allow-fetch-data-store-identifiers",
555
+
"markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope."
556
+
},
557
+
{
558
+
"description": "Enables the identifier command without any pre-configured scope.",
559
+
"type": "string",
560
+
"const": "core:app:allow-identifier",
561
+
"markdownDescription": "Enables the identifier command without any pre-configured scope."
519
562
},
520
563
{
521
564
"description": "Enables the name command without any pre-configured scope.",
522
565
"type": "string",
523
-
"const": "core:app:allow-name"
566
+
"const": "core:app:allow-name",
567
+
"markdownDescription": "Enables the name command without any pre-configured scope."
568
+
},
569
+
{
570
+
"description": "Enables the register_listener command without any pre-configured scope.",
571
+
"type": "string",
572
+
"const": "core:app:allow-register-listener",
573
+
"markdownDescription": "Enables the register_listener command without any pre-configured scope."
574
+
},
575
+
{
576
+
"description": "Enables the remove_data_store command without any pre-configured scope.",
577
+
"type": "string",
578
+
"const": "core:app:allow-remove-data-store",
579
+
"markdownDescription": "Enables the remove_data_store command without any pre-configured scope."
580
+
},
581
+
{
582
+
"description": "Enables the remove_listener command without any pre-configured scope.",
583
+
"type": "string",
584
+
"const": "core:app:allow-remove-listener",
585
+
"markdownDescription": "Enables the remove_listener command without any pre-configured scope."
524
586
},
525
587
{
526
588
"description": "Enables the set_app_theme command without any pre-configured scope.",
527
589
"type": "string",
528
-
"const": "core:app:allow-set-app-theme"
590
+
"const": "core:app:allow-set-app-theme",
591
+
"markdownDescription": "Enables the set_app_theme command without any pre-configured scope."
592
+
},
593
+
{
594
+
"description": "Enables the set_dock_visibility command without any pre-configured scope.",
595
+
"type": "string",
596
+
"const": "core:app:allow-set-dock-visibility",
597
+
"markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope."
529
598
},
530
599
{
531
600
"description": "Enables the tauri_version command without any pre-configured scope.",
532
601
"type": "string",
533
-
"const": "core:app:allow-tauri-version"
602
+
"const": "core:app:allow-tauri-version",
603
+
"markdownDescription": "Enables the tauri_version command without any pre-configured scope."
534
604
},
535
605
{
536
606
"description": "Enables the version command without any pre-configured scope.",
537
607
"type": "string",
538
-
"const": "core:app:allow-version"
608
+
"const": "core:app:allow-version",
609
+
"markdownDescription": "Enables the version command without any pre-configured scope."
539
610
},
540
611
{
541
612
"description": "Denies the app_hide command without any pre-configured scope.",
542
613
"type": "string",
543
-
"const": "core:app:deny-app-hide"
614
+
"const": "core:app:deny-app-hide",
615
+
"markdownDescription": "Denies the app_hide command without any pre-configured scope."
544
616
},
545
617
{
546
618
"description": "Denies the app_show command without any pre-configured scope.",
547
619
"type": "string",
548
-
"const": "core:app:deny-app-show"
620
+
"const": "core:app:deny-app-show",
621
+
"markdownDescription": "Denies the app_show command without any pre-configured scope."
622
+
},
623
+
{
624
+
"description": "Denies the bundle_type command without any pre-configured scope.",
625
+
"type": "string",
626
+
"const": "core:app:deny-bundle-type",
627
+
"markdownDescription": "Denies the bundle_type command without any pre-configured scope."
549
628
},
550
629
{
551
630
"description": "Denies the default_window_icon command without any pre-configured scope.",
552
631
"type": "string",
553
-
"const": "core:app:deny-default-window-icon"
632
+
"const": "core:app:deny-default-window-icon",
633
+
"markdownDescription": "Denies the default_window_icon command without any pre-configured scope."
634
+
},
635
+
{
636
+
"description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.",
637
+
"type": "string",
638
+
"const": "core:app:deny-fetch-data-store-identifiers",
639
+
"markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope."
640
+
},
641
+
{
642
+
"description": "Denies the identifier command without any pre-configured scope.",
643
+
"type": "string",
644
+
"const": "core:app:deny-identifier",
645
+
"markdownDescription": "Denies the identifier command without any pre-configured scope."
554
646
},
555
647
{
556
648
"description": "Denies the name command without any pre-configured scope.",
557
649
"type": "string",
558
-
"const": "core:app:deny-name"
650
+
"const": "core:app:deny-name",
651
+
"markdownDescription": "Denies the name command without any pre-configured scope."
652
+
},
653
+
{
654
+
"description": "Denies the register_listener command without any pre-configured scope.",
655
+
"type": "string",
656
+
"const": "core:app:deny-register-listener",
657
+
"markdownDescription": "Denies the register_listener command without any pre-configured scope."
658
+
},
659
+
{
660
+
"description": "Denies the remove_data_store command without any pre-configured scope.",
661
+
"type": "string",
662
+
"const": "core:app:deny-remove-data-store",
663
+
"markdownDescription": "Denies the remove_data_store command without any pre-configured scope."
664
+
},
665
+
{
666
+
"description": "Denies the remove_listener command without any pre-configured scope.",
667
+
"type": "string",
668
+
"const": "core:app:deny-remove-listener",
669
+
"markdownDescription": "Denies the remove_listener command without any pre-configured scope."
559
670
},
560
671
{
561
672
"description": "Denies the set_app_theme command without any pre-configured scope.",
562
673
"type": "string",
563
-
"const": "core:app:deny-set-app-theme"
674
+
"const": "core:app:deny-set-app-theme",
675
+
"markdownDescription": "Denies the set_app_theme command without any pre-configured scope."
676
+
},
677
+
{
678
+
"description": "Denies the set_dock_visibility command without any pre-configured scope.",
679
+
"type": "string",
680
+
"const": "core:app:deny-set-dock-visibility",
681
+
"markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope."
564
682
},
565
683
{
566
684
"description": "Denies the tauri_version command without any pre-configured scope.",
567
685
"type": "string",
568
-
"const": "core:app:deny-tauri-version"
686
+
"const": "core:app:deny-tauri-version",
687
+
"markdownDescription": "Denies the tauri_version command without any pre-configured scope."
569
688
},
570
689
{
571
690
"description": "Denies the version command without any pre-configured scope.",
572
691
"type": "string",
573
-
"const": "core:app:deny-version"
692
+
"const": "core:app:deny-version",
693
+
"markdownDescription": "Denies the version command without any pre-configured scope."
574
694
},
575
695
{
576
-
"description": "Default permissions for the plugin.",
696
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`",
577
697
"type": "string",
578
-
"const": "core:event:default"
698
+
"const": "core:event:default",
699
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`"
579
700
},
580
701
{
581
702
"description": "Enables the emit command without any pre-configured scope.",
582
703
"type": "string",
583
-
"const": "core:event:allow-emit"
704
+
"const": "core:event:allow-emit",
705
+
"markdownDescription": "Enables the emit command without any pre-configured scope."
584
706
},
585
707
{
586
708
"description": "Enables the emit_to command without any pre-configured scope.",
587
709
"type": "string",
588
-
"const": "core:event:allow-emit-to"
710
+
"const": "core:event:allow-emit-to",
711
+
"markdownDescription": "Enables the emit_to command without any pre-configured scope."
589
712
},
590
713
{
591
714
"description": "Enables the listen command without any pre-configured scope.",
592
715
"type": "string",
593
-
"const": "core:event:allow-listen"
716
+
"const": "core:event:allow-listen",
717
+
"markdownDescription": "Enables the listen command without any pre-configured scope."
594
718
},
595
719
{
596
720
"description": "Enables the unlisten command without any pre-configured scope.",
597
721
"type": "string",
598
-
"const": "core:event:allow-unlisten"
722
+
"const": "core:event:allow-unlisten",
723
+
"markdownDescription": "Enables the unlisten command without any pre-configured scope."
599
724
},
600
725
{
601
726
"description": "Denies the emit command without any pre-configured scope.",
602
727
"type": "string",
603
-
"const": "core:event:deny-emit"
728
+
"const": "core:event:deny-emit",
729
+
"markdownDescription": "Denies the emit command without any pre-configured scope."
604
730
},
605
731
{
606
732
"description": "Denies the emit_to command without any pre-configured scope.",
607
733
"type": "string",
608
-
"const": "core:event:deny-emit-to"
734
+
"const": "core:event:deny-emit-to",
735
+
"markdownDescription": "Denies the emit_to command without any pre-configured scope."
609
736
},
610
737
{
611
738
"description": "Denies the listen command without any pre-configured scope.",
612
739
"type": "string",
613
-
"const": "core:event:deny-listen"
740
+
"const": "core:event:deny-listen",
741
+
"markdownDescription": "Denies the listen command without any pre-configured scope."
614
742
},
615
743
{
616
744
"description": "Denies the unlisten command without any pre-configured scope.",
617
745
"type": "string",
618
-
"const": "core:event:deny-unlisten"
746
+
"const": "core:event:deny-unlisten",
747
+
"markdownDescription": "Denies the unlisten command without any pre-configured scope."
619
748
},
620
749
{
621
-
"description": "Default permissions for the plugin.",
750
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`",
622
751
"type": "string",
623
-
"const": "core:image:default"
752
+
"const": "core:image:default",
753
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`"
624
754
},
625
755
{
626
756
"description": "Enables the from_bytes command without any pre-configured scope.",
627
757
"type": "string",
628
-
"const": "core:image:allow-from-bytes"
758
+
"const": "core:image:allow-from-bytes",
759
+
"markdownDescription": "Enables the from_bytes command without any pre-configured scope."
629
760
},
630
761
{
631
762
"description": "Enables the from_path command without any pre-configured scope.",
632
763
"type": "string",
633
-
"const": "core:image:allow-from-path"
764
+
"const": "core:image:allow-from-path",
765
+
"markdownDescription": "Enables the from_path command without any pre-configured scope."
634
766
},
635
767
{
636
768
"description": "Enables the new command without any pre-configured scope.",
637
769
"type": "string",
638
-
"const": "core:image:allow-new"
770
+
"const": "core:image:allow-new",
771
+
"markdownDescription": "Enables the new command without any pre-configured scope."
639
772
},
640
773
{
641
774
"description": "Enables the rgba command without any pre-configured scope.",
642
775
"type": "string",
643
-
"const": "core:image:allow-rgba"
776
+
"const": "core:image:allow-rgba",
777
+
"markdownDescription": "Enables the rgba command without any pre-configured scope."
644
778
},
645
779
{
646
780
"description": "Enables the size command without any pre-configured scope.",
647
781
"type": "string",
648
-
"const": "core:image:allow-size"
782
+
"const": "core:image:allow-size",
783
+
"markdownDescription": "Enables the size command without any pre-configured scope."
649
784
},
650
785
{
651
786
"description": "Denies the from_bytes command without any pre-configured scope.",
652
787
"type": "string",
653
-
"const": "core:image:deny-from-bytes"
788
+
"const": "core:image:deny-from-bytes",
789
+
"markdownDescription": "Denies the from_bytes command without any pre-configured scope."
654
790
},
655
791
{
656
792
"description": "Denies the from_path command without any pre-configured scope.",
657
793
"type": "string",
658
-
"const": "core:image:deny-from-path"
794
+
"const": "core:image:deny-from-path",
795
+
"markdownDescription": "Denies the from_path command without any pre-configured scope."
659
796
},
660
797
{
661
798
"description": "Denies the new command without any pre-configured scope.",
662
799
"type": "string",
663
-
"const": "core:image:deny-new"
800
+
"const": "core:image:deny-new",
801
+
"markdownDescription": "Denies the new command without any pre-configured scope."
664
802
},
665
803
{
666
804
"description": "Denies the rgba command without any pre-configured scope.",
667
805
"type": "string",
668
-
"const": "core:image:deny-rgba"
806
+
"const": "core:image:deny-rgba",
807
+
"markdownDescription": "Denies the rgba command without any pre-configured scope."
669
808
},
670
809
{
671
810
"description": "Denies the size command without any pre-configured scope.",
672
811
"type": "string",
673
-
"const": "core:image:deny-size"
812
+
"const": "core:image:deny-size",
813
+
"markdownDescription": "Denies the size command without any pre-configured scope."
674
814
},
675
815
{
676
-
"description": "Default permissions for the plugin.",
816
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`",
677
817
"type": "string",
678
-
"const": "core:menu:default"
818
+
"const": "core:menu:default",
819
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`"
679
820
},
680
821
{
681
822
"description": "Enables the append command without any pre-configured scope.",
682
823
"type": "string",
683
-
"const": "core:menu:allow-append"
824
+
"const": "core:menu:allow-append",
825
+
"markdownDescription": "Enables the append command without any pre-configured scope."
684
826
},
685
827
{
686
828
"description": "Enables the create_default command without any pre-configured scope.",
687
829
"type": "string",
688
-
"const": "core:menu:allow-create-default"
830
+
"const": "core:menu:allow-create-default",
831
+
"markdownDescription": "Enables the create_default command without any pre-configured scope."
689
832
},
690
833
{
691
834
"description": "Enables the get command without any pre-configured scope.",
692
835
"type": "string",
693
-
"const": "core:menu:allow-get"
836
+
"const": "core:menu:allow-get",
837
+
"markdownDescription": "Enables the get command without any pre-configured scope."
694
838
},
695
839
{
696
840
"description": "Enables the insert command without any pre-configured scope.",
697
841
"type": "string",
698
-
"const": "core:menu:allow-insert"
842
+
"const": "core:menu:allow-insert",
843
+
"markdownDescription": "Enables the insert command without any pre-configured scope."
699
844
},
700
845
{
701
846
"description": "Enables the is_checked command without any pre-configured scope.",
702
847
"type": "string",
703
-
"const": "core:menu:allow-is-checked"
848
+
"const": "core:menu:allow-is-checked",
849
+
"markdownDescription": "Enables the is_checked command without any pre-configured scope."
704
850
},
705
851
{
706
852
"description": "Enables the is_enabled command without any pre-configured scope.",
707
853
"type": "string",
708
-
"const": "core:menu:allow-is-enabled"
854
+
"const": "core:menu:allow-is-enabled",
855
+
"markdownDescription": "Enables the is_enabled command without any pre-configured scope."
709
856
},
710
857
{
711
858
"description": "Enables the items command without any pre-configured scope.",
712
859
"type": "string",
713
-
"const": "core:menu:allow-items"
860
+
"const": "core:menu:allow-items",
861
+
"markdownDescription": "Enables the items command without any pre-configured scope."
714
862
},
715
863
{
716
864
"description": "Enables the new command without any pre-configured scope.",
717
865
"type": "string",
718
-
"const": "core:menu:allow-new"
866
+
"const": "core:menu:allow-new",
867
+
"markdownDescription": "Enables the new command without any pre-configured scope."
719
868
},
720
869
{
721
870
"description": "Enables the popup command without any pre-configured scope.",
722
871
"type": "string",
723
-
"const": "core:menu:allow-popup"
872
+
"const": "core:menu:allow-popup",
873
+
"markdownDescription": "Enables the popup command without any pre-configured scope."
724
874
},
725
875
{
726
876
"description": "Enables the prepend command without any pre-configured scope.",
727
877
"type": "string",
728
-
"const": "core:menu:allow-prepend"
878
+
"const": "core:menu:allow-prepend",
879
+
"markdownDescription": "Enables the prepend command without any pre-configured scope."
729
880
},
730
881
{
731
882
"description": "Enables the remove command without any pre-configured scope.",
732
883
"type": "string",
733
-
"const": "core:menu:allow-remove"
884
+
"const": "core:menu:allow-remove",
885
+
"markdownDescription": "Enables the remove command without any pre-configured scope."
734
886
},
735
887
{
736
888
"description": "Enables the remove_at command without any pre-configured scope.",
737
889
"type": "string",
738
-
"const": "core:menu:allow-remove-at"
890
+
"const": "core:menu:allow-remove-at",
891
+
"markdownDescription": "Enables the remove_at command without any pre-configured scope."
739
892
},
740
893
{
741
894
"description": "Enables the set_accelerator command without any pre-configured scope.",
742
895
"type": "string",
743
-
"const": "core:menu:allow-set-accelerator"
896
+
"const": "core:menu:allow-set-accelerator",
897
+
"markdownDescription": "Enables the set_accelerator command without any pre-configured scope."
744
898
},
745
899
{
746
900
"description": "Enables the set_as_app_menu command without any pre-configured scope.",
747
901
"type": "string",
748
-
"const": "core:menu:allow-set-as-app-menu"
902
+
"const": "core:menu:allow-set-as-app-menu",
903
+
"markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope."
749
904
},
750
905
{
751
906
"description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.",
752
907
"type": "string",
753
-
"const": "core:menu:allow-set-as-help-menu-for-nsapp"
908
+
"const": "core:menu:allow-set-as-help-menu-for-nsapp",
909
+
"markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope."
754
910
},
755
911
{
756
912
"description": "Enables the set_as_window_menu command without any pre-configured scope.",
757
913
"type": "string",
758
-
"const": "core:menu:allow-set-as-window-menu"
914
+
"const": "core:menu:allow-set-as-window-menu",
915
+
"markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope."
759
916
},
760
917
{
761
918
"description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
762
919
"type": "string",
763
-
"const": "core:menu:allow-set-as-windows-menu-for-nsapp"
920
+
"const": "core:menu:allow-set-as-windows-menu-for-nsapp",
921
+
"markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope."
764
922
},
765
923
{
766
924
"description": "Enables the set_checked command without any pre-configured scope.",
767
925
"type": "string",
768
-
"const": "core:menu:allow-set-checked"
926
+
"const": "core:menu:allow-set-checked",
927
+
"markdownDescription": "Enables the set_checked command without any pre-configured scope."
769
928
},
770
929
{
771
930
"description": "Enables the set_enabled command without any pre-configured scope.",
772
931
"type": "string",
773
-
"const": "core:menu:allow-set-enabled"
932
+
"const": "core:menu:allow-set-enabled",
933
+
"markdownDescription": "Enables the set_enabled command without any pre-configured scope."
774
934
},
775
935
{
776
936
"description": "Enables the set_icon command without any pre-configured scope.",
777
937
"type": "string",
778
-
"const": "core:menu:allow-set-icon"
938
+
"const": "core:menu:allow-set-icon",
939
+
"markdownDescription": "Enables the set_icon command without any pre-configured scope."
779
940
},
780
941
{
781
942
"description": "Enables the set_text command without any pre-configured scope.",
782
943
"type": "string",
783
-
"const": "core:menu:allow-set-text"
944
+
"const": "core:menu:allow-set-text",
945
+
"markdownDescription": "Enables the set_text command without any pre-configured scope."
784
946
},
785
947
{
786
948
"description": "Enables the text command without any pre-configured scope.",
787
949
"type": "string",
788
-
"const": "core:menu:allow-text"
950
+
"const": "core:menu:allow-text",
951
+
"markdownDescription": "Enables the text command without any pre-configured scope."
789
952
},
790
953
{
791
954
"description": "Denies the append command without any pre-configured scope.",
792
955
"type": "string",
793
-
"const": "core:menu:deny-append"
956
+
"const": "core:menu:deny-append",
957
+
"markdownDescription": "Denies the append command without any pre-configured scope."
794
958
},
795
959
{
796
960
"description": "Denies the create_default command without any pre-configured scope.",
797
961
"type": "string",
798
-
"const": "core:menu:deny-create-default"
962
+
"const": "core:menu:deny-create-default",
963
+
"markdownDescription": "Denies the create_default command without any pre-configured scope."
799
964
},
800
965
{
801
966
"description": "Denies the get command without any pre-configured scope.",
802
967
"type": "string",
803
-
"const": "core:menu:deny-get"
968
+
"const": "core:menu:deny-get",
969
+
"markdownDescription": "Denies the get command without any pre-configured scope."
804
970
},
805
971
{
806
972
"description": "Denies the insert command without any pre-configured scope.",
807
973
"type": "string",
808
-
"const": "core:menu:deny-insert"
974
+
"const": "core:menu:deny-insert",
975
+
"markdownDescription": "Denies the insert command without any pre-configured scope."
809
976
},
810
977
{
811
978
"description": "Denies the is_checked command without any pre-configured scope.",
812
979
"type": "string",
813
-
"const": "core:menu:deny-is-checked"
980
+
"const": "core:menu:deny-is-checked",
981
+
"markdownDescription": "Denies the is_checked command without any pre-configured scope."
814
982
},
815
983
{
816
984
"description": "Denies the is_enabled command without any pre-configured scope.",
817
985
"type": "string",
818
-
"const": "core:menu:deny-is-enabled"
986
+
"const": "core:menu:deny-is-enabled",
987
+
"markdownDescription": "Denies the is_enabled command without any pre-configured scope."
819
988
},
820
989
{
821
990
"description": "Denies the items command without any pre-configured scope.",
822
991
"type": "string",
823
-
"const": "core:menu:deny-items"
992
+
"const": "core:menu:deny-items",
993
+
"markdownDescription": "Denies the items command without any pre-configured scope."
824
994
},
825
995
{
826
996
"description": "Denies the new command without any pre-configured scope.",
827
997
"type": "string",
828
-
"const": "core:menu:deny-new"
998
+
"const": "core:menu:deny-new",
999
+
"markdownDescription": "Denies the new command without any pre-configured scope."
829
1000
},
830
1001
{
831
1002
"description": "Denies the popup command without any pre-configured scope.",
832
1003
"type": "string",
833
-
"const": "core:menu:deny-popup"
1004
+
"const": "core:menu:deny-popup",
1005
+
"markdownDescription": "Denies the popup command without any pre-configured scope."
834
1006
},
835
1007
{
836
1008
"description": "Denies the prepend command without any pre-configured scope.",
837
1009
"type": "string",
838
-
"const": "core:menu:deny-prepend"
1010
+
"const": "core:menu:deny-prepend",
1011
+
"markdownDescription": "Denies the prepend command without any pre-configured scope."
839
1012
},
840
1013
{
841
1014
"description": "Denies the remove command without any pre-configured scope.",
842
1015
"type": "string",
843
-
"const": "core:menu:deny-remove"
1016
+
"const": "core:menu:deny-remove",
1017
+
"markdownDescription": "Denies the remove command without any pre-configured scope."
844
1018
},
845
1019
{
846
1020
"description": "Denies the remove_at command without any pre-configured scope.",
847
1021
"type": "string",
848
-
"const": "core:menu:deny-remove-at"
1022
+
"const": "core:menu:deny-remove-at",
1023
+
"markdownDescription": "Denies the remove_at command without any pre-configured scope."
849
1024
},
850
1025
{
851
1026
"description": "Denies the set_accelerator command without any pre-configured scope.",
852
1027
"type": "string",
853
-
"const": "core:menu:deny-set-accelerator"
1028
+
"const": "core:menu:deny-set-accelerator",
1029
+
"markdownDescription": "Denies the set_accelerator command without any pre-configured scope."
854
1030
},
855
1031
{
856
1032
"description": "Denies the set_as_app_menu command without any pre-configured scope.",
857
1033
"type": "string",
858
-
"const": "core:menu:deny-set-as-app-menu"
1034
+
"const": "core:menu:deny-set-as-app-menu",
1035
+
"markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope."
859
1036
},
860
1037
{
861
1038
"description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.",
862
1039
"type": "string",
863
-
"const": "core:menu:deny-set-as-help-menu-for-nsapp"
1040
+
"const": "core:menu:deny-set-as-help-menu-for-nsapp",
1041
+
"markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope."
864
1042
},
865
1043
{
866
1044
"description": "Denies the set_as_window_menu command without any pre-configured scope.",
867
1045
"type": "string",
868
-
"const": "core:menu:deny-set-as-window-menu"
1046
+
"const": "core:menu:deny-set-as-window-menu",
1047
+
"markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope."
869
1048
},
870
1049
{
871
1050
"description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
872
1051
"type": "string",
873
-
"const": "core:menu:deny-set-as-windows-menu-for-nsapp"
1052
+
"const": "core:menu:deny-set-as-windows-menu-for-nsapp",
1053
+
"markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope."
874
1054
},
875
1055
{
876
1056
"description": "Denies the set_checked command without any pre-configured scope.",
877
1057
"type": "string",
878
-
"const": "core:menu:deny-set-checked"
1058
+
"const": "core:menu:deny-set-checked",
1059
+
"markdownDescription": "Denies the set_checked command without any pre-configured scope."
879
1060
},
880
1061
{
881
1062
"description": "Denies the set_enabled command without any pre-configured scope.",
882
1063
"type": "string",
883
-
"const": "core:menu:deny-set-enabled"
1064
+
"const": "core:menu:deny-set-enabled",
1065
+
"markdownDescription": "Denies the set_enabled command without any pre-configured scope."
884
1066
},
885
1067
{
886
1068
"description": "Denies the set_icon command without any pre-configured scope.",
887
1069
"type": "string",
888
-
"const": "core:menu:deny-set-icon"
1070
+
"const": "core:menu:deny-set-icon",
1071
+
"markdownDescription": "Denies the set_icon command without any pre-configured scope."
889
1072
},
890
1073
{
891
1074
"description": "Denies the set_text command without any pre-configured scope.",
892
1075
"type": "string",
893
-
"const": "core:menu:deny-set-text"
1076
+
"const": "core:menu:deny-set-text",
1077
+
"markdownDescription": "Denies the set_text command without any pre-configured scope."
894
1078
},
895
1079
{
896
1080
"description": "Denies the text command without any pre-configured scope.",
897
1081
"type": "string",
898
-
"const": "core:menu:deny-text"
1082
+
"const": "core:menu:deny-text",
1083
+
"markdownDescription": "Denies the text command without any pre-configured scope."
899
1084
},
900
1085
{
901
-
"description": "Default permissions for the plugin.",
1086
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`",
902
1087
"type": "string",
903
-
"const": "core:path:default"
1088
+
"const": "core:path:default",
1089
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`"
904
1090
},
905
1091
{
906
1092
"description": "Enables the basename command without any pre-configured scope.",
907
1093
"type": "string",
908
-
"const": "core:path:allow-basename"
1094
+
"const": "core:path:allow-basename",
1095
+
"markdownDescription": "Enables the basename command without any pre-configured scope."
909
1096
},
910
1097
{
911
1098
"description": "Enables the dirname command without any pre-configured scope.",
912
1099
"type": "string",
913
-
"const": "core:path:allow-dirname"
1100
+
"const": "core:path:allow-dirname",
1101
+
"markdownDescription": "Enables the dirname command without any pre-configured scope."
914
1102
},
915
1103
{
916
1104
"description": "Enables the extname command without any pre-configured scope.",
917
1105
"type": "string",
918
-
"const": "core:path:allow-extname"
1106
+
"const": "core:path:allow-extname",
1107
+
"markdownDescription": "Enables the extname command without any pre-configured scope."
919
1108
},
920
1109
{
921
1110
"description": "Enables the is_absolute command without any pre-configured scope.",
922
1111
"type": "string",
923
-
"const": "core:path:allow-is-absolute"
1112
+
"const": "core:path:allow-is-absolute",
1113
+
"markdownDescription": "Enables the is_absolute command without any pre-configured scope."
924
1114
},
925
1115
{
926
1116
"description": "Enables the join command without any pre-configured scope.",
927
1117
"type": "string",
928
-
"const": "core:path:allow-join"
1118
+
"const": "core:path:allow-join",
1119
+
"markdownDescription": "Enables the join command without any pre-configured scope."
929
1120
},
930
1121
{
931
1122
"description": "Enables the normalize command without any pre-configured scope.",
932
1123
"type": "string",
933
-
"const": "core:path:allow-normalize"
1124
+
"const": "core:path:allow-normalize",
1125
+
"markdownDescription": "Enables the normalize command without any pre-configured scope."
934
1126
},
935
1127
{
936
1128
"description": "Enables the resolve command without any pre-configured scope.",
937
1129
"type": "string",
938
-
"const": "core:path:allow-resolve"
1130
+
"const": "core:path:allow-resolve",
1131
+
"markdownDescription": "Enables the resolve command without any pre-configured scope."
939
1132
},
940
1133
{
941
1134
"description": "Enables the resolve_directory command without any pre-configured scope.",
942
1135
"type": "string",
943
-
"const": "core:path:allow-resolve-directory"
1136
+
"const": "core:path:allow-resolve-directory",
1137
+
"markdownDescription": "Enables the resolve_directory command without any pre-configured scope."
944
1138
},
945
1139
{
946
1140
"description": "Denies the basename command without any pre-configured scope.",
947
1141
"type": "string",
948
-
"const": "core:path:deny-basename"
1142
+
"const": "core:path:deny-basename",
1143
+
"markdownDescription": "Denies the basename command without any pre-configured scope."
949
1144
},
950
1145
{
951
1146
"description": "Denies the dirname command without any pre-configured scope.",
952
1147
"type": "string",
953
-
"const": "core:path:deny-dirname"
1148
+
"const": "core:path:deny-dirname",
1149
+
"markdownDescription": "Denies the dirname command without any pre-configured scope."
954
1150
},
955
1151
{
956
1152
"description": "Denies the extname command without any pre-configured scope.",
957
1153
"type": "string",
958
-
"const": "core:path:deny-extname"
1154
+
"const": "core:path:deny-extname",
1155
+
"markdownDescription": "Denies the extname command without any pre-configured scope."
959
1156
},
960
1157
{
961
1158
"description": "Denies the is_absolute command without any pre-configured scope.",
962
1159
"type": "string",
963
-
"const": "core:path:deny-is-absolute"
1160
+
"const": "core:path:deny-is-absolute",
1161
+
"markdownDescription": "Denies the is_absolute command without any pre-configured scope."
964
1162
},
965
1163
{
966
1164
"description": "Denies the join command without any pre-configured scope.",
967
1165
"type": "string",
968
-
"const": "core:path:deny-join"
1166
+
"const": "core:path:deny-join",
1167
+
"markdownDescription": "Denies the join command without any pre-configured scope."
969
1168
},
970
1169
{
971
1170
"description": "Denies the normalize command without any pre-configured scope.",
972
1171
"type": "string",
973
-
"const": "core:path:deny-normalize"
1172
+
"const": "core:path:deny-normalize",
1173
+
"markdownDescription": "Denies the normalize command without any pre-configured scope."
974
1174
},
975
1175
{
976
1176
"description": "Denies the resolve command without any pre-configured scope.",
977
1177
"type": "string",
978
-
"const": "core:path:deny-resolve"
1178
+
"const": "core:path:deny-resolve",
1179
+
"markdownDescription": "Denies the resolve command without any pre-configured scope."
979
1180
},
980
1181
{
981
1182
"description": "Denies the resolve_directory command without any pre-configured scope.",
982
1183
"type": "string",
983
-
"const": "core:path:deny-resolve-directory"
1184
+
"const": "core:path:deny-resolve-directory",
1185
+
"markdownDescription": "Denies the resolve_directory command without any pre-configured scope."
984
1186
},
985
1187
{
986
-
"description": "Default permissions for the plugin.",
1188
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`",
987
1189
"type": "string",
988
-
"const": "core:resources:default"
1190
+
"const": "core:resources:default",
1191
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`"
989
1192
},
990
1193
{
991
1194
"description": "Enables the close command without any pre-configured scope.",
992
1195
"type": "string",
993
-
"const": "core:resources:allow-close"
1196
+
"const": "core:resources:allow-close",
1197
+
"markdownDescription": "Enables the close command without any pre-configured scope."
994
1198
},
995
1199
{
996
1200
"description": "Denies the close command without any pre-configured scope.",
997
1201
"type": "string",
998
-
"const": "core:resources:deny-close"
1202
+
"const": "core:resources:deny-close",
1203
+
"markdownDescription": "Denies the close command without any pre-configured scope."
999
1204
},
1000
1205
{
1001
-
"description": "Default permissions for the plugin.",
1206
+
"description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`",
1002
1207
"type": "string",
1003
-
"const": "core:tray:default"
1208
+
"const": "core:tray:default",
1209
+
"markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`"
1004
1210
},
1005
1211
{
1006
1212
"description": "Enables the get_by_id command without any pre-configured scope.",
1007
1213
"type": "string",
1008
-
"const": "core:tray:allow-get-by-id"
1214
+
"const": "core:tray:allow-get-by-id",
1215
+
"markdownDescription": "Enables the get_by_id command without any pre-configured scope."
1009
1216
},
1010
1217
{
1011
1218
"description": "Enables the new command without any pre-configured scope.",
1012
1219
"type": "string",
1013
-
"const": "core:tray:allow-new"
1220
+
"const": "core:tray:allow-new",
1221
+
"markdownDescription": "Enables the new command without any pre-configured scope."
1014
1222
},
1015
1223
{
1016
1224
"description": "Enables the remove_by_id command without any pre-configured scope.",
1017
1225
"type": "string",
1018
-
"const": "core:tray:allow-remove-by-id"
1226
+
"const": "core:tray:allow-remove-by-id",
1227
+
"markdownDescription": "Enables the remove_by_id command without any pre-configured scope."
1019
1228
},
1020
1229
{
1021
1230
"description": "Enables the set_icon command without any pre-configured scope.",
1022
1231
"type": "string",
1023
-
"const": "core:tray:allow-set-icon"
1232
+
"const": "core:tray:allow-set-icon",
1233
+
"markdownDescription": "Enables the set_icon command without any pre-configured scope."
1024
1234
},
1025
1235
{
1026
1236
"description": "Enables the set_icon_as_template command without any pre-configured scope.",
1027
1237
"type": "string",
1028
-
"const": "core:tray:allow-set-icon-as-template"
1238
+
"const": "core:tray:allow-set-icon-as-template",
1239
+
"markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope."
1029
1240
},
1030
1241
{
1031
1242
"description": "Enables the set_menu command without any pre-configured scope.",
1032
1243
"type": "string",
1033
-
"const": "core:tray:allow-set-menu"
1244
+
"const": "core:tray:allow-set-menu",
1245
+
"markdownDescription": "Enables the set_menu command without any pre-configured scope."
1034
1246
},
1035
1247
{
1036
1248
"description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.",
1037
1249
"type": "string",
1038
-
"const": "core:tray:allow-set-show-menu-on-left-click"
1250
+
"const": "core:tray:allow-set-show-menu-on-left-click",
1251
+
"markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope."
1039
1252
},
1040
1253
{
1041
1254
"description": "Enables the set_temp_dir_path command without any pre-configured scope.",
1042
1255
"type": "string",
1043
-
"const": "core:tray:allow-set-temp-dir-path"
1256
+
"const": "core:tray:allow-set-temp-dir-path",
1257
+
"markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope."
1044
1258
},
1045
1259
{
1046
1260
"description": "Enables the set_title command without any pre-configured scope.",
1047
1261
"type": "string",
1048
-
"const": "core:tray:allow-set-title"
1262
+
"const": "core:tray:allow-set-title",
1263
+
"markdownDescription": "Enables the set_title command without any pre-configured scope."
1049
1264
},
1050
1265
{
1051
1266
"description": "Enables the set_tooltip command without any pre-configured scope.",
1052
1267
"type": "string",
1053
-
"const": "core:tray:allow-set-tooltip"
1268
+
"const": "core:tray:allow-set-tooltip",
1269
+
"markdownDescription": "Enables the set_tooltip command without any pre-configured scope."
1054
1270
},
1055
1271
{
1056
1272
"description": "Enables the set_visible command without any pre-configured scope.",
1057
1273
"type": "string",
1058
-
"const": "core:tray:allow-set-visible"
1274
+
"const": "core:tray:allow-set-visible",
1275
+
"markdownDescription": "Enables the set_visible command without any pre-configured scope."
1059
1276
},
1060
1277
{
1061
1278
"description": "Denies the get_by_id command without any pre-configured scope.",
1062
1279
"type": "string",
1063
-
"const": "core:tray:deny-get-by-id"
1280
+
"const": "core:tray:deny-get-by-id",
1281
+
"markdownDescription": "Denies the get_by_id command without any pre-configured scope."
1064
1282
},
1065
1283
{
1066
1284
"description": "Denies the new command without any pre-configured scope.",
1067
1285
"type": "string",
1068
-
"const": "core:tray:deny-new"
1286
+
"const": "core:tray:deny-new",
1287
+
"markdownDescription": "Denies the new command without any pre-configured scope."
1069
1288
},
1070
1289
{
1071
1290
"description": "Denies the remove_by_id command without any pre-configured scope.",
1072
1291
"type": "string",
1073
-
"const": "core:tray:deny-remove-by-id"
1292
+
"const": "core:tray:deny-remove-by-id",
1293
+
"markdownDescription": "Denies the remove_by_id command without any pre-configured scope."
1074
1294
},
1075
1295
{
1076
1296
"description": "Denies the set_icon command without any pre-configured scope.",
1077
1297
"type": "string",
1078
-
"const": "core:tray:deny-set-icon"
1298
+
"const": "core:tray:deny-set-icon",
1299
+
"markdownDescription": "Denies the set_icon command without any pre-configured scope."
1079
1300
},
1080
1301
{
1081
1302
"description": "Denies the set_icon_as_template command without any pre-configured scope.",
1082
1303
"type": "string",
1083
-
"const": "core:tray:deny-set-icon-as-template"
1304
+
"const": "core:tray:deny-set-icon-as-template",
1305
+
"markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope."
1084
1306
},
1085
1307
{
1086
1308
"description": "Denies the set_menu command without any pre-configured scope.",
1087
1309
"type": "string",
1088
-
"const": "core:tray:deny-set-menu"
1310
+
"const": "core:tray:deny-set-menu",
1311
+
"markdownDescription": "Denies the set_menu command without any pre-configured scope."
1089
1312
},
1090
1313
{
1091
1314
"description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.",
1092
1315
"type": "string",
1093
-
"const": "core:tray:deny-set-show-menu-on-left-click"
1316
+
"const": "core:tray:deny-set-show-menu-on-left-click",
1317
+
"markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope."
1094
1318
},
1095
1319
{
1096
1320
"description": "Denies the set_temp_dir_path command without any pre-configured scope.",
1097
1321
"type": "string",
1098
-
"const": "core:tray:deny-set-temp-dir-path"
1322
+
"const": "core:tray:deny-set-temp-dir-path",
1323
+
"markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope."
1099
1324
},
1100
1325
{
1101
1326
"description": "Denies the set_title command without any pre-configured scope.",
1102
1327
"type": "string",
1103
-
"const": "core:tray:deny-set-title"
1328
+
"const": "core:tray:deny-set-title",
1329
+
"markdownDescription": "Denies the set_title command without any pre-configured scope."
1104
1330
},
1105
1331
{
1106
1332
"description": "Denies the set_tooltip command without any pre-configured scope.",
1107
1333
"type": "string",
1108
-
"const": "core:tray:deny-set-tooltip"
1334
+
"const": "core:tray:deny-set-tooltip",
1335
+
"markdownDescription": "Denies the set_tooltip command without any pre-configured scope."
1109
1336
},
1110
1337
{
1111
1338
"description": "Denies the set_visible command without any pre-configured scope.",
1112
1339
"type": "string",
1113
-
"const": "core:tray:deny-set-visible"
1340
+
"const": "core:tray:deny-set-visible",
1341
+
"markdownDescription": "Denies the set_visible command without any pre-configured scope."
1114
1342
},
1115
1343
{
1116
-
"description": "Default permissions for the plugin.",
1344
+
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`",
1117
1345
"type": "string",
1118
-
"const": "core:webview:default"
1346
+
"const": "core:webview:default",
1347
+
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`"
1119
1348
},
1120
1349
{
1121
1350
"description": "Enables the clear_all_browsing_data command without any pre-configured scope.",
1122
1351
"type": "string",
1123
-
"const": "core:webview:allow-clear-all-browsing-data"
1352
+
"const": "core:webview:allow-clear-all-browsing-data",
1353
+
"markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope."
1124
1354
},
1125
1355
{
1126
1356
"description": "Enables the create_webview command without any pre-configured scope.",
1127
1357
"type": "string",
1128
-
"const": "core:webview:allow-create-webview"
1358
+
"const": "core:webview:allow-create-webview",
1359
+
"markdownDescription": "Enables the create_webview command without any pre-configured scope."
1129
1360
},
1130
1361
{
1131
1362
"description": "Enables the create_webview_window command without any pre-configured scope.",
1132
1363
"type": "string",
1133
-
"const": "core:webview:allow-create-webview-window"
1364
+
"const": "core:webview:allow-create-webview-window",
1365
+
"markdownDescription": "Enables the create_webview_window command without any pre-configured scope."
1134
1366
},
1135
1367
{
1136
1368
"description": "Enables the get_all_webviews command without any pre-configured scope.",
1137
1369
"type": "string",
1138
-
"const": "core:webview:allow-get-all-webviews"
1370
+
"const": "core:webview:allow-get-all-webviews",
1371
+
"markdownDescription": "Enables the get_all_webviews command without any pre-configured scope."
1139
1372
},
1140
1373
{
1141
1374
"description": "Enables the internal_toggle_devtools command without any pre-configured scope.",
1142
1375
"type": "string",
1143
-
"const": "core:webview:allow-internal-toggle-devtools"
1376
+
"const": "core:webview:allow-internal-toggle-devtools",
1377
+
"markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope."
1144
1378
},
1145
1379
{
1146
1380
"description": "Enables the print command without any pre-configured scope.",
1147
1381
"type": "string",
1148
-
"const": "core:webview:allow-print"
1382
+
"const": "core:webview:allow-print",
1383
+
"markdownDescription": "Enables the print command without any pre-configured scope."
1149
1384
},
1150
1385
{
1151
1386
"description": "Enables the reparent command without any pre-configured scope.",
1152
1387
"type": "string",
1153
-
"const": "core:webview:allow-reparent"
1388
+
"const": "core:webview:allow-reparent",
1389
+
"markdownDescription": "Enables the reparent command without any pre-configured scope."
1390
+
},
1391
+
{
1392
+
"description": "Enables the set_webview_auto_resize command without any pre-configured scope.",
1393
+
"type": "string",
1394
+
"const": "core:webview:allow-set-webview-auto-resize",
1395
+
"markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope."
1396
+
},
1397
+
{
1398
+
"description": "Enables the set_webview_background_color command without any pre-configured scope.",
1399
+
"type": "string",
1400
+
"const": "core:webview:allow-set-webview-background-color",
1401
+
"markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope."
1154
1402
},
1155
1403
{
1156
1404
"description": "Enables the set_webview_focus command without any pre-configured scope.",
1157
1405
"type": "string",
1158
-
"const": "core:webview:allow-set-webview-focus"
1406
+
"const": "core:webview:allow-set-webview-focus",
1407
+
"markdownDescription": "Enables the set_webview_focus command without any pre-configured scope."
1159
1408
},
1160
1409
{
1161
1410
"description": "Enables the set_webview_position command without any pre-configured scope.",
1162
1411
"type": "string",
1163
-
"const": "core:webview:allow-set-webview-position"
1412
+
"const": "core:webview:allow-set-webview-position",
1413
+
"markdownDescription": "Enables the set_webview_position command without any pre-configured scope."
1164
1414
},
1165
1415
{
1166
1416
"description": "Enables the set_webview_size command without any pre-configured scope.",
1167
1417
"type": "string",
1168
-
"const": "core:webview:allow-set-webview-size"
1418
+
"const": "core:webview:allow-set-webview-size",
1419
+
"markdownDescription": "Enables the set_webview_size command without any pre-configured scope."
1169
1420
},
1170
1421
{
1171
1422
"description": "Enables the set_webview_zoom command without any pre-configured scope.",
1172
1423
"type": "string",
1173
-
"const": "core:webview:allow-set-webview-zoom"
1424
+
"const": "core:webview:allow-set-webview-zoom",
1425
+
"markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope."
1174
1426
},
1175
1427
{
1176
1428
"description": "Enables the webview_close command without any pre-configured scope.",
1177
1429
"type": "string",
1178
-
"const": "core:webview:allow-webview-close"
1430
+
"const": "core:webview:allow-webview-close",
1431
+
"markdownDescription": "Enables the webview_close command without any pre-configured scope."
1179
1432
},
1180
1433
{
1181
1434
"description": "Enables the webview_hide command without any pre-configured scope.",
1182
1435
"type": "string",
1183
-
"const": "core:webview:allow-webview-hide"
1436
+
"const": "core:webview:allow-webview-hide",
1437
+
"markdownDescription": "Enables the webview_hide command without any pre-configured scope."
1184
1438
},
1185
1439
{
1186
1440
"description": "Enables the webview_position command without any pre-configured scope.",
1187
1441
"type": "string",
1188
-
"const": "core:webview:allow-webview-position"
1442
+
"const": "core:webview:allow-webview-position",
1443
+
"markdownDescription": "Enables the webview_position command without any pre-configured scope."
1189
1444
},
1190
1445
{
1191
1446
"description": "Enables the webview_show command without any pre-configured scope.",
1192
1447
"type": "string",
1193
-
"const": "core:webview:allow-webview-show"
1448
+
"const": "core:webview:allow-webview-show",
1449
+
"markdownDescription": "Enables the webview_show command without any pre-configured scope."
1194
1450
},
1195
1451
{
1196
1452
"description": "Enables the webview_size command without any pre-configured scope.",
1197
1453
"type": "string",
1198
-
"const": "core:webview:allow-webview-size"
1454
+
"const": "core:webview:allow-webview-size",
1455
+
"markdownDescription": "Enables the webview_size command without any pre-configured scope."
1199
1456
},
1200
1457
{
1201
1458
"description": "Denies the clear_all_browsing_data command without any pre-configured scope.",
1202
1459
"type": "string",
1203
-
"const": "core:webview:deny-clear-all-browsing-data"
1460
+
"const": "core:webview:deny-clear-all-browsing-data",
1461
+
"markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope."
1204
1462
},
1205
1463
{
1206
1464
"description": "Denies the create_webview command without any pre-configured scope.",
1207
1465
"type": "string",
1208
-
"const": "core:webview:deny-create-webview"
1466
+
"const": "core:webview:deny-create-webview",
1467
+
"markdownDescription": "Denies the create_webview command without any pre-configured scope."
1209
1468
},
1210
1469
{
1211
1470
"description": "Denies the create_webview_window command without any pre-configured scope.",
1212
1471
"type": "string",
1213
-
"const": "core:webview:deny-create-webview-window"
1472
+
"const": "core:webview:deny-create-webview-window",
1473
+
"markdownDescription": "Denies the create_webview_window command without any pre-configured scope."
1214
1474
},
1215
1475
{
1216
1476
"description": "Denies the get_all_webviews command without any pre-configured scope.",
1217
1477
"type": "string",
1218
-
"const": "core:webview:deny-get-all-webviews"
1478
+
"const": "core:webview:deny-get-all-webviews",
1479
+
"markdownDescription": "Denies the get_all_webviews command without any pre-configured scope."
1219
1480
},
1220
1481
{
1221
1482
"description": "Denies the internal_toggle_devtools command without any pre-configured scope.",
1222
1483
"type": "string",
1223
-
"const": "core:webview:deny-internal-toggle-devtools"
1484
+
"const": "core:webview:deny-internal-toggle-devtools",
1485
+
"markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope."
1224
1486
},
1225
1487
{
1226
1488
"description": "Denies the print command without any pre-configured scope.",
1227
1489
"type": "string",
1228
-
"const": "core:webview:deny-print"
1490
+
"const": "core:webview:deny-print",
1491
+
"markdownDescription": "Denies the print command without any pre-configured scope."
1229
1492
},
1230
1493
{
1231
1494
"description": "Denies the reparent command without any pre-configured scope.",
1232
1495
"type": "string",
1233
-
"const": "core:webview:deny-reparent"
1496
+
"const": "core:webview:deny-reparent",
1497
+
"markdownDescription": "Denies the reparent command without any pre-configured scope."
1498
+
},
1499
+
{
1500
+
"description": "Denies the set_webview_auto_resize command without any pre-configured scope.",
1501
+
"type": "string",
1502
+
"const": "core:webview:deny-set-webview-auto-resize",
1503
+
"markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope."
1504
+
},
1505
+
{
1506
+
"description": "Denies the set_webview_background_color command without any pre-configured scope.",
1507
+
"type": "string",
1508
+
"const": "core:webview:deny-set-webview-background-color",
1509
+
"markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope."
1234
1510
},
1235
1511
{
1236
1512
"description": "Denies the set_webview_focus command without any pre-configured scope.",
1237
1513
"type": "string",
1238
-
"const": "core:webview:deny-set-webview-focus"
1514
+
"const": "core:webview:deny-set-webview-focus",
1515
+
"markdownDescription": "Denies the set_webview_focus command without any pre-configured scope."
1239
1516
},
1240
1517
{
1241
1518
"description": "Denies the set_webview_position command without any pre-configured scope.",
1242
1519
"type": "string",
1243
-
"const": "core:webview:deny-set-webview-position"
1520
+
"const": "core:webview:deny-set-webview-position",
1521
+
"markdownDescription": "Denies the set_webview_position command without any pre-configured scope."
1244
1522
},
1245
1523
{
1246
1524
"description": "Denies the set_webview_size command without any pre-configured scope.",
1247
1525
"type": "string",
1248
-
"const": "core:webview:deny-set-webview-size"
1526
+
"const": "core:webview:deny-set-webview-size",
1527
+
"markdownDescription": "Denies the set_webview_size command without any pre-configured scope."
1249
1528
},
1250
1529
{
1251
1530
"description": "Denies the set_webview_zoom command without any pre-configured scope.",
1252
1531
"type": "string",
1253
-
"const": "core:webview:deny-set-webview-zoom"
1532
+
"const": "core:webview:deny-set-webview-zoom",
1533
+
"markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope."
1254
1534
},
1255
1535
{
1256
1536
"description": "Denies the webview_close command without any pre-configured scope.",
1257
1537
"type": "string",
1258
-
"const": "core:webview:deny-webview-close"
1538
+
"const": "core:webview:deny-webview-close",
1539
+
"markdownDescription": "Denies the webview_close command without any pre-configured scope."
1259
1540
},
1260
1541
{
1261
1542
"description": "Denies the webview_hide command without any pre-configured scope.",
1262
1543
"type": "string",
1263
-
"const": "core:webview:deny-webview-hide"
1544
+
"const": "core:webview:deny-webview-hide",
1545
+
"markdownDescription": "Denies the webview_hide command without any pre-configured scope."
1264
1546
},
1265
1547
{
1266
1548
"description": "Denies the webview_position command without any pre-configured scope.",
1267
1549
"type": "string",
1268
-
"const": "core:webview:deny-webview-position"
1550
+
"const": "core:webview:deny-webview-position",
1551
+
"markdownDescription": "Denies the webview_position command without any pre-configured scope."
1269
1552
},
1270
1553
{
1271
1554
"description": "Denies the webview_show command without any pre-configured scope.",
1272
1555
"type": "string",
1273
-
"const": "core:webview:deny-webview-show"
1556
+
"const": "core:webview:deny-webview-show",
1557
+
"markdownDescription": "Denies the webview_show command without any pre-configured scope."
1274
1558
},
1275
1559
{
1276
1560
"description": "Denies the webview_size command without any pre-configured scope.",
1277
1561
"type": "string",
1278
-
"const": "core:webview:deny-webview-size"
1562
+
"const": "core:webview:deny-webview-size",
1563
+
"markdownDescription": "Denies the webview_size command without any pre-configured scope."
1279
1564
},
1280
1565
{
1281
-
"description": "Default permissions for the plugin.",
1566
+
"description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`",
1282
1567
"type": "string",
1283
-
"const": "core:window:default"
1568
+
"const": "core:window:default",
1569
+
"markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`"
1284
1570
},
1285
1571
{
1286
1572
"description": "Enables the available_monitors command without any pre-configured scope.",
1287
1573
"type": "string",
1288
-
"const": "core:window:allow-available-monitors"
1574
+
"const": "core:window:allow-available-monitors",
1575
+
"markdownDescription": "Enables the available_monitors command without any pre-configured scope."
1289
1576
},
1290
1577
{
1291
1578
"description": "Enables the center command without any pre-configured scope.",
1292
1579
"type": "string",
1293
-
"const": "core:window:allow-center"
1580
+
"const": "core:window:allow-center",
1581
+
"markdownDescription": "Enables the center command without any pre-configured scope."
1294
1582
},
1295
1583
{
1296
1584
"description": "Enables the close command without any pre-configured scope.",
1297
1585
"type": "string",
1298
-
"const": "core:window:allow-close"
1586
+
"const": "core:window:allow-close",
1587
+
"markdownDescription": "Enables the close command without any pre-configured scope."
1299
1588
},
1300
1589
{
1301
1590
"description": "Enables the create command without any pre-configured scope.",
1302
1591
"type": "string",
1303
-
"const": "core:window:allow-create"
1592
+
"const": "core:window:allow-create",
1593
+
"markdownDescription": "Enables the create command without any pre-configured scope."
1304
1594
},
1305
1595
{
1306
1596
"description": "Enables the current_monitor command without any pre-configured scope.",
1307
1597
"type": "string",
1308
-
"const": "core:window:allow-current-monitor"
1598
+
"const": "core:window:allow-current-monitor",
1599
+
"markdownDescription": "Enables the current_monitor command without any pre-configured scope."
1309
1600
},
1310
1601
{
1311
1602
"description": "Enables the cursor_position command without any pre-configured scope.",
1312
1603
"type": "string",
1313
-
"const": "core:window:allow-cursor-position"
1604
+
"const": "core:window:allow-cursor-position",
1605
+
"markdownDescription": "Enables the cursor_position command without any pre-configured scope."
1314
1606
},
1315
1607
{
1316
1608
"description": "Enables the destroy command without any pre-configured scope.",
1317
1609
"type": "string",
1318
-
"const": "core:window:allow-destroy"
1610
+
"const": "core:window:allow-destroy",
1611
+
"markdownDescription": "Enables the destroy command without any pre-configured scope."
1319
1612
},
1320
1613
{
1321
1614
"description": "Enables the get_all_windows command without any pre-configured scope.",
1322
1615
"type": "string",
1323
-
"const": "core:window:allow-get-all-windows"
1616
+
"const": "core:window:allow-get-all-windows",
1617
+
"markdownDescription": "Enables the get_all_windows command without any pre-configured scope."
1324
1618
},
1325
1619
{
1326
1620
"description": "Enables the hide command without any pre-configured scope.",
1327
1621
"type": "string",
1328
-
"const": "core:window:allow-hide"
1622
+
"const": "core:window:allow-hide",
1623
+
"markdownDescription": "Enables the hide command without any pre-configured scope."
1329
1624
},
1330
1625
{
1331
1626
"description": "Enables the inner_position command without any pre-configured scope.",
1332
1627
"type": "string",
1333
-
"const": "core:window:allow-inner-position"
1628
+
"const": "core:window:allow-inner-position",
1629
+
"markdownDescription": "Enables the inner_position command without any pre-configured scope."
1334
1630
},
1335
1631
{
1336
1632
"description": "Enables the inner_size command without any pre-configured scope.",
1337
1633
"type": "string",
1338
-
"const": "core:window:allow-inner-size"
1634
+
"const": "core:window:allow-inner-size",
1635
+
"markdownDescription": "Enables the inner_size command without any pre-configured scope."
1339
1636
},
1340
1637
{
1341
1638
"description": "Enables the internal_toggle_maximize command without any pre-configured scope.",
1342
1639
"type": "string",
1343
-
"const": "core:window:allow-internal-toggle-maximize"
1640
+
"const": "core:window:allow-internal-toggle-maximize",
1641
+
"markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope."
1642
+
},
1643
+
{
1644
+
"description": "Enables the is_always_on_top command without any pre-configured scope.",
1645
+
"type": "string",
1646
+
"const": "core:window:allow-is-always-on-top",
1647
+
"markdownDescription": "Enables the is_always_on_top command without any pre-configured scope."
1344
1648
},
1345
1649
{
1346
1650
"description": "Enables the is_closable command without any pre-configured scope.",
1347
1651
"type": "string",
1348
-
"const": "core:window:allow-is-closable"
1652
+
"const": "core:window:allow-is-closable",
1653
+
"markdownDescription": "Enables the is_closable command without any pre-configured scope."
1349
1654
},
1350
1655
{
1351
1656
"description": "Enables the is_decorated command without any pre-configured scope.",
1352
1657
"type": "string",
1353
-
"const": "core:window:allow-is-decorated"
1658
+
"const": "core:window:allow-is-decorated",
1659
+
"markdownDescription": "Enables the is_decorated command without any pre-configured scope."
1354
1660
},
1355
1661
{
1356
1662
"description": "Enables the is_enabled command without any pre-configured scope.",
1357
1663
"type": "string",
1358
-
"const": "core:window:allow-is-enabled"
1664
+
"const": "core:window:allow-is-enabled",
1665
+
"markdownDescription": "Enables the is_enabled command without any pre-configured scope."
1359
1666
},
1360
1667
{
1361
1668
"description": "Enables the is_focused command without any pre-configured scope.",
1362
1669
"type": "string",
1363
-
"const": "core:window:allow-is-focused"
1670
+
"const": "core:window:allow-is-focused",
1671
+
"markdownDescription": "Enables the is_focused command without any pre-configured scope."
1364
1672
},
1365
1673
{
1366
1674
"description": "Enables the is_fullscreen command without any pre-configured scope.",
1367
1675
"type": "string",
1368
-
"const": "core:window:allow-is-fullscreen"
1676
+
"const": "core:window:allow-is-fullscreen",
1677
+
"markdownDescription": "Enables the is_fullscreen command without any pre-configured scope."
1369
1678
},
1370
1679
{
1371
1680
"description": "Enables the is_maximizable command without any pre-configured scope.",
1372
1681
"type": "string",
1373
-
"const": "core:window:allow-is-maximizable"
1682
+
"const": "core:window:allow-is-maximizable",
1683
+
"markdownDescription": "Enables the is_maximizable command without any pre-configured scope."
1374
1684
},
1375
1685
{
1376
1686
"description": "Enables the is_maximized command without any pre-configured scope.",
1377
1687
"type": "string",
1378
-
"const": "core:window:allow-is-maximized"
1688
+
"const": "core:window:allow-is-maximized",
1689
+
"markdownDescription": "Enables the is_maximized command without any pre-configured scope."
1379
1690
},
1380
1691
{
1381
1692
"description": "Enables the is_minimizable command without any pre-configured scope.",
1382
1693
"type": "string",
1383
-
"const": "core:window:allow-is-minimizable"
1694
+
"const": "core:window:allow-is-minimizable",
1695
+
"markdownDescription": "Enables the is_minimizable command without any pre-configured scope."
1384
1696
},
1385
1697
{
1386
1698
"description": "Enables the is_minimized command without any pre-configured scope.",
1387
1699
"type": "string",
1388
-
"const": "core:window:allow-is-minimized"
1700
+
"const": "core:window:allow-is-minimized",
1701
+
"markdownDescription": "Enables the is_minimized command without any pre-configured scope."
1389
1702
},
1390
1703
{
1391
1704
"description": "Enables the is_resizable command without any pre-configured scope.",
1392
1705
"type": "string",
1393
-
"const": "core:window:allow-is-resizable"
1706
+
"const": "core:window:allow-is-resizable",
1707
+
"markdownDescription": "Enables the is_resizable command without any pre-configured scope."
1394
1708
},
1395
1709
{
1396
1710
"description": "Enables the is_visible command without any pre-configured scope.",
1397
1711
"type": "string",
1398
-
"const": "core:window:allow-is-visible"
1712
+
"const": "core:window:allow-is-visible",
1713
+
"markdownDescription": "Enables the is_visible command without any pre-configured scope."
1399
1714
},
1400
1715
{
1401
1716
"description": "Enables the maximize command without any pre-configured scope.",
1402
1717
"type": "string",
1403
-
"const": "core:window:allow-maximize"
1718
+
"const": "core:window:allow-maximize",
1719
+
"markdownDescription": "Enables the maximize command without any pre-configured scope."
1404
1720
},
1405
1721
{
1406
1722
"description": "Enables the minimize command without any pre-configured scope.",
1407
1723
"type": "string",
1408
-
"const": "core:window:allow-minimize"
1724
+
"const": "core:window:allow-minimize",
1725
+
"markdownDescription": "Enables the minimize command without any pre-configured scope."
1409
1726
},
1410
1727
{
1411
1728
"description": "Enables the monitor_from_point command without any pre-configured scope.",
1412
1729
"type": "string",
1413
-
"const": "core:window:allow-monitor-from-point"
1730
+
"const": "core:window:allow-monitor-from-point",
1731
+
"markdownDescription": "Enables the monitor_from_point command without any pre-configured scope."
1414
1732
},
1415
1733
{
1416
1734
"description": "Enables the outer_position command without any pre-configured scope.",
1417
1735
"type": "string",
1418
-
"const": "core:window:allow-outer-position"
1736
+
"const": "core:window:allow-outer-position",
1737
+
"markdownDescription": "Enables the outer_position command without any pre-configured scope."
1419
1738
},
1420
1739
{
1421
1740
"description": "Enables the outer_size command without any pre-configured scope.",
1422
1741
"type": "string",
1423
-
"const": "core:window:allow-outer-size"
1742
+
"const": "core:window:allow-outer-size",
1743
+
"markdownDescription": "Enables the outer_size command without any pre-configured scope."
1424
1744
},
1425
1745
{
1426
1746
"description": "Enables the primary_monitor command without any pre-configured scope.",
1427
1747
"type": "string",
1428
-
"const": "core:window:allow-primary-monitor"
1748
+
"const": "core:window:allow-primary-monitor",
1749
+
"markdownDescription": "Enables the primary_monitor command without any pre-configured scope."
1429
1750
},
1430
1751
{
1431
1752
"description": "Enables the request_user_attention command without any pre-configured scope.",
1432
1753
"type": "string",
1433
-
"const": "core:window:allow-request-user-attention"
1754
+
"const": "core:window:allow-request-user-attention",
1755
+
"markdownDescription": "Enables the request_user_attention command without any pre-configured scope."
1434
1756
},
1435
1757
{
1436
1758
"description": "Enables the scale_factor command without any pre-configured scope.",
1437
1759
"type": "string",
1438
-
"const": "core:window:allow-scale-factor"
1760
+
"const": "core:window:allow-scale-factor",
1761
+
"markdownDescription": "Enables the scale_factor command without any pre-configured scope."
1439
1762
},
1440
1763
{
1441
1764
"description": "Enables the set_always_on_bottom command without any pre-configured scope.",
1442
1765
"type": "string",
1443
-
"const": "core:window:allow-set-always-on-bottom"
1766
+
"const": "core:window:allow-set-always-on-bottom",
1767
+
"markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope."
1444
1768
},
1445
1769
{
1446
1770
"description": "Enables the set_always_on_top command without any pre-configured scope.",
1447
1771
"type": "string",
1448
-
"const": "core:window:allow-set-always-on-top"
1772
+
"const": "core:window:allow-set-always-on-top",
1773
+
"markdownDescription": "Enables the set_always_on_top command without any pre-configured scope."
1774
+
},
1775
+
{
1776
+
"description": "Enables the set_background_color command without any pre-configured scope.",
1777
+
"type": "string",
1778
+
"const": "core:window:allow-set-background-color",
1779
+
"markdownDescription": "Enables the set_background_color command without any pre-configured scope."
1780
+
},
1781
+
{
1782
+
"description": "Enables the set_badge_count command without any pre-configured scope.",
1783
+
"type": "string",
1784
+
"const": "core:window:allow-set-badge-count",
1785
+
"markdownDescription": "Enables the set_badge_count command without any pre-configured scope."
1786
+
},
1787
+
{
1788
+
"description": "Enables the set_badge_label command without any pre-configured scope.",
1789
+
"type": "string",
1790
+
"const": "core:window:allow-set-badge-label",
1791
+
"markdownDescription": "Enables the set_badge_label command without any pre-configured scope."
1449
1792
},
1450
1793
{
1451
1794
"description": "Enables the set_closable command without any pre-configured scope.",
1452
1795
"type": "string",
1453
-
"const": "core:window:allow-set-closable"
1796
+
"const": "core:window:allow-set-closable",
1797
+
"markdownDescription": "Enables the set_closable command without any pre-configured scope."
1454
1798
},
1455
1799
{
1456
1800
"description": "Enables the set_content_protected command without any pre-configured scope.",
1457
1801
"type": "string",
1458
-
"const": "core:window:allow-set-content-protected"
1802
+
"const": "core:window:allow-set-content-protected",
1803
+
"markdownDescription": "Enables the set_content_protected command without any pre-configured scope."
1459
1804
},
1460
1805
{
1461
1806
"description": "Enables the set_cursor_grab command without any pre-configured scope.",
1462
1807
"type": "string",
1463
-
"const": "core:window:allow-set-cursor-grab"
1808
+
"const": "core:window:allow-set-cursor-grab",
1809
+
"markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope."
1464
1810
},
1465
1811
{
1466
1812
"description": "Enables the set_cursor_icon command without any pre-configured scope.",
1467
1813
"type": "string",
1468
-
"const": "core:window:allow-set-cursor-icon"
1814
+
"const": "core:window:allow-set-cursor-icon",
1815
+
"markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope."
1469
1816
},
1470
1817
{
1471
1818
"description": "Enables the set_cursor_position command without any pre-configured scope.",
1472
1819
"type": "string",
1473
-
"const": "core:window:allow-set-cursor-position"
1820
+
"const": "core:window:allow-set-cursor-position",
1821
+
"markdownDescription": "Enables the set_cursor_position command without any pre-configured scope."
1474
1822
},
1475
1823
{
1476
1824
"description": "Enables the set_cursor_visible command without any pre-configured scope.",
1477
1825
"type": "string",
1478
-
"const": "core:window:allow-set-cursor-visible"
1826
+
"const": "core:window:allow-set-cursor-visible",
1827
+
"markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope."
1479
1828
},
1480
1829
{
1481
1830
"description": "Enables the set_decorations command without any pre-configured scope.",
1482
1831
"type": "string",
1483
-
"const": "core:window:allow-set-decorations"
1832
+
"const": "core:window:allow-set-decorations",
1833
+
"markdownDescription": "Enables the set_decorations command without any pre-configured scope."
1484
1834
},
1485
1835
{
1486
1836
"description": "Enables the set_effects command without any pre-configured scope.",
1487
1837
"type": "string",
1488
-
"const": "core:window:allow-set-effects"
1838
+
"const": "core:window:allow-set-effects",
1839
+
"markdownDescription": "Enables the set_effects command without any pre-configured scope."
1489
1840
},
1490
1841
{
1491
1842
"description": "Enables the set_enabled command without any pre-configured scope.",
1492
1843
"type": "string",
1493
-
"const": "core:window:allow-set-enabled"
1844
+
"const": "core:window:allow-set-enabled",
1845
+
"markdownDescription": "Enables the set_enabled command without any pre-configured scope."
1494
1846
},
1495
1847
{
1496
1848
"description": "Enables the set_focus command without any pre-configured scope.",
1497
1849
"type": "string",
1498
-
"const": "core:window:allow-set-focus"
1850
+
"const": "core:window:allow-set-focus",
1851
+
"markdownDescription": "Enables the set_focus command without any pre-configured scope."
1852
+
},
1853
+
{
1854
+
"description": "Enables the set_focusable command without any pre-configured scope.",
1855
+
"type": "string",
1856
+
"const": "core:window:allow-set-focusable",
1857
+
"markdownDescription": "Enables the set_focusable command without any pre-configured scope."
1499
1858
},
1500
1859
{
1501
1860
"description": "Enables the set_fullscreen command without any pre-configured scope.",
1502
1861
"type": "string",
1503
-
"const": "core:window:allow-set-fullscreen"
1862
+
"const": "core:window:allow-set-fullscreen",
1863
+
"markdownDescription": "Enables the set_fullscreen command without any pre-configured scope."
1504
1864
},
1505
1865
{
1506
1866
"description": "Enables the set_icon command without any pre-configured scope.",
1507
1867
"type": "string",
1508
-
"const": "core:window:allow-set-icon"
1868
+
"const": "core:window:allow-set-icon",
1869
+
"markdownDescription": "Enables the set_icon command without any pre-configured scope."
1509
1870
},
1510
1871
{
1511
1872
"description": "Enables the set_ignore_cursor_events command without any pre-configured scope.",
1512
1873
"type": "string",
1513
-
"const": "core:window:allow-set-ignore-cursor-events"
1874
+
"const": "core:window:allow-set-ignore-cursor-events",
1875
+
"markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope."
1514
1876
},
1515
1877
{
1516
1878
"description": "Enables the set_max_size command without any pre-configured scope.",
1517
1879
"type": "string",
1518
-
"const": "core:window:allow-set-max-size"
1880
+
"const": "core:window:allow-set-max-size",
1881
+
"markdownDescription": "Enables the set_max_size command without any pre-configured scope."
1519
1882
},
1520
1883
{
1521
1884
"description": "Enables the set_maximizable command without any pre-configured scope.",
1522
1885
"type": "string",
1523
-
"const": "core:window:allow-set-maximizable"
1886
+
"const": "core:window:allow-set-maximizable",
1887
+
"markdownDescription": "Enables the set_maximizable command without any pre-configured scope."
1524
1888
},
1525
1889
{
1526
1890
"description": "Enables the set_min_size command without any pre-configured scope.",
1527
1891
"type": "string",
1528
-
"const": "core:window:allow-set-min-size"
1892
+
"const": "core:window:allow-set-min-size",
1893
+
"markdownDescription": "Enables the set_min_size command without any pre-configured scope."
1529
1894
},
1530
1895
{
1531
1896
"description": "Enables the set_minimizable command without any pre-configured scope.",
1532
1897
"type": "string",
1533
-
"const": "core:window:allow-set-minimizable"
1898
+
"const": "core:window:allow-set-minimizable",
1899
+
"markdownDescription": "Enables the set_minimizable command without any pre-configured scope."
1900
+
},
1901
+
{
1902
+
"description": "Enables the set_overlay_icon command without any pre-configured scope.",
1903
+
"type": "string",
1904
+
"const": "core:window:allow-set-overlay-icon",
1905
+
"markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope."
1534
1906
},
1535
1907
{
1536
1908
"description": "Enables the set_position command without any pre-configured scope.",
1537
1909
"type": "string",
1538
-
"const": "core:window:allow-set-position"
1910
+
"const": "core:window:allow-set-position",
1911
+
"markdownDescription": "Enables the set_position command without any pre-configured scope."
1539
1912
},
1540
1913
{
1541
1914
"description": "Enables the set_progress_bar command without any pre-configured scope.",
1542
1915
"type": "string",
1543
-
"const": "core:window:allow-set-progress-bar"
1916
+
"const": "core:window:allow-set-progress-bar",
1917
+
"markdownDescription": "Enables the set_progress_bar command without any pre-configured scope."
1544
1918
},
1545
1919
{
1546
1920
"description": "Enables the set_resizable command without any pre-configured scope.",
1547
1921
"type": "string",
1548
-
"const": "core:window:allow-set-resizable"
1922
+
"const": "core:window:allow-set-resizable",
1923
+
"markdownDescription": "Enables the set_resizable command without any pre-configured scope."
1549
1924
},
1550
1925
{
1551
1926
"description": "Enables the set_shadow command without any pre-configured scope.",
1552
1927
"type": "string",
1553
-
"const": "core:window:allow-set-shadow"
1928
+
"const": "core:window:allow-set-shadow",
1929
+
"markdownDescription": "Enables the set_shadow command without any pre-configured scope."
1930
+
},
1931
+
{
1932
+
"description": "Enables the set_simple_fullscreen command without any pre-configured scope.",
1933
+
"type": "string",
1934
+
"const": "core:window:allow-set-simple-fullscreen",
1935
+
"markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope."
1554
1936
},
1555
1937
{
1556
1938
"description": "Enables the set_size command without any pre-configured scope.",
1557
1939
"type": "string",
1558
-
"const": "core:window:allow-set-size"
1940
+
"const": "core:window:allow-set-size",
1941
+
"markdownDescription": "Enables the set_size command without any pre-configured scope."
1559
1942
},
1560
1943
{
1561
1944
"description": "Enables the set_size_constraints command without any pre-configured scope.",
1562
1945
"type": "string",
1563
-
"const": "core:window:allow-set-size-constraints"
1946
+
"const": "core:window:allow-set-size-constraints",
1947
+
"markdownDescription": "Enables the set_size_constraints command without any pre-configured scope."
1564
1948
},
1565
1949
{
1566
1950
"description": "Enables the set_skip_taskbar command without any pre-configured scope.",
1567
1951
"type": "string",
1568
-
"const": "core:window:allow-set-skip-taskbar"
1952
+
"const": "core:window:allow-set-skip-taskbar",
1953
+
"markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope."
1569
1954
},
1570
1955
{
1571
1956
"description": "Enables the set_theme command without any pre-configured scope.",
1572
1957
"type": "string",
1573
-
"const": "core:window:allow-set-theme"
1958
+
"const": "core:window:allow-set-theme",
1959
+
"markdownDescription": "Enables the set_theme command without any pre-configured scope."
1574
1960
},
1575
1961
{
1576
1962
"description": "Enables the set_title command without any pre-configured scope.",
1577
1963
"type": "string",
1578
-
"const": "core:window:allow-set-title"
1964
+
"const": "core:window:allow-set-title",
1965
+
"markdownDescription": "Enables the set_title command without any pre-configured scope."
1579
1966
},
1580
1967
{
1581
1968
"description": "Enables the set_title_bar_style command without any pre-configured scope.",
1582
1969
"type": "string",
1583
-
"const": "core:window:allow-set-title-bar-style"
1970
+
"const": "core:window:allow-set-title-bar-style",
1971
+
"markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope."
1584
1972
},
1585
1973
{
1586
1974
"description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.",
1587
1975
"type": "string",
1588
-
"const": "core:window:allow-set-visible-on-all-workspaces"
1976
+
"const": "core:window:allow-set-visible-on-all-workspaces",
1977
+
"markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope."
1589
1978
},
1590
1979
{
1591
1980
"description": "Enables the show command without any pre-configured scope.",
1592
1981
"type": "string",
1593
-
"const": "core:window:allow-show"
1982
+
"const": "core:window:allow-show",
1983
+
"markdownDescription": "Enables the show command without any pre-configured scope."
1594
1984
},
1595
1985
{
1596
1986
"description": "Enables the start_dragging command without any pre-configured scope.",
1597
1987
"type": "string",
1598
-
"const": "core:window:allow-start-dragging"
1988
+
"const": "core:window:allow-start-dragging",
1989
+
"markdownDescription": "Enables the start_dragging command without any pre-configured scope."
1599
1990
},
1600
1991
{
1601
1992
"description": "Enables the start_resize_dragging command without any pre-configured scope.",
1602
1993
"type": "string",
1603
-
"const": "core:window:allow-start-resize-dragging"
1994
+
"const": "core:window:allow-start-resize-dragging",
1995
+
"markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope."
1604
1996
},
1605
1997
{
1606
1998
"description": "Enables the theme command without any pre-configured scope.",
1607
1999
"type": "string",
1608
-
"const": "core:window:allow-theme"
2000
+
"const": "core:window:allow-theme",
2001
+
"markdownDescription": "Enables the theme command without any pre-configured scope."
1609
2002
},
1610
2003
{
1611
2004
"description": "Enables the title command without any pre-configured scope.",
1612
2005
"type": "string",
1613
-
"const": "core:window:allow-title"
2006
+
"const": "core:window:allow-title",
2007
+
"markdownDescription": "Enables the title command without any pre-configured scope."
1614
2008
},
1615
2009
{
1616
2010
"description": "Enables the toggle_maximize command without any pre-configured scope.",
1617
2011
"type": "string",
1618
-
"const": "core:window:allow-toggle-maximize"
2012
+
"const": "core:window:allow-toggle-maximize",
2013
+
"markdownDescription": "Enables the toggle_maximize command without any pre-configured scope."
1619
2014
},
1620
2015
{
1621
2016
"description": "Enables the unmaximize command without any pre-configured scope.",
1622
2017
"type": "string",
1623
-
"const": "core:window:allow-unmaximize"
2018
+
"const": "core:window:allow-unmaximize",
2019
+
"markdownDescription": "Enables the unmaximize command without any pre-configured scope."
1624
2020
},
1625
2021
{
1626
2022
"description": "Enables the unminimize command without any pre-configured scope.",
1627
2023
"type": "string",
1628
-
"const": "core:window:allow-unminimize"
2024
+
"const": "core:window:allow-unminimize",
2025
+
"markdownDescription": "Enables the unminimize command without any pre-configured scope."
1629
2026
},
1630
2027
{
1631
2028
"description": "Denies the available_monitors command without any pre-configured scope.",
1632
2029
"type": "string",
1633
-
"const": "core:window:deny-available-monitors"
2030
+
"const": "core:window:deny-available-monitors",
2031
+
"markdownDescription": "Denies the available_monitors command without any pre-configured scope."
1634
2032
},
1635
2033
{
1636
2034
"description": "Denies the center command without any pre-configured scope.",
1637
2035
"type": "string",
1638
-
"const": "core:window:deny-center"
2036
+
"const": "core:window:deny-center",
2037
+
"markdownDescription": "Denies the center command without any pre-configured scope."
1639
2038
},
1640
2039
{
1641
2040
"description": "Denies the close command without any pre-configured scope.",
1642
2041
"type": "string",
1643
-
"const": "core:window:deny-close"
2042
+
"const": "core:window:deny-close",
2043
+
"markdownDescription": "Denies the close command without any pre-configured scope."
1644
2044
},
1645
2045
{
1646
2046
"description": "Denies the create command without any pre-configured scope.",
1647
2047
"type": "string",
1648
-
"const": "core:window:deny-create"
2048
+
"const": "core:window:deny-create",
2049
+
"markdownDescription": "Denies the create command without any pre-configured scope."
1649
2050
},
1650
2051
{
1651
2052
"description": "Denies the current_monitor command without any pre-configured scope.",
1652
2053
"type": "string",
1653
-
"const": "core:window:deny-current-monitor"
2054
+
"const": "core:window:deny-current-monitor",
2055
+
"markdownDescription": "Denies the current_monitor command without any pre-configured scope."
1654
2056
},
1655
2057
{
1656
2058
"description": "Denies the cursor_position command without any pre-configured scope.",
1657
2059
"type": "string",
1658
-
"const": "core:window:deny-cursor-position"
2060
+
"const": "core:window:deny-cursor-position",
2061
+
"markdownDescription": "Denies the cursor_position command without any pre-configured scope."
1659
2062
},
1660
2063
{
1661
2064
"description": "Denies the destroy command without any pre-configured scope.",
1662
2065
"type": "string",
1663
-
"const": "core:window:deny-destroy"
2066
+
"const": "core:window:deny-destroy",
2067
+
"markdownDescription": "Denies the destroy command without any pre-configured scope."
1664
2068
},
1665
2069
{
1666
2070
"description": "Denies the get_all_windows command without any pre-configured scope.",
1667
2071
"type": "string",
1668
-
"const": "core:window:deny-get-all-windows"
2072
+
"const": "core:window:deny-get-all-windows",
2073
+
"markdownDescription": "Denies the get_all_windows command without any pre-configured scope."
1669
2074
},
1670
2075
{
1671
2076
"description": "Denies the hide command without any pre-configured scope.",
1672
2077
"type": "string",
1673
-
"const": "core:window:deny-hide"
2078
+
"const": "core:window:deny-hide",
2079
+
"markdownDescription": "Denies the hide command without any pre-configured scope."
1674
2080
},
1675
2081
{
1676
2082
"description": "Denies the inner_position command without any pre-configured scope.",
1677
2083
"type": "string",
1678
-
"const": "core:window:deny-inner-position"
2084
+
"const": "core:window:deny-inner-position",
2085
+
"markdownDescription": "Denies the inner_position command without any pre-configured scope."
1679
2086
},
1680
2087
{
1681
2088
"description": "Denies the inner_size command without any pre-configured scope.",
1682
2089
"type": "string",
1683
-
"const": "core:window:deny-inner-size"
2090
+
"const": "core:window:deny-inner-size",
2091
+
"markdownDescription": "Denies the inner_size command without any pre-configured scope."
1684
2092
},
1685
2093
{
1686
2094
"description": "Denies the internal_toggle_maximize command without any pre-configured scope.",
1687
2095
"type": "string",
1688
-
"const": "core:window:deny-internal-toggle-maximize"
2096
+
"const": "core:window:deny-internal-toggle-maximize",
2097
+
"markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope."
2098
+
},
2099
+
{
2100
+
"description": "Denies the is_always_on_top command without any pre-configured scope.",
2101
+
"type": "string",
2102
+
"const": "core:window:deny-is-always-on-top",
2103
+
"markdownDescription": "Denies the is_always_on_top command without any pre-configured scope."
1689
2104
},
1690
2105
{
1691
2106
"description": "Denies the is_closable command without any pre-configured scope.",
1692
2107
"type": "string",
1693
-
"const": "core:window:deny-is-closable"
2108
+
"const": "core:window:deny-is-closable",
2109
+
"markdownDescription": "Denies the is_closable command without any pre-configured scope."
1694
2110
},
1695
2111
{
1696
2112
"description": "Denies the is_decorated command without any pre-configured scope.",
1697
2113
"type": "string",
1698
-
"const": "core:window:deny-is-decorated"
2114
+
"const": "core:window:deny-is-decorated",
2115
+
"markdownDescription": "Denies the is_decorated command without any pre-configured scope."
1699
2116
},
1700
2117
{
1701
2118
"description": "Denies the is_enabled command without any pre-configured scope.",
1702
2119
"type": "string",
1703
-
"const": "core:window:deny-is-enabled"
2120
+
"const": "core:window:deny-is-enabled",
2121
+
"markdownDescription": "Denies the is_enabled command without any pre-configured scope."
1704
2122
},
1705
2123
{
1706
2124
"description": "Denies the is_focused command without any pre-configured scope.",
1707
2125
"type": "string",
1708
-
"const": "core:window:deny-is-focused"
2126
+
"const": "core:window:deny-is-focused",
2127
+
"markdownDescription": "Denies the is_focused command without any pre-configured scope."
1709
2128
},
1710
2129
{
1711
2130
"description": "Denies the is_fullscreen command without any pre-configured scope.",
1712
2131
"type": "string",
1713
-
"const": "core:window:deny-is-fullscreen"
2132
+
"const": "core:window:deny-is-fullscreen",
2133
+
"markdownDescription": "Denies the is_fullscreen command without any pre-configured scope."
1714
2134
},
1715
2135
{
1716
2136
"description": "Denies the is_maximizable command without any pre-configured scope.",
1717
2137
"type": "string",
1718
-
"const": "core:window:deny-is-maximizable"
2138
+
"const": "core:window:deny-is-maximizable",
2139
+
"markdownDescription": "Denies the is_maximizable command without any pre-configured scope."
1719
2140
},
1720
2141
{
1721
2142
"description": "Denies the is_maximized command without any pre-configured scope.",
1722
2143
"type": "string",
1723
-
"const": "core:window:deny-is-maximized"
2144
+
"const": "core:window:deny-is-maximized",
2145
+
"markdownDescription": "Denies the is_maximized command without any pre-configured scope."
1724
2146
},
1725
2147
{
1726
2148
"description": "Denies the is_minimizable command without any pre-configured scope.",
1727
2149
"type": "string",
1728
-
"const": "core:window:deny-is-minimizable"
2150
+
"const": "core:window:deny-is-minimizable",
2151
+
"markdownDescription": "Denies the is_minimizable command without any pre-configured scope."
1729
2152
},
1730
2153
{
1731
2154
"description": "Denies the is_minimized command without any pre-configured scope.",
1732
2155
"type": "string",
1733
-
"const": "core:window:deny-is-minimized"
2156
+
"const": "core:window:deny-is-minimized",
2157
+
"markdownDescription": "Denies the is_minimized command without any pre-configured scope."
1734
2158
},
1735
2159
{
1736
2160
"description": "Denies the is_resizable command without any pre-configured scope.",
1737
2161
"type": "string",
1738
-
"const": "core:window:deny-is-resizable"
2162
+
"const": "core:window:deny-is-resizable",
2163
+
"markdownDescription": "Denies the is_resizable command without any pre-configured scope."
1739
2164
},
1740
2165
{
1741
2166
"description": "Denies the is_visible command without any pre-configured scope.",
1742
2167
"type": "string",
1743
-
"const": "core:window:deny-is-visible"
2168
+
"const": "core:window:deny-is-visible",
2169
+
"markdownDescription": "Denies the is_visible command without any pre-configured scope."
1744
2170
},
1745
2171
{
1746
2172
"description": "Denies the maximize command without any pre-configured scope.",
1747
2173
"type": "string",
1748
-
"const": "core:window:deny-maximize"
2174
+
"const": "core:window:deny-maximize",
2175
+
"markdownDescription": "Denies the maximize command without any pre-configured scope."
1749
2176
},
1750
2177
{
1751
2178
"description": "Denies the minimize command without any pre-configured scope.",
1752
2179
"type": "string",
1753
-
"const": "core:window:deny-minimize"
2180
+
"const": "core:window:deny-minimize",
2181
+
"markdownDescription": "Denies the minimize command without any pre-configured scope."
1754
2182
},
1755
2183
{
1756
2184
"description": "Denies the monitor_from_point command without any pre-configured scope.",
1757
2185
"type": "string",
1758
-
"const": "core:window:deny-monitor-from-point"
2186
+
"const": "core:window:deny-monitor-from-point",
2187
+
"markdownDescription": "Denies the monitor_from_point command without any pre-configured scope."
1759
2188
},
1760
2189
{
1761
2190
"description": "Denies the outer_position command without any pre-configured scope.",
1762
2191
"type": "string",
1763
-
"const": "core:window:deny-outer-position"
2192
+
"const": "core:window:deny-outer-position",
2193
+
"markdownDescription": "Denies the outer_position command without any pre-configured scope."
1764
2194
},
1765
2195
{
1766
2196
"description": "Denies the outer_size command without any pre-configured scope.",
1767
2197
"type": "string",
1768
-
"const": "core:window:deny-outer-size"
2198
+
"const": "core:window:deny-outer-size",
2199
+
"markdownDescription": "Denies the outer_size command without any pre-configured scope."
1769
2200
},
1770
2201
{
1771
2202
"description": "Denies the primary_monitor command without any pre-configured scope.",
1772
2203
"type": "string",
1773
-
"const": "core:window:deny-primary-monitor"
2204
+
"const": "core:window:deny-primary-monitor",
2205
+
"markdownDescription": "Denies the primary_monitor command without any pre-configured scope."
1774
2206
},
1775
2207
{
1776
2208
"description": "Denies the request_user_attention command without any pre-configured scope.",
1777
2209
"type": "string",
1778
-
"const": "core:window:deny-request-user-attention"
2210
+
"const": "core:window:deny-request-user-attention",
2211
+
"markdownDescription": "Denies the request_user_attention command without any pre-configured scope."
1779
2212
},
1780
2213
{
1781
2214
"description": "Denies the scale_factor command without any pre-configured scope.",
1782
2215
"type": "string",
1783
-
"const": "core:window:deny-scale-factor"
2216
+
"const": "core:window:deny-scale-factor",
2217
+
"markdownDescription": "Denies the scale_factor command without any pre-configured scope."
1784
2218
},
1785
2219
{
1786
2220
"description": "Denies the set_always_on_bottom command without any pre-configured scope.",
1787
2221
"type": "string",
1788
-
"const": "core:window:deny-set-always-on-bottom"
2222
+
"const": "core:window:deny-set-always-on-bottom",
2223
+
"markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope."
1789
2224
},
1790
2225
{
1791
2226
"description": "Denies the set_always_on_top command without any pre-configured scope.",
1792
2227
"type": "string",
1793
-
"const": "core:window:deny-set-always-on-top"
2228
+
"const": "core:window:deny-set-always-on-top",
2229
+
"markdownDescription": "Denies the set_always_on_top command without any pre-configured scope."
2230
+
},
2231
+
{
2232
+
"description": "Denies the set_background_color command without any pre-configured scope.",
2233
+
"type": "string",
2234
+
"const": "core:window:deny-set-background-color",
2235
+
"markdownDescription": "Denies the set_background_color command without any pre-configured scope."
2236
+
},
2237
+
{
2238
+
"description": "Denies the set_badge_count command without any pre-configured scope.",
2239
+
"type": "string",
2240
+
"const": "core:window:deny-set-badge-count",
2241
+
"markdownDescription": "Denies the set_badge_count command without any pre-configured scope."
2242
+
},
2243
+
{
2244
+
"description": "Denies the set_badge_label command without any pre-configured scope.",
2245
+
"type": "string",
2246
+
"const": "core:window:deny-set-badge-label",
2247
+
"markdownDescription": "Denies the set_badge_label command without any pre-configured scope."
1794
2248
},
1795
2249
{
1796
2250
"description": "Denies the set_closable command without any pre-configured scope.",
1797
2251
"type": "string",
1798
-
"const": "core:window:deny-set-closable"
2252
+
"const": "core:window:deny-set-closable",
2253
+
"markdownDescription": "Denies the set_closable command without any pre-configured scope."
1799
2254
},
1800
2255
{
1801
2256
"description": "Denies the set_content_protected command without any pre-configured scope.",
1802
2257
"type": "string",
1803
-
"const": "core:window:deny-set-content-protected"
2258
+
"const": "core:window:deny-set-content-protected",
2259
+
"markdownDescription": "Denies the set_content_protected command without any pre-configured scope."
1804
2260
},
1805
2261
{
1806
2262
"description": "Denies the set_cursor_grab command without any pre-configured scope.",
1807
2263
"type": "string",
1808
-
"const": "core:window:deny-set-cursor-grab"
2264
+
"const": "core:window:deny-set-cursor-grab",
2265
+
"markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope."
1809
2266
},
1810
2267
{
1811
2268
"description": "Denies the set_cursor_icon command without any pre-configured scope.",
1812
2269
"type": "string",
1813
-
"const": "core:window:deny-set-cursor-icon"
2270
+
"const": "core:window:deny-set-cursor-icon",
2271
+
"markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope."
1814
2272
},
1815
2273
{
1816
2274
"description": "Denies the set_cursor_position command without any pre-configured scope.",
1817
2275
"type": "string",
1818
-
"const": "core:window:deny-set-cursor-position"
2276
+
"const": "core:window:deny-set-cursor-position",
2277
+
"markdownDescription": "Denies the set_cursor_position command without any pre-configured scope."
1819
2278
},
1820
2279
{
1821
2280
"description": "Denies the set_cursor_visible command without any pre-configured scope.",
1822
2281
"type": "string",
1823
-
"const": "core:window:deny-set-cursor-visible"
2282
+
"const": "core:window:deny-set-cursor-visible",
2283
+
"markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope."
1824
2284
},
1825
2285
{
1826
2286
"description": "Denies the set_decorations command without any pre-configured scope.",
1827
2287
"type": "string",
1828
-
"const": "core:window:deny-set-decorations"
2288
+
"const": "core:window:deny-set-decorations",
2289
+
"markdownDescription": "Denies the set_decorations command without any pre-configured scope."
1829
2290
},
1830
2291
{
1831
2292
"description": "Denies the set_effects command without any pre-configured scope.",
1832
2293
"type": "string",
1833
-
"const": "core:window:deny-set-effects"
2294
+
"const": "core:window:deny-set-effects",
2295
+
"markdownDescription": "Denies the set_effects command without any pre-configured scope."
1834
2296
},
1835
2297
{
1836
2298
"description": "Denies the set_enabled command without any pre-configured scope.",
1837
2299
"type": "string",
1838
-
"const": "core:window:deny-set-enabled"
2300
+
"const": "core:window:deny-set-enabled",
2301
+
"markdownDescription": "Denies the set_enabled command without any pre-configured scope."
1839
2302
},
1840
2303
{
1841
2304
"description": "Denies the set_focus command without any pre-configured scope.",
1842
2305
"type": "string",
1843
-
"const": "core:window:deny-set-focus"
2306
+
"const": "core:window:deny-set-focus",
2307
+
"markdownDescription": "Denies the set_focus command without any pre-configured scope."
2308
+
},
2309
+
{
2310
+
"description": "Denies the set_focusable command without any pre-configured scope.",
2311
+
"type": "string",
2312
+
"const": "core:window:deny-set-focusable",
2313
+
"markdownDescription": "Denies the set_focusable command without any pre-configured scope."
1844
2314
},
1845
2315
{
1846
2316
"description": "Denies the set_fullscreen command without any pre-configured scope.",
1847
2317
"type": "string",
1848
-
"const": "core:window:deny-set-fullscreen"
2318
+
"const": "core:window:deny-set-fullscreen",
2319
+
"markdownDescription": "Denies the set_fullscreen command without any pre-configured scope."
1849
2320
},
1850
2321
{
1851
2322
"description": "Denies the set_icon command without any pre-configured scope.",
1852
2323
"type": "string",
1853
-
"const": "core:window:deny-set-icon"
2324
+
"const": "core:window:deny-set-icon",
2325
+
"markdownDescription": "Denies the set_icon command without any pre-configured scope."
1854
2326
},
1855
2327
{
1856
2328
"description": "Denies the set_ignore_cursor_events command without any pre-configured scope.",
1857
2329
"type": "string",
1858
-
"const": "core:window:deny-set-ignore-cursor-events"
2330
+
"const": "core:window:deny-set-ignore-cursor-events",
2331
+
"markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope."
1859
2332
},
1860
2333
{
1861
2334
"description": "Denies the set_max_size command without any pre-configured scope.",
1862
2335
"type": "string",
1863
-
"const": "core:window:deny-set-max-size"
2336
+
"const": "core:window:deny-set-max-size",
2337
+
"markdownDescription": "Denies the set_max_size command without any pre-configured scope."
1864
2338
},
1865
2339
{
1866
2340
"description": "Denies the set_maximizable command without any pre-configured scope.",
1867
2341
"type": "string",
1868
-
"const": "core:window:deny-set-maximizable"
2342
+
"const": "core:window:deny-set-maximizable",
2343
+
"markdownDescription": "Denies the set_maximizable command without any pre-configured scope."
1869
2344
},
1870
2345
{
1871
2346
"description": "Denies the set_min_size command without any pre-configured scope.",
1872
2347
"type": "string",
1873
-
"const": "core:window:deny-set-min-size"
2348
+
"const": "core:window:deny-set-min-size",
2349
+
"markdownDescription": "Denies the set_min_size command without any pre-configured scope."
1874
2350
},
1875
2351
{
1876
2352
"description": "Denies the set_minimizable command without any pre-configured scope.",
1877
2353
"type": "string",
1878
-
"const": "core:window:deny-set-minimizable"
2354
+
"const": "core:window:deny-set-minimizable",
2355
+
"markdownDescription": "Denies the set_minimizable command without any pre-configured scope."
2356
+
},
2357
+
{
2358
+
"description": "Denies the set_overlay_icon command without any pre-configured scope.",
2359
+
"type": "string",
2360
+
"const": "core:window:deny-set-overlay-icon",
2361
+
"markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope."
1879
2362
},
1880
2363
{
1881
2364
"description": "Denies the set_position command without any pre-configured scope.",
1882
2365
"type": "string",
1883
-
"const": "core:window:deny-set-position"
2366
+
"const": "core:window:deny-set-position",
2367
+
"markdownDescription": "Denies the set_position command without any pre-configured scope."
1884
2368
},
1885
2369
{
1886
2370
"description": "Denies the set_progress_bar command without any pre-configured scope.",
1887
2371
"type": "string",
1888
-
"const": "core:window:deny-set-progress-bar"
2372
+
"const": "core:window:deny-set-progress-bar",
2373
+
"markdownDescription": "Denies the set_progress_bar command without any pre-configured scope."
1889
2374
},
1890
2375
{
1891
2376
"description": "Denies the set_resizable command without any pre-configured scope.",
1892
2377
"type": "string",
1893
-
"const": "core:window:deny-set-resizable"
2378
+
"const": "core:window:deny-set-resizable",
2379
+
"markdownDescription": "Denies the set_resizable command without any pre-configured scope."
1894
2380
},
1895
2381
{
1896
2382
"description": "Denies the set_shadow command without any pre-configured scope.",
1897
2383
"type": "string",
1898
-
"const": "core:window:deny-set-shadow"
2384
+
"const": "core:window:deny-set-shadow",
2385
+
"markdownDescription": "Denies the set_shadow command without any pre-configured scope."
2386
+
},
2387
+
{
2388
+
"description": "Denies the set_simple_fullscreen command without any pre-configured scope.",
2389
+
"type": "string",
2390
+
"const": "core:window:deny-set-simple-fullscreen",
2391
+
"markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope."
1899
2392
},
1900
2393
{
1901
2394
"description": "Denies the set_size command without any pre-configured scope.",
1902
2395
"type": "string",
1903
-
"const": "core:window:deny-set-size"
2396
+
"const": "core:window:deny-set-size",
2397
+
"markdownDescription": "Denies the set_size command without any pre-configured scope."
1904
2398
},
1905
2399
{
1906
2400
"description": "Denies the set_size_constraints command without any pre-configured scope.",
1907
2401
"type": "string",
1908
-
"const": "core:window:deny-set-size-constraints"
2402
+
"const": "core:window:deny-set-size-constraints",
2403
+
"markdownDescription": "Denies the set_size_constraints command without any pre-configured scope."
1909
2404
},
1910
2405
{
1911
2406
"description": "Denies the set_skip_taskbar command without any pre-configured scope.",
1912
2407
"type": "string",
1913
-
"const": "core:window:deny-set-skip-taskbar"
2408
+
"const": "core:window:deny-set-skip-taskbar",
2409
+
"markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope."
1914
2410
},
1915
2411
{
1916
2412
"description": "Denies the set_theme command without any pre-configured scope.",
1917
2413
"type": "string",
1918
-
"const": "core:window:deny-set-theme"
2414
+
"const": "core:window:deny-set-theme",
2415
+
"markdownDescription": "Denies the set_theme command without any pre-configured scope."
1919
2416
},
1920
2417
{
1921
2418
"description": "Denies the set_title command without any pre-configured scope.",
1922
2419
"type": "string",
1923
-
"const": "core:window:deny-set-title"
2420
+
"const": "core:window:deny-set-title",
2421
+
"markdownDescription": "Denies the set_title command without any pre-configured scope."
1924
2422
},
1925
2423
{
1926
2424
"description": "Denies the set_title_bar_style command without any pre-configured scope.",
1927
2425
"type": "string",
1928
-
"const": "core:window:deny-set-title-bar-style"
2426
+
"const": "core:window:deny-set-title-bar-style",
2427
+
"markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope."
1929
2428
},
1930
2429
{
1931
2430
"description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.",
1932
2431
"type": "string",
1933
-
"const": "core:window:deny-set-visible-on-all-workspaces"
2432
+
"const": "core:window:deny-set-visible-on-all-workspaces",
2433
+
"markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope."
1934
2434
},
1935
2435
{
1936
2436
"description": "Denies the show command without any pre-configured scope.",
1937
2437
"type": "string",
1938
-
"const": "core:window:deny-show"
2438
+
"const": "core:window:deny-show",
2439
+
"markdownDescription": "Denies the show command without any pre-configured scope."
1939
2440
},
1940
2441
{
1941
2442
"description": "Denies the start_dragging command without any pre-configured scope.",
1942
2443
"type": "string",
1943
-
"const": "core:window:deny-start-dragging"
2444
+
"const": "core:window:deny-start-dragging",
2445
+
"markdownDescription": "Denies the start_dragging command without any pre-configured scope."
1944
2446
},
1945
2447
{
1946
2448
"description": "Denies the start_resize_dragging command without any pre-configured scope.",
1947
2449
"type": "string",
1948
-
"const": "core:window:deny-start-resize-dragging"
2450
+
"const": "core:window:deny-start-resize-dragging",
2451
+
"markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope."
1949
2452
},
1950
2453
{
1951
2454
"description": "Denies the theme command without any pre-configured scope.",
1952
2455
"type": "string",
1953
-
"const": "core:window:deny-theme"
2456
+
"const": "core:window:deny-theme",
2457
+
"markdownDescription": "Denies the theme command without any pre-configured scope."
1954
2458
},
1955
2459
{
1956
2460
"description": "Denies the title command without any pre-configured scope.",
1957
2461
"type": "string",
1958
-
"const": "core:window:deny-title"
2462
+
"const": "core:window:deny-title",
2463
+
"markdownDescription": "Denies the title command without any pre-configured scope."
1959
2464
},
1960
2465
{
1961
2466
"description": "Denies the toggle_maximize command without any pre-configured scope.",
1962
2467
"type": "string",
1963
-
"const": "core:window:deny-toggle-maximize"
2468
+
"const": "core:window:deny-toggle-maximize",
2469
+
"markdownDescription": "Denies the toggle_maximize command without any pre-configured scope."
1964
2470
},
1965
2471
{
1966
2472
"description": "Denies the unmaximize command without any pre-configured scope.",
1967
2473
"type": "string",
1968
-
"const": "core:window:deny-unmaximize"
2474
+
"const": "core:window:deny-unmaximize",
2475
+
"markdownDescription": "Denies the unmaximize command without any pre-configured scope."
1969
2476
},
1970
2477
{
1971
2478
"description": "Denies the unminimize command without any pre-configured scope.",
1972
2479
"type": "string",
1973
-
"const": "core:window:deny-unminimize"
1974
-
},
1975
-
{
1976
-
"description": "Allows reading the opened deep link via the get_current command",
1977
-
"type": "string",
1978
-
"const": "deep-link:default"
1979
-
},
1980
-
{
1981
-
"description": "Enables the get_current command without any pre-configured scope.",
1982
-
"type": "string",
1983
-
"const": "deep-link:allow-get-current"
1984
-
},
1985
-
{
1986
-
"description": "Enables the is_registered command without any pre-configured scope.",
1987
-
"type": "string",
1988
-
"const": "deep-link:allow-is-registered"
1989
-
},
1990
-
{
1991
-
"description": "Enables the register command without any pre-configured scope.",
1992
-
"type": "string",
1993
-
"const": "deep-link:allow-register"
1994
-
},
1995
-
{
1996
-
"description": "Enables the unregister command without any pre-configured scope.",
1997
-
"type": "string",
1998
-
"const": "deep-link:allow-unregister"
1999
-
},
2000
-
{
2001
-
"description": "Denies the get_current command without any pre-configured scope.",
2002
-
"type": "string",
2003
-
"const": "deep-link:deny-get-current"
2004
-
},
2005
-
{
2006
-
"description": "Denies the is_registered command without any pre-configured scope.",
2007
-
"type": "string",
2008
-
"const": "deep-link:deny-is-registered"
2009
-
},
2010
-
{
2011
-
"description": "Denies the register command without any pre-configured scope.",
2012
-
"type": "string",
2013
-
"const": "deep-link:deny-register"
2014
-
},
2015
-
{
2016
-
"description": "Denies the unregister command without any pre-configured scope.",
2017
-
"type": "string",
2018
-
"const": "deep-link:deny-unregister"
2480
+
"const": "core:window:deny-unminimize",
2481
+
"markdownDescription": "Denies the unminimize command without any pre-configured scope."
2019
2482
},
2020
2483
{
2021
-
"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",
2484
+
"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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`",
2022
2485
"type": "string",
2023
-
"const": "http:default"
2486
+
"const": "http:default",
2487
+
"markdownDescription": "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\n#### This default permission set includes:\n\n- `allow-fetch`\n- `allow-fetch-cancel`\n- `allow-fetch-read-body`\n- `allow-fetch-send`"
2024
2488
},
2025
2489
{
2026
2490
"description": "Enables the fetch command without any pre-configured scope.",
2027
2491
"type": "string",
2028
-
"const": "http:allow-fetch"
2492
+
"const": "http:allow-fetch",
2493
+
"markdownDescription": "Enables the fetch command without any pre-configured scope."
2029
2494
},
2030
2495
{
2031
2496
"description": "Enables the fetch_cancel command without any pre-configured scope.",
2032
2497
"type": "string",
2033
-
"const": "http:allow-fetch-cancel"
2498
+
"const": "http:allow-fetch-cancel",
2499
+
"markdownDescription": "Enables the fetch_cancel command without any pre-configured scope."
2034
2500
},
2035
2501
{
2036
2502
"description": "Enables the fetch_read_body command without any pre-configured scope.",
2037
2503
"type": "string",
2038
-
"const": "http:allow-fetch-read-body"
2504
+
"const": "http:allow-fetch-read-body",
2505
+
"markdownDescription": "Enables the fetch_read_body command without any pre-configured scope."
2039
2506
},
2040
2507
{
2041
2508
"description": "Enables the fetch_send command without any pre-configured scope.",
2042
2509
"type": "string",
2043
-
"const": "http:allow-fetch-send"
2510
+
"const": "http:allow-fetch-send",
2511
+
"markdownDescription": "Enables the fetch_send command without any pre-configured scope."
2044
2512
},
2045
2513
{
2046
2514
"description": "Denies the fetch command without any pre-configured scope.",
2047
2515
"type": "string",
2048
-
"const": "http:deny-fetch"
2516
+
"const": "http:deny-fetch",
2517
+
"markdownDescription": "Denies the fetch command without any pre-configured scope."
2049
2518
},
2050
2519
{
2051
2520
"description": "Denies the fetch_cancel command without any pre-configured scope.",
2052
2521
"type": "string",
2053
-
"const": "http:deny-fetch-cancel"
2522
+
"const": "http:deny-fetch-cancel",
2523
+
"markdownDescription": "Denies the fetch_cancel command without any pre-configured scope."
2054
2524
},
2055
2525
{
2056
2526
"description": "Denies the fetch_read_body command without any pre-configured scope.",
2057
2527
"type": "string",
2058
-
"const": "http:deny-fetch-read-body"
2528
+
"const": "http:deny-fetch-read-body",
2529
+
"markdownDescription": "Denies the fetch_read_body command without any pre-configured scope."
2059
2530
},
2060
2531
{
2061
2532
"description": "Denies the fetch_send command without any pre-configured scope.",
2062
2533
"type": "string",
2063
-
"const": "http:deny-fetch-send"
2534
+
"const": "http:deny-fetch-send",
2535
+
"markdownDescription": "Denies the fetch_send command without any pre-configured scope."
2064
2536
},
2065
2537
{
2066
-
"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",
2538
+
"description": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`",
2067
2539
"type": "string",
2068
-
"const": "process:default"
2540
+
"const": "process:default",
2541
+
"markdownDescription": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`"
2069
2542
},
2070
2543
{
2071
2544
"description": "Enables the exit command without any pre-configured scope.",
2072
2545
"type": "string",
2073
-
"const": "process:allow-exit"
2546
+
"const": "process:allow-exit",
2547
+
"markdownDescription": "Enables the exit command without any pre-configured scope."
2074
2548
},
2075
2549
{
2076
2550
"description": "Enables the restart command without any pre-configured scope.",
2077
2551
"type": "string",
2078
-
"const": "process:allow-restart"
2552
+
"const": "process:allow-restart",
2553
+
"markdownDescription": "Enables the restart command without any pre-configured scope."
2079
2554
},
2080
2555
{
2081
2556
"description": "Denies the exit command without any pre-configured scope.",
2082
2557
"type": "string",
2083
-
"const": "process:deny-exit"
2558
+
"const": "process:deny-exit",
2559
+
"markdownDescription": "Denies the exit command without any pre-configured scope."
2084
2560
},
2085
2561
{
2086
2562
"description": "Denies the restart command without any pre-configured scope.",
2087
2563
"type": "string",
2088
-
"const": "process:deny-restart"
2564
+
"const": "process:deny-restart",
2565
+
"markdownDescription": "Denies the restart command without any pre-configured scope."
2089
2566
},
2090
2567
{
2091
-
"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",
2568
+
"description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`",
2092
2569
"type": "string",
2093
-
"const": "shell:default"
2570
+
"const": "shell:default",
2571
+
"markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`"
2094
2572
},
2095
2573
{
2096
2574
"description": "Enables the execute command without any pre-configured scope.",
2097
2575
"type": "string",
2098
-
"const": "shell:allow-execute"
2576
+
"const": "shell:allow-execute",
2577
+
"markdownDescription": "Enables the execute command without any pre-configured scope."
2099
2578
},
2100
2579
{
2101
2580
"description": "Enables the kill command without any pre-configured scope.",
2102
2581
"type": "string",
2103
-
"const": "shell:allow-kill"
2582
+
"const": "shell:allow-kill",
2583
+
"markdownDescription": "Enables the kill command without any pre-configured scope."
2104
2584
},
2105
2585
{
2106
2586
"description": "Enables the open command without any pre-configured scope.",
2107
2587
"type": "string",
2108
-
"const": "shell:allow-open"
2588
+
"const": "shell:allow-open",
2589
+
"markdownDescription": "Enables the open command without any pre-configured scope."
2109
2590
},
2110
2591
{
2111
2592
"description": "Enables the spawn command without any pre-configured scope.",
2112
2593
"type": "string",
2113
-
"const": "shell:allow-spawn"
2594
+
"const": "shell:allow-spawn",
2595
+
"markdownDescription": "Enables the spawn command without any pre-configured scope."
2114
2596
},
2115
2597
{
2116
2598
"description": "Enables the stdin_write command without any pre-configured scope.",
2117
2599
"type": "string",
2118
-
"const": "shell:allow-stdin-write"
2600
+
"const": "shell:allow-stdin-write",
2601
+
"markdownDescription": "Enables the stdin_write command without any pre-configured scope."
2119
2602
},
2120
2603
{
2121
2604
"description": "Denies the execute command without any pre-configured scope.",
2122
2605
"type": "string",
2123
-
"const": "shell:deny-execute"
2606
+
"const": "shell:deny-execute",
2607
+
"markdownDescription": "Denies the execute command without any pre-configured scope."
2124
2608
},
2125
2609
{
2126
2610
"description": "Denies the kill command without any pre-configured scope.",
2127
2611
"type": "string",
2128
-
"const": "shell:deny-kill"
2612
+
"const": "shell:deny-kill",
2613
+
"markdownDescription": "Denies the kill command without any pre-configured scope."
2129
2614
},
2130
2615
{
2131
2616
"description": "Denies the open command without any pre-configured scope.",
2132
2617
"type": "string",
2133
-
"const": "shell:deny-open"
2618
+
"const": "shell:deny-open",
2619
+
"markdownDescription": "Denies the open command without any pre-configured scope."
2134
2620
},
2135
2621
{
2136
2622
"description": "Denies the spawn command without any pre-configured scope.",
2137
2623
"type": "string",
2138
-
"const": "shell:deny-spawn"
2624
+
"const": "shell:deny-spawn",
2625
+
"markdownDescription": "Denies the spawn command without any pre-configured scope."
2139
2626
},
2140
2627
{
2141
2628
"description": "Denies the stdin_write command without any pre-configured scope.",
2142
2629
"type": "string",
2143
-
"const": "shell:deny-stdin-write"
2630
+
"const": "shell:deny-stdin-write",
2631
+
"markdownDescription": "Denies the stdin_write command without any pre-configured scope."
2144
2632
}
2145
2633
]
2146
2634
},
+17
-9
src-tauri/src/frontend_calls/change_final_path.rs
+17
-9
src-tauri/src/frontend_calls/change_final_path.rs
···
1
1
use std::fs;
2
2
3
-
#[tauri::command]
4
-
pub fn change_final_path(new_path: &str) {
5
-
let config_path = dirs::config_dir()
6
-
.unwrap()
7
-
.join("PhazeDev/VRChatPhotoManager/.photos_path");
3
+
use tauri::{Emitter, State, Window};
8
4
9
-
fs::write(&config_path, new_path.as_bytes()).unwrap();
5
+
use crate::util::cache::Cache;
10
6
7
+
#[tauri::command]
8
+
pub fn change_final_path(new_path: &str, window: Window, cache: State<Cache>) -> bool {
11
9
match fs::metadata(&new_path) {
12
-
Ok(_) => {}
10
+
Ok(_) => {
11
+
let config_path = dirs::config_dir()
12
+
.unwrap()
13
+
.join("PhazeDev/VRChatPhotoManager/.photos_path");
14
+
15
+
fs::write(&config_path, new_path.as_bytes()).unwrap();
16
+
cache.insert("photo-path".into(), new_path.to_owned());
17
+
18
+
true
19
+
}
13
20
Err(_) => {
14
-
fs::create_dir(&new_path).unwrap();
21
+
window.emit("vrcpm-error", "Error Changing Path: Path does not exist.").unwrap();
22
+
false
15
23
}
16
-
};
24
+
}
17
25
}
+9
-4
src-tauri/src/frontend_calls/close_splashscreen.rs
+9
-4
src-tauri/src/frontend_calls/close_splashscreen.rs
···
1
1
use std::env;
2
-
use tauri::Manager;
2
+
use tauri::{ Emitter, Manager, State };
3
+
4
+
use crate::frontend_calls::config::Config;
3
5
4
6
use super::config::get_config_value_string;
5
7
6
8
#[tauri::command]
7
-
pub fn close_splashscreen(window: tauri::Window) {
9
+
pub fn close_splashscreen( window: tauri::Window, config: State<Config> ) {
8
10
let args: Vec<String> = env::args().collect();
9
11
10
12
let mut show = true;
···
14
16
}
15
17
}
16
18
17
-
let value: String = match get_config_value_string("start-in-bg".to_owned()) { Some(val) => val, None => "false".to_owned() };
19
+
let value: String = match get_config_value_string("start-in-bg".to_owned(), config) { Some(val) => val, None => "false".to_owned() };
18
20
if value == "true"{
19
21
show = false;
20
22
}
21
23
22
24
if show {
23
-
window.get_webview_window("main").unwrap().show().unwrap();
25
+
let webview = window.get_webview_window("main").unwrap();
26
+
27
+
webview.show().unwrap();
28
+
webview.emit("show-window", 0).unwrap();
24
29
}
25
30
}
+43
-22
src-tauri/src/frontend_calls/config.rs
+43
-22
src-tauri/src/frontend_calls/config.rs
···
1
-
use std::{fs, path::PathBuf};
1
+
use std::{fs, path::PathBuf, sync::Mutex};
2
2
3
3
use serde_json::Value;
4
+
use tauri::State;
4
5
5
6
pub fn get_config_path() -> PathBuf {
6
7
let path = dirs::config_dir()
···
17
18
path
18
19
}
19
20
20
-
#[tauri::command]
21
-
pub fn set_config_value_string(key: String, value: String) {
22
-
let path = get_config_path();
21
+
pub struct Config{
22
+
config: Mutex<Value>
23
+
}
24
+
25
+
impl Config{
26
+
pub fn new() -> Config{
27
+
let path = get_config_path();
28
+
let config: Value = serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
29
+
30
+
Config {
31
+
config: Mutex::new(config)
32
+
}
33
+
}
34
+
35
+
pub fn set( &self, key: String, value: Value ){
36
+
let mut lock = self.config.lock().unwrap();
37
+
lock[key] = value;
38
+
}
39
+
40
+
pub fn get( &self, key: String ) -> Value{
41
+
let lock = self.config.lock().unwrap();
42
+
lock[key].clone()
43
+
}
44
+
45
+
pub fn save( &self ){
46
+
let path = get_config_path();
47
+
let string = serde_json::to_string(&self.config).unwrap();
23
48
24
-
let mut config: Value = serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
25
-
config[key] = Value::from(value);
49
+
fs::write(path, string).unwrap();
50
+
}
51
+
}
26
52
27
-
fs::write(path, config.to_string()).unwrap();
53
+
#[tauri::command]
54
+
pub fn set_config_value_string( key: String, value: String, config: State<Config> ) {
55
+
config.set(key, Value::from(value));
28
56
}
29
57
30
58
#[tauri::command]
31
-
pub fn get_config_value_string(key: String) -> Option<String> {
32
-
let config: Value =
33
-
serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap();
34
-
let string = config[key].as_str();
59
+
pub fn get_config_value_string( key: String, config: State<Config> ) -> Option<String> {
60
+
let string = config.get(key);
61
+
let string = string.as_str();
35
62
36
63
if string.is_some() {
37
64
Some(string.unwrap().to_owned())
···
41
68
}
42
69
43
70
#[tauri::command]
44
-
pub fn set_config_value_int(key: String, value: i64) {
45
-
let path = get_config_path();
46
-
47
-
let mut config: Value = serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
48
-
config[key] = Value::from(value);
49
-
50
-
fs::write(path, config.to_string()).unwrap();
71
+
pub fn set_config_value_int( key: String, value: i64, config: State<Config> ) {
72
+
config.set(key, Value::from(value));
51
73
}
52
74
53
75
#[tauri::command]
54
-
pub fn get_config_value_int(key: String) -> Option<i64> {
55
-
let config: Value =
56
-
serde_json::from_str(&fs::read_to_string(get_config_path()).unwrap()).unwrap();
57
-
config[key].as_i64()
76
+
pub fn get_config_value_int( key: String, config: State<Config> ) -> Option<i64> {
77
+
let string = config.get(key);
78
+
string.as_i64()
58
79
}
+25
src-tauri/src/frontend_calls/copy_image.rs
+25
src-tauri/src/frontend_calls/copy_image.rs
···
1
+
use std::{ borrow::Cow, sync::Mutex };
2
+
3
+
use arboard::{ Clipboard, ImageData };
4
+
use image::GenericImageView;
5
+
use tauri::State;
6
+
7
+
use crate::{ frontend_calls::get_user_photos_path::get_user_photos_path, util::cache::Cache };
8
+
9
+
#[tauri::command]
10
+
pub fn copy_image( path: String, clipboard: State<Mutex<Clipboard>>, cache: State<Cache> ) {
11
+
let path = format!("{}/{}", get_user_photos_path(cache), path);
12
+
println!("Copying Image: {}", &path);
13
+
14
+
let img = image::open(path).unwrap();
15
+
let size = img.dimensions();
16
+
17
+
let img_data = ImageData {
18
+
width: size.0 as usize,
19
+
height: size.1 as usize,
20
+
bytes: Cow::from(img.into_rgba8().to_vec())
21
+
};
22
+
23
+
let mut lock = clipboard.lock().unwrap();
24
+
lock.set_image(img_data).unwrap();
25
+
}
+2
-16
src-tauri/src/frontend_calls/delete_photo.rs
+2
-16
src-tauri/src/frontend_calls/delete_photo.rs
···
1
1
use tauri::State;
2
2
3
3
use crate::util::cache::Cache;
4
-
use std::{ fs, thread, time::Duration };
4
+
use std::{ fs, thread };
5
5
6
6
// Delete a photo when the users confirms the prompt in the ui
7
7
#[tauri::command]
8
-
pub fn delete_photo(path: String, token: String, is_syncing: bool, cache: State<Cache>) {
8
+
pub fn delete_photo(path: String, cache: State<Cache>) {
9
9
let photo_path = cache.get("photo-path".into());
10
10
11
11
thread::spawn(move || {
12
12
let p = photo_path.unwrap() + "/" + &path;
13
13
fs::remove_file(p).unwrap();
14
-
15
-
let photo = path.split("/").last().unwrap();
16
-
17
-
if is_syncing {
18
-
let client = reqwest::blocking::Client::new();
19
-
client
20
-
.delete(format!(
21
-
"https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}",
22
-
token, photo
23
-
))
24
-
.timeout(Duration::from_secs(120))
25
-
.send()
26
-
.unwrap();
27
-
}
28
14
});
29
15
}
+21
-3
src-tauri/src/frontend_calls/load_photo_meta.rs
+21
-3
src-tauri/src/frontend_calls/load_photo_meta.rs
···
20
20
let mut buffer = Vec::new();
21
21
22
22
let _out = file.read_to_end(&mut buffer);
23
-
window
24
-
.emit("photo_meta_loaded", PNGImage::new(buffer, photo))
25
-
.unwrap();
23
+
let png = PNGImage::new(buffer, photo.clone());
24
+
25
+
if png.is_err(){
26
+
println!("Failed to load: {} => {}", base_dir, png.unwrap_err());
27
+
28
+
window.emit("photo_meta_loaded", PNGImage {
29
+
width: 1920,
30
+
height: 1080,
31
+
bit_depth: 0,
32
+
colour_type: 0,
33
+
compression_method: 0,
34
+
filter_method: 0,
35
+
interlace_method: 0,
36
+
metadata: "".into(),
37
+
error: true,
38
+
path: photo
39
+
}).unwrap();
40
+
} else{
41
+
println!("Loaded: {}", base_dir);
42
+
window.emit("photo_meta_loaded", png.unwrap()).unwrap();
43
+
}
26
44
}
27
45
Err(_) => {
28
46
println!("Cannot read image file: {:?}", base_dir);
+14
-8
src-tauri/src/frontend_calls/load_photos.rs
+14
-8
src-tauri/src/frontend_calls/load_photos.rs
···
16
16
let base_dir = cache.get("photo-path".into()).unwrap();
17
17
18
18
thread::spawn(move || {
19
-
20
19
let mut photos: Vec<path::PathBuf> = Vec::new();
21
20
let mut size: usize = 0;
22
21
22
+
let re = Regex::new(r"^[0-9]{4}-[0-9]{2}$").unwrap();
23
+
23
24
for folder in fs::read_dir(&base_dir).unwrap() {
24
25
let f = folder.unwrap();
26
+
if !re.is_match(f.file_name().to_str().unwrap()){ continue; }
25
27
26
28
if f.metadata().unwrap().is_dir() {
27
29
for photo in fs::read_dir(f.path()).unwrap() {
···
30
32
if p.metadata().unwrap().is_file() {
31
33
let fname = p.path();
32
34
33
-
let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap();
34
-
let re2 = Regex::new(
35
-
r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap();
36
-
let re3 = Regex::new("VRChat_[0-9]{4}x[0-9]{4}_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}.png").unwrap();
37
-
38
35
let name = p.file_name();
39
36
let name = name.to_str().unwrap();
40
37
41
-
let re3_match = re3.is_match(name);
38
+
let re1_match = // This is the current format used by VRChat
39
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(name) ||
40
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(name) ||
41
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(name);
42
+
43
+
let re2_match = // This is the format VRCX uses if you enable renaming photos
44
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(name);
42
45
43
-
if re1.is_match(name) || re2.is_match(name) || re3_match {
46
+
let re3_match = // This is an old format VRChat used for naming photos
47
+
Regex::new(r"(?m)VRChat_[0-9]{3,4}x[0-9]{3,4}_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}.png").unwrap().is_match(name);
48
+
49
+
if re1_match || re2_match || re3_match {
44
50
let path = fname.to_path_buf().clone();
45
51
let metadata = fs::metadata(&path).unwrap();
46
52
+1
-3
src-tauri/src/frontend_calls/mod.rs
+1
-3
src-tauri/src/frontend_calls/mod.rs
+19
-4
src-tauri/src/frontend_calls/open_folder.rs
+19
-4
src-tauri/src/frontend_calls/open_folder.rs
···
7
7
8
8
#[cfg(target_os = "linux")]
9
9
{
10
-
let url = url.replace("\\", "/");
11
-
let mut path: Vec<&str> = url.split("/").collect();
10
+
let path = url.replace("\\", "/");
11
+
12
+
let mut dir_path: Vec<_> = path.split("/").collect();
13
+
dir_path.pop();
14
+
let dir_path = dir_path.join("/");
15
+
16
+
let commands = vec![
17
+
( "nautilus", vec![ path.clone() ] ),
18
+
( "nemo", vec![ path.clone() ] ),
19
+
( "thunar", vec![ path.clone() ] ),
20
+
( "caja", vec![ "--select".into(), path.clone() ] ),
21
+
( "pcmanfm-qt", vec![ dir_path.clone() ] ),
22
+
( "pcmanfm", vec![ dir_path.clone() ] ),
23
+
( "dolphin", vec![ "--select".into(), path.clone() ] ),
24
+
( "konqueror", vec![ "--select".into(), path.clone() ] ),
25
+
( "xdg-open", vec![ dir_path.clone() ] )
26
+
];
12
27
13
-
path.pop();
14
-
Command::new("xdg-open").arg(path.join("/")).spawn().unwrap();
28
+
for command in commands{
29
+
if Command::new(command.0).args(command.1).spawn().is_ok() { break; } }
15
30
}
16
31
}
-17
src-tauri/src/frontend_calls/relaunch.rs
-17
src-tauri/src/frontend_calls/relaunch.rs
···
1
-
use std::process::{ self, Command };
2
-
3
-
#[tauri::command]
4
-
pub fn relaunch() {
5
-
#[cfg(windows)]
6
-
{
7
-
let container_folder = dirs::config_dir()
8
-
.unwrap()
9
-
.join("PhazeDev/VRChatPhotoManager");
10
-
11
-
let mut cmd = Command::new(&container_folder.join("./vrchat-photo-manager.exe"));
12
-
cmd.current_dir(container_folder);
13
-
cmd.spawn().expect("Cannot run updater");
14
-
15
-
process::exit(0);
16
-
}
17
-
}
-4
src-tauri/src/frontend_calls/start_user_auth.rs
-4
src-tauri/src/frontend_calls/start_user_auth.rs
-11
src-tauri/src/frontend_calls/sync_photos.rs
-11
src-tauri/src/frontend_calls/sync_photos.rs
···
1
-
use crate::photosync;
2
-
use crate::util::get_photo_path::get_photo_path;
3
-
use std::thread;
4
-
5
-
// On requested sync the photos to the cloud
6
-
#[tauri::command]
7
-
pub fn sync_photos(token: String, window: tauri::Window) {
8
-
thread::spawn(move || {
9
-
photosync::sync_photos(token, get_photo_path(), window);
10
-
});
11
-
}
+37
-31
src-tauri/src/main.rs
+37
-31
src-tauri/src/main.rs
···
1
1
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
2
2
3
3
mod frontend_calls;
4
-
mod photosync;
5
4
mod pngmeta;
6
5
mod util;
7
6
mod worldscraper;
8
7
9
8
use core::time;
9
+
use arboard::Clipboard;
10
10
use frontend_calls::*;
11
11
12
12
use notify::{ EventKind, RecursiveMode, Watcher };
13
13
use pngmeta::PNGImage;
14
14
use regex::Regex;
15
15
use util::{ cache::Cache, get_photo_path::get_photo_path };
16
-
use std::{ env, fs, thread };
16
+
use std::{ env, fs, sync::Mutex, thread };
17
17
use tauri::{ Emitter, Manager, State, WindowEvent };
18
-
use tauri_plugin_deep_link::DeepLinkExt;
19
18
20
-
// TODO: Linux support
19
+
use crate::frontend_calls::config::{get_config_value_string, Config};
21
20
22
21
fn main() {
23
22
#[cfg(target_os = "linux")]
24
-
std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); // Fix webkit being shit
23
+
std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); // Fix webkitgtk being shit
25
24
26
25
let cache = Cache::new();
27
26
···
78
77
79
78
println!("Loading App...");
80
79
let photos_path = util::get_photo_path::get_photo_path();
80
+
println!("Loading photos from: {:#?}", &photos_path);
81
81
82
82
cache.insert("photo-path".into(), photos_path.to_str().unwrap().to_owned());
83
83
···
88
88
}
89
89
};
90
90
91
-
// Updater only supports windows, so don't update if on linux
92
-
#[cfg(windows)]
93
-
util::check_updates::check_updates(container_folder);
94
-
95
91
// Listen for file updates, store each update in an mpsc channel and send to the frontend
96
92
let (sender, receiver) = std::sync::mpsc::channel();
97
93
let mut watcher = notify::recommended_watcher(move | res: Result<notify::Event, notify::Error> | {
···
102
98
let path = event.paths.first().unwrap();
103
99
let name = path.file_name().unwrap().to_str().unwrap().to_owned();
104
100
105
-
let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap();
106
-
let re2 = Regex::new(r"(?m)/VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png/gm").unwrap();
101
+
let re1_match = // This is the current format used by VRChat
102
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(&name) ||
103
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(&name) ||
104
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(&name);
107
105
108
-
if
109
-
re1.is_match(&name) ||
110
-
re2.is_match(&name)
111
-
{
106
+
let re2_match = // This is the format VRCX uses if you enable renaming photos
107
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(&name);
108
+
109
+
if re1_match || re2_match{
112
110
sender.send((2, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap();
113
111
}
114
112
},
···
116
114
let path = event.paths.first().unwrap();
117
115
let name = path.file_name().unwrap().to_str().unwrap().to_owned();
118
116
119
-
let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap();
120
-
let re2 = Regex::new(r"(?m)/VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png/gm").unwrap();
117
+
let re1_match = // This is the current format used by VRChat
118
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}.png").unwrap().is_match(&name) ||
119
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Player.png").unwrap().is_match(&name) ||
120
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_Environment.png").unwrap().is_match(&name);
121
121
122
-
if
123
-
re1.is_match(&name) ||
124
-
re2.is_match(&name)
125
-
{
122
+
let re2_match = // This is the format VRCX uses if you enable renaming photos
123
+
Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{3,4}x[0-9]{3,4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap().is_match(&name);
124
+
125
+
if re1_match || re2_match{
126
126
thread::sleep(time::Duration::from_millis(1000));
127
127
sender.send((1, path.strip_prefix(get_photo_path()).unwrap().to_str().unwrap().to_owned())).unwrap();
128
128
}
···
142
142
)
143
143
.unwrap();
144
144
145
+
let clipboard = Clipboard::new().unwrap();
146
+
145
147
tauri::Builder::default()
146
-
.plugin(tauri_plugin_single_instance::init(| app, argv, _cwd | {
148
+
.plugin(tauri_plugin_single_instance::init(| app, _argv, _cwd | {
147
149
app.get_webview_window("main").unwrap().show().unwrap();
148
-
util::handle_deeplink::handle_deeplink(argv[1].clone(), app);
149
150
}))
150
-
.plugin(tauri_plugin_deep_link::init())
151
151
.plugin(tauri_plugin_process::init())
152
152
.plugin(tauri_plugin_http::init())
153
153
.plugin(tauri_plugin_shell::init())
···
156
156
util::handle_uri_proto::handle_uri_proto(req, res, cache);
157
157
})
158
158
.on_window_event(|window, event| match event {
159
-
WindowEvent::CloseRequested { api, .. } => {
159
+
WindowEvent::CloseRequested { api, .. } => {
160
+
let config: State<Config> = window.state();
161
+
162
+
let val = get_config_value_string("close-to-tray".into(), config.clone());
163
+
if val.is_none() || val.unwrap() != "true"{
164
+
config.save();
165
+
return;
166
+
}
167
+
160
168
window.hide().unwrap();
161
169
api.prevent_close();
162
170
}
163
171
_ => {}
164
172
})
173
+
.manage(Config::new())
165
174
.manage(cache)
175
+
.manage(Mutex::new(clipboard))
166
176
.setup(|app| {
167
177
let handle = app.handle();
168
-
169
-
app.deep_link().register("vrcpm").unwrap();
170
178
util::setup_traymenu::setup_traymenu(handle);
171
179
172
180
// reads the file update mpsc channel and sends the events to the frontend
···
190
198
Ok(())
191
199
})
192
200
.invoke_handler(tauri::generate_handler![
193
-
start_user_auth::start_user_auth,
194
201
load_photos::load_photos,
195
202
close_splashscreen::close_splashscreen,
196
203
load_photo_meta::load_photo_meta,
···
202
209
start_with_win::start_with_win,
203
210
get_user_photos_path::get_user_photos_path,
204
211
change_final_path::change_final_path,
205
-
sync_photos::sync_photos,
206
212
util::get_version::get_version,
207
-
relaunch::relaunch,
208
213
config::set_config_value_string,
209
214
config::get_config_value_string,
210
215
config::set_config_value_int,
211
216
config::get_config_value_int,
212
-
get_os::get_os
217
+
get_os::get_os,
218
+
copy_image::copy_image
213
219
])
214
220
.run(tauri::generate_context!())
215
221
.expect("error while running tauri application");
-261
src-tauri/src/photosync.rs
-261
src-tauri/src/photosync.rs
···
1
-
use regex::Regex;
2
-
use reqwest;
3
-
use serde::Serialize;
4
-
use serde_json::{Error, Value};
5
-
use std::{fs, io::Write, path, time::Duration};
6
-
use tauri::Emitter;
7
-
8
-
#[derive(Clone, Serialize)]
9
-
struct PhotoUploadMeta {
10
-
photos_uploading: usize,
11
-
photos_total: usize,
12
-
}
13
-
14
-
pub fn sync_photos(token: String, path: path::PathBuf, window: tauri::Window) {
15
-
let sync_lock_path = dirs::config_dir()
16
-
.unwrap()
17
-
.join("PhazeDev/VRChatPhotoManager/.sync_lock");
18
-
19
-
match fs::metadata(&sync_lock_path) {
20
-
Ok(_) => {
21
-
return;
22
-
}
23
-
Err(_) => {}
24
-
}
25
-
26
-
fs::write(&sync_lock_path, "Currently Syncing").unwrap();
27
-
28
-
match fs::metadata(&path) {
29
-
Ok(_) => {}
30
-
Err(_) => {
31
-
fs::create_dir(&path).unwrap();
32
-
}
33
-
};
34
-
35
-
let mut photos: Vec<String> = Vec::new();
36
-
37
-
for folder in fs::read_dir(&path).unwrap() {
38
-
let f = folder.unwrap();
39
-
40
-
if f.metadata().unwrap().is_dir() {
41
-
match fs::read_dir(f.path()) {
42
-
Ok(dir) => {
43
-
for photo in dir {
44
-
let p = photo.unwrap();
45
-
46
-
let re1 = Regex::new(r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}.png").unwrap();
47
-
let re2 = Regex::new(
48
-
r"(?m)VRChat_[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}.[0-9]{3}_[0-9]{4}x[0-9]{4}_wrld_[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}.png").unwrap();
49
-
50
-
if re1.is_match(p.file_name().to_str().unwrap())
51
-
|| re2.is_match(p.file_name().to_str().unwrap())
52
-
{
53
-
photos.push(p.file_name().into_string().unwrap());
54
-
}
55
-
}
56
-
}
57
-
Err(_) => {}
58
-
}
59
-
}
60
-
}
61
-
62
-
let body = reqwest::blocking::get(format!(
63
-
"https://photos-cdn.phazed.xyz/api/v1/photos/exists?token={}",
64
-
&token
65
-
))
66
-
.unwrap()
67
-
.text()
68
-
.unwrap();
69
-
70
-
let body: Value = serde_json::from_str(&body).unwrap();
71
-
72
-
let mut photos_to_upload: Vec<String> = Vec::new();
73
-
let uploaded_photos = body["files"].as_array().unwrap();
74
-
75
-
let photos_len = photos.len();
76
-
77
-
for photo in &photos {
78
-
let mut found_photo = false;
79
-
80
-
for uploaded_photo in uploaded_photos {
81
-
if photo == uploaded_photo.as_str().unwrap() {
82
-
found_photo = true;
83
-
break;
84
-
}
85
-
}
86
-
87
-
if !found_photo {
88
-
photos_to_upload.push(photo.clone());
89
-
}
90
-
}
91
-
92
-
window
93
-
.emit(
94
-
"photos-upload-meta",
95
-
PhotoUploadMeta {
96
-
photos_uploading: photos_to_upload.len(),
97
-
photos_total: photos_len,
98
-
},
99
-
)
100
-
.unwrap();
101
-
102
-
let mut photos_left = photos_to_upload.len();
103
-
104
-
let client = reqwest::blocking::Client::new();
105
-
106
-
loop {
107
-
match photos_to_upload.pop() {
108
-
Some(photo) => {
109
-
let folder_name = photo.clone().replace("VRChat_", "");
110
-
let mut folder_name = folder_name.split("-");
111
-
let folder_name = format!(
112
-
"{}-{}",
113
-
folder_name.nth(0).unwrap(),
114
-
folder_name.nth(0).unwrap()
115
-
);
116
-
117
-
let full_path = format!("{}\\{}\\{}", path.to_str().unwrap(), folder_name, photo);
118
-
let file = fs::File::open(full_path);
119
-
120
-
match file {
121
-
Ok(file) => {
122
-
let res = client
123
-
.put(format!(
124
-
"https://photos-cdn.phazed.xyz/api/v1/photos?token={}",
125
-
&token
126
-
))
127
-
.header("Content-Type", "image/png")
128
-
.header("filename", photo)
129
-
.body(file)
130
-
.timeout(Duration::from_secs(120))
131
-
.send()
132
-
.unwrap()
133
-
.text()
134
-
.unwrap();
135
-
136
-
let res: Result<Value, Error> = serde_json::from_str(&res);
137
-
138
-
match res {
139
-
Ok(res) => {
140
-
if !res["ok"].as_bool().unwrap() {
141
-
println!("Failed to upload: {}", res["error"].as_str().unwrap());
142
-
143
-
window
144
-
.emit("sync-failed", res["error"].as_str().unwrap())
145
-
.unwrap();
146
-
147
-
break;
148
-
}
149
-
}
150
-
Err(err) => {
151
-
dbg!(err);
152
-
}
153
-
}
154
-
}
155
-
Err(_) => {}
156
-
}
157
-
158
-
photos_left -= 1;
159
-
window
160
-
.emit(
161
-
"photos-upload-meta",
162
-
PhotoUploadMeta {
163
-
photos_uploading: photos_left,
164
-
photos_total: photos_len,
165
-
},
166
-
)
167
-
.unwrap();
168
-
}
169
-
None => {
170
-
break;
171
-
}
172
-
}
173
-
}
174
-
175
-
println!("Finished Uploading.");
176
-
let mut photos_to_download: Vec<String> = Vec::new();
177
-
178
-
for photo in uploaded_photos {
179
-
let mut found_photo = false;
180
-
let photo = photo.as_str().unwrap().to_string();
181
-
182
-
for uploaded_photo in &photos {
183
-
if &photo == uploaded_photo {
184
-
found_photo = true;
185
-
break;
186
-
}
187
-
}
188
-
189
-
if !found_photo {
190
-
photos_to_download.push(photo);
191
-
}
192
-
}
193
-
194
-
photos_to_download.reverse();
195
-
196
-
let photos_len = photos_to_download.len();
197
-
let mut photos_left = photos_to_download.len();
198
-
199
-
loop {
200
-
match photos_to_download.pop() {
201
-
Some(photo) => {
202
-
let folder_name = photo.clone().replace("VRChat_", "");
203
-
let mut folder_name = folder_name.split("-");
204
-
let folder_name = format!(
205
-
"{}-{}",
206
-
folder_name.nth(0).unwrap(),
207
-
folder_name.nth(0).unwrap()
208
-
);
209
-
210
-
let full_path = format!("{}/{}/{}", path.to_str().unwrap(), folder_name, photo);
211
-
212
-
let res = client
213
-
.get(format!(
214
-
"https://photos-cdn.phazed.xyz/api/v1/photos?token={}&photo={}",
215
-
&token, &photo
216
-
))
217
-
.timeout(Duration::from_secs(120))
218
-
.send()
219
-
.unwrap()
220
-
.bytes();
221
-
222
-
match res {
223
-
Ok(res) => {
224
-
let folder_path = format!("{}/{}", path.to_str().unwrap(), folder_name);
225
-
match fs::metadata(&folder_path) {
226
-
Ok(_) => {}
227
-
Err(_) => {
228
-
fs::create_dir(folder_path).unwrap();
229
-
}
230
-
}
231
-
232
-
let mut file = fs::File::create(full_path).unwrap();
233
-
file.write_all(&res).unwrap();
234
-
}
235
-
Err(err) => {
236
-
dbg!(err);
237
-
}
238
-
}
239
-
240
-
photos_left -= 1;
241
-
window
242
-
.emit(
243
-
"photos-download-meta",
244
-
PhotoUploadMeta {
245
-
photos_uploading: photos_left,
246
-
photos_total: photos_len,
247
-
},
248
-
)
249
-
.unwrap();
250
-
}
251
-
None => {
252
-
break;
253
-
}
254
-
}
255
-
}
256
-
257
-
println!("Finished Downloading.");
258
-
259
-
fs::remove_file(&sync_lock_path).unwrap();
260
-
window.emit("sync-finished", "h").unwrap();
261
-
}
+17
-33
src-tauri/src/pngmeta.rs
+17
-33
src-tauri/src/pngmeta.rs
···
1
-
use serde::ser::{Serialize, SerializeStruct, Serializer};
2
1
use std::str;
3
2
4
-
#[derive(Clone)]
3
+
use serde::Serialize;
4
+
5
+
#[derive(Clone, Debug, Serialize)]
5
6
pub struct PNGImage {
6
-
width: u32,
7
-
height: u32,
8
-
bit_depth: u8,
9
-
colour_type: u8,
10
-
compression_method: u8,
11
-
filter_method: u8,
12
-
interlace_method: u8,
13
-
metadata: String,
14
-
path: String,
7
+
pub width: u32,
8
+
pub height: u32,
9
+
pub bit_depth: u8,
10
+
pub colour_type: u8,
11
+
pub compression_method: u8,
12
+
pub filter_method: u8,
13
+
pub interlace_method: u8,
14
+
pub metadata: String,
15
+
pub path: String,
16
+
pub error: bool
15
17
}
16
18
17
19
impl PNGImage {
18
-
pub fn new(buff: Vec<u8>, path: String) -> PNGImage {
20
+
pub fn new(buff: Vec<u8>, path: String) -> Result<PNGImage, &'static str> {
19
21
if buff[0] != 0x89
20
22
|| buff[1] != 0x50
21
23
|| buff[2] != 0x4E
···
26
28
|| buff[7] != 0x0A
27
29
{
28
30
dbg!(path);
29
-
panic!("Image is not a PNG file");
31
+
return Err("Image is not a PNG file");
30
32
}
31
33
32
34
let mut img = PNGImage {
···
39
41
interlace_method: 0,
40
42
metadata: "".to_string(),
41
43
path: path,
44
+
error: false
42
45
};
43
46
44
47
img.read_png_chunk(8, buff);
45
-
img
48
+
Ok(img)
46
49
}
47
50
48
51
fn read_png_chunk(&mut self, start_byte: usize, buff: Vec<u8>) {
···
82
85
}
83
86
}
84
87
}
85
-
86
-
impl Serialize for PNGImage {
87
-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
88
-
where
89
-
S: Serializer,
90
-
{
91
-
let mut s = serializer.serialize_struct("PNGImage", 7)?;
92
-
s.serialize_field("width", &self.width)?;
93
-
s.serialize_field("height", &self.height)?;
94
-
s.serialize_field("bit_depth", &self.bit_depth)?;
95
-
s.serialize_field("colour_type", &self.colour_type)?;
96
-
s.serialize_field("compression_method", &self.compression_method)?;
97
-
s.serialize_field("filter_method", &self.filter_method)?;
98
-
s.serialize_field("interlace_method", &self.interlace_method)?;
99
-
s.serialize_field("metadata", &self.metadata)?;
100
-
s.serialize_field("path", &self.path)?;
101
-
s.end()
102
-
}
103
-
}
+1
-1
src-tauri/src/util/cache.rs
+1
-1
src-tauri/src/util/cache.rs
-55
src-tauri/src/util/check_updates.rs
-55
src-tauri/src/util/check_updates.rs
···
1
-
use crate::util;
2
-
use std::{
3
-
env, fs, path,
4
-
process::{ self, Command },
5
-
thread,
6
-
time::Duration,
7
-
};
8
-
9
-
pub fn check_updates(container_folder: path::PathBuf) {
10
-
let args: Vec<String> = env::args().collect();
11
-
12
-
let mut update = true;
13
-
for arg in args {
14
-
if arg == "--no-update" {
15
-
update = false;
16
-
}
17
-
}
18
-
19
-
if update {
20
-
// Auto update
21
-
thread::spawn(move || {
22
-
let client = reqwest::blocking::Client::new();
23
-
24
-
let latest_version = client
25
-
.get("https://cdn.phaz.uk/vrcpm/latest")
26
-
.send()
27
-
.unwrap()
28
-
.text()
29
-
.unwrap();
30
-
31
-
if latest_version != util::get_version::get_version() {
32
-
match fs::metadata(&container_folder.join("./updater.exe")) {
33
-
Ok(_) => {}
34
-
Err(_) => {
35
-
let latest_installer = client
36
-
.get("https://cdn.phaz.uk/vrcpm/vrcpm-installer.exe")
37
-
.timeout(Duration::from_secs(120))
38
-
.send()
39
-
.unwrap()
40
-
.bytes()
41
-
.unwrap();
42
-
43
-
fs::write(&container_folder.join("./updater.exe"), latest_installer).unwrap();
44
-
}
45
-
}
46
-
47
-
let mut cmd = Command::new(&container_folder.join("./updater.exe"));
48
-
cmd.current_dir(container_folder);
49
-
cmd.spawn().expect("Cannot run updater");
50
-
51
-
process::exit(0);
52
-
}
53
-
});
54
-
}
55
-
}
+7
-1
src-tauri/src/util/get_photo_path.rs
+7
-1
src-tauri/src/util/get_photo_path.rs
···
7
7
8
8
match fs::read_to_string(config_path) {
9
9
Ok(path) => {
10
-
path::PathBuf::from(path)
10
+
let p = path::PathBuf::from(path);
11
+
12
+
if fs::exists(&p).unwrap(){
13
+
p
14
+
} else{
15
+
dirs::picture_dir().unwrap().join("VRChat")
16
+
}
11
17
},
12
18
Err(_) => {
13
19
let p = dirs::picture_dir().unwrap().join("VRChat");
-22
src-tauri/src/util/handle_deeplink.rs
-22
src-tauri/src/util/handle_deeplink.rs
···
1
-
use tauri::{ AppHandle, Emitter };
2
-
3
-
pub fn handle_deeplink( url: String, handle: &AppHandle ) {
4
-
let mut command: u8 = 0;
5
-
let mut index: u8 = 0;
6
-
7
-
for part in url.split('/').into_iter() {
8
-
index += 1;
9
-
10
-
if index == 3 && part == "auth-callback" {
11
-
command = 1;
12
-
}
13
-
14
-
if index == 3 && part == "auth-denied" {
15
-
handle.emit("auth-denied", "null").unwrap();
16
-
}
17
-
18
-
if index == 4 && command == 1 {
19
-
handle.emit("auth-callback", part).unwrap();
20
-
}
21
-
}
22
-
}
-6
src-tauri/src/util/handle_uri_proto.rs
-6
src-tauri/src/util/handle_uri_proto.rs
···
33
33
return;
34
34
}
35
35
36
-
// TODO: Only accept files that are in the vrchat photos folder
37
-
// Slightly more complex than originally thought, need to find a way to cache the VRC photos path
38
-
// since i need to be able to load lots of photos very quickly. This shouldn't be a security issue
39
-
// because tauri should only let the frontend of VRCPhotoManager read files throught this. Only
40
-
// becomes a potential issue if the frontend gets modified or there's an issue with tauri.
41
-
42
36
#[cfg(windows)]
43
37
let path = uri.path().split_at(1).1;
44
38
-2
src-tauri/src/util/mod.rs
-2
src-tauri/src/util/mod.rs
+7
-6
src-tauri/tauri.conf.json
+7
-6
src-tauri/tauri.conf.json
···
15
15
"icons/icon.ico"
16
16
]
17
17
},
18
-
"productName": "vrchat-photo-manager",
18
+
"productName": "VRChat Photo Manager",
19
19
"version": "0.0.1",
20
20
"identifier": "uk.phaz.vrcpm",
21
-
"plugins": {},
21
+
"plugins": {
22
+
"shell": { "open": true }
23
+
},
22
24
"app": {
23
25
"security": {
24
-
"csp": "https://photos.phazed.xyz; connect-src ipc: http://ipc.localhost"
26
+
"csp": "connect-src https://api.github.com ipc: http://ipc.localhost"
25
27
},
26
28
"windows": [
27
29
{
···
33
35
"minWidth": 600,
34
36
"minHeight": 400,
35
37
"visible": false,
36
-
"decorations": false,
37
-
"transparent": true,
38
-
"titleBarStyle": "Transparent"
38
+
"decorations": true,
39
+
"transparent": true
39
40
}
40
41
]
41
42
}
+1
-1
vite.config.ts
+1
-1
vite.config.ts
···
11
11
12
12
// https://vitejs.dev/config/
13
13
export default defineConfig(async () => ({
14
-
plugins: [solid(),], //fullReloadAlways],
14
+
plugins: [solid(), fullReloadAlways],
15
15
16
16
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
17
17
//