├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
├── tauri.svg
└── vite.svg
├── src-tauri
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── binaries
│ └── aria2c-aarch64-apple-darwin
├── build.rs
├── icons
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── 32x32.png
│ ├── Square107x107Logo.png
│ ├── Square142x142Logo.png
│ ├── Square150x150Logo.png
│ ├── Square284x284Logo.png
│ ├── Square30x30Logo.png
│ ├── Square310x310Logo.png
│ ├── Square44x44Logo.png
│ ├── Square71x71Logo.png
│ ├── Square89x89Logo.png
│ ├── StoreLogo.png
│ ├── creativity.png
│ ├── icon-origin.png
│ ├── icon.icns
│ ├── icon.ico
│ └── icon.png
├── resources
│ └── aria2.conf
├── src
│ ├── main.rs
│ └── setup.rs
└── tauri.conf.json
├── src
├── App.jsx
├── app.jsx
├── assets
│ ├── app-icon.png
│ ├── icons
│ │ ├── arrow-down.svg
│ │ ├── arrow-up.svg
│ │ ├── audio.svg
│ │ ├── delete.svg
│ │ ├── dice.svg
│ │ ├── engine-mode-max.svg
│ │ ├── folder.svg
│ │ ├── image.svg
│ │ ├── inbox.svg
│ │ ├── info-circle.svg
│ │ ├── info-square.svg
│ │ ├── link.svg
│ │ ├── magnet.svg
│ │ ├── menu-about.svg
│ │ ├── menu-add.svg
│ │ ├── menu-preference.svg
│ │ ├── menu-task.svg
│ │ ├── more.svg
│ │ ├── node.svg
│ │ ├── preference-advanced.svg
│ │ ├── preference-basic.svg
│ │ ├── purge.svg
│ │ ├── refresh.svg
│ │ ├── speedometer.svg
│ │ ├── sync.svg
│ │ ├── task-done.svg
│ │ ├── task-history.svg
│ │ ├── task-pause-line.svg
│ │ ├── task-pause.svg
│ │ ├── task-restart.svg
│ │ ├── task-start-line.svg
│ │ ├── task-start.svg
│ │ ├── task-stop-line.svg
│ │ ├── task-stop.svg
│ │ ├── trash.svg
│ │ ├── video.svg
│ │ ├── win-close.svg
│ │ ├── win-maximize.svg
│ │ └── win-minimize.svg
│ ├── logo-mini.svg
│ ├── logo.svg
│ ├── no-task.svg
│ ├── theme-auto@2x.png
│ ├── theme-dark@2x.png
│ └── theme-light@2x.png
├── components
│ ├── layout
│ │ ├── index.jsx
│ │ └── index.module.less
│ └── logo
│ │ └── index.jsx
├── main.jsx
├── pages
│ ├── settings
│ │ └── index.jsx
│ └── tasks
│ │ └── index.jsx
└── style.less
└── vite.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"]
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tauri + React
2 |
3 | This template should help get you started developing with Tauri and React in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | - [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
8 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Tauri + React
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "motrix_rs",
3 | "version": "0.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "motrix_rs",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "@tauri-apps/api": "^1",
12 | "classnames": "^2.5.1",
13 | "normalize.css": "^8.0.1",
14 | "react": "^18.2.0",
15 | "react-dom": "^18.2.0",
16 | "react-router-dom": "^6.22.3",
17 | "vite-plugin-svgr": "^4.2.0"
18 | },
19 | "devDependencies": {
20 | "@tauri-apps/cli": "^1",
21 | "@vitejs/plugin-react": "^4.2.1",
22 | "less": "^4.2.0",
23 | "vite": "^5.0.0"
24 | }
25 | },
26 | "node_modules/@ampproject/remapping": {
27 | "version": "2.3.0",
28 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
29 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
30 | "dependencies": {
31 | "@jridgewell/gen-mapping": "^0.3.5",
32 | "@jridgewell/trace-mapping": "^0.3.24"
33 | },
34 | "engines": {
35 | "node": ">=6.0.0"
36 | }
37 | },
38 | "node_modules/@babel/code-frame": {
39 | "version": "7.23.5",
40 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
41 | "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
42 | "dependencies": {
43 | "@babel/highlight": "^7.23.4",
44 | "chalk": "^2.4.2"
45 | },
46 | "engines": {
47 | "node": ">=6.9.0"
48 | }
49 | },
50 | "node_modules/@babel/compat-data": {
51 | "version": "7.23.5",
52 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
53 | "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
54 | "engines": {
55 | "node": ">=6.9.0"
56 | }
57 | },
58 | "node_modules/@babel/core": {
59 | "version": "7.24.0",
60 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz",
61 | "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==",
62 | "dependencies": {
63 | "@ampproject/remapping": "^2.2.0",
64 | "@babel/code-frame": "^7.23.5",
65 | "@babel/generator": "^7.23.6",
66 | "@babel/helper-compilation-targets": "^7.23.6",
67 | "@babel/helper-module-transforms": "^7.23.3",
68 | "@babel/helpers": "^7.24.0",
69 | "@babel/parser": "^7.24.0",
70 | "@babel/template": "^7.24.0",
71 | "@babel/traverse": "^7.24.0",
72 | "@babel/types": "^7.24.0",
73 | "convert-source-map": "^2.0.0",
74 | "debug": "^4.1.0",
75 | "gensync": "^1.0.0-beta.2",
76 | "json5": "^2.2.3",
77 | "semver": "^6.3.1"
78 | },
79 | "engines": {
80 | "node": ">=6.9.0"
81 | },
82 | "funding": {
83 | "type": "opencollective",
84 | "url": "https://opencollective.com/babel"
85 | }
86 | },
87 | "node_modules/@babel/generator": {
88 | "version": "7.23.6",
89 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
90 | "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
91 | "dependencies": {
92 | "@babel/types": "^7.23.6",
93 | "@jridgewell/gen-mapping": "^0.3.2",
94 | "@jridgewell/trace-mapping": "^0.3.17",
95 | "jsesc": "^2.5.1"
96 | },
97 | "engines": {
98 | "node": ">=6.9.0"
99 | }
100 | },
101 | "node_modules/@babel/helper-compilation-targets": {
102 | "version": "7.23.6",
103 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
104 | "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
105 | "dependencies": {
106 | "@babel/compat-data": "^7.23.5",
107 | "@babel/helper-validator-option": "^7.23.5",
108 | "browserslist": "^4.22.2",
109 | "lru-cache": "^5.1.1",
110 | "semver": "^6.3.1"
111 | },
112 | "engines": {
113 | "node": ">=6.9.0"
114 | }
115 | },
116 | "node_modules/@babel/helper-environment-visitor": {
117 | "version": "7.22.20",
118 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
119 | "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
120 | "engines": {
121 | "node": ">=6.9.0"
122 | }
123 | },
124 | "node_modules/@babel/helper-function-name": {
125 | "version": "7.23.0",
126 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
127 | "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
128 | "dependencies": {
129 | "@babel/template": "^7.22.15",
130 | "@babel/types": "^7.23.0"
131 | },
132 | "engines": {
133 | "node": ">=6.9.0"
134 | }
135 | },
136 | "node_modules/@babel/helper-hoist-variables": {
137 | "version": "7.22.5",
138 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
139 | "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
140 | "dependencies": {
141 | "@babel/types": "^7.22.5"
142 | },
143 | "engines": {
144 | "node": ">=6.9.0"
145 | }
146 | },
147 | "node_modules/@babel/helper-module-imports": {
148 | "version": "7.22.15",
149 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
150 | "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
151 | "dependencies": {
152 | "@babel/types": "^7.22.15"
153 | },
154 | "engines": {
155 | "node": ">=6.9.0"
156 | }
157 | },
158 | "node_modules/@babel/helper-module-transforms": {
159 | "version": "7.23.3",
160 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
161 | "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
162 | "dependencies": {
163 | "@babel/helper-environment-visitor": "^7.22.20",
164 | "@babel/helper-module-imports": "^7.22.15",
165 | "@babel/helper-simple-access": "^7.22.5",
166 | "@babel/helper-split-export-declaration": "^7.22.6",
167 | "@babel/helper-validator-identifier": "^7.22.20"
168 | },
169 | "engines": {
170 | "node": ">=6.9.0"
171 | },
172 | "peerDependencies": {
173 | "@babel/core": "^7.0.0"
174 | }
175 | },
176 | "node_modules/@babel/helper-plugin-utils": {
177 | "version": "7.24.0",
178 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz",
179 | "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==",
180 | "dev": true,
181 | "engines": {
182 | "node": ">=6.9.0"
183 | }
184 | },
185 | "node_modules/@babel/helper-simple-access": {
186 | "version": "7.22.5",
187 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
188 | "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
189 | "dependencies": {
190 | "@babel/types": "^7.22.5"
191 | },
192 | "engines": {
193 | "node": ">=6.9.0"
194 | }
195 | },
196 | "node_modules/@babel/helper-split-export-declaration": {
197 | "version": "7.22.6",
198 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
199 | "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
200 | "dependencies": {
201 | "@babel/types": "^7.22.5"
202 | },
203 | "engines": {
204 | "node": ">=6.9.0"
205 | }
206 | },
207 | "node_modules/@babel/helper-string-parser": {
208 | "version": "7.23.4",
209 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
210 | "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
211 | "engines": {
212 | "node": ">=6.9.0"
213 | }
214 | },
215 | "node_modules/@babel/helper-validator-identifier": {
216 | "version": "7.22.20",
217 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
218 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
219 | "engines": {
220 | "node": ">=6.9.0"
221 | }
222 | },
223 | "node_modules/@babel/helper-validator-option": {
224 | "version": "7.23.5",
225 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
226 | "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
227 | "engines": {
228 | "node": ">=6.9.0"
229 | }
230 | },
231 | "node_modules/@babel/helpers": {
232 | "version": "7.24.0",
233 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz",
234 | "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==",
235 | "dependencies": {
236 | "@babel/template": "^7.24.0",
237 | "@babel/traverse": "^7.24.0",
238 | "@babel/types": "^7.24.0"
239 | },
240 | "engines": {
241 | "node": ">=6.9.0"
242 | }
243 | },
244 | "node_modules/@babel/highlight": {
245 | "version": "7.23.4",
246 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
247 | "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
248 | "dependencies": {
249 | "@babel/helper-validator-identifier": "^7.22.20",
250 | "chalk": "^2.4.2",
251 | "js-tokens": "^4.0.0"
252 | },
253 | "engines": {
254 | "node": ">=6.9.0"
255 | }
256 | },
257 | "node_modules/@babel/parser": {
258 | "version": "7.24.0",
259 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
260 | "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
261 | "bin": {
262 | "parser": "bin/babel-parser.js"
263 | },
264 | "engines": {
265 | "node": ">=6.0.0"
266 | }
267 | },
268 | "node_modules/@babel/plugin-transform-react-jsx-self": {
269 | "version": "7.23.3",
270 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
271 | "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
272 | "dev": true,
273 | "dependencies": {
274 | "@babel/helper-plugin-utils": "^7.22.5"
275 | },
276 | "engines": {
277 | "node": ">=6.9.0"
278 | },
279 | "peerDependencies": {
280 | "@babel/core": "^7.0.0-0"
281 | }
282 | },
283 | "node_modules/@babel/plugin-transform-react-jsx-source": {
284 | "version": "7.23.3",
285 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
286 | "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
287 | "dev": true,
288 | "dependencies": {
289 | "@babel/helper-plugin-utils": "^7.22.5"
290 | },
291 | "engines": {
292 | "node": ">=6.9.0"
293 | },
294 | "peerDependencies": {
295 | "@babel/core": "^7.0.0-0"
296 | }
297 | },
298 | "node_modules/@babel/template": {
299 | "version": "7.24.0",
300 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
301 | "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
302 | "dependencies": {
303 | "@babel/code-frame": "^7.23.5",
304 | "@babel/parser": "^7.24.0",
305 | "@babel/types": "^7.24.0"
306 | },
307 | "engines": {
308 | "node": ">=6.9.0"
309 | }
310 | },
311 | "node_modules/@babel/traverse": {
312 | "version": "7.24.0",
313 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz",
314 | "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==",
315 | "dependencies": {
316 | "@babel/code-frame": "^7.23.5",
317 | "@babel/generator": "^7.23.6",
318 | "@babel/helper-environment-visitor": "^7.22.20",
319 | "@babel/helper-function-name": "^7.23.0",
320 | "@babel/helper-hoist-variables": "^7.22.5",
321 | "@babel/helper-split-export-declaration": "^7.22.6",
322 | "@babel/parser": "^7.24.0",
323 | "@babel/types": "^7.24.0",
324 | "debug": "^4.3.1",
325 | "globals": "^11.1.0"
326 | },
327 | "engines": {
328 | "node": ">=6.9.0"
329 | }
330 | },
331 | "node_modules/@babel/types": {
332 | "version": "7.24.0",
333 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
334 | "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
335 | "dependencies": {
336 | "@babel/helper-string-parser": "^7.23.4",
337 | "@babel/helper-validator-identifier": "^7.22.20",
338 | "to-fast-properties": "^2.0.0"
339 | },
340 | "engines": {
341 | "node": ">=6.9.0"
342 | }
343 | },
344 | "node_modules/@esbuild/aix-ppc64": {
345 | "version": "0.19.12",
346 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
347 | "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
348 | "cpu": [
349 | "ppc64"
350 | ],
351 | "optional": true,
352 | "os": [
353 | "aix"
354 | ],
355 | "engines": {
356 | "node": ">=12"
357 | }
358 | },
359 | "node_modules/@esbuild/android-arm": {
360 | "version": "0.19.12",
361 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
362 | "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
363 | "cpu": [
364 | "arm"
365 | ],
366 | "optional": true,
367 | "os": [
368 | "android"
369 | ],
370 | "engines": {
371 | "node": ">=12"
372 | }
373 | },
374 | "node_modules/@esbuild/android-arm64": {
375 | "version": "0.19.12",
376 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
377 | "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
378 | "cpu": [
379 | "arm64"
380 | ],
381 | "optional": true,
382 | "os": [
383 | "android"
384 | ],
385 | "engines": {
386 | "node": ">=12"
387 | }
388 | },
389 | "node_modules/@esbuild/android-x64": {
390 | "version": "0.19.12",
391 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
392 | "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
393 | "cpu": [
394 | "x64"
395 | ],
396 | "optional": true,
397 | "os": [
398 | "android"
399 | ],
400 | "engines": {
401 | "node": ">=12"
402 | }
403 | },
404 | "node_modules/@esbuild/darwin-arm64": {
405 | "version": "0.19.12",
406 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
407 | "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
408 | "cpu": [
409 | "arm64"
410 | ],
411 | "optional": true,
412 | "os": [
413 | "darwin"
414 | ],
415 | "engines": {
416 | "node": ">=12"
417 | }
418 | },
419 | "node_modules/@esbuild/darwin-x64": {
420 | "version": "0.19.12",
421 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
422 | "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
423 | "cpu": [
424 | "x64"
425 | ],
426 | "optional": true,
427 | "os": [
428 | "darwin"
429 | ],
430 | "engines": {
431 | "node": ">=12"
432 | }
433 | },
434 | "node_modules/@esbuild/freebsd-arm64": {
435 | "version": "0.19.12",
436 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
437 | "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
438 | "cpu": [
439 | "arm64"
440 | ],
441 | "optional": true,
442 | "os": [
443 | "freebsd"
444 | ],
445 | "engines": {
446 | "node": ">=12"
447 | }
448 | },
449 | "node_modules/@esbuild/freebsd-x64": {
450 | "version": "0.19.12",
451 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
452 | "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
453 | "cpu": [
454 | "x64"
455 | ],
456 | "optional": true,
457 | "os": [
458 | "freebsd"
459 | ],
460 | "engines": {
461 | "node": ">=12"
462 | }
463 | },
464 | "node_modules/@esbuild/linux-arm": {
465 | "version": "0.19.12",
466 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
467 | "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
468 | "cpu": [
469 | "arm"
470 | ],
471 | "optional": true,
472 | "os": [
473 | "linux"
474 | ],
475 | "engines": {
476 | "node": ">=12"
477 | }
478 | },
479 | "node_modules/@esbuild/linux-arm64": {
480 | "version": "0.19.12",
481 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
482 | "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
483 | "cpu": [
484 | "arm64"
485 | ],
486 | "optional": true,
487 | "os": [
488 | "linux"
489 | ],
490 | "engines": {
491 | "node": ">=12"
492 | }
493 | },
494 | "node_modules/@esbuild/linux-ia32": {
495 | "version": "0.19.12",
496 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
497 | "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
498 | "cpu": [
499 | "ia32"
500 | ],
501 | "optional": true,
502 | "os": [
503 | "linux"
504 | ],
505 | "engines": {
506 | "node": ">=12"
507 | }
508 | },
509 | "node_modules/@esbuild/linux-loong64": {
510 | "version": "0.19.12",
511 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
512 | "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
513 | "cpu": [
514 | "loong64"
515 | ],
516 | "optional": true,
517 | "os": [
518 | "linux"
519 | ],
520 | "engines": {
521 | "node": ">=12"
522 | }
523 | },
524 | "node_modules/@esbuild/linux-mips64el": {
525 | "version": "0.19.12",
526 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
527 | "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
528 | "cpu": [
529 | "mips64el"
530 | ],
531 | "optional": true,
532 | "os": [
533 | "linux"
534 | ],
535 | "engines": {
536 | "node": ">=12"
537 | }
538 | },
539 | "node_modules/@esbuild/linux-ppc64": {
540 | "version": "0.19.12",
541 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
542 | "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
543 | "cpu": [
544 | "ppc64"
545 | ],
546 | "optional": true,
547 | "os": [
548 | "linux"
549 | ],
550 | "engines": {
551 | "node": ">=12"
552 | }
553 | },
554 | "node_modules/@esbuild/linux-riscv64": {
555 | "version": "0.19.12",
556 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
557 | "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
558 | "cpu": [
559 | "riscv64"
560 | ],
561 | "optional": true,
562 | "os": [
563 | "linux"
564 | ],
565 | "engines": {
566 | "node": ">=12"
567 | }
568 | },
569 | "node_modules/@esbuild/linux-s390x": {
570 | "version": "0.19.12",
571 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
572 | "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
573 | "cpu": [
574 | "s390x"
575 | ],
576 | "optional": true,
577 | "os": [
578 | "linux"
579 | ],
580 | "engines": {
581 | "node": ">=12"
582 | }
583 | },
584 | "node_modules/@esbuild/linux-x64": {
585 | "version": "0.19.12",
586 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
587 | "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
588 | "cpu": [
589 | "x64"
590 | ],
591 | "optional": true,
592 | "os": [
593 | "linux"
594 | ],
595 | "engines": {
596 | "node": ">=12"
597 | }
598 | },
599 | "node_modules/@esbuild/netbsd-x64": {
600 | "version": "0.19.12",
601 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
602 | "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
603 | "cpu": [
604 | "x64"
605 | ],
606 | "optional": true,
607 | "os": [
608 | "netbsd"
609 | ],
610 | "engines": {
611 | "node": ">=12"
612 | }
613 | },
614 | "node_modules/@esbuild/openbsd-x64": {
615 | "version": "0.19.12",
616 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
617 | "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
618 | "cpu": [
619 | "x64"
620 | ],
621 | "optional": true,
622 | "os": [
623 | "openbsd"
624 | ],
625 | "engines": {
626 | "node": ">=12"
627 | }
628 | },
629 | "node_modules/@esbuild/sunos-x64": {
630 | "version": "0.19.12",
631 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
632 | "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
633 | "cpu": [
634 | "x64"
635 | ],
636 | "optional": true,
637 | "os": [
638 | "sunos"
639 | ],
640 | "engines": {
641 | "node": ">=12"
642 | }
643 | },
644 | "node_modules/@esbuild/win32-arm64": {
645 | "version": "0.19.12",
646 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
647 | "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
648 | "cpu": [
649 | "arm64"
650 | ],
651 | "optional": true,
652 | "os": [
653 | "win32"
654 | ],
655 | "engines": {
656 | "node": ">=12"
657 | }
658 | },
659 | "node_modules/@esbuild/win32-ia32": {
660 | "version": "0.19.12",
661 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
662 | "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
663 | "cpu": [
664 | "ia32"
665 | ],
666 | "optional": true,
667 | "os": [
668 | "win32"
669 | ],
670 | "engines": {
671 | "node": ">=12"
672 | }
673 | },
674 | "node_modules/@esbuild/win32-x64": {
675 | "version": "0.19.12",
676 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
677 | "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
678 | "cpu": [
679 | "x64"
680 | ],
681 | "optional": true,
682 | "os": [
683 | "win32"
684 | ],
685 | "engines": {
686 | "node": ">=12"
687 | }
688 | },
689 | "node_modules/@jridgewell/gen-mapping": {
690 | "version": "0.3.5",
691 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
692 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
693 | "dependencies": {
694 | "@jridgewell/set-array": "^1.2.1",
695 | "@jridgewell/sourcemap-codec": "^1.4.10",
696 | "@jridgewell/trace-mapping": "^0.3.24"
697 | },
698 | "engines": {
699 | "node": ">=6.0.0"
700 | }
701 | },
702 | "node_modules/@jridgewell/resolve-uri": {
703 | "version": "3.1.2",
704 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
705 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
706 | "engines": {
707 | "node": ">=6.0.0"
708 | }
709 | },
710 | "node_modules/@jridgewell/set-array": {
711 | "version": "1.2.1",
712 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
713 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
714 | "engines": {
715 | "node": ">=6.0.0"
716 | }
717 | },
718 | "node_modules/@jridgewell/sourcemap-codec": {
719 | "version": "1.4.15",
720 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
721 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
722 | },
723 | "node_modules/@jridgewell/trace-mapping": {
724 | "version": "0.3.25",
725 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
726 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
727 | "dependencies": {
728 | "@jridgewell/resolve-uri": "^3.1.0",
729 | "@jridgewell/sourcemap-codec": "^1.4.14"
730 | }
731 | },
732 | "node_modules/@remix-run/router": {
733 | "version": "1.15.3",
734 | "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz",
735 | "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==",
736 | "engines": {
737 | "node": ">=14.0.0"
738 | }
739 | },
740 | "node_modules/@rollup/pluginutils": {
741 | "version": "5.1.0",
742 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
743 | "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
744 | "dependencies": {
745 | "@types/estree": "^1.0.0",
746 | "estree-walker": "^2.0.2",
747 | "picomatch": "^2.3.1"
748 | },
749 | "engines": {
750 | "node": ">=14.0.0"
751 | },
752 | "peerDependencies": {
753 | "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
754 | },
755 | "peerDependenciesMeta": {
756 | "rollup": {
757 | "optional": true
758 | }
759 | }
760 | },
761 | "node_modules/@rollup/rollup-android-arm-eabi": {
762 | "version": "4.12.1",
763 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.1.tgz",
764 | "integrity": "sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==",
765 | "cpu": [
766 | "arm"
767 | ],
768 | "optional": true,
769 | "os": [
770 | "android"
771 | ]
772 | },
773 | "node_modules/@rollup/rollup-android-arm64": {
774 | "version": "4.12.1",
775 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.1.tgz",
776 | "integrity": "sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==",
777 | "cpu": [
778 | "arm64"
779 | ],
780 | "optional": true,
781 | "os": [
782 | "android"
783 | ]
784 | },
785 | "node_modules/@rollup/rollup-darwin-arm64": {
786 | "version": "4.12.1",
787 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.1.tgz",
788 | "integrity": "sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==",
789 | "cpu": [
790 | "arm64"
791 | ],
792 | "optional": true,
793 | "os": [
794 | "darwin"
795 | ]
796 | },
797 | "node_modules/@rollup/rollup-darwin-x64": {
798 | "version": "4.12.1",
799 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.1.tgz",
800 | "integrity": "sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==",
801 | "cpu": [
802 | "x64"
803 | ],
804 | "optional": true,
805 | "os": [
806 | "darwin"
807 | ]
808 | },
809 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
810 | "version": "4.12.1",
811 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.1.tgz",
812 | "integrity": "sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==",
813 | "cpu": [
814 | "arm"
815 | ],
816 | "optional": true,
817 | "os": [
818 | "linux"
819 | ]
820 | },
821 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
822 | "version": "4.12.1",
823 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.1.tgz",
824 | "integrity": "sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==",
825 | "cpu": [
826 | "arm64"
827 | ],
828 | "optional": true,
829 | "os": [
830 | "linux"
831 | ]
832 | },
833 | "node_modules/@rollup/rollup-linux-arm64-musl": {
834 | "version": "4.12.1",
835 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.1.tgz",
836 | "integrity": "sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==",
837 | "cpu": [
838 | "arm64"
839 | ],
840 | "optional": true,
841 | "os": [
842 | "linux"
843 | ]
844 | },
845 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
846 | "version": "4.12.1",
847 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.1.tgz",
848 | "integrity": "sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==",
849 | "cpu": [
850 | "riscv64"
851 | ],
852 | "optional": true,
853 | "os": [
854 | "linux"
855 | ]
856 | },
857 | "node_modules/@rollup/rollup-linux-x64-gnu": {
858 | "version": "4.12.1",
859 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.1.tgz",
860 | "integrity": "sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==",
861 | "cpu": [
862 | "x64"
863 | ],
864 | "optional": true,
865 | "os": [
866 | "linux"
867 | ]
868 | },
869 | "node_modules/@rollup/rollup-linux-x64-musl": {
870 | "version": "4.12.1",
871 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.1.tgz",
872 | "integrity": "sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==",
873 | "cpu": [
874 | "x64"
875 | ],
876 | "optional": true,
877 | "os": [
878 | "linux"
879 | ]
880 | },
881 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
882 | "version": "4.12.1",
883 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.1.tgz",
884 | "integrity": "sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==",
885 | "cpu": [
886 | "arm64"
887 | ],
888 | "optional": true,
889 | "os": [
890 | "win32"
891 | ]
892 | },
893 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
894 | "version": "4.12.1",
895 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.1.tgz",
896 | "integrity": "sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==",
897 | "cpu": [
898 | "ia32"
899 | ],
900 | "optional": true,
901 | "os": [
902 | "win32"
903 | ]
904 | },
905 | "node_modules/@rollup/rollup-win32-x64-msvc": {
906 | "version": "4.12.1",
907 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.1.tgz",
908 | "integrity": "sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==",
909 | "cpu": [
910 | "x64"
911 | ],
912 | "optional": true,
913 | "os": [
914 | "win32"
915 | ]
916 | },
917 | "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
918 | "version": "8.0.0",
919 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
920 | "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
921 | "engines": {
922 | "node": ">=14"
923 | },
924 | "funding": {
925 | "type": "github",
926 | "url": "https://github.com/sponsors/gregberge"
927 | },
928 | "peerDependencies": {
929 | "@babel/core": "^7.0.0-0"
930 | }
931 | },
932 | "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
933 | "version": "8.0.0",
934 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
935 | "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
936 | "engines": {
937 | "node": ">=14"
938 | },
939 | "funding": {
940 | "type": "github",
941 | "url": "https://github.com/sponsors/gregberge"
942 | },
943 | "peerDependencies": {
944 | "@babel/core": "^7.0.0-0"
945 | }
946 | },
947 | "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
948 | "version": "8.0.0",
949 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
950 | "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
951 | "engines": {
952 | "node": ">=14"
953 | },
954 | "funding": {
955 | "type": "github",
956 | "url": "https://github.com/sponsors/gregberge"
957 | },
958 | "peerDependencies": {
959 | "@babel/core": "^7.0.0-0"
960 | }
961 | },
962 | "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
963 | "version": "8.0.0",
964 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
965 | "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
966 | "engines": {
967 | "node": ">=14"
968 | },
969 | "funding": {
970 | "type": "github",
971 | "url": "https://github.com/sponsors/gregberge"
972 | },
973 | "peerDependencies": {
974 | "@babel/core": "^7.0.0-0"
975 | }
976 | },
977 | "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
978 | "version": "8.0.0",
979 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
980 | "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
981 | "engines": {
982 | "node": ">=14"
983 | },
984 | "funding": {
985 | "type": "github",
986 | "url": "https://github.com/sponsors/gregberge"
987 | },
988 | "peerDependencies": {
989 | "@babel/core": "^7.0.0-0"
990 | }
991 | },
992 | "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
993 | "version": "8.0.0",
994 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
995 | "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
996 | "engines": {
997 | "node": ">=14"
998 | },
999 | "funding": {
1000 | "type": "github",
1001 | "url": "https://github.com/sponsors/gregberge"
1002 | },
1003 | "peerDependencies": {
1004 | "@babel/core": "^7.0.0-0"
1005 | }
1006 | },
1007 | "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
1008 | "version": "8.1.0",
1009 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
1010 | "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
1011 | "engines": {
1012 | "node": ">=14"
1013 | },
1014 | "funding": {
1015 | "type": "github",
1016 | "url": "https://github.com/sponsors/gregberge"
1017 | },
1018 | "peerDependencies": {
1019 | "@babel/core": "^7.0.0-0"
1020 | }
1021 | },
1022 | "node_modules/@svgr/babel-plugin-transform-svg-component": {
1023 | "version": "8.0.0",
1024 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
1025 | "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
1026 | "engines": {
1027 | "node": ">=12"
1028 | },
1029 | "funding": {
1030 | "type": "github",
1031 | "url": "https://github.com/sponsors/gregberge"
1032 | },
1033 | "peerDependencies": {
1034 | "@babel/core": "^7.0.0-0"
1035 | }
1036 | },
1037 | "node_modules/@svgr/babel-preset": {
1038 | "version": "8.1.0",
1039 | "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
1040 | "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
1041 | "dependencies": {
1042 | "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
1043 | "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
1044 | "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
1045 | "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
1046 | "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
1047 | "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
1048 | "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
1049 | "@svgr/babel-plugin-transform-svg-component": "8.0.0"
1050 | },
1051 | "engines": {
1052 | "node": ">=14"
1053 | },
1054 | "funding": {
1055 | "type": "github",
1056 | "url": "https://github.com/sponsors/gregberge"
1057 | },
1058 | "peerDependencies": {
1059 | "@babel/core": "^7.0.0-0"
1060 | }
1061 | },
1062 | "node_modules/@svgr/core": {
1063 | "version": "8.1.0",
1064 | "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
1065 | "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
1066 | "dependencies": {
1067 | "@babel/core": "^7.21.3",
1068 | "@svgr/babel-preset": "8.1.0",
1069 | "camelcase": "^6.2.0",
1070 | "cosmiconfig": "^8.1.3",
1071 | "snake-case": "^3.0.4"
1072 | },
1073 | "engines": {
1074 | "node": ">=14"
1075 | },
1076 | "funding": {
1077 | "type": "github",
1078 | "url": "https://github.com/sponsors/gregberge"
1079 | }
1080 | },
1081 | "node_modules/@svgr/hast-util-to-babel-ast": {
1082 | "version": "8.0.0",
1083 | "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
1084 | "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
1085 | "dependencies": {
1086 | "@babel/types": "^7.21.3",
1087 | "entities": "^4.4.0"
1088 | },
1089 | "engines": {
1090 | "node": ">=14"
1091 | },
1092 | "funding": {
1093 | "type": "github",
1094 | "url": "https://github.com/sponsors/gregberge"
1095 | }
1096 | },
1097 | "node_modules/@svgr/plugin-jsx": {
1098 | "version": "8.1.0",
1099 | "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
1100 | "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
1101 | "dependencies": {
1102 | "@babel/core": "^7.21.3",
1103 | "@svgr/babel-preset": "8.1.0",
1104 | "@svgr/hast-util-to-babel-ast": "8.0.0",
1105 | "svg-parser": "^2.0.4"
1106 | },
1107 | "engines": {
1108 | "node": ">=14"
1109 | },
1110 | "funding": {
1111 | "type": "github",
1112 | "url": "https://github.com/sponsors/gregberge"
1113 | },
1114 | "peerDependencies": {
1115 | "@svgr/core": "*"
1116 | }
1117 | },
1118 | "node_modules/@tauri-apps/api": {
1119 | "version": "1.5.3",
1120 | "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.5.3.tgz",
1121 | "integrity": "sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==",
1122 | "engines": {
1123 | "node": ">= 14.6.0",
1124 | "npm": ">= 6.6.0",
1125 | "yarn": ">= 1.19.1"
1126 | },
1127 | "funding": {
1128 | "type": "opencollective",
1129 | "url": "https://opencollective.com/tauri"
1130 | }
1131 | },
1132 | "node_modules/@tauri-apps/cli": {
1133 | "version": "1.5.11",
1134 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.5.11.tgz",
1135 | "integrity": "sha512-B475D7phZrq5sZ3kDABH4g2mEoUIHtnIO+r4ZGAAfsjMbZCwXxR/jlMGTEL+VO3YzjpF7gQe38IzB4vLBbVppw==",
1136 | "dev": true,
1137 | "bin": {
1138 | "tauri": "tauri.js"
1139 | },
1140 | "engines": {
1141 | "node": ">= 10"
1142 | },
1143 | "funding": {
1144 | "type": "opencollective",
1145 | "url": "https://opencollective.com/tauri"
1146 | },
1147 | "optionalDependencies": {
1148 | "@tauri-apps/cli-darwin-arm64": "1.5.11",
1149 | "@tauri-apps/cli-darwin-x64": "1.5.11",
1150 | "@tauri-apps/cli-linux-arm-gnueabihf": "1.5.11",
1151 | "@tauri-apps/cli-linux-arm64-gnu": "1.5.11",
1152 | "@tauri-apps/cli-linux-arm64-musl": "1.5.11",
1153 | "@tauri-apps/cli-linux-x64-gnu": "1.5.11",
1154 | "@tauri-apps/cli-linux-x64-musl": "1.5.11",
1155 | "@tauri-apps/cli-win32-arm64-msvc": "1.5.11",
1156 | "@tauri-apps/cli-win32-ia32-msvc": "1.5.11",
1157 | "@tauri-apps/cli-win32-x64-msvc": "1.5.11"
1158 | }
1159 | },
1160 | "node_modules/@tauri-apps/cli-darwin-arm64": {
1161 | "version": "1.5.11",
1162 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.5.11.tgz",
1163 | "integrity": "sha512-2NLSglDb5VfvTbMtmOKWyD+oaL/e8Z/ZZGovHtUFyUSFRabdXc6cZOlcD1BhFvYkHqm+TqGaz5qtPR5UbqDs8A==",
1164 | "cpu": [
1165 | "arm64"
1166 | ],
1167 | "dev": true,
1168 | "optional": true,
1169 | "os": [
1170 | "darwin"
1171 | ],
1172 | "engines": {
1173 | "node": ">= 10"
1174 | }
1175 | },
1176 | "node_modules/@tauri-apps/cli-darwin-x64": {
1177 | "version": "1.5.11",
1178 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.5.11.tgz",
1179 | "integrity": "sha512-/RQllHiJRH2fJOCudtZlaUIjofkHzP3zZgxi71ZUm7Fy80smU5TDfwpwOvB0wSVh0g/ciDjMArCSTo0MRvL+ag==",
1180 | "cpu": [
1181 | "x64"
1182 | ],
1183 | "dev": true,
1184 | "optional": true,
1185 | "os": [
1186 | "darwin"
1187 | ],
1188 | "engines": {
1189 | "node": ">= 10"
1190 | }
1191 | },
1192 | "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
1193 | "version": "1.5.11",
1194 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.5.11.tgz",
1195 | "integrity": "sha512-IlBuBPKmMm+a5LLUEK6a21UGr9ZYd6zKuKLq6IGM4tVweQa8Sf2kP2Nqs74dMGIUrLmMs0vuqdURpykQg+z4NQ==",
1196 | "cpu": [
1197 | "arm"
1198 | ],
1199 | "dev": true,
1200 | "optional": true,
1201 | "os": [
1202 | "linux"
1203 | ],
1204 | "engines": {
1205 | "node": ">= 10"
1206 | }
1207 | },
1208 | "node_modules/@tauri-apps/cli-linux-arm64-gnu": {
1209 | "version": "1.5.11",
1210 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.5.11.tgz",
1211 | "integrity": "sha512-w+k1bNHCU/GbmXshtAhyTwqosThUDmCEFLU4Zkin1vl2fuAtQry2RN7thfcJFepblUGL/J7yh3Q/0+BCjtspKQ==",
1212 | "cpu": [
1213 | "arm64"
1214 | ],
1215 | "dev": true,
1216 | "optional": true,
1217 | "os": [
1218 | "linux"
1219 | ],
1220 | "engines": {
1221 | "node": ">= 10"
1222 | }
1223 | },
1224 | "node_modules/@tauri-apps/cli-linux-arm64-musl": {
1225 | "version": "1.5.11",
1226 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.11.tgz",
1227 | "integrity": "sha512-PN6/dl+OfYQ/qrAy4HRAfksJ2AyWQYn2IA/2Wwpaa7SDRz2+hzwTQkvajuvy0sQ5L2WCG7ymFYRYMbpC6Hk9Pg==",
1228 | "cpu": [
1229 | "arm64"
1230 | ],
1231 | "dev": true,
1232 | "optional": true,
1233 | "os": [
1234 | "linux"
1235 | ],
1236 | "engines": {
1237 | "node": ">= 10"
1238 | }
1239 | },
1240 | "node_modules/@tauri-apps/cli-linux-x64-gnu": {
1241 | "version": "1.5.11",
1242 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.5.11.tgz",
1243 | "integrity": "sha512-MTVXLi89Nj7Apcvjezw92m7ZqIDKT5SFKZtVPCg6RoLUBTzko/BQoXYIRWmdoz2pgkHDUHgO2OMJ8oKzzddXbw==",
1244 | "cpu": [
1245 | "x64"
1246 | ],
1247 | "dev": true,
1248 | "optional": true,
1249 | "os": [
1250 | "linux"
1251 | ],
1252 | "engines": {
1253 | "node": ">= 10"
1254 | }
1255 | },
1256 | "node_modules/@tauri-apps/cli-linux-x64-musl": {
1257 | "version": "1.5.11",
1258 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.11.tgz",
1259 | "integrity": "sha512-kwzAjqFpz7rvTs7WGZLy/a5nS5t15QKr3E9FG95MNF0exTl3d29YoAUAe1Mn0mOSrTJ9Z+vYYAcI/QdcsGBP+w==",
1260 | "cpu": [
1261 | "x64"
1262 | ],
1263 | "dev": true,
1264 | "optional": true,
1265 | "os": [
1266 | "linux"
1267 | ],
1268 | "engines": {
1269 | "node": ">= 10"
1270 | }
1271 | },
1272 | "node_modules/@tauri-apps/cli-win32-arm64-msvc": {
1273 | "version": "1.5.11",
1274 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.5.11.tgz",
1275 | "integrity": "sha512-L+5NZ/rHrSUrMxjj6YpFYCXp6wHnq8c8SfDTBOX8dO8x+5283/vftb4vvuGIsLS4UwUFXFnLt3XQr44n84E67Q==",
1276 | "cpu": [
1277 | "arm64"
1278 | ],
1279 | "dev": true,
1280 | "optional": true,
1281 | "os": [
1282 | "win32"
1283 | ],
1284 | "engines": {
1285 | "node": ">= 10"
1286 | }
1287 | },
1288 | "node_modules/@tauri-apps/cli-win32-ia32-msvc": {
1289 | "version": "1.5.11",
1290 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.5.11.tgz",
1291 | "integrity": "sha512-oVlD9IVewrY0lZzTdb71kNXkjdgMqFq+ohb67YsJb4Rf7o8A9DTlFds1XLCe3joqLMm4M+gvBKD7YnGIdxQ9vA==",
1292 | "cpu": [
1293 | "ia32"
1294 | ],
1295 | "dev": true,
1296 | "optional": true,
1297 | "os": [
1298 | "win32"
1299 | ],
1300 | "engines": {
1301 | "node": ">= 10"
1302 | }
1303 | },
1304 | "node_modules/@tauri-apps/cli-win32-x64-msvc": {
1305 | "version": "1.5.11",
1306 | "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.5.11.tgz",
1307 | "integrity": "sha512-1CexcqUFCis5ypUIMOKllxUBrna09McbftWENgvVXMfA+SP+yPDPAVb8fIvUcdTIwR/yHJwcIucmTB4anww4vg==",
1308 | "cpu": [
1309 | "x64"
1310 | ],
1311 | "dev": true,
1312 | "optional": true,
1313 | "os": [
1314 | "win32"
1315 | ],
1316 | "engines": {
1317 | "node": ">= 10"
1318 | }
1319 | },
1320 | "node_modules/@types/babel__core": {
1321 | "version": "7.20.5",
1322 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
1323 | "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
1324 | "dev": true,
1325 | "dependencies": {
1326 | "@babel/parser": "^7.20.7",
1327 | "@babel/types": "^7.20.7",
1328 | "@types/babel__generator": "*",
1329 | "@types/babel__template": "*",
1330 | "@types/babel__traverse": "*"
1331 | }
1332 | },
1333 | "node_modules/@types/babel__generator": {
1334 | "version": "7.6.8",
1335 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
1336 | "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
1337 | "dev": true,
1338 | "dependencies": {
1339 | "@babel/types": "^7.0.0"
1340 | }
1341 | },
1342 | "node_modules/@types/babel__template": {
1343 | "version": "7.4.4",
1344 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
1345 | "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
1346 | "dev": true,
1347 | "dependencies": {
1348 | "@babel/parser": "^7.1.0",
1349 | "@babel/types": "^7.0.0"
1350 | }
1351 | },
1352 | "node_modules/@types/babel__traverse": {
1353 | "version": "7.20.5",
1354 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
1355 | "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
1356 | "dev": true,
1357 | "dependencies": {
1358 | "@babel/types": "^7.20.7"
1359 | }
1360 | },
1361 | "node_modules/@types/estree": {
1362 | "version": "1.0.5",
1363 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
1364 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
1365 | },
1366 | "node_modules/@vitejs/plugin-react": {
1367 | "version": "4.2.1",
1368 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz",
1369 | "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==",
1370 | "dev": true,
1371 | "dependencies": {
1372 | "@babel/core": "^7.23.5",
1373 | "@babel/plugin-transform-react-jsx-self": "^7.23.3",
1374 | "@babel/plugin-transform-react-jsx-source": "^7.23.3",
1375 | "@types/babel__core": "^7.20.5",
1376 | "react-refresh": "^0.14.0"
1377 | },
1378 | "engines": {
1379 | "node": "^14.18.0 || >=16.0.0"
1380 | },
1381 | "peerDependencies": {
1382 | "vite": "^4.2.0 || ^5.0.0"
1383 | }
1384 | },
1385 | "node_modules/ansi-styles": {
1386 | "version": "3.2.1",
1387 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1388 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1389 | "dependencies": {
1390 | "color-convert": "^1.9.0"
1391 | },
1392 | "engines": {
1393 | "node": ">=4"
1394 | }
1395 | },
1396 | "node_modules/argparse": {
1397 | "version": "2.0.1",
1398 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1399 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
1400 | },
1401 | "node_modules/browserslist": {
1402 | "version": "4.23.0",
1403 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
1404 | "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
1405 | "funding": [
1406 | {
1407 | "type": "opencollective",
1408 | "url": "https://opencollective.com/browserslist"
1409 | },
1410 | {
1411 | "type": "tidelift",
1412 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1413 | },
1414 | {
1415 | "type": "github",
1416 | "url": "https://github.com/sponsors/ai"
1417 | }
1418 | ],
1419 | "dependencies": {
1420 | "caniuse-lite": "^1.0.30001587",
1421 | "electron-to-chromium": "^1.4.668",
1422 | "node-releases": "^2.0.14",
1423 | "update-browserslist-db": "^1.0.13"
1424 | },
1425 | "bin": {
1426 | "browserslist": "cli.js"
1427 | },
1428 | "engines": {
1429 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
1430 | }
1431 | },
1432 | "node_modules/callsites": {
1433 | "version": "3.1.0",
1434 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1435 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1436 | "engines": {
1437 | "node": ">=6"
1438 | }
1439 | },
1440 | "node_modules/camelcase": {
1441 | "version": "6.3.0",
1442 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
1443 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
1444 | "engines": {
1445 | "node": ">=10"
1446 | },
1447 | "funding": {
1448 | "url": "https://github.com/sponsors/sindresorhus"
1449 | }
1450 | },
1451 | "node_modules/caniuse-lite": {
1452 | "version": "1.0.30001597",
1453 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz",
1454 | "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==",
1455 | "funding": [
1456 | {
1457 | "type": "opencollective",
1458 | "url": "https://opencollective.com/browserslist"
1459 | },
1460 | {
1461 | "type": "tidelift",
1462 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
1463 | },
1464 | {
1465 | "type": "github",
1466 | "url": "https://github.com/sponsors/ai"
1467 | }
1468 | ]
1469 | },
1470 | "node_modules/chalk": {
1471 | "version": "2.4.2",
1472 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1473 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1474 | "dependencies": {
1475 | "ansi-styles": "^3.2.1",
1476 | "escape-string-regexp": "^1.0.5",
1477 | "supports-color": "^5.3.0"
1478 | },
1479 | "engines": {
1480 | "node": ">=4"
1481 | }
1482 | },
1483 | "node_modules/classnames": {
1484 | "version": "2.5.1",
1485 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
1486 | "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
1487 | },
1488 | "node_modules/color-convert": {
1489 | "version": "1.9.3",
1490 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1491 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1492 | "dependencies": {
1493 | "color-name": "1.1.3"
1494 | }
1495 | },
1496 | "node_modules/color-name": {
1497 | "version": "1.1.3",
1498 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1499 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
1500 | },
1501 | "node_modules/convert-source-map": {
1502 | "version": "2.0.0",
1503 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
1504 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
1505 | },
1506 | "node_modules/copy-anything": {
1507 | "version": "2.0.6",
1508 | "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
1509 | "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
1510 | "devOptional": true,
1511 | "dependencies": {
1512 | "is-what": "^3.14.1"
1513 | },
1514 | "funding": {
1515 | "url": "https://github.com/sponsors/mesqueeb"
1516 | }
1517 | },
1518 | "node_modules/cosmiconfig": {
1519 | "version": "8.3.6",
1520 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
1521 | "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
1522 | "dependencies": {
1523 | "import-fresh": "^3.3.0",
1524 | "js-yaml": "^4.1.0",
1525 | "parse-json": "^5.2.0",
1526 | "path-type": "^4.0.0"
1527 | },
1528 | "engines": {
1529 | "node": ">=14"
1530 | },
1531 | "funding": {
1532 | "url": "https://github.com/sponsors/d-fischer"
1533 | },
1534 | "peerDependencies": {
1535 | "typescript": ">=4.9.5"
1536 | },
1537 | "peerDependenciesMeta": {
1538 | "typescript": {
1539 | "optional": true
1540 | }
1541 | }
1542 | },
1543 | "node_modules/debug": {
1544 | "version": "4.3.4",
1545 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1546 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1547 | "dependencies": {
1548 | "ms": "2.1.2"
1549 | },
1550 | "engines": {
1551 | "node": ">=6.0"
1552 | },
1553 | "peerDependenciesMeta": {
1554 | "supports-color": {
1555 | "optional": true
1556 | }
1557 | }
1558 | },
1559 | "node_modules/dot-case": {
1560 | "version": "3.0.4",
1561 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
1562 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
1563 | "dependencies": {
1564 | "no-case": "^3.0.4",
1565 | "tslib": "^2.0.3"
1566 | }
1567 | },
1568 | "node_modules/electron-to-chromium": {
1569 | "version": "1.4.699",
1570 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz",
1571 | "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw=="
1572 | },
1573 | "node_modules/entities": {
1574 | "version": "4.5.0",
1575 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
1576 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
1577 | "engines": {
1578 | "node": ">=0.12"
1579 | },
1580 | "funding": {
1581 | "url": "https://github.com/fb55/entities?sponsor=1"
1582 | }
1583 | },
1584 | "node_modules/errno": {
1585 | "version": "0.1.8",
1586 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
1587 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
1588 | "optional": true,
1589 | "dependencies": {
1590 | "prr": "~1.0.1"
1591 | },
1592 | "bin": {
1593 | "errno": "cli.js"
1594 | }
1595 | },
1596 | "node_modules/error-ex": {
1597 | "version": "1.3.2",
1598 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1599 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1600 | "dependencies": {
1601 | "is-arrayish": "^0.2.1"
1602 | }
1603 | },
1604 | "node_modules/esbuild": {
1605 | "version": "0.19.12",
1606 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
1607 | "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
1608 | "hasInstallScript": true,
1609 | "bin": {
1610 | "esbuild": "bin/esbuild"
1611 | },
1612 | "engines": {
1613 | "node": ">=12"
1614 | },
1615 | "optionalDependencies": {
1616 | "@esbuild/aix-ppc64": "0.19.12",
1617 | "@esbuild/android-arm": "0.19.12",
1618 | "@esbuild/android-arm64": "0.19.12",
1619 | "@esbuild/android-x64": "0.19.12",
1620 | "@esbuild/darwin-arm64": "0.19.12",
1621 | "@esbuild/darwin-x64": "0.19.12",
1622 | "@esbuild/freebsd-arm64": "0.19.12",
1623 | "@esbuild/freebsd-x64": "0.19.12",
1624 | "@esbuild/linux-arm": "0.19.12",
1625 | "@esbuild/linux-arm64": "0.19.12",
1626 | "@esbuild/linux-ia32": "0.19.12",
1627 | "@esbuild/linux-loong64": "0.19.12",
1628 | "@esbuild/linux-mips64el": "0.19.12",
1629 | "@esbuild/linux-ppc64": "0.19.12",
1630 | "@esbuild/linux-riscv64": "0.19.12",
1631 | "@esbuild/linux-s390x": "0.19.12",
1632 | "@esbuild/linux-x64": "0.19.12",
1633 | "@esbuild/netbsd-x64": "0.19.12",
1634 | "@esbuild/openbsd-x64": "0.19.12",
1635 | "@esbuild/sunos-x64": "0.19.12",
1636 | "@esbuild/win32-arm64": "0.19.12",
1637 | "@esbuild/win32-ia32": "0.19.12",
1638 | "@esbuild/win32-x64": "0.19.12"
1639 | }
1640 | },
1641 | "node_modules/escalade": {
1642 | "version": "3.1.2",
1643 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
1644 | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
1645 | "engines": {
1646 | "node": ">=6"
1647 | }
1648 | },
1649 | "node_modules/escape-string-regexp": {
1650 | "version": "1.0.5",
1651 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1652 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1653 | "engines": {
1654 | "node": ">=0.8.0"
1655 | }
1656 | },
1657 | "node_modules/estree-walker": {
1658 | "version": "2.0.2",
1659 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1660 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1661 | },
1662 | "node_modules/fsevents": {
1663 | "version": "2.3.3",
1664 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1665 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1666 | "hasInstallScript": true,
1667 | "optional": true,
1668 | "os": [
1669 | "darwin"
1670 | ],
1671 | "engines": {
1672 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1673 | }
1674 | },
1675 | "node_modules/gensync": {
1676 | "version": "1.0.0-beta.2",
1677 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1678 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1679 | "engines": {
1680 | "node": ">=6.9.0"
1681 | }
1682 | },
1683 | "node_modules/globals": {
1684 | "version": "11.12.0",
1685 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1686 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1687 | "engines": {
1688 | "node": ">=4"
1689 | }
1690 | },
1691 | "node_modules/graceful-fs": {
1692 | "version": "4.2.11",
1693 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1694 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1695 | "optional": true
1696 | },
1697 | "node_modules/has-flag": {
1698 | "version": "3.0.0",
1699 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1700 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1701 | "engines": {
1702 | "node": ">=4"
1703 | }
1704 | },
1705 | "node_modules/iconv-lite": {
1706 | "version": "0.6.3",
1707 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
1708 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
1709 | "optional": true,
1710 | "dependencies": {
1711 | "safer-buffer": ">= 2.1.2 < 3.0.0"
1712 | },
1713 | "engines": {
1714 | "node": ">=0.10.0"
1715 | }
1716 | },
1717 | "node_modules/image-size": {
1718 | "version": "0.5.5",
1719 | "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
1720 | "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
1721 | "optional": true,
1722 | "bin": {
1723 | "image-size": "bin/image-size.js"
1724 | },
1725 | "engines": {
1726 | "node": ">=0.10.0"
1727 | }
1728 | },
1729 | "node_modules/import-fresh": {
1730 | "version": "3.3.0",
1731 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1732 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1733 | "dependencies": {
1734 | "parent-module": "^1.0.0",
1735 | "resolve-from": "^4.0.0"
1736 | },
1737 | "engines": {
1738 | "node": ">=6"
1739 | },
1740 | "funding": {
1741 | "url": "https://github.com/sponsors/sindresorhus"
1742 | }
1743 | },
1744 | "node_modules/is-arrayish": {
1745 | "version": "0.2.1",
1746 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1747 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
1748 | },
1749 | "node_modules/is-what": {
1750 | "version": "3.14.1",
1751 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
1752 | "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
1753 | "devOptional": true
1754 | },
1755 | "node_modules/js-tokens": {
1756 | "version": "4.0.0",
1757 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1758 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1759 | },
1760 | "node_modules/js-yaml": {
1761 | "version": "4.1.0",
1762 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1763 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1764 | "dependencies": {
1765 | "argparse": "^2.0.1"
1766 | },
1767 | "bin": {
1768 | "js-yaml": "bin/js-yaml.js"
1769 | }
1770 | },
1771 | "node_modules/jsesc": {
1772 | "version": "2.5.2",
1773 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1774 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1775 | "bin": {
1776 | "jsesc": "bin/jsesc"
1777 | },
1778 | "engines": {
1779 | "node": ">=4"
1780 | }
1781 | },
1782 | "node_modules/json-parse-even-better-errors": {
1783 | "version": "2.3.1",
1784 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1785 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
1786 | },
1787 | "node_modules/json5": {
1788 | "version": "2.2.3",
1789 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
1790 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
1791 | "bin": {
1792 | "json5": "lib/cli.js"
1793 | },
1794 | "engines": {
1795 | "node": ">=6"
1796 | }
1797 | },
1798 | "node_modules/less": {
1799 | "version": "4.2.0",
1800 | "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz",
1801 | "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==",
1802 | "devOptional": true,
1803 | "dependencies": {
1804 | "copy-anything": "^2.0.1",
1805 | "parse-node-version": "^1.0.1",
1806 | "tslib": "^2.3.0"
1807 | },
1808 | "bin": {
1809 | "lessc": "bin/lessc"
1810 | },
1811 | "engines": {
1812 | "node": ">=6"
1813 | },
1814 | "optionalDependencies": {
1815 | "errno": "^0.1.1",
1816 | "graceful-fs": "^4.1.2",
1817 | "image-size": "~0.5.0",
1818 | "make-dir": "^2.1.0",
1819 | "mime": "^1.4.1",
1820 | "needle": "^3.1.0",
1821 | "source-map": "~0.6.0"
1822 | }
1823 | },
1824 | "node_modules/lines-and-columns": {
1825 | "version": "1.2.4",
1826 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1827 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
1828 | },
1829 | "node_modules/loose-envify": {
1830 | "version": "1.4.0",
1831 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1832 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1833 | "dependencies": {
1834 | "js-tokens": "^3.0.0 || ^4.0.0"
1835 | },
1836 | "bin": {
1837 | "loose-envify": "cli.js"
1838 | }
1839 | },
1840 | "node_modules/lower-case": {
1841 | "version": "2.0.2",
1842 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
1843 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
1844 | "dependencies": {
1845 | "tslib": "^2.0.3"
1846 | }
1847 | },
1848 | "node_modules/lru-cache": {
1849 | "version": "5.1.1",
1850 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
1851 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
1852 | "dependencies": {
1853 | "yallist": "^3.0.2"
1854 | }
1855 | },
1856 | "node_modules/make-dir": {
1857 | "version": "2.1.0",
1858 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
1859 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
1860 | "optional": true,
1861 | "dependencies": {
1862 | "pify": "^4.0.1",
1863 | "semver": "^5.6.0"
1864 | },
1865 | "engines": {
1866 | "node": ">=6"
1867 | }
1868 | },
1869 | "node_modules/make-dir/node_modules/semver": {
1870 | "version": "5.7.2",
1871 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
1872 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
1873 | "optional": true,
1874 | "bin": {
1875 | "semver": "bin/semver"
1876 | }
1877 | },
1878 | "node_modules/mime": {
1879 | "version": "1.6.0",
1880 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1881 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1882 | "optional": true,
1883 | "bin": {
1884 | "mime": "cli.js"
1885 | },
1886 | "engines": {
1887 | "node": ">=4"
1888 | }
1889 | },
1890 | "node_modules/ms": {
1891 | "version": "2.1.2",
1892 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1893 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1894 | },
1895 | "node_modules/nanoid": {
1896 | "version": "3.3.7",
1897 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
1898 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
1899 | "funding": [
1900 | {
1901 | "type": "github",
1902 | "url": "https://github.com/sponsors/ai"
1903 | }
1904 | ],
1905 | "bin": {
1906 | "nanoid": "bin/nanoid.cjs"
1907 | },
1908 | "engines": {
1909 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1910 | }
1911 | },
1912 | "node_modules/needle": {
1913 | "version": "3.3.1",
1914 | "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz",
1915 | "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==",
1916 | "optional": true,
1917 | "dependencies": {
1918 | "iconv-lite": "^0.6.3",
1919 | "sax": "^1.2.4"
1920 | },
1921 | "bin": {
1922 | "needle": "bin/needle"
1923 | },
1924 | "engines": {
1925 | "node": ">= 4.4.x"
1926 | }
1927 | },
1928 | "node_modules/no-case": {
1929 | "version": "3.0.4",
1930 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
1931 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
1932 | "dependencies": {
1933 | "lower-case": "^2.0.2",
1934 | "tslib": "^2.0.3"
1935 | }
1936 | },
1937 | "node_modules/node-releases": {
1938 | "version": "2.0.14",
1939 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
1940 | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
1941 | },
1942 | "node_modules/normalize.css": {
1943 | "version": "8.0.1",
1944 | "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
1945 | "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
1946 | },
1947 | "node_modules/parent-module": {
1948 | "version": "1.0.1",
1949 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1950 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1951 | "dependencies": {
1952 | "callsites": "^3.0.0"
1953 | },
1954 | "engines": {
1955 | "node": ">=6"
1956 | }
1957 | },
1958 | "node_modules/parse-json": {
1959 | "version": "5.2.0",
1960 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1961 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1962 | "dependencies": {
1963 | "@babel/code-frame": "^7.0.0",
1964 | "error-ex": "^1.3.1",
1965 | "json-parse-even-better-errors": "^2.3.0",
1966 | "lines-and-columns": "^1.1.6"
1967 | },
1968 | "engines": {
1969 | "node": ">=8"
1970 | },
1971 | "funding": {
1972 | "url": "https://github.com/sponsors/sindresorhus"
1973 | }
1974 | },
1975 | "node_modules/parse-node-version": {
1976 | "version": "1.0.1",
1977 | "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
1978 | "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
1979 | "devOptional": true,
1980 | "engines": {
1981 | "node": ">= 0.10"
1982 | }
1983 | },
1984 | "node_modules/path-type": {
1985 | "version": "4.0.0",
1986 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1987 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1988 | "engines": {
1989 | "node": ">=8"
1990 | }
1991 | },
1992 | "node_modules/picocolors": {
1993 | "version": "1.0.0",
1994 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1995 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1996 | },
1997 | "node_modules/picomatch": {
1998 | "version": "2.3.1",
1999 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2000 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2001 | "engines": {
2002 | "node": ">=8.6"
2003 | },
2004 | "funding": {
2005 | "url": "https://github.com/sponsors/jonschlinkert"
2006 | }
2007 | },
2008 | "node_modules/pify": {
2009 | "version": "4.0.1",
2010 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
2011 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
2012 | "optional": true,
2013 | "engines": {
2014 | "node": ">=6"
2015 | }
2016 | },
2017 | "node_modules/postcss": {
2018 | "version": "8.4.35",
2019 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
2020 | "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
2021 | "funding": [
2022 | {
2023 | "type": "opencollective",
2024 | "url": "https://opencollective.com/postcss/"
2025 | },
2026 | {
2027 | "type": "tidelift",
2028 | "url": "https://tidelift.com/funding/github/npm/postcss"
2029 | },
2030 | {
2031 | "type": "github",
2032 | "url": "https://github.com/sponsors/ai"
2033 | }
2034 | ],
2035 | "dependencies": {
2036 | "nanoid": "^3.3.7",
2037 | "picocolors": "^1.0.0",
2038 | "source-map-js": "^1.0.2"
2039 | },
2040 | "engines": {
2041 | "node": "^10 || ^12 || >=14"
2042 | }
2043 | },
2044 | "node_modules/prr": {
2045 | "version": "1.0.1",
2046 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
2047 | "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
2048 | "optional": true
2049 | },
2050 | "node_modules/react": {
2051 | "version": "18.2.0",
2052 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
2053 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
2054 | "dependencies": {
2055 | "loose-envify": "^1.1.0"
2056 | },
2057 | "engines": {
2058 | "node": ">=0.10.0"
2059 | }
2060 | },
2061 | "node_modules/react-dom": {
2062 | "version": "18.2.0",
2063 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
2064 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
2065 | "dependencies": {
2066 | "loose-envify": "^1.1.0",
2067 | "scheduler": "^0.23.0"
2068 | },
2069 | "peerDependencies": {
2070 | "react": "^18.2.0"
2071 | }
2072 | },
2073 | "node_modules/react-refresh": {
2074 | "version": "0.14.0",
2075 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
2076 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
2077 | "dev": true,
2078 | "engines": {
2079 | "node": ">=0.10.0"
2080 | }
2081 | },
2082 | "node_modules/react-router": {
2083 | "version": "6.22.3",
2084 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz",
2085 | "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==",
2086 | "dependencies": {
2087 | "@remix-run/router": "1.15.3"
2088 | },
2089 | "engines": {
2090 | "node": ">=14.0.0"
2091 | },
2092 | "peerDependencies": {
2093 | "react": ">=16.8"
2094 | }
2095 | },
2096 | "node_modules/react-router-dom": {
2097 | "version": "6.22.3",
2098 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz",
2099 | "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==",
2100 | "dependencies": {
2101 | "@remix-run/router": "1.15.3",
2102 | "react-router": "6.22.3"
2103 | },
2104 | "engines": {
2105 | "node": ">=14.0.0"
2106 | },
2107 | "peerDependencies": {
2108 | "react": ">=16.8",
2109 | "react-dom": ">=16.8"
2110 | }
2111 | },
2112 | "node_modules/resolve-from": {
2113 | "version": "4.0.0",
2114 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2115 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2116 | "engines": {
2117 | "node": ">=4"
2118 | }
2119 | },
2120 | "node_modules/rollup": {
2121 | "version": "4.12.1",
2122 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.1.tgz",
2123 | "integrity": "sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==",
2124 | "dependencies": {
2125 | "@types/estree": "1.0.5"
2126 | },
2127 | "bin": {
2128 | "rollup": "dist/bin/rollup"
2129 | },
2130 | "engines": {
2131 | "node": ">=18.0.0",
2132 | "npm": ">=8.0.0"
2133 | },
2134 | "optionalDependencies": {
2135 | "@rollup/rollup-android-arm-eabi": "4.12.1",
2136 | "@rollup/rollup-android-arm64": "4.12.1",
2137 | "@rollup/rollup-darwin-arm64": "4.12.1",
2138 | "@rollup/rollup-darwin-x64": "4.12.1",
2139 | "@rollup/rollup-linux-arm-gnueabihf": "4.12.1",
2140 | "@rollup/rollup-linux-arm64-gnu": "4.12.1",
2141 | "@rollup/rollup-linux-arm64-musl": "4.12.1",
2142 | "@rollup/rollup-linux-riscv64-gnu": "4.12.1",
2143 | "@rollup/rollup-linux-x64-gnu": "4.12.1",
2144 | "@rollup/rollup-linux-x64-musl": "4.12.1",
2145 | "@rollup/rollup-win32-arm64-msvc": "4.12.1",
2146 | "@rollup/rollup-win32-ia32-msvc": "4.12.1",
2147 | "@rollup/rollup-win32-x64-msvc": "4.12.1",
2148 | "fsevents": "~2.3.2"
2149 | }
2150 | },
2151 | "node_modules/safer-buffer": {
2152 | "version": "2.1.2",
2153 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2154 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2155 | "optional": true
2156 | },
2157 | "node_modules/sax": {
2158 | "version": "1.3.0",
2159 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
2160 | "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
2161 | "optional": true
2162 | },
2163 | "node_modules/scheduler": {
2164 | "version": "0.23.0",
2165 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
2166 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
2167 | "dependencies": {
2168 | "loose-envify": "^1.1.0"
2169 | }
2170 | },
2171 | "node_modules/semver": {
2172 | "version": "6.3.1",
2173 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
2174 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2175 | "bin": {
2176 | "semver": "bin/semver.js"
2177 | }
2178 | },
2179 | "node_modules/snake-case": {
2180 | "version": "3.0.4",
2181 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
2182 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
2183 | "dependencies": {
2184 | "dot-case": "^3.0.4",
2185 | "tslib": "^2.0.3"
2186 | }
2187 | },
2188 | "node_modules/source-map": {
2189 | "version": "0.6.1",
2190 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2191 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2192 | "optional": true,
2193 | "engines": {
2194 | "node": ">=0.10.0"
2195 | }
2196 | },
2197 | "node_modules/source-map-js": {
2198 | "version": "1.0.2",
2199 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2200 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
2201 | "engines": {
2202 | "node": ">=0.10.0"
2203 | }
2204 | },
2205 | "node_modules/supports-color": {
2206 | "version": "5.5.0",
2207 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2208 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2209 | "dependencies": {
2210 | "has-flag": "^3.0.0"
2211 | },
2212 | "engines": {
2213 | "node": ">=4"
2214 | }
2215 | },
2216 | "node_modules/svg-parser": {
2217 | "version": "2.0.4",
2218 | "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
2219 | "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
2220 | },
2221 | "node_modules/to-fast-properties": {
2222 | "version": "2.0.0",
2223 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2224 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
2225 | "engines": {
2226 | "node": ">=4"
2227 | }
2228 | },
2229 | "node_modules/tslib": {
2230 | "version": "2.6.2",
2231 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
2232 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
2233 | },
2234 | "node_modules/update-browserslist-db": {
2235 | "version": "1.0.13",
2236 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
2237 | "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
2238 | "funding": [
2239 | {
2240 | "type": "opencollective",
2241 | "url": "https://opencollective.com/browserslist"
2242 | },
2243 | {
2244 | "type": "tidelift",
2245 | "url": "https://tidelift.com/funding/github/npm/browserslist"
2246 | },
2247 | {
2248 | "type": "github",
2249 | "url": "https://github.com/sponsors/ai"
2250 | }
2251 | ],
2252 | "dependencies": {
2253 | "escalade": "^3.1.1",
2254 | "picocolors": "^1.0.0"
2255 | },
2256 | "bin": {
2257 | "update-browserslist-db": "cli.js"
2258 | },
2259 | "peerDependencies": {
2260 | "browserslist": ">= 4.21.0"
2261 | }
2262 | },
2263 | "node_modules/vite": {
2264 | "version": "5.1.5",
2265 | "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.5.tgz",
2266 | "integrity": "sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==",
2267 | "dependencies": {
2268 | "esbuild": "^0.19.3",
2269 | "postcss": "^8.4.35",
2270 | "rollup": "^4.2.0"
2271 | },
2272 | "bin": {
2273 | "vite": "bin/vite.js"
2274 | },
2275 | "engines": {
2276 | "node": "^18.0.0 || >=20.0.0"
2277 | },
2278 | "funding": {
2279 | "url": "https://github.com/vitejs/vite?sponsor=1"
2280 | },
2281 | "optionalDependencies": {
2282 | "fsevents": "~2.3.3"
2283 | },
2284 | "peerDependencies": {
2285 | "@types/node": "^18.0.0 || >=20.0.0",
2286 | "less": "*",
2287 | "lightningcss": "^1.21.0",
2288 | "sass": "*",
2289 | "stylus": "*",
2290 | "sugarss": "*",
2291 | "terser": "^5.4.0"
2292 | },
2293 | "peerDependenciesMeta": {
2294 | "@types/node": {
2295 | "optional": true
2296 | },
2297 | "less": {
2298 | "optional": true
2299 | },
2300 | "lightningcss": {
2301 | "optional": true
2302 | },
2303 | "sass": {
2304 | "optional": true
2305 | },
2306 | "stylus": {
2307 | "optional": true
2308 | },
2309 | "sugarss": {
2310 | "optional": true
2311 | },
2312 | "terser": {
2313 | "optional": true
2314 | }
2315 | }
2316 | },
2317 | "node_modules/vite-plugin-svgr": {
2318 | "version": "4.2.0",
2319 | "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz",
2320 | "integrity": "sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==",
2321 | "dependencies": {
2322 | "@rollup/pluginutils": "^5.0.5",
2323 | "@svgr/core": "^8.1.0",
2324 | "@svgr/plugin-jsx": "^8.1.0"
2325 | },
2326 | "peerDependencies": {
2327 | "vite": "^2.6.0 || 3 || 4 || 5"
2328 | }
2329 | },
2330 | "node_modules/yallist": {
2331 | "version": "3.1.1",
2332 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
2333 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
2334 | }
2335 | }
2336 | }
2337 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "motrix_rs",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview",
10 | "tauri": "tauri",
11 | "icon": "tauri icon ./src-tauri/icons/icon-origin.png"
12 | },
13 | "dependencies": {
14 | "@tauri-apps/api": "^1",
15 | "classnames": "^2.5.1",
16 | "normalize.css": "^8.0.1",
17 | "react": "^18.2.0",
18 | "react-dom": "^18.2.0",
19 | "react-router-dom": "^6.22.3",
20 | "vite-plugin-svgr": "^4.2.0"
21 | },
22 | "devDependencies": {
23 | "@tauri-apps/cli": "^1",
24 | "@vitejs/plugin-react": "^4.2.1",
25 | "less": "^4.2.0",
26 | "vite": "^5.0.0"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/public/tauri.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src-tauri/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | /target/
4 |
5 |
--------------------------------------------------------------------------------
/src-tauri/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "motrix_rs"
3 | version = "0.0.0"
4 | description = "A Tauri App"
5 | authors = ["you"]
6 | edition = "2021"
7 |
8 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
9 |
10 | [build-dependencies]
11 | tauri-build = { version = "1", features = [] }
12 |
13 | [dependencies]
14 | tauri = { version = "1", features = [
15 | "system-tray",
16 | "icon-png",
17 | "path-all",
18 | "shell-sidecar",
19 | "macos-private-api",
20 | "process-command-api",
21 | "window-start-dragging",
22 | "shell-open",
23 | ] }
24 | serde = { version = "1", features = ["derive"] }
25 | serde_json = "1"
26 | window-vibrancy = "0.4"
27 |
28 | [features]
29 | # This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
30 | custom-protocol = ["tauri/custom-protocol"]
31 |
--------------------------------------------------------------------------------
/src-tauri/binaries/aria2c-aarch64-apple-darwin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/binaries/aria2c-aarch64-apple-darwin
--------------------------------------------------------------------------------
/src-tauri/build.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | tauri_build::build()
3 | }
4 |
--------------------------------------------------------------------------------
/src-tauri/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/128x128.png
--------------------------------------------------------------------------------
/src-tauri/icons/128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/128x128@2x.png
--------------------------------------------------------------------------------
/src-tauri/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/32x32.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square107x107Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square107x107Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square142x142Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square142x142Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square150x150Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square150x150Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square284x284Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square284x284Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square30x30Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square30x30Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square310x310Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square310x310Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square44x44Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square44x44Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square71x71Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square71x71Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square89x89Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/Square89x89Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/StoreLogo.png
--------------------------------------------------------------------------------
/src-tauri/icons/creativity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/creativity.png
--------------------------------------------------------------------------------
/src-tauri/icons/icon-origin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/icon-origin.png
--------------------------------------------------------------------------------
/src-tauri/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/icon.icns
--------------------------------------------------------------------------------
/src-tauri/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/icon.ico
--------------------------------------------------------------------------------
/src-tauri/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src-tauri/icons/icon.png
--------------------------------------------------------------------------------
/src-tauri/resources/aria2.conf:
--------------------------------------------------------------------------------
1 | ###############################
2 | # Motrix macOS Aria2 config file
3 | #
4 | # @see https://aria2.github.io/manual/en/html/aria2c.html
5 | #
6 | ###############################
7 |
8 |
9 | ################ RPC ################
10 | # Enable JSON-RPC/XML-RPC server.
11 | enable-rpc=true
12 | # Add Access-Control-Allow-Origin header field with value * to the RPC response.
13 | rpc-allow-origin-all=true
14 | # Listen incoming JSON-RPC/XML-RPC requests on all network interfaces.
15 | rpc-listen-all=true
16 |
17 |
18 | ################ File system ################
19 | # Save a control file(*.aria2) every SEC seconds.
20 | auto-save-interval=10
21 | # Enable disk cache.
22 | disk-cache=64M
23 | # Specify file allocation method.
24 | file-allocation=none
25 | # No file allocation is made for files whose size is smaller than SIZE
26 | no-file-allocation-limit=64M
27 | # Save error/unfinished downloads to a file specified by --save-session option every SEC seconds.
28 | save-session-interval=10
29 |
30 |
31 | ################ Task ################
32 | # Exclude seed only downloads when counting concurrent active downloads
33 | bt-detach-seed-only=true
34 | # Verify the peer using certificates specified in --ca-certificate option.
35 | check-certificate=false
36 | # If aria2 receives "file not found" status from the remote HTTP/FTP servers NUM times
37 | # without getting a single byte, then force the download to fail.
38 | max-file-not-found=10
39 | # Set number of tries.
40 | max-tries=0
41 | # Set the seconds to wait between retries. When SEC > 0, aria2 will retry downloads when the HTTP server returns a 503 response.
42 | retry-wait=10
43 | # Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead.
44 | connect-timeout=10
45 | # Set timeout in seconds.
46 | timeout=10
47 | # aria2 does not split less than 2*SIZE byte range.
48 | min-split-size=1M
49 | # Send Accept: deflate, gzip request header.
50 | http-accept-gzip=true
51 | # Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file.
52 | remote-time=true
53 | # Set interval in seconds to output download progress summary. Setting 0 suppresses the output.
54 | summary-interval=0
55 | # Handle quoted string in Content-Disposition header as UTF-8 instead of ISO-8859-1, for example, the filename parameter, but not the extended version filename*.
56 | content-disposition-default-utf8=true
57 |
58 |
59 | ################ BT Task ################
60 | # Enable Local Peer Discovery.
61 | bt-enable-lpd=true
62 | # Requires BitTorrent message payload encryption with arc4.
63 | # bt-force-encryption=true
64 | # If true is given, after hash check using --check-integrity option and file is complete, continue to seed file.
65 | bt-hash-check-seed=true
66 | # Specify the maximum number of peers per torrent.
67 | bt-max-peers=128
68 | # Try to download first and last pieces of each file first. This is useful for previewing files.
69 | bt-prioritize-piece=head
70 | # Removes the unselected files when download is completed in BitTorrent.
71 | bt-remove-unselected-file=true
72 | # Seed previously downloaded files without verifying piece hashes.
73 | bt-seed-unverified=false
74 | # Set the connect timeout in seconds to establish connection to tracker. After the connection is established, this option makes no effect and --bt-tracker-timeout option is used instead.
75 | bt-tracker-connect-timeout=10
76 | # Set timeout in seconds.
77 | bt-tracker-timeout=10
78 | # Set host and port as an entry point to IPv4 DHT network.
79 | dht-entry-point=dht.transmissionbt.com:6881
80 | # Set host and port as an entry point to IPv6 DHT network.
81 | dht-entry-point6=dht.transmissionbt.com:6881
82 | # Enable IPv4 DHT functionality. It also enables UDP tracker support.
83 | enable-dht=true
84 | # Enable IPv6 DHT functionality.
85 | enable-dht6=true
86 | # Enable Peer Exchange extension.
87 | enable-peer-exchange=true
88 | # Specify the string used during the bitorrent extended handshake for the peer's client version.
89 | peer-agent=Transmission/3.00
90 | # Specify the prefix of peer ID.
91 | peer-id-prefix=-TR3000-
92 |
--------------------------------------------------------------------------------
/src-tauri/src/main.rs:
--------------------------------------------------------------------------------
1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!!
2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
3 |
4 | use tauri::{
5 | api::process::{Command, CommandEvent},
6 | AppHandle, CustomMenuItem, Icon, Manager, SystemTray, SystemTrayMenu, SystemTrayMenuItem,
7 | };
8 |
9 | // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
10 | #[tauri::command]
11 | fn chagen_system_tray_icon(app_handle: AppHandle) {
12 | let tray_handle = app_handle.tray_handle();
13 | // 设置新的系统托盘图标
14 | println!("dddd");
15 |
16 | if let Err(e) = tray_handle.set_icon(tauri::Icon::Raw(
17 | include_bytes!("../icons/creativity.png").to_vec(),
18 | )) {
19 | eprintln!("Failed to set new system tray icon: {:?}", e);
20 | }
21 | }
22 |
23 | #[tauri::command]
24 | fn start_aria2c(app: AppHandle, window: tauri::Window, arg1: String) {
25 | let resource_path = app
26 | .path_resolver()
27 | .resolve_resource("resources/aria2.conf")
28 | .expect("failed to resolve resource");
29 | let resource_path = resource_path.to_str().unwrap();
30 | let (mut rx, mut child) = Command::new_sidecar("aria2c")
31 | .expect("failed to create `aria2c` binary command")
32 | .args([format!("--conf-path={resource_path}")])
33 | .spawn()
34 | .expect("Failed to spawn sidecar");
35 |
36 | println!("{}, {}", child.pid(), arg1);
37 |
38 | tauri::async_runtime::spawn(async move {
39 | // read events such as stdout
40 | while let Some(event) = rx.recv().await {
41 | match event {
42 | CommandEvent::Stderr(line) => {
43 | window
44 | .emit("message", Some(format!("'{}'", line)))
45 | .expect("failed to emit event");
46 | // write to stdin
47 | child.write("message from Rust\n".as_bytes()).unwrap();
48 | }
49 | CommandEvent::Stdout(line) => {
50 | window
51 | .emit("message", Some(format!("'{}'", line)))
52 | .expect("failed to emit event");
53 | // write to stdin
54 | child.write("message from Rust\n".as_bytes()).unwrap();
55 | }
56 | CommandEvent::Error(_) => todo!(),
57 | CommandEvent::Terminated(_) => todo!(),
58 | _ => todo!(),
59 | }
60 | }
61 | });
62 | }
63 |
64 | mod setup;
65 |
66 | fn main() {
67 | let quit = CustomMenuItem::new("quit".to_string(), "退出");
68 | let hide = CustomMenuItem::new("hide".to_string(), "隐藏");
69 | let tray_menu = SystemTrayMenu::new()
70 | .add_item(quit)
71 | .add_native_item(SystemTrayMenuItem::Separator)
72 | .add_item(hide);
73 | tauri::Builder::default()
74 | .system_tray(SystemTray::new().with_menu(tray_menu))
75 | .setup(setup::init)
76 | .invoke_handler(tauri::generate_handler![
77 | start_aria2c,
78 | chagen_system_tray_icon
79 | ])
80 | .run(tauri::generate_context!())
81 | .expect("error while running tauri application");
82 | }
83 |
--------------------------------------------------------------------------------
/src-tauri/src/setup.rs:
--------------------------------------------------------------------------------
1 | use tauri::{
2 | api::process::{Command, CommandEvent},
3 | App, Manager,
4 | };
5 | use window_vibrancy::NSVisualEffectMaterial;
6 | /// setup
7 | pub fn init(app: &mut App) -> std::result::Result<(), Box> {
8 | set_blur_material(app);
9 | // start_aria2c(app);
10 | Ok(())
11 | }
12 |
13 | fn set_blur_material(app: &mut App) {
14 | let window = app.get_window("main").unwrap();
15 | // 仅在 macOS 下执行
16 | #[cfg(target_os = "macos")]
17 | window_vibrancy::apply_vibrancy(window, NSVisualEffectMaterial::HudWindow, None, None)
18 | .expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS");
19 |
20 | // 仅在 windows 下执行
21 | #[cfg(target_os = "windows")]
22 | window_vibrancy::apply_blur(window, Some((18, 18, 18, 125)))
23 | .expect("Unsupported platform! 'apply_blur' is only supported on Windows");
24 | }
25 |
26 | pub fn start_aria2c(app: &mut App) {
27 | let window = app.get_window("main").unwrap();
28 | let resource_path = app
29 | .path_resolver()
30 | .resolve_resource("resources/aria2.conf")
31 | .expect("failed to resolve resource");
32 | let resource_path = resource_path.to_str().unwrap();
33 | let (mut rx, mut child) = Command::new_sidecar("aria2c")
34 | .expect("failed to create `aria2c` binary command")
35 | .args([format!("--conf-path={resource_path}")])
36 | .spawn()
37 | .expect("Failed to spawn sidecar");
38 |
39 | println!("{}", child.pid());
40 |
41 | tauri::async_runtime::spawn(async move {
42 | // read events such as stdout
43 | while let Some(event) = rx.recv().await {
44 | match event {
45 | CommandEvent::Stderr(line) => {
46 | window
47 | .emit("message", Some(format!("'{}'", line)))
48 | .expect("failed to emit event");
49 | // write to stdin
50 | child.write("message from Rust\n".as_bytes()).unwrap();
51 | }
52 | CommandEvent::Stdout(line) => {
53 | window
54 | .emit("message", Some(format!("'{}'", line)))
55 | .expect("failed to emit event");
56 | // write to stdin
57 | child.write("message from Rust\n".as_bytes()).unwrap();
58 | }
59 | CommandEvent::Error(_) => todo!(),
60 | CommandEvent::Terminated(_) => todo!(),
61 | _ => todo!(),
62 | }
63 | }
64 | });
65 | }
66 |
--------------------------------------------------------------------------------
/src-tauri/tauri.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "build": {
3 | "beforeDevCommand": "npm run dev",
4 | "beforeBuildCommand": "npm run build",
5 | "devPath": "http://localhost:1420",
6 | "distDir": "../dist"
7 | },
8 | "package": {
9 | "productName": "motrix_rs",
10 | "version": "0.0.0"
11 | },
12 | "tauri": {
13 | "macOSPrivateApi": true,
14 | "systemTray": {
15 | "iconPath": "icons/icon.png",
16 | "iconAsTemplate": true
17 | },
18 | "allowlist": {
19 | "all": false,
20 | "shell": {
21 | "all": false,
22 | "open": true,
23 | "sidecar": true,
24 | "scope": [
25 | {
26 | "name": "binaries/aria2c",
27 | "sidecar": true,
28 | "args": [
29 | {
30 | "validator": "\\S+"
31 | }
32 | ]
33 | }
34 | ]
35 | },
36 | "path": {
37 | "all": true
38 | },
39 | "fs": {
40 | "scope": ["$RESOURCE/*"]
41 | },
42 | "window": {
43 | "startDragging": true
44 | }
45 | },
46 | "windows": [
47 | {
48 | "title": "motrix_rs",
49 | "width": 1024,
50 | "height": 760,
51 | "titleBarStyle": "Overlay",
52 | "hiddenTitle": true,
53 | "transparent": true
54 | }
55 | ],
56 | "security": {
57 | "csp": null
58 | },
59 | "bundle": {
60 | "active": true,
61 | "targets": "all",
62 | "identifier": "site.heng-chuang.motrix-rs",
63 | "icon": [
64 | "icons/32x32.png",
65 | "icons/128x128.png",
66 | "icons/128x128@2x.png",
67 | "icons/icon.icns",
68 | "icons/icon.ico"
69 | ],
70 | "externalBin": ["binaries/aria2c"],
71 | "resources": ["resources/aria2.conf"]
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import { Route, Routes, Navigate } from "react-router-dom";
2 | import Layout from "./components/layout";
3 | import Tasks from "./pages/tasks";
4 | import Settings from "./pages/settings";
5 |
6 |
7 | function App() {
8 | return (
9 |
10 | }>
11 | }>
12 | }>
13 | }>
14 |
15 |
16 | );
17 | }
18 |
19 | export default App;
20 |
--------------------------------------------------------------------------------
/src/app.jsx:
--------------------------------------------------------------------------------
1 | import { Route, Routes, Navigate } from "react-router-dom";
2 | import Layout from "./components/layout";
3 | import Tasks from "./pages/tasks";
4 | import Settings from "./pages/settings";
5 |
6 |
7 | function App() {
8 | return (
9 |
10 | }>
11 | }>
12 | }>
13 | }>
14 |
15 |
16 | );
17 | }
18 |
19 | export default App;
20 |
--------------------------------------------------------------------------------
/src/assets/app-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src/assets/app-icon.png
--------------------------------------------------------------------------------
/src/assets/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/audio.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/src/assets/icons/delete.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/dice.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/src/assets/icons/engine-mode-max.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/folder.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/image.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/icons/inbox.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/src/assets/icons/info-circle.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/icons/info-square.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/icons/link.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/assets/icons/magnet.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/assets/icons/menu-about.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/menu-add.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/menu-preference.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/menu-task.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/icons/more.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/node.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/assets/icons/preference-advanced.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/preference-basic.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/purge.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/src/assets/icons/refresh.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/speedometer.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/src/assets/icons/sync.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/src/assets/icons/task-done.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/task-history.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/task-pause-line.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/task-pause.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/task-restart.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/icons/task-start-line.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/task-start.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/task-stop-line.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/task-stop.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/icons/trash.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/src/assets/icons/video.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/src/assets/icons/win-close.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/win-maximize.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/icons/win-minimize.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/logo-mini.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/src/assets/no-task.svg:
--------------------------------------------------------------------------------
1 |
48 |
--------------------------------------------------------------------------------
/src/assets/theme-auto@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src/assets/theme-auto@2x.png
--------------------------------------------------------------------------------
/src/assets/theme-dark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src/assets/theme-dark@2x.png
--------------------------------------------------------------------------------
/src/assets/theme-light@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src/assets/theme-light@2x.png
--------------------------------------------------------------------------------
/src/components/layout/index.jsx:
--------------------------------------------------------------------------------
1 | import { NavLink, Outlet } from "react-router-dom";
2 | import cls from "classnames"
3 | import classnames from "classnames/bind";
4 |
5 | import LogoMini from "@/assets/logo-mini.svg?react"
6 | import MenuTask from "@/assets/icons/menu-task.svg?react"
7 | import MenuAdd from "@/assets/icons/menu-add.svg?react"
8 | import MenuPreference from "@/assets/icons/menu-preference.svg?react"
9 | import MenuAbout from "@/assets/icons/menu-about.svg?react"
10 |
11 | import style from './index.module.less';
12 |
13 | const cx = classnames.bind(style)
14 |
15 | function Layout() {
16 | return
17 |
18 |
19 |
20 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | }
50 | export default Layout;
--------------------------------------------------------------------------------
/src/components/layout/index.module.less:
--------------------------------------------------------------------------------
1 | .container-wrap {
2 | display: flex;
3 | flex-direction: column;
4 | height: 100vh;
5 | position: relative;
6 | }
7 |
8 | .drag-region {
9 | height: 30px;
10 | position: absolute;
11 | top: 0;
12 | left: 0;
13 | right: 0;
14 | }
15 |
16 | .container {
17 | display: flex;
18 | flex: 1;
19 | }
20 |
21 | .left {
22 | width: 78px;
23 | display: flex;
24 | align-items: center;
25 | background-color: rgba(0, 0, 0, 0.65);
26 | flex-direction: column;
27 |
28 | .logo {
29 | margin-top: 40px;
30 | height: 32px;
31 | a {
32 | color: #fff;
33 | }
34 | }
35 | .icon-wrap {
36 | width: 32px;
37 | height: 32px;
38 | display: flex;
39 | align-items: center;
40 | justify-content: center;
41 | transition: background-color .25s;
42 | border-radius: 16px;
43 | &:hover {
44 | background-color: hsla(0,0%,100%,.15);
45 | }
46 | > svg {
47 | width: 20px;
48 | height: 20px;
49 | }
50 | }
51 | .icon-wrap-last {
52 | margin-bottom: 24px;
53 | }
54 | .icon {
55 | color: #fff;
56 | }
57 | }
58 |
59 | .right {
60 | background-color: #fff;
61 | flex: 1;
62 | }
--------------------------------------------------------------------------------
/src/components/logo/index.jsx:
--------------------------------------------------------------------------------
1 | function Logo() {
2 | return
13 | }
14 |
15 | export default Logo;
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom/client";
3 | import { BrowserRouter } from "react-router-dom";
4 | // sidecar
5 | import { Command } from "@tauri-apps/api/shell";
6 | import { resolveResource } from "@tauri-apps/api/path";
7 | import { once } from "@tauri-apps/api/event";
8 | import App from "./app";
9 |
10 | import "normalize.css/normalize.css";
11 | import "./style.less";
12 |
13 | // async function startAria2c() {
14 | // const resourcePath = await resolveResource("resources/aria2.conf");
15 | // console.log(888, resourcePath);
16 | // const command = Command.sidecar("binaries/aria2c", [
17 | // "--conf-path=" + resourcePath,
18 | // ]);
19 | // const child = await command.spawn();
20 | // console.log(child);
21 | // command.execute();
22 | // once("tauri://close-requested", () => {
23 | // child.kill();
24 | // });
25 | // }
26 | // startAria2c();
27 |
28 | ReactDOM.createRoot(document.getElementById("root")).render(
29 |
30 |
31 |
32 |
33 |
34 | );
35 |
--------------------------------------------------------------------------------
/src/pages/settings/index.jsx:
--------------------------------------------------------------------------------
1 | function Settings() {
2 | return 设置页面
3 | }
4 |
5 | export default Settings;
6 |
--------------------------------------------------------------------------------
/src/pages/tasks/index.jsx:
--------------------------------------------------------------------------------
1 | import { invoke } from "@tauri-apps/api/tauri";
2 |
3 | function Tasks() {
4 | return (
5 |
6 | 任务列表
7 |
14 |
15 |
22 |
23 | );
24 | }
25 |
26 | export default Tasks;
27 |
--------------------------------------------------------------------------------
/src/style.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zheng-chuang/motrix_rs/5d50bf19c7e7cc250d69b2b6f58fefd3e2dd1fdf/src/style.less
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import react from "@vitejs/plugin-react";
3 | import svgr from 'vite-plugin-svgr'
4 | import { join } from "path";
5 |
6 |
7 | // https://vitejs.dev/config/
8 | export default defineConfig(async () => ({
9 | resolve: {
10 | alias: {
11 | '@': join(__dirname, "src"),
12 | }
13 | },
14 | plugins: [
15 | react(),
16 | svgr()
17 | ],
18 |
19 | // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
20 | //
21 | // 1. prevent vite from obscuring rust errors
22 | clearScreen: false,
23 | // 2. tauri expects a fixed port, fail if that port is not available
24 | server: {
25 | port: 1420,
26 | strictPort: true,
27 | watch: {
28 | // 3. tell vite to ignore watching `src-tauri`
29 | ignored: ["**/src-tauri/**"],
30 | },
31 | },
32 | }));
33 |
--------------------------------------------------------------------------------