[READ-ONLY] Mirror of https://github.com/probablykasper/time-machine-inspector. Time Machine backup size inspector app
backup macos tauri time-machine
0

Configure Feed

Select the types of activity you want to include in your feed.

Support macOS 13

Kasper (May 18, 2023, 11:19 AM +0200) 79761ab8 5c3c230c

+1579 -1025
+19 -11
.eslintrc.cjs
··· 1 1 module.exports = { 2 2 root: true, 3 + extends: [ 4 + 'eslint:recommended', 5 + 'plugin:@typescript-eslint/recommended', 6 + 'plugin:svelte/recommended', 7 + 'prettier', 8 + ], 3 9 parser: '@typescript-eslint/parser', 4 - extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], 5 - plugins: ['svelte3', '@typescript-eslint'], 6 - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 7 - settings: { 8 - 'svelte3/typescript': true, 9 - 'svelte3/ignore-styles': (attributes) => { 10 - // https://github.com/sveltejs/eslint-plugin-svelte3/issues/10 11 - return attributes && attributes.lang && attributes.lang !== 'css' 12 - }, 13 - }, 10 + plugins: ['@typescript-eslint'], 11 + ignorePatterns: ['*.cjs'], 14 12 parserOptions: { 15 13 sourceType: 'module', 16 - ecmaVersion: 2019, 14 + ecmaVersion: 2020, 15 + extraFileExtensions: ['.svelte'], 17 16 }, 18 17 env: { 19 18 browser: true, 20 19 es2017: true, 21 20 node: true, 22 21 }, 22 + overrides: [ 23 + { 24 + files: ['*.svelte'], 25 + parser: 'svelte-eslint-parser', 26 + parserOptions: { 27 + parser: '@typescript-eslint/parser', 28 + }, 29 + }, 30 + ], 23 31 }
+3
CHANGELOG.md
··· 1 1 # Changelog 2 2 3 + ## Next 4 + - Support macOS 13 5 + 3 6 ## 1.1.5 - 2022 Jul 9 4 7 - Fix `No parent of path` error (#4) 5 8
+12 -6
bindings.ts
··· 12 12 return invoke<null>("error_popup", { msg }) 13 13 } 14 14 15 - export function loadBackupList(refresh: boolean) { 16 - return invoke<DirMap<null>>("load_backup_list", { refresh }) 15 + export function loadBackupList(destinationId: string, refresh: boolean) { 16 + return invoke<Backup[]>("load_backup_list", { destinationId,refresh }) 17 17 } 18 18 19 - export function getBackup(oldB: string, newB: string, refresh: boolean) { 20 - return invoke<DirMap<LoadedBackupItem>>("get_backup", { oldB,newB,refresh }) 19 + export function getBackup(destinationId: string, newB: string, refresh: boolean) { 20 + return invoke<DirMap>("get_backup", { destinationId,newB,refresh }) 21 21 } 22 22 23 23 export function backupsInfo() { 24 24 return invoke<BackupInfo[]>("backups_info") 25 25 } 26 26 27 - export type BackupInfo = { old: string; new: string; loading: boolean } 27 + export function destinationinfo() { 28 + return invoke<DestinationXml[]>("destinationinfo") 29 + } 30 + 31 + export type Backup = { path: string; name: string } 32 + export type DestinationXml = { kind: string; url: string; name: string; id: string; last_destination: number; mount_point: string } 33 + export type DirMap = { map: { [key: string]: { [key: string]: LoadedBackupItem } } } 28 34 export type LoadedBackupItem = { size: number } 29 - export type DirMap<I> = { map: { [key: string]: { [key: I]: null } } } 35 + export type BackupInfo = { old: string; new: string; loading: boolean }
+378 -237
package-lock.json
··· 5 5 "packages": { 6 6 "": { 7 7 "devDependencies": { 8 - "@sveltejs/vite-plugin-svelte": "2.1.1", 9 - "@tauri-apps/api": "^1.2.0", 10 - "@tauri-apps/cli": "^1.2.3", 8 + "@sveltejs/vite-plugin-svelte": "2.2.0", 9 + "@tauri-apps/api": "^1.3.0", 10 + "@tauri-apps/cli": "^1.3.1", 11 11 "@tsconfig/svelte": "^4.0.1", 12 - "@typescript-eslint/eslint-plugin": "^5.59.2", 13 - "@typescript-eslint/parser": "^5.59.2", 12 + "@typescript-eslint/eslint-plugin": "^5.59.6", 13 + "@typescript-eslint/parser": "^5.59.6", 14 14 "autoprefixer": "^10.4.14", 15 - "eslint": "^8.39.0", 15 + "eslint": "^8.40.0", 16 16 "eslint-config-prettier": "^8.8.0", 17 - "eslint-plugin-svelte3": "^4.0.0", 17 + "eslint-plugin-svelte": "^2.28.0", 18 18 "prettier": "^2.8.8", 19 19 "prettier-plugin-svelte": "^2.10.0", 20 20 "sass": "^1.62.1", 21 - "svelte": "^3.58.0", 22 - "svelte-check": "^3.2.0", 21 + "svelte": "^3.59.1", 22 + "svelte-check": "^3.3.2", 23 23 "tauri-specta": "^0.0.2", 24 24 "typescript": "^5.0.4", 25 - "vite": "^4.3.3" 25 + "vite": "^4.3.7" 26 26 } 27 27 }, 28 28 "node_modules/@esbuild/android-arm": { 29 - "version": "0.17.18", 30 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", 31 - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", 29 + "version": "0.17.19", 30 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 31 + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 32 32 "cpu": [ 33 33 "arm" 34 34 ], ··· 42 42 } 43 43 }, 44 44 "node_modules/@esbuild/android-arm64": { 45 - "version": "0.17.18", 46 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", 47 - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", 45 + "version": "0.17.19", 46 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 47 + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 48 48 "cpu": [ 49 49 "arm64" 50 50 ], ··· 58 58 } 59 59 }, 60 60 "node_modules/@esbuild/android-x64": { 61 - "version": "0.17.18", 62 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", 63 - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", 61 + "version": "0.17.19", 62 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 63 + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 64 64 "cpu": [ 65 65 "x64" 66 66 ], ··· 74 74 } 75 75 }, 76 76 "node_modules/@esbuild/darwin-arm64": { 77 - "version": "0.17.18", 78 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", 79 - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", 77 + "version": "0.17.19", 78 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 79 + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 80 80 "cpu": [ 81 81 "arm64" 82 82 ], ··· 90 90 } 91 91 }, 92 92 "node_modules/@esbuild/darwin-x64": { 93 - "version": "0.17.18", 94 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", 95 - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", 93 + "version": "0.17.19", 94 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 95 + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 96 96 "cpu": [ 97 97 "x64" 98 98 ], ··· 106 106 } 107 107 }, 108 108 "node_modules/@esbuild/freebsd-arm64": { 109 - "version": "0.17.18", 110 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", 111 - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", 109 + "version": "0.17.19", 110 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 111 + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 112 112 "cpu": [ 113 113 "arm64" 114 114 ], ··· 122 122 } 123 123 }, 124 124 "node_modules/@esbuild/freebsd-x64": { 125 - "version": "0.17.18", 126 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", 127 - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", 125 + "version": "0.17.19", 126 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 127 + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 128 128 "cpu": [ 129 129 "x64" 130 130 ], ··· 138 138 } 139 139 }, 140 140 "node_modules/@esbuild/linux-arm": { 141 - "version": "0.17.18", 142 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", 143 - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", 141 + "version": "0.17.19", 142 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 143 + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 144 144 "cpu": [ 145 145 "arm" 146 146 ], ··· 154 154 } 155 155 }, 156 156 "node_modules/@esbuild/linux-arm64": { 157 - "version": "0.17.18", 158 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", 159 - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", 157 + "version": "0.17.19", 158 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 159 + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 160 160 "cpu": [ 161 161 "arm64" 162 162 ], ··· 170 170 } 171 171 }, 172 172 "node_modules/@esbuild/linux-ia32": { 173 - "version": "0.17.18", 174 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", 175 - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", 173 + "version": "0.17.19", 174 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 175 + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 176 176 "cpu": [ 177 177 "ia32" 178 178 ], ··· 186 186 } 187 187 }, 188 188 "node_modules/@esbuild/linux-loong64": { 189 - "version": "0.17.18", 190 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", 191 - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", 189 + "version": "0.17.19", 190 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 191 + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 192 192 "cpu": [ 193 193 "loong64" 194 194 ], ··· 202 202 } 203 203 }, 204 204 "node_modules/@esbuild/linux-mips64el": { 205 - "version": "0.17.18", 206 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", 207 - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", 205 + "version": "0.17.19", 206 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 207 + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 208 208 "cpu": [ 209 209 "mips64el" 210 210 ], ··· 218 218 } 219 219 }, 220 220 "node_modules/@esbuild/linux-ppc64": { 221 - "version": "0.17.18", 222 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", 223 - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", 221 + "version": "0.17.19", 222 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 223 + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 224 224 "cpu": [ 225 225 "ppc64" 226 226 ], ··· 234 234 } 235 235 }, 236 236 "node_modules/@esbuild/linux-riscv64": { 237 - "version": "0.17.18", 238 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", 239 - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", 237 + "version": "0.17.19", 238 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 239 + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 240 240 "cpu": [ 241 241 "riscv64" 242 242 ], ··· 250 250 } 251 251 }, 252 252 "node_modules/@esbuild/linux-s390x": { 253 - "version": "0.17.18", 254 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", 255 - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", 253 + "version": "0.17.19", 254 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 255 + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 256 256 "cpu": [ 257 257 "s390x" 258 258 ], ··· 266 266 } 267 267 }, 268 268 "node_modules/@esbuild/linux-x64": { 269 - "version": "0.17.18", 270 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", 271 - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", 269 + "version": "0.17.19", 270 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 271 + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 272 272 "cpu": [ 273 273 "x64" 274 274 ], ··· 282 282 } 283 283 }, 284 284 "node_modules/@esbuild/netbsd-x64": { 285 - "version": "0.17.18", 286 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", 287 - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", 285 + "version": "0.17.19", 286 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 287 + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 288 288 "cpu": [ 289 289 "x64" 290 290 ], ··· 298 298 } 299 299 }, 300 300 "node_modules/@esbuild/openbsd-x64": { 301 - "version": "0.17.18", 302 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", 303 - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", 301 + "version": "0.17.19", 302 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 303 + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 304 304 "cpu": [ 305 305 "x64" 306 306 ], ··· 314 314 } 315 315 }, 316 316 "node_modules/@esbuild/sunos-x64": { 317 - "version": "0.17.18", 318 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", 319 - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", 317 + "version": "0.17.19", 318 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 319 + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 320 320 "cpu": [ 321 321 "x64" 322 322 ], ··· 330 330 } 331 331 }, 332 332 "node_modules/@esbuild/win32-arm64": { 333 - "version": "0.17.18", 334 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", 335 - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", 333 + "version": "0.17.19", 334 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 335 + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 336 336 "cpu": [ 337 337 "arm64" 338 338 ], ··· 346 346 } 347 347 }, 348 348 "node_modules/@esbuild/win32-ia32": { 349 - "version": "0.17.18", 350 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", 351 - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", 349 + "version": "0.17.19", 350 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 351 + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 352 352 "cpu": [ 353 353 "ia32" 354 354 ], ··· 362 362 } 363 363 }, 364 364 "node_modules/@esbuild/win32-x64": { 365 - "version": "0.17.18", 366 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", 367 - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", 365 + "version": "0.17.19", 366 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 367 + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 368 368 "cpu": [ 369 369 "x64" 370 370 ], ··· 402 402 } 403 403 }, 404 404 "node_modules/@eslint/eslintrc": { 405 - "version": "2.0.2", 406 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", 407 - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", 405 + "version": "2.0.3", 406 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", 407 + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", 408 408 "dev": true, 409 409 "dependencies": { 410 410 "ajv": "^6.12.4", 411 411 "debug": "^4.3.2", 412 - "espree": "^9.5.1", 412 + "espree": "^9.5.2", 413 413 "globals": "^13.19.0", 414 414 "ignore": "^5.2.0", 415 415 "import-fresh": "^3.2.1", ··· 425 425 } 426 426 }, 427 427 "node_modules/@eslint/js": { 428 - "version": "8.39.0", 429 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", 430 - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", 428 + "version": "8.40.0", 429 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", 430 + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", 431 431 "dev": true, 432 432 "engines": { 433 433 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ··· 533 533 } 534 534 }, 535 535 "node_modules/@sveltejs/vite-plugin-svelte": { 536 - "version": "2.1.1", 537 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.1.1.tgz", 538 - "integrity": "sha512-7YeBDt4us0FiIMNsVXxyaP4Hwyn2/v9x3oqStkHU3ZdIc5O22pGwUwH33wUqYo+7Itdmo8zxJ45Qvfm3H7UUjQ==", 536 + "version": "2.2.0", 537 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.2.0.tgz", 538 + "integrity": "sha512-KDtdva+FZrZlyug15KlbXuubntAPKcBau0K7QhAIqC5SAy0uDbjZwoexDRx0L0J2T4niEfC6FnA9GuQQJKg+Aw==", 539 539 "dev": true, 540 540 "dependencies": { 541 541 "debug": "^4.3.4", ··· 554 554 } 555 555 }, 556 556 "node_modules/@tauri-apps/api": { 557 - "version": "1.2.0", 558 - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz", 559 - "integrity": "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==", 557 + "version": "1.3.0", 558 + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.3.0.tgz", 559 + "integrity": "sha512-AH+3FonkKZNtfRtGrObY38PrzEj4d+1emCbwNGu0V2ENbXjlLHMZQlUh+Bhu/CRmjaIwZMGJ3yFvWaZZgTHoog==", 560 560 "dev": true, 561 561 "engines": { 562 562 "node": ">= 14.6.0", ··· 569 569 } 570 570 }, 571 571 "node_modules/@tauri-apps/cli": { 572 - "version": "1.2.3", 573 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.2.3.tgz", 574 - "integrity": "sha512-erxtXuPhMEGJPBtnhPILD4AjuT81GZsraqpFvXAmEJZ2p8P6t7MVBifCL8LznRknznM3jn90D3M8RNBP3wcXTw==", 572 + "version": "1.3.1", 573 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.3.1.tgz", 574 + "integrity": "sha512-o4I0JujdITsVRm3/0spfJX7FcKYrYV1DXJqzlWIn6IY25/RltjU6qbC1TPgVww3RsRX63jyVUTcWpj5wwFl+EQ==", 575 575 "dev": true, 576 576 "bin": { 577 577 "tauri": "tauri.js" ··· 584 584 "url": "https://opencollective.com/tauri" 585 585 }, 586 586 "optionalDependencies": { 587 - "@tauri-apps/cli-darwin-arm64": "1.2.3", 588 - "@tauri-apps/cli-darwin-x64": "1.2.3", 589 - "@tauri-apps/cli-linux-arm-gnueabihf": "1.2.3", 590 - "@tauri-apps/cli-linux-arm64-gnu": "1.2.3", 591 - "@tauri-apps/cli-linux-arm64-musl": "1.2.3", 592 - "@tauri-apps/cli-linux-x64-gnu": "1.2.3", 593 - "@tauri-apps/cli-linux-x64-musl": "1.2.3", 594 - "@tauri-apps/cli-win32-ia32-msvc": "1.2.3", 595 - "@tauri-apps/cli-win32-x64-msvc": "1.2.3" 587 + "@tauri-apps/cli-darwin-arm64": "1.3.1", 588 + "@tauri-apps/cli-darwin-x64": "1.3.1", 589 + "@tauri-apps/cli-linux-arm-gnueabihf": "1.3.1", 590 + "@tauri-apps/cli-linux-arm64-gnu": "1.3.1", 591 + "@tauri-apps/cli-linux-arm64-musl": "1.3.1", 592 + "@tauri-apps/cli-linux-x64-gnu": "1.3.1", 593 + "@tauri-apps/cli-linux-x64-musl": "1.3.1", 594 + "@tauri-apps/cli-win32-ia32-msvc": "1.3.1", 595 + "@tauri-apps/cli-win32-x64-msvc": "1.3.1" 596 596 } 597 597 }, 598 598 "node_modules/@tauri-apps/cli-darwin-arm64": { 599 - "version": "1.2.3", 600 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.3.tgz", 601 - "integrity": "sha512-phJN3fN8FtZZwqXg08bcxfq1+X1JSDglLvRxOxB7VWPq+O5SuB8uLyssjJsu+PIhyZZnIhTGdjhzLSFhSXfLsw==", 599 + "version": "1.3.1", 600 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.3.1.tgz", 601 + "integrity": "sha512-QlepYVPgOgspcwA/u4kGG4ZUijlXfdRtno00zEy+LxinN/IRXtk+6ErVtsmoLi1ZC9WbuMwzAcsRvqsD+RtNAg==", 602 602 "cpu": [ 603 603 "arm64" 604 604 ], ··· 612 612 } 613 613 }, 614 614 "node_modules/@tauri-apps/cli-darwin-x64": { 615 - "version": "1.2.3", 616 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.3.tgz", 617 - "integrity": "sha512-jFZ/y6z8z6v4yliIbXKBXA7BJgtZVMsITmEXSuD6s5+eCOpDhQxbRkr6CA+FFfr+/r96rWSDSgDenDQuSvPAKw==", 615 + "version": "1.3.1", 616 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.3.1.tgz", 617 + "integrity": "sha512-fKcAUPVFO3jfDKXCSDGY0MhZFF/wDtx3rgFnogWYu4knk38o9RaqRkvMvqJhLYPuWaEM5h6/z1dRrr9KKCbrVg==", 618 618 "cpu": [ 619 619 "x64" 620 620 ], ··· 628 628 } 629 629 }, 630 630 "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { 631 - "version": "1.2.3", 632 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.3.tgz", 633 - "integrity": "sha512-C7h5vqAwXzY0kRGSU00Fj8PudiDWFCiQqqUNI1N+fhCILrzWZB9TPBwdx33ZfXKt/U4+emdIoo/N34v3TiAOmQ==", 631 + "version": "1.3.1", 632 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.3.1.tgz", 633 + "integrity": "sha512-+4H0dv8ltJHYu/Ma1h9ixUPUWka9EjaYa8nJfiMsdCI4LJLNE6cPveE7RmhZ59v9GW1XB108/k083JUC/OtGvA==", 634 634 "cpu": [ 635 635 "arm" 636 636 ], ··· 644 644 } 645 645 }, 646 646 "node_modules/@tauri-apps/cli-linux-arm64-gnu": { 647 - "version": "1.2.3", 648 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.3.tgz", 649 - "integrity": "sha512-buf1c8sdkuUzVDkGPQpyUdAIIdn5r0UgXU6+H5fGPq/Xzt5K69JzXaeo6fHsZEZghbV0hOK+taKV4J0m30UUMQ==", 647 + "version": "1.3.1", 648 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.3.1.tgz", 649 + "integrity": "sha512-Pj3odVO1JAxLjYmoXKxcrpj/tPxcA8UP8N06finhNtBtBaxAjrjjxKjO4968KB0BUH7AASIss9EL4Tr0FGnDuw==", 650 650 "cpu": [ 651 651 "arm64" 652 652 ], ··· 660 660 } 661 661 }, 662 662 "node_modules/@tauri-apps/cli-linux-arm64-musl": { 663 - "version": "1.2.3", 664 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.3.tgz", 665 - "integrity": "sha512-x88wPS9W5xAyk392vc4uNHcKBBvCp0wf4H9JFMF9OBwB7vfd59LbQCFcPSu8f0BI7bPrOsyHqspWHuFL8ojQEA==", 663 + "version": "1.3.1", 664 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.3.1.tgz", 665 + "integrity": "sha512-tA0JdDLPFaj42UDIVcF2t8V0tSha40rppcmAR/MfQpTCxih6399iMjwihz9kZE1n4b5O4KTq9GliYo50a8zYlQ==", 666 666 "cpu": [ 667 667 "arm64" 668 668 ], ··· 676 676 } 677 677 }, 678 678 "node_modules/@tauri-apps/cli-linux-x64-gnu": { 679 - "version": "1.2.3", 680 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.3.tgz", 681 - "integrity": "sha512-ZMz1jxEVe0B4/7NJnlPHmwmSIuwiD6ViXKs8F+OWWz2Y4jn5TGxWKFg7DLx5OwQTRvEIZxxT7lXHi5CuTNAxKg==", 679 + "version": "1.3.1", 680 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.3.1.tgz", 681 + "integrity": "sha512-FDU+Mnvk6NLkqQimcNojdKpMN4Y3W51+SQl+NqG9AFCWprCcSg62yRb84751ujZuf2MGT8HQOfmd0i77F4Q3tQ==", 682 682 "cpu": [ 683 683 "x64" 684 684 ], ··· 692 692 } 693 693 }, 694 694 "node_modules/@tauri-apps/cli-linux-x64-musl": { 695 - "version": "1.2.3", 696 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.3.tgz", 697 - "integrity": "sha512-B/az59EjJhdbZDzawEVox0LQu2ZHCZlk8rJf85AMIktIUoAZPFbwyiUv7/zjzA/sY6Nb58OSJgaPL2/IBy7E0A==", 695 + "version": "1.3.1", 696 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.3.1.tgz", 697 + "integrity": "sha512-MpO3akXFmK8lZYEbyQRDfhdxz1JkTBhonVuz5rRqxwA7gnGWHa1aF1+/2zsy7ahjB2tQ9x8DDFDMdVE20o9HrA==", 698 698 "cpu": [ 699 699 "x64" 700 700 ], ··· 708 708 } 709 709 }, 710 710 "node_modules/@tauri-apps/cli-win32-ia32-msvc": { 711 - "version": "1.2.3", 712 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.3.tgz", 713 - "integrity": "sha512-ypdO1OdC5ugNJAKO2m3sb1nsd+0TSvMS9Tr5qN/ZSMvtSduaNwrcZ3D7G/iOIanrqu/Nl8t3LYlgPZGBKlw7Ng==", 711 + "version": "1.3.1", 712 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.3.1.tgz", 713 + "integrity": "sha512-9Boeo3K5sOrSBAZBuYyGkpV2RfnGQz3ZhGJt4hE6P+HxRd62lS6+qDKAiw1GmkZ0l1drc2INWrNeT50gwOKwIQ==", 714 714 "cpu": [ 715 715 "ia32" 716 716 ], ··· 724 724 } 725 725 }, 726 726 "node_modules/@tauri-apps/cli-win32-x64-msvc": { 727 - "version": "1.2.3", 728 - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.3.tgz", 729 - "integrity": "sha512-CsbHQ+XhnV/2csOBBDVfH16cdK00gNyNYUW68isedmqcn8j+s0e9cQ1xXIqi+Hue3awp8g3ImYN5KPepf3UExw==", 727 + "version": "1.3.1", 728 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.3.1.tgz", 729 + "integrity": "sha512-wMrTo91hUu5CdpbElrOmcZEoJR4aooTG+fbtcc87SMyPGQy1Ux62b+ZdwLvL1sVTxnIm//7v6QLRIWGiUjCPwA==", 730 730 "cpu": [ 731 731 "x64" 732 732 ], ··· 758 758 "dev": true 759 759 }, 760 760 "node_modules/@types/semver": { 761 - "version": "7.3.13", 762 - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", 763 - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", 761 + "version": "7.5.0", 762 + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", 763 + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", 764 764 "dev": true 765 765 }, 766 766 "node_modules/@typescript-eslint/eslint-plugin": { 767 - "version": "5.59.2", 768 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", 769 - "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", 767 + "version": "5.59.6", 768 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", 769 + "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", 770 770 "dev": true, 771 771 "dependencies": { 772 772 "@eslint-community/regexpp": "^4.4.0", 773 - "@typescript-eslint/scope-manager": "5.59.2", 774 - "@typescript-eslint/type-utils": "5.59.2", 775 - "@typescript-eslint/utils": "5.59.2", 773 + "@typescript-eslint/scope-manager": "5.59.6", 774 + "@typescript-eslint/type-utils": "5.59.6", 775 + "@typescript-eslint/utils": "5.59.6", 776 776 "debug": "^4.3.4", 777 777 "grapheme-splitter": "^1.0.4", 778 778 "ignore": "^5.2.0", ··· 798 798 } 799 799 }, 800 800 "node_modules/@typescript-eslint/parser": { 801 - "version": "5.59.2", 802 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", 803 - "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", 801 + "version": "5.59.6", 802 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", 803 + "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", 804 804 "dev": true, 805 805 "dependencies": { 806 - "@typescript-eslint/scope-manager": "5.59.2", 807 - "@typescript-eslint/types": "5.59.2", 808 - "@typescript-eslint/typescript-estree": "5.59.2", 806 + "@typescript-eslint/scope-manager": "5.59.6", 807 + "@typescript-eslint/types": "5.59.6", 808 + "@typescript-eslint/typescript-estree": "5.59.6", 809 809 "debug": "^4.3.4" 810 810 }, 811 811 "engines": { ··· 825 825 } 826 826 }, 827 827 "node_modules/@typescript-eslint/scope-manager": { 828 - "version": "5.59.2", 829 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", 830 - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", 828 + "version": "5.59.6", 829 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", 830 + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", 831 831 "dev": true, 832 832 "dependencies": { 833 - "@typescript-eslint/types": "5.59.2", 834 - "@typescript-eslint/visitor-keys": "5.59.2" 833 + "@typescript-eslint/types": "5.59.6", 834 + "@typescript-eslint/visitor-keys": "5.59.6" 835 835 }, 836 836 "engines": { 837 837 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ··· 842 842 } 843 843 }, 844 844 "node_modules/@typescript-eslint/type-utils": { 845 - "version": "5.59.2", 846 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", 847 - "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", 845 + "version": "5.59.6", 846 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", 847 + "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", 848 848 "dev": true, 849 849 "dependencies": { 850 - "@typescript-eslint/typescript-estree": "5.59.2", 851 - "@typescript-eslint/utils": "5.59.2", 850 + "@typescript-eslint/typescript-estree": "5.59.6", 851 + "@typescript-eslint/utils": "5.59.6", 852 852 "debug": "^4.3.4", 853 853 "tsutils": "^3.21.0" 854 854 }, ··· 869 869 } 870 870 }, 871 871 "node_modules/@typescript-eslint/types": { 872 - "version": "5.59.2", 873 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", 874 - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", 872 + "version": "5.59.6", 873 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", 874 + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", 875 875 "dev": true, 876 876 "engines": { 877 877 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ··· 882 882 } 883 883 }, 884 884 "node_modules/@typescript-eslint/typescript-estree": { 885 - "version": "5.59.2", 886 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", 887 - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", 885 + "version": "5.59.6", 886 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", 887 + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", 888 888 "dev": true, 889 889 "dependencies": { 890 - "@typescript-eslint/types": "5.59.2", 891 - "@typescript-eslint/visitor-keys": "5.59.2", 890 + "@typescript-eslint/types": "5.59.6", 891 + "@typescript-eslint/visitor-keys": "5.59.6", 892 892 "debug": "^4.3.4", 893 893 "globby": "^11.1.0", 894 894 "is-glob": "^4.0.3", ··· 909 909 } 910 910 }, 911 911 "node_modules/@typescript-eslint/utils": { 912 - "version": "5.59.2", 913 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", 914 - "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", 912 + "version": "5.59.6", 913 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", 914 + "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", 915 915 "dev": true, 916 916 "dependencies": { 917 917 "@eslint-community/eslint-utils": "^4.2.0", 918 918 "@types/json-schema": "^7.0.9", 919 919 "@types/semver": "^7.3.12", 920 - "@typescript-eslint/scope-manager": "5.59.2", 921 - "@typescript-eslint/types": "5.59.2", 922 - "@typescript-eslint/typescript-estree": "5.59.2", 920 + "@typescript-eslint/scope-manager": "5.59.6", 921 + "@typescript-eslint/types": "5.59.6", 922 + "@typescript-eslint/typescript-estree": "5.59.6", 923 923 "eslint-scope": "^5.1.1", 924 924 "semver": "^7.3.7" 925 925 }, ··· 935 935 } 936 936 }, 937 937 "node_modules/@typescript-eslint/visitor-keys": { 938 - "version": "5.59.2", 939 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", 940 - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", 938 + "version": "5.59.6", 939 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", 940 + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", 941 941 "dev": true, 942 942 "dependencies": { 943 - "@typescript-eslint/types": "5.59.2", 943 + "@typescript-eslint/types": "5.59.6", 944 944 "eslint-visitor-keys": "^3.3.0" 945 945 }, 946 946 "engines": { ··· 1157 1157 } 1158 1158 }, 1159 1159 "node_modules/caniuse-lite": { 1160 - "version": "1.0.30001482", 1161 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", 1162 - "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", 1160 + "version": "1.0.30001488", 1161 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", 1162 + "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", 1163 1163 "dev": true, 1164 1164 "funding": [ 1165 1165 { ··· 1335 1335 } 1336 1336 }, 1337 1337 "node_modules/electron-to-chromium": { 1338 - "version": "1.4.378", 1339 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.378.tgz", 1340 - "integrity": "sha512-RfCD26kGStl6+XalfX3DGgt3z2DNwJS5DKRHCpkPq5T/PqpZMPB1moSRXuK9xhkt/sF57LlpzJgNoYl7mO7Z6w==", 1338 + "version": "1.4.399", 1339 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.399.tgz", 1340 + "integrity": "sha512-+V1aNvVgoWNWYIbMOiQ1n5fRIaY4SlQ/uRlrsCjLrUwr/3OvQgiX2f5vdav4oArVT9TnttJKcPCqjwPNyZqw/A==", 1341 1341 "dev": true 1342 1342 }, 1343 1343 "node_modules/es6-promise": { ··· 1347 1347 "dev": true 1348 1348 }, 1349 1349 "node_modules/esbuild": { 1350 - "version": "0.17.18", 1351 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", 1352 - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", 1350 + "version": "0.17.19", 1351 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 1352 + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 1353 1353 "dev": true, 1354 1354 "hasInstallScript": true, 1355 1355 "bin": { ··· 1359 1359 "node": ">=12" 1360 1360 }, 1361 1361 "optionalDependencies": { 1362 - "@esbuild/android-arm": "0.17.18", 1363 - "@esbuild/android-arm64": "0.17.18", 1364 - "@esbuild/android-x64": "0.17.18", 1365 - "@esbuild/darwin-arm64": "0.17.18", 1366 - "@esbuild/darwin-x64": "0.17.18", 1367 - "@esbuild/freebsd-arm64": "0.17.18", 1368 - "@esbuild/freebsd-x64": "0.17.18", 1369 - "@esbuild/linux-arm": "0.17.18", 1370 - "@esbuild/linux-arm64": "0.17.18", 1371 - "@esbuild/linux-ia32": "0.17.18", 1372 - "@esbuild/linux-loong64": "0.17.18", 1373 - "@esbuild/linux-mips64el": "0.17.18", 1374 - "@esbuild/linux-ppc64": "0.17.18", 1375 - "@esbuild/linux-riscv64": "0.17.18", 1376 - "@esbuild/linux-s390x": "0.17.18", 1377 - "@esbuild/linux-x64": "0.17.18", 1378 - "@esbuild/netbsd-x64": "0.17.18", 1379 - "@esbuild/openbsd-x64": "0.17.18", 1380 - "@esbuild/sunos-x64": "0.17.18", 1381 - "@esbuild/win32-arm64": "0.17.18", 1382 - "@esbuild/win32-ia32": "0.17.18", 1383 - "@esbuild/win32-x64": "0.17.18" 1362 + "@esbuild/android-arm": "0.17.19", 1363 + "@esbuild/android-arm64": "0.17.19", 1364 + "@esbuild/android-x64": "0.17.19", 1365 + "@esbuild/darwin-arm64": "0.17.19", 1366 + "@esbuild/darwin-x64": "0.17.19", 1367 + "@esbuild/freebsd-arm64": "0.17.19", 1368 + "@esbuild/freebsd-x64": "0.17.19", 1369 + "@esbuild/linux-arm": "0.17.19", 1370 + "@esbuild/linux-arm64": "0.17.19", 1371 + "@esbuild/linux-ia32": "0.17.19", 1372 + "@esbuild/linux-loong64": "0.17.19", 1373 + "@esbuild/linux-mips64el": "0.17.19", 1374 + "@esbuild/linux-ppc64": "0.17.19", 1375 + "@esbuild/linux-riscv64": "0.17.19", 1376 + "@esbuild/linux-s390x": "0.17.19", 1377 + "@esbuild/linux-x64": "0.17.19", 1378 + "@esbuild/netbsd-x64": "0.17.19", 1379 + "@esbuild/openbsd-x64": "0.17.19", 1380 + "@esbuild/sunos-x64": "0.17.19", 1381 + "@esbuild/win32-arm64": "0.17.19", 1382 + "@esbuild/win32-ia32": "0.17.19", 1383 + "@esbuild/win32-x64": "0.17.19" 1384 1384 } 1385 1385 }, 1386 1386 "node_modules/escalade": { ··· 1405 1405 } 1406 1406 }, 1407 1407 "node_modules/eslint": { 1408 - "version": "8.39.0", 1409 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", 1410 - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", 1408 + "version": "8.40.0", 1409 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", 1410 + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", 1411 1411 "dev": true, 1412 1412 "dependencies": { 1413 1413 "@eslint-community/eslint-utils": "^4.2.0", 1414 1414 "@eslint-community/regexpp": "^4.4.0", 1415 - "@eslint/eslintrc": "^2.0.2", 1416 - "@eslint/js": "8.39.0", 1415 + "@eslint/eslintrc": "^2.0.3", 1416 + "@eslint/js": "8.40.0", 1417 1417 "@humanwhocodes/config-array": "^0.11.8", 1418 1418 "@humanwhocodes/module-importer": "^1.0.1", 1419 1419 "@nodelib/fs.walk": "^1.2.8", ··· 1424 1424 "doctrine": "^3.0.0", 1425 1425 "escape-string-regexp": "^4.0.0", 1426 1426 "eslint-scope": "^7.2.0", 1427 - "eslint-visitor-keys": "^3.4.0", 1428 - "espree": "^9.5.1", 1427 + "eslint-visitor-keys": "^3.4.1", 1428 + "espree": "^9.5.2", 1429 1429 "esquery": "^1.4.2", 1430 1430 "esutils": "^2.0.2", 1431 1431 "fast-deep-equal": "^3.1.3", ··· 1473 1473 "eslint": ">=7.0.0" 1474 1474 } 1475 1475 }, 1476 - "node_modules/eslint-plugin-svelte3": { 1477 - "version": "4.0.0", 1478 - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", 1479 - "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", 1476 + "node_modules/eslint-plugin-svelte": { 1477 + "version": "2.28.0", 1478 + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.28.0.tgz", 1479 + "integrity": "sha512-bXPXKnjq5uKoVAQtC2E0L1Vp+mmJ3nlC9jyz8zwfZ99pQROL2h7Hes01QdYil1vxgh6tLXl5YVpZ2wwyAbBz5g==", 1480 1480 "dev": true, 1481 + "dependencies": { 1482 + "@eslint-community/eslint-utils": "^4.2.0", 1483 + "@jridgewell/sourcemap-codec": "^1.4.14", 1484 + "debug": "^4.3.1", 1485 + "esutils": "^2.0.3", 1486 + "known-css-properties": "^0.27.0", 1487 + "postcss": "^8.4.5", 1488 + "postcss-load-config": "^3.1.4", 1489 + "postcss-safe-parser": "^6.0.0", 1490 + "svelte-eslint-parser": "^0.28.0" 1491 + }, 1492 + "engines": { 1493 + "node": "^14.17.0 || >=16.0.0" 1494 + }, 1495 + "funding": { 1496 + "url": "https://github.com/sponsors/ota-meshi" 1497 + }, 1481 1498 "peerDependencies": { 1482 - "eslint": ">=8.0.0", 1483 - "svelte": "^3.2.0" 1499 + "eslint": "^7.0.0 || ^8.0.0-0", 1500 + "svelte": "^3.37.0" 1501 + }, 1502 + "peerDependenciesMeta": { 1503 + "svelte": { 1504 + "optional": true 1505 + } 1484 1506 } 1485 1507 }, 1486 1508 "node_modules/eslint-scope": { ··· 1497 1519 } 1498 1520 }, 1499 1521 "node_modules/eslint-visitor-keys": { 1500 - "version": "3.4.0", 1501 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", 1502 - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", 1522 + "version": "3.4.1", 1523 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", 1524 + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", 1503 1525 "dev": true, 1504 1526 "engines": { 1505 1527 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ··· 1534 1556 } 1535 1557 }, 1536 1558 "node_modules/espree": { 1537 - "version": "9.5.1", 1538 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", 1539 - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", 1559 + "version": "9.5.2", 1560 + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", 1561 + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", 1540 1562 "dev": true, 1541 1563 "dependencies": { 1542 1564 "acorn": "^8.8.0", 1543 1565 "acorn-jsx": "^5.3.2", 1544 - "eslint-visitor-keys": "^3.4.0" 1566 + "eslint-visitor-keys": "^3.4.1" 1545 1567 }, 1546 1568 "engines": { 1547 1569 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ··· 2001 2023 "node": ">=6" 2002 2024 } 2003 2025 }, 2026 + "node_modules/known-css-properties": { 2027 + "version": "0.27.0", 2028 + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", 2029 + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", 2030 + "dev": true 2031 + }, 2004 2032 "node_modules/levn": { 2005 2033 "version": "0.4.1", 2006 2034 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", ··· 2012 2040 }, 2013 2041 "engines": { 2014 2042 "node": ">= 0.8.0" 2043 + } 2044 + }, 2045 + "node_modules/lilconfig": { 2046 + "version": "2.1.0", 2047 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 2048 + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 2049 + "dev": true, 2050 + "engines": { 2051 + "node": ">=10" 2015 2052 } 2016 2053 }, 2017 2054 "node_modules/locate-path": { ··· 2342 2379 "node": "^10 || ^12 || >=14" 2343 2380 } 2344 2381 }, 2382 + "node_modules/postcss-load-config": { 2383 + "version": "3.1.4", 2384 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 2385 + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 2386 + "dev": true, 2387 + "dependencies": { 2388 + "lilconfig": "^2.0.5", 2389 + "yaml": "^1.10.2" 2390 + }, 2391 + "engines": { 2392 + "node": ">= 10" 2393 + }, 2394 + "funding": { 2395 + "type": "opencollective", 2396 + "url": "https://opencollective.com/postcss/" 2397 + }, 2398 + "peerDependencies": { 2399 + "postcss": ">=8.0.9", 2400 + "ts-node": ">=9.0.0" 2401 + }, 2402 + "peerDependenciesMeta": { 2403 + "postcss": { 2404 + "optional": true 2405 + }, 2406 + "ts-node": { 2407 + "optional": true 2408 + } 2409 + } 2410 + }, 2411 + "node_modules/postcss-safe-parser": { 2412 + "version": "6.0.0", 2413 + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", 2414 + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", 2415 + "dev": true, 2416 + "engines": { 2417 + "node": ">=12.0" 2418 + }, 2419 + "funding": { 2420 + "type": "opencollective", 2421 + "url": "https://opencollective.com/postcss/" 2422 + }, 2423 + "peerDependencies": { 2424 + "postcss": "^8.3.3" 2425 + } 2426 + }, 2345 2427 "node_modules/postcss-value-parser": { 2346 2428 "version": "4.2.0", 2347 2429 "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", ··· 2458 2540 } 2459 2541 }, 2460 2542 "node_modules/rollup": { 2461 - "version": "3.21.2", 2462 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.2.tgz", 2463 - "integrity": "sha512-c4vC+JZ3bbF4Kqq2TtM7zSKtSyMybFOjqmomFax3xpfYaPZDZ4iz8NMIuBRMjnXOcKYozw7bC6vhJjiWD6JpzQ==", 2543 + "version": "3.22.0", 2544 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.22.0.tgz", 2545 + "integrity": "sha512-imsigcWor5Y/dC0rz2q0bBt9PabcL3TORry2hAa6O6BuMvY71bqHyfReAz5qyAqiQATD1m70qdntqBfBQjVWpQ==", 2464 2546 "dev": true, 2465 2547 "bin": { 2466 2548 "rollup": "dist/bin/rollup" ··· 2550 2632 } 2551 2633 }, 2552 2634 "node_modules/semver": { 2553 - "version": "7.5.0", 2554 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", 2555 - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", 2635 + "version": "7.5.1", 2636 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", 2637 + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", 2556 2638 "dev": true, 2557 2639 "dependencies": { 2558 2640 "lru-cache": "^6.0.0" ··· 2667 2749 } 2668 2750 }, 2669 2751 "node_modules/svelte": { 2670 - "version": "3.58.0", 2671 - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.58.0.tgz", 2672 - "integrity": "sha512-brIBNNB76mXFmU/Kerm4wFnkskBbluBDCjx/8TcpYRb298Yh2dztS2kQ6bhtjMcvUhd5ynClfwpz5h2gnzdQ1A==", 2752 + "version": "3.59.1", 2753 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.1.tgz", 2754 + "integrity": "sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==", 2673 2755 "dev": true, 2674 2756 "engines": { 2675 2757 "node": ">= 8" 2676 2758 } 2677 2759 }, 2678 2760 "node_modules/svelte-check": { 2679 - "version": "3.2.0", 2680 - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.2.0.tgz", 2681 - "integrity": "sha512-6ZnscN8dHEN5Eq5LgIzjj07W9nc9myyBH+diXsUAuiY/3rt0l65/LCIQYlIuoFEjp2F1NhXqZiJwV9omPj9tMw==", 2761 + "version": "3.3.2", 2762 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.3.2.tgz", 2763 + "integrity": "sha512-67j3rI0LDc2DvL0ON/2pvCasVVD3nHDrTkZNr4eITNfo2oFXdw7SIyMOiFj4swu+pjmFQAigytBK1IWyik8dBw==", 2682 2764 "dev": true, 2683 2765 "dependencies": { 2684 2766 "@jridgewell/trace-mapping": "^0.3.17", ··· 2695 2777 }, 2696 2778 "peerDependencies": { 2697 2779 "svelte": "^3.55.0" 2780 + } 2781 + }, 2782 + "node_modules/svelte-eslint-parser": { 2783 + "version": "0.28.0", 2784 + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.28.0.tgz", 2785 + "integrity": "sha512-qWg5M3CIp7LkcdG5bpn44QEd48UxvgxG5L+Sbl701EG8Wujht7EqJuJhqgzvO3bbI9ENbWCXK49eCcwiNnpMzw==", 2786 + "dev": true, 2787 + "dependencies": { 2788 + "eslint-scope": "^7.0.0", 2789 + "eslint-visitor-keys": "^3.0.0", 2790 + "espree": "^9.0.0" 2791 + }, 2792 + "engines": { 2793 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2794 + }, 2795 + "funding": { 2796 + "url": "https://github.com/sponsors/ota-meshi" 2797 + }, 2798 + "peerDependencies": { 2799 + "svelte": "^3.37.0" 2800 + }, 2801 + "peerDependenciesMeta": { 2802 + "svelte": { 2803 + "optional": true 2804 + } 2805 + } 2806 + }, 2807 + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { 2808 + "version": "7.2.0", 2809 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", 2810 + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", 2811 + "dev": true, 2812 + "dependencies": { 2813 + "esrecurse": "^4.3.0", 2814 + "estraverse": "^5.2.0" 2815 + }, 2816 + "engines": { 2817 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2818 + }, 2819 + "funding": { 2820 + "url": "https://opencollective.com/eslint" 2821 + } 2822 + }, 2823 + "node_modules/svelte-eslint-parser/node_modules/estraverse": { 2824 + "version": "5.3.0", 2825 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2826 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2827 + "dev": true, 2828 + "engines": { 2829 + "node": ">=4.0" 2698 2830 } 2699 2831 }, 2700 2832 "node_modules/svelte-hmr": { ··· 2908 3040 } 2909 3041 }, 2910 3042 "node_modules/vite": { 2911 - "version": "4.3.3", 2912 - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.3.tgz", 2913 - "integrity": "sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==", 3043 + "version": "4.3.7", 3044 + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.7.tgz", 3045 + "integrity": "sha512-MTIFpbIm9v7Hh5b0wSBgkcWzSBz7SAa6K/cBTwS4kUiQJfQLFlZZRJRQgqunCVzhTPCk674tW+0Qaqh3Q00dBg==", 2914 3046 "dev": true, 2915 3047 "dependencies": { 2916 3048 "esbuild": "^0.17.5", ··· 3004 3136 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 3005 3137 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 3006 3138 "dev": true 3139 + }, 3140 + "node_modules/yaml": { 3141 + "version": "1.10.2", 3142 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3143 + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 3144 + "dev": true, 3145 + "engines": { 3146 + "node": ">= 6" 3147 + } 3007 3148 }, 3008 3149 "node_modules/yocto-queue": { 3009 3150 "version": "0.1.0",
+17 -13
package.json
··· 7 7 "dev:web": "vite", 8 8 "build": "tauri build", 9 9 "build:web": "vite build", 10 - "lint": "prettier --check --plugin-search-dir=. src *.js && eslint src *.js && svelte-check", 11 - "format": "prettier --write --plugin-search-dir=. src *.js && eslint --fix src *.js" 10 + "test": "cargo test --manifest-path ./src-tauri/Cargo.toml", 11 + "lint": "svelte-check --tsconfig ./tsconfig.json && eslint src && prettier --check src", 12 + "format": "eslint --fix src && prettier --write src" 12 13 }, 13 14 "devDependencies": { 14 - "@sveltejs/vite-plugin-svelte": "2.1.1", 15 - "@tauri-apps/api": "^1.2.0", 16 - "@tauri-apps/cli": "^1.2.3", 15 + "@sveltejs/vite-plugin-svelte": "2.2.0", 16 + "@tauri-apps/api": "^1.3.0", 17 + "@tauri-apps/cli": "^1.3.1", 17 18 "@tsconfig/svelte": "^4.0.1", 18 - "@typescript-eslint/eslint-plugin": "^5.59.2", 19 - "@typescript-eslint/parser": "^5.59.2", 19 + "@typescript-eslint/eslint-plugin": "^5.59.6", 20 + "@typescript-eslint/parser": "^5.59.6", 20 21 "autoprefixer": "^10.4.14", 21 - "eslint": "^8.39.0", 22 + "eslint": "^8.40.0", 22 23 "eslint-config-prettier": "^8.8.0", 23 - "eslint-plugin-svelte3": "^4.0.0", 24 + "eslint-plugin-svelte": "^2.28.0", 24 25 "prettier": "^2.8.8", 25 26 "prettier-plugin-svelte": "^2.10.0", 26 27 "sass": "^1.62.1", 27 - "svelte": "^3.58.0", 28 - "svelte-check": "^3.2.0", 28 + "svelte": "^3.59.1", 29 + "svelte-check": "^3.3.2", 29 30 "tauri-specta": "^0.0.2", 30 31 "typescript": "^5.0.4", 31 - "vite": "^4.3.3" 32 + "vite": "^4.3.7" 32 33 }, 33 34 "prettier": { 34 35 "printWidth": 100, 35 36 "semi": false, 36 - "singleQuote": true 37 + "singleQuote": true, 38 + "pluginSearchDirs": [ 39 + "." 40 + ] 37 41 } 38 42 }
+791 -467
src-tauri/Cargo.lock
··· 15 15 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 16 16 17 17 [[package]] 18 - name = "adler32" 19 - version = "1.2.0" 20 - source = "registry+https://github.com/rust-lang/crates.io-index" 21 - checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" 22 - 23 - [[package]] 24 18 name = "aho-corasick" 25 - version = "0.7.18" 19 + version = "0.7.20" 26 20 source = "registry+https://github.com/rust-lang/crates.io-index" 27 - checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" 21 + checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 28 22 dependencies = [ 29 23 "memchr", 30 24 ] ··· 40 34 41 35 [[package]] 42 36 name = "alloc-no-stdlib" 43 - version = "2.0.3" 37 + version = "2.0.4" 44 38 source = "registry+https://github.com/rust-lang/crates.io-index" 45 - checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" 39 + checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 46 40 47 41 [[package]] 48 42 name = "alloc-stdlib" 49 - version = "0.2.1" 43 + version = "0.2.2" 50 44 source = "registry+https://github.com/rust-lang/crates.io-index" 51 - checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" 45 + checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 52 46 dependencies = [ 53 47 "alloc-no-stdlib", 54 48 ] 55 49 56 50 [[package]] 57 - name = "ansi_term" 58 - version = "0.12.1" 51 + name = "android_system_properties" 52 + version = "0.1.5" 59 53 source = "registry+https://github.com/rust-lang/crates.io-index" 60 - checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 54 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 61 55 dependencies = [ 62 - "winapi", 56 + "libc", 63 57 ] 64 58 65 59 [[package]] 66 60 name = "anyhow" 67 - version = "1.0.60" 61 + version = "1.0.71" 68 62 source = "registry+https://github.com/rust-lang/crates.io-index" 69 - checksum = "c794e162a5eff65c72ef524dfe393eb923c354e350bb78b9c7383df13f3bc142" 63 + checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" 70 64 71 65 [[package]] 72 66 name = "atk" ··· 89 83 "glib-sys", 90 84 "gobject-sys", 91 85 "libc", 92 - "system-deps 6.0.2", 86 + "system-deps 6.1.0", 93 87 ] 94 88 95 89 [[package]] ··· 100 94 101 95 [[package]] 102 96 name = "base64" 103 - version = "0.13.0" 97 + version = "0.13.1" 98 + source = "registry+https://github.com/rust-lang/crates.io-index" 99 + checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 100 + 101 + [[package]] 102 + name = "base64" 103 + version = "0.21.0" 104 104 source = "registry+https://github.com/rust-lang/crates.io-index" 105 - checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" 105 + checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 106 106 107 107 [[package]] 108 108 name = "bitflags" ··· 118 118 119 119 [[package]] 120 120 name = "block-buffer" 121 - version = "0.10.2" 121 + version = "0.10.4" 122 122 source = "registry+https://github.com/rust-lang/crates.io-index" 123 - checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" 123 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 124 124 dependencies = [ 125 125 "generic-array", 126 126 ] ··· 138 138 139 139 [[package]] 140 140 name = "brotli-decompressor" 141 - version = "2.3.2" 141 + version = "2.3.4" 142 142 source = "registry+https://github.com/rust-lang/crates.io-index" 143 - checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" 143 + checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" 144 144 dependencies = [ 145 145 "alloc-no-stdlib", 146 146 "alloc-stdlib", ··· 148 148 149 149 [[package]] 150 150 name = "bstr" 151 - version = "0.2.17" 151 + version = "1.4.0" 152 152 source = "registry+https://github.com/rust-lang/crates.io-index" 153 - checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" 153 + checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" 154 154 dependencies = [ 155 155 "memchr", 156 + "serde", 156 157 ] 157 158 158 159 [[package]] 159 160 name = "bumpalo" 160 - version = "3.10.0" 161 + version = "3.12.2" 161 162 source = "registry+https://github.com/rust-lang/crates.io-index" 162 - checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" 163 + checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" 163 164 164 165 [[package]] 165 166 name = "bytemuck" 166 - version = "1.11.0" 167 + version = "1.13.1" 167 168 source = "registry+https://github.com/rust-lang/crates.io-index" 168 - checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835" 169 + checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" 169 170 170 171 [[package]] 171 172 name = "byteorder" ··· 175 176 176 177 [[package]] 177 178 name = "bytes" 178 - version = "1.2.1" 179 + version = "1.4.0" 179 180 source = "registry+https://github.com/rust-lang/crates.io-index" 180 - checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 181 + checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 181 182 182 183 [[package]] 183 184 name = "cairo-rs" ··· 200 201 dependencies = [ 201 202 "glib-sys", 202 203 "libc", 203 - "system-deps 6.0.2", 204 + "system-deps 6.1.0", 204 205 ] 205 206 206 207 [[package]] 207 208 name = "cargo_toml" 208 - version = "0.11.5" 209 + version = "0.15.2" 209 210 source = "registry+https://github.com/rust-lang/crates.io-index" 210 - checksum = "5809dd3e6444651fd1cdd3dbec71eca438c439a0fcc8081674a14da0afe50185" 211 + checksum = "7f83bc2e401ed041b7057345ebc488c005efa0341d5541ce7004d30458d0090b" 211 212 dependencies = [ 212 213 "serde", 213 - "serde_derive", 214 - "toml", 214 + "toml 0.7.3", 215 215 ] 216 216 217 217 [[package]] 218 218 name = "cc" 219 - version = "1.0.73" 219 + version = "1.0.79" 220 220 source = "registry+https://github.com/rust-lang/crates.io-index" 221 - checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" 221 + checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 222 222 223 223 [[package]] 224 224 name = "cesu8" ··· 228 228 229 229 [[package]] 230 230 name = "cfb" 231 - version = "0.6.1" 231 + version = "0.7.3" 232 232 source = "registry+https://github.com/rust-lang/crates.io-index" 233 - checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" 233 + checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" 234 234 dependencies = [ 235 235 "byteorder", 236 - "uuid 0.8.2", 236 + "fnv", 237 + "uuid", 237 238 ] 238 239 239 240 [[package]] ··· 247 248 248 249 [[package]] 249 250 name = "cfg-expr" 250 - version = "0.10.3" 251 + version = "0.15.1" 251 252 source = "registry+https://github.com/rust-lang/crates.io-index" 252 - checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" 253 + checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" 253 254 dependencies = [ 254 255 "smallvec", 256 + "target-lexicon", 255 257 ] 256 258 257 259 [[package]] ··· 261 263 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 262 264 263 265 [[package]] 266 + name = "chrono" 267 + version = "0.4.24" 268 + source = "registry+https://github.com/rust-lang/crates.io-index" 269 + checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" 270 + dependencies = [ 271 + "iana-time-zone", 272 + "num-integer", 273 + "num-traits", 274 + "serde", 275 + "winapi", 276 + ] 277 + 278 + [[package]] 264 279 name = "cocoa" 265 - version = "0.24.0" 280 + version = "0.24.1" 266 281 source = "registry+https://github.com/rust-lang/crates.io-index" 267 - checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" 282 + checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 268 283 dependencies = [ 269 284 "bitflags", 270 285 "block", ··· 278 293 279 294 [[package]] 280 295 name = "cocoa-foundation" 281 - version = "0.1.0" 296 + version = "0.1.1" 282 297 source = "registry+https://github.com/rust-lang/crates.io-index" 283 - checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" 298 + checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" 284 299 dependencies = [ 285 300 "bitflags", 286 301 "block", ··· 299 314 300 315 [[package]] 301 316 name = "combine" 302 - version = "4.6.4" 317 + version = "4.6.6" 303 318 source = "registry+https://github.com/rust-lang/crates.io-index" 304 - checksum = "2a604e93b79d1808327a6fca85a6f2d69de66461e7620f5a4cbf5fb4d1d7c948" 319 + checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" 305 320 dependencies = [ 306 321 "bytes", 307 322 "memchr", ··· 325 340 326 341 [[package]] 327 342 name = "core-foundation-sys" 328 - version = "0.8.3" 343 + version = "0.8.4" 329 344 source = "registry+https://github.com/rust-lang/crates.io-index" 330 - checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 345 + checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 331 346 332 347 [[package]] 333 348 name = "core-graphics" ··· 356 371 357 372 [[package]] 358 373 name = "cpufeatures" 359 - version = "0.2.2" 374 + version = "0.2.7" 360 375 source = "registry+https://github.com/rust-lang/crates.io-index" 361 - checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" 376 + checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" 362 377 dependencies = [ 363 378 "libc", 364 379 ] ··· 374 389 375 390 [[package]] 376 391 name = "crossbeam-channel" 377 - version = "0.5.6" 392 + version = "0.5.8" 378 393 source = "registry+https://github.com/rust-lang/crates.io-index" 379 - checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" 394 + checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 380 395 dependencies = [ 381 396 "cfg-if", 382 397 "crossbeam-utils", ··· 384 399 385 400 [[package]] 386 401 name = "crossbeam-utils" 387 - version = "0.8.11" 402 + version = "0.8.15" 388 403 source = "registry+https://github.com/rust-lang/crates.io-index" 389 - checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" 404 + checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 390 405 dependencies = [ 391 406 "cfg-if", 392 - "once_cell", 393 407 ] 394 408 395 409 [[package]] ··· 431 445 432 446 [[package]] 433 447 name = "ctor" 434 - version = "0.1.23" 448 + version = "0.1.26" 435 449 source = "registry+https://github.com/rust-lang/crates.io-index" 436 - checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" 450 + checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" 437 451 dependencies = [ 438 452 "quote", 439 453 "syn 1.0.109", 440 454 ] 441 455 442 456 [[package]] 457 + name = "cty" 458 + version = "0.2.2" 459 + source = "registry+https://github.com/rust-lang/crates.io-index" 460 + checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" 461 + 462 + [[package]] 443 463 name = "darling" 444 - version = "0.13.4" 464 + version = "0.20.1" 445 465 source = "registry+https://github.com/rust-lang/crates.io-index" 446 - checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 466 + checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944" 447 467 dependencies = [ 448 468 "darling_core", 449 469 "darling_macro", ··· 451 471 452 472 [[package]] 453 473 name = "darling_core" 454 - version = "0.13.4" 474 + version = "0.20.1" 455 475 source = "registry+https://github.com/rust-lang/crates.io-index" 456 - checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 476 + checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb" 457 477 dependencies = [ 458 478 "fnv", 459 479 "ident_case", 460 480 "proc-macro2", 461 481 "quote", 462 482 "strsim", 463 - "syn 1.0.109", 483 + "syn 2.0.16", 464 484 ] 465 485 466 486 [[package]] 467 487 name = "darling_macro" 468 - version = "0.13.4" 488 + version = "0.20.1" 469 489 source = "registry+https://github.com/rust-lang/crates.io-index" 470 - checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 490 + checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" 471 491 dependencies = [ 472 492 "darling_core", 473 493 "quote", 474 - "syn 1.0.109", 475 - ] 476 - 477 - [[package]] 478 - name = "deflate" 479 - version = "1.0.0" 480 - source = "registry+https://github.com/rust-lang/crates.io-index" 481 - checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" 482 - dependencies = [ 483 - "adler32", 494 + "syn 2.0.16", 484 495 ] 485 496 486 497 [[package]] ··· 492 503 "convert_case", 493 504 "proc-macro2", 494 505 "quote", 495 - "rustc_version 0.4.0", 506 + "rustc_version", 496 507 "syn 1.0.109", 497 508 ] 498 509 499 510 [[package]] 500 511 name = "digest" 501 - version = "0.10.3" 512 + version = "0.10.6" 502 513 source = "registry+https://github.com/rust-lang/crates.io-index" 503 - checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" 514 + checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" 504 515 dependencies = [ 505 516 "block-buffer", 506 517 "crypto-common", ··· 570 581 checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" 571 582 572 583 [[package]] 584 + name = "embed-resource" 585 + version = "2.1.1" 586 + source = "registry+https://github.com/rust-lang/crates.io-index" 587 + checksum = "80663502655af01a2902dff3f06869330782267924bf1788410b74edcd93770a" 588 + dependencies = [ 589 + "cc", 590 + "rustc_version", 591 + "toml 0.7.3", 592 + "vswhom", 593 + "winreg", 594 + ] 595 + 596 + [[package]] 573 597 name = "embed_plist" 574 598 version = "1.2.2" 575 599 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 585 609 ] 586 610 587 611 [[package]] 612 + name = "errno" 613 + version = "0.3.1" 614 + source = "registry+https://github.com/rust-lang/crates.io-index" 615 + checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" 616 + dependencies = [ 617 + "errno-dragonfly", 618 + "libc", 619 + "windows-sys 0.48.0", 620 + ] 621 + 622 + [[package]] 623 + name = "errno-dragonfly" 624 + version = "0.1.2" 625 + source = "registry+https://github.com/rust-lang/crates.io-index" 626 + checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 627 + dependencies = [ 628 + "cc", 629 + "libc", 630 + ] 631 + 632 + [[package]] 588 633 name = "fastrand" 589 - version = "1.8.0" 634 + version = "1.9.0" 590 635 source = "registry+https://github.com/rust-lang/crates.io-index" 591 - checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" 636 + checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 592 637 dependencies = [ 593 638 "instant", 594 639 ] 595 640 596 641 [[package]] 642 + name = "fdeflate" 643 + version = "0.3.0" 644 + source = "registry+https://github.com/rust-lang/crates.io-index" 645 + checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" 646 + dependencies = [ 647 + "simd-adler32", 648 + ] 649 + 650 + [[package]] 597 651 name = "field-offset" 598 - version = "0.3.4" 652 + version = "0.3.5" 599 653 source = "registry+https://github.com/rust-lang/crates.io-index" 600 - checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 654 + checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535" 601 655 dependencies = [ 602 656 "memoffset", 603 - "rustc_version 0.3.3", 657 + "rustc_version", 604 658 ] 605 659 606 660 [[package]] 607 661 name = "filetime" 608 - version = "0.2.17" 662 + version = "0.2.21" 609 663 source = "registry+https://github.com/rust-lang/crates.io-index" 610 - checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" 664 + checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" 611 665 dependencies = [ 612 666 "cfg-if", 613 667 "libc", 614 - "redox_syscall", 615 - "windows-sys", 668 + "redox_syscall 0.2.16", 669 + "windows-sys 0.48.0", 616 670 ] 617 671 618 672 [[package]] 619 673 name = "flate2" 620 - version = "1.0.24" 674 + version = "1.0.26" 621 675 source = "registry+https://github.com/rust-lang/crates.io-index" 622 - checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" 676 + checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" 623 677 dependencies = [ 624 678 "crc32fast", 625 679 "miniz_oxide", ··· 667 721 668 722 [[package]] 669 723 name = "futures-channel" 670 - version = "0.3.21" 724 + version = "0.3.28" 671 725 source = "registry+https://github.com/rust-lang/crates.io-index" 672 - checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" 726 + checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 673 727 dependencies = [ 674 728 "futures-core", 675 729 ] 676 730 677 731 [[package]] 678 732 name = "futures-core" 679 - version = "0.3.21" 733 + version = "0.3.28" 680 734 source = "registry+https://github.com/rust-lang/crates.io-index" 681 - checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" 735 + checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 682 736 683 737 [[package]] 684 738 name = "futures-executor" 685 - version = "0.3.21" 739 + version = "0.3.28" 686 740 source = "registry+https://github.com/rust-lang/crates.io-index" 687 - checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" 741 + checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" 688 742 dependencies = [ 689 743 "futures-core", 690 744 "futures-task", ··· 693 747 694 748 [[package]] 695 749 name = "futures-io" 696 - version = "0.3.21" 750 + version = "0.3.28" 697 751 source = "registry+https://github.com/rust-lang/crates.io-index" 698 - checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" 752 + checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 699 753 700 754 [[package]] 701 755 name = "futures-macro" 702 - version = "0.3.21" 756 + version = "0.3.28" 703 757 source = "registry+https://github.com/rust-lang/crates.io-index" 704 - checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" 758 + checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" 705 759 dependencies = [ 706 760 "proc-macro2", 707 761 "quote", 708 - "syn 1.0.109", 762 + "syn 2.0.16", 709 763 ] 710 764 711 765 [[package]] 712 766 name = "futures-task" 713 - version = "0.3.21" 767 + version = "0.3.28" 714 768 source = "registry+https://github.com/rust-lang/crates.io-index" 715 - checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" 769 + checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 716 770 717 771 [[package]] 718 772 name = "futures-util" 719 - version = "0.3.21" 773 + version = "0.3.28" 720 774 source = "registry+https://github.com/rust-lang/crates.io-index" 721 - checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" 775 + checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 722 776 dependencies = [ 723 777 "futures-core", 724 778 "futures-macro", ··· 776 830 "glib-sys", 777 831 "gobject-sys", 778 832 "libc", 779 - "system-deps 6.0.2", 833 + "system-deps 6.1.0", 780 834 ] 781 835 782 836 [[package]] ··· 793 847 "libc", 794 848 "pango-sys", 795 849 "pkg-config", 796 - "system-deps 6.0.2", 850 + "system-deps 6.1.0", 851 + ] 852 + 853 + [[package]] 854 + name = "gdkwayland-sys" 855 + version = "0.15.3" 856 + source = "registry+https://github.com/rust-lang/crates.io-index" 857 + checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" 858 + dependencies = [ 859 + "gdk-sys", 860 + "glib-sys", 861 + "gobject-sys", 862 + "libc", 863 + "pkg-config", 864 + "system-deps 6.1.0", 797 865 ] 798 866 799 867 [[package]] ··· 805 873 "gdk-sys", 806 874 "glib-sys", 807 875 "libc", 808 - "system-deps 6.0.2", 876 + "system-deps 6.1.0", 809 877 "x11", 810 878 ] 811 879 812 880 [[package]] 813 881 name = "generator" 814 - version = "0.7.1" 882 + version = "0.7.4" 815 883 source = "registry+https://github.com/rust-lang/crates.io-index" 816 - checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" 884 + checksum = "f3e123d9ae7c02966b4d892e550bdc32164f05853cd40ab570650ad600596a8a" 817 885 dependencies = [ 818 886 "cc", 819 887 "libc", 820 888 "log", 821 889 "rustversion", 822 - "windows 0.32.0", 890 + "windows 0.48.0", 823 891 ] 824 892 825 893 [[package]] 826 894 name = "generic-array" 827 - version = "0.14.6" 895 + version = "0.14.7" 828 896 source = "registry+https://github.com/rust-lang/crates.io-index" 829 - checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" 897 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 830 898 dependencies = [ 831 899 "typenum", 832 900 "version_check", ··· 845 913 846 914 [[package]] 847 915 name = "getrandom" 848 - version = "0.2.7" 916 + version = "0.2.9" 849 917 source = "registry+https://github.com/rust-lang/crates.io-index" 850 - checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" 918 + checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" 851 919 dependencies = [ 852 920 "cfg-if", 853 921 "libc", ··· 880 948 "glib-sys", 881 949 "gobject-sys", 882 950 "libc", 883 - "system-deps 6.0.2", 951 + "system-deps 6.1.0", 884 952 "winapi", 885 953 ] 886 954 ··· 906 974 907 975 [[package]] 908 976 name = "glib-macros" 909 - version = "0.15.11" 977 + version = "0.15.13" 910 978 source = "registry+https://github.com/rust-lang/crates.io-index" 911 - checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" 979 + checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" 912 980 dependencies = [ 913 981 "anyhow", 914 982 "heck 0.4.1", ··· 926 994 checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" 927 995 dependencies = [ 928 996 "libc", 929 - "system-deps 6.0.2", 997 + "system-deps 6.1.0", 930 998 ] 931 999 932 1000 [[package]] 933 1001 name = "glob" 934 - version = "0.3.0" 1002 + version = "0.3.1" 935 1003 source = "registry+https://github.com/rust-lang/crates.io-index" 936 - checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 1004 + checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 937 1005 938 1006 [[package]] 939 1007 name = "globset" 940 - version = "0.4.9" 1008 + version = "0.4.10" 941 1009 source = "registry+https://github.com/rust-lang/crates.io-index" 942 - checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" 1010 + checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" 943 1011 dependencies = [ 944 - "aho-corasick 0.7.18", 1012 + "aho-corasick 0.7.20", 945 1013 "bstr", 946 1014 "fnv", 947 1015 "log", ··· 956 1024 dependencies = [ 957 1025 "glib-sys", 958 1026 "libc", 959 - "system-deps 6.0.2", 1027 + "system-deps 6.1.0", 960 1028 ] 961 1029 962 1030 [[package]] ··· 997 1065 "gobject-sys", 998 1066 "libc", 999 1067 "pango-sys", 1000 - "system-deps 6.0.2", 1068 + "system-deps 6.1.0", 1001 1069 ] 1002 1070 1003 1071 [[package]] 1004 1072 name = "gtk3-macros" 1005 - version = "0.15.4" 1073 + version = "0.15.6" 1006 1074 source = "registry+https://github.com/rust-lang/crates.io-index" 1007 - checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" 1075 + checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" 1008 1076 dependencies = [ 1009 1077 "anyhow", 1010 1078 "proc-macro-crate", ··· 1037 1105 1038 1106 [[package]] 1039 1107 name = "hermit-abi" 1040 - version = "0.1.19" 1108 + version = "0.2.6" 1041 1109 source = "registry+https://github.com/rust-lang/crates.io-index" 1042 - checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1110 + checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 1043 1111 dependencies = [ 1044 1112 "libc", 1045 1113 ] 1046 1114 1047 1115 [[package]] 1116 + name = "hermit-abi" 1117 + version = "0.3.1" 1118 + source = "registry+https://github.com/rust-lang/crates.io-index" 1119 + checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 1120 + 1121 + [[package]] 1122 + name = "hex" 1123 + version = "0.4.3" 1124 + source = "registry+https://github.com/rust-lang/crates.io-index" 1125 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1126 + 1127 + [[package]] 1048 1128 name = "html5ever" 1049 1129 version = "0.25.2" 1050 1130 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1060 1140 1061 1141 [[package]] 1062 1142 name = "http" 1063 - version = "0.2.8" 1143 + version = "0.2.9" 1064 1144 source = "registry+https://github.com/rust-lang/crates.io-index" 1065 - checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 1145 + checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 1066 1146 dependencies = [ 1067 1147 "bytes", 1068 1148 "fnv", 1069 - "itoa 1.0.3", 1149 + "itoa 1.0.6", 1070 1150 ] 1071 1151 1072 1152 [[package]] ··· 1076 1156 checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" 1077 1157 1078 1158 [[package]] 1159 + name = "iana-time-zone" 1160 + version = "0.1.56" 1161 + source = "registry+https://github.com/rust-lang/crates.io-index" 1162 + checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" 1163 + dependencies = [ 1164 + "android_system_properties", 1165 + "core-foundation-sys", 1166 + "iana-time-zone-haiku", 1167 + "js-sys", 1168 + "wasm-bindgen", 1169 + "windows 0.48.0", 1170 + ] 1171 + 1172 + [[package]] 1173 + name = "iana-time-zone-haiku" 1174 + version = "0.1.2" 1175 + source = "registry+https://github.com/rust-lang/crates.io-index" 1176 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1177 + dependencies = [ 1178 + "cc", 1179 + ] 1180 + 1181 + [[package]] 1079 1182 name = "ico" 1080 - version = "0.2.0" 1183 + version = "0.3.0" 1081 1184 source = "registry+https://github.com/rust-lang/crates.io-index" 1082 - checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" 1185 + checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" 1083 1186 dependencies = [ 1084 1187 "byteorder", 1085 1188 "png", ··· 1121 1224 1122 1225 [[package]] 1123 1226 name = "image" 1124 - version = "0.24.3" 1227 + version = "0.24.6" 1125 1228 source = "registry+https://github.com/rust-lang/crates.io-index" 1126 - checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964" 1229 + checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" 1127 1230 dependencies = [ 1128 1231 "bytemuck", 1129 1232 "byteorder", ··· 1134 1237 1135 1238 [[package]] 1136 1239 name = "indexmap" 1137 - version = "1.9.1" 1240 + version = "1.9.3" 1138 1241 source = "registry+https://github.com/rust-lang/crates.io-index" 1139 - checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" 1242 + checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1140 1243 dependencies = [ 1141 1244 "autocfg", 1142 1245 "hashbrown", 1246 + "serde", 1143 1247 ] 1144 1248 1145 1249 [[package]] ··· 1156 1260 1157 1261 [[package]] 1158 1262 name = "infer" 1159 - version = "0.7.0" 1263 + version = "0.12.0" 1160 1264 source = "registry+https://github.com/rust-lang/crates.io-index" 1161 - checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" 1265 + checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" 1162 1266 dependencies = [ 1163 1267 "cfb", 1164 1268 ] ··· 1173 1277 ] 1174 1278 1175 1279 [[package]] 1280 + name = "io-lifetimes" 1281 + version = "1.0.10" 1282 + source = "registry+https://github.com/rust-lang/crates.io-index" 1283 + checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" 1284 + dependencies = [ 1285 + "hermit-abi 0.3.1", 1286 + "libc", 1287 + "windows-sys 0.48.0", 1288 + ] 1289 + 1290 + [[package]] 1291 + name = "is-docker" 1292 + version = "0.2.0" 1293 + source = "registry+https://github.com/rust-lang/crates.io-index" 1294 + checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 1295 + dependencies = [ 1296 + "once_cell", 1297 + ] 1298 + 1299 + [[package]] 1300 + name = "is-wsl" 1301 + version = "0.4.0" 1302 + source = "registry+https://github.com/rust-lang/crates.io-index" 1303 + checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 1304 + dependencies = [ 1305 + "is-docker", 1306 + "once_cell", 1307 + ] 1308 + 1309 + [[package]] 1176 1310 name = "itertools" 1177 1311 version = "0.10.5" 1178 1312 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1189 1323 1190 1324 [[package]] 1191 1325 name = "itoa" 1192 - version = "1.0.3" 1326 + version = "1.0.6" 1193 1327 source = "registry+https://github.com/rust-lang/crates.io-index" 1194 - checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" 1328 + checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 1195 1329 1196 1330 [[package]] 1197 1331 name = "javascriptcore-rs" ··· 1238 1372 1239 1373 [[package]] 1240 1374 name = "js-sys" 1241 - version = "0.3.59" 1375 + version = "0.3.63" 1242 1376 source = "registry+https://github.com/rust-lang/crates.io-index" 1243 - checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" 1377 + checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" 1244 1378 dependencies = [ 1245 1379 "wasm-bindgen", 1246 1380 ] 1247 1381 1248 1382 [[package]] 1249 1383 name = "json-patch" 1250 - version = "0.2.6" 1384 + version = "1.0.0" 1251 1385 source = "registry+https://github.com/rust-lang/crates.io-index" 1252 - checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" 1386 + checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658" 1253 1387 dependencies = [ 1254 1388 "serde", 1255 1389 "serde_json", 1390 + "thiserror", 1256 1391 "treediff", 1257 1392 ] 1258 1393 ··· 1276 1411 1277 1412 [[package]] 1278 1413 name = "libc" 1279 - version = "0.2.127" 1414 + version = "0.2.144" 1280 1415 source = "registry+https://github.com/rust-lang/crates.io-index" 1281 - checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b" 1416 + checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" 1282 1417 1283 1418 [[package]] 1284 1419 name = "line-wrap" ··· 1290 1425 ] 1291 1426 1292 1427 [[package]] 1428 + name = "linux-raw-sys" 1429 + version = "0.3.7" 1430 + source = "registry+https://github.com/rust-lang/crates.io-index" 1431 + checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" 1432 + 1433 + [[package]] 1293 1434 name = "litrs" 1294 1435 version = "0.2.3" 1295 1436 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1297 1438 1298 1439 [[package]] 1299 1440 name = "lock_api" 1300 - version = "0.4.7" 1441 + version = "0.4.9" 1301 1442 source = "registry+https://github.com/rust-lang/crates.io-index" 1302 - checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 1443 + checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 1303 1444 dependencies = [ 1304 1445 "autocfg", 1305 1446 "scopeguard", ··· 1369 1510 1370 1511 [[package]] 1371 1512 name = "matches" 1372 - version = "0.1.9" 1513 + version = "0.1.10" 1373 1514 source = "registry+https://github.com/rust-lang/crates.io-index" 1374 - checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" 1515 + checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 1375 1516 1376 1517 [[package]] 1377 1518 name = "memchr" ··· 1381 1522 1382 1523 [[package]] 1383 1524 name = "memoffset" 1384 - version = "0.6.5" 1525 + version = "0.8.0" 1385 1526 source = "registry+https://github.com/rust-lang/crates.io-index" 1386 - checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1527 + checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" 1387 1528 dependencies = [ 1388 1529 "autocfg", 1389 1530 ] 1390 1531 1391 1532 [[package]] 1392 1533 name = "miniz_oxide" 1393 - version = "0.5.3" 1534 + version = "0.7.1" 1394 1535 source = "registry+https://github.com/rust-lang/crates.io-index" 1395 - checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" 1536 + checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 1396 1537 dependencies = [ 1397 1538 "adler", 1539 + "simd-adler32", 1398 1540 ] 1399 1541 1400 1542 [[package]] ··· 1436 1578 version = "0.1.14" 1437 1579 source = "registry+https://github.com/rust-lang/crates.io-index" 1438 1580 checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 1581 + 1582 + [[package]] 1583 + name = "nu-ansi-term" 1584 + version = "0.46.0" 1585 + source = "registry+https://github.com/rust-lang/crates.io-index" 1586 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 1587 + dependencies = [ 1588 + "overload", 1589 + "winapi", 1590 + ] 1439 1591 1440 1592 [[package]] 1441 1593 name = "num-integer" ··· 1469 1621 1470 1622 [[package]] 1471 1623 name = "num_cpus" 1472 - version = "1.13.1" 1624 + version = "1.15.0" 1473 1625 source = "registry+https://github.com/rust-lang/crates.io-index" 1474 - checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" 1626 + checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 1475 1627 dependencies = [ 1476 - "hermit-abi", 1628 + "hermit-abi 0.2.6", 1477 1629 "libc", 1478 1630 ] 1479 1631 1480 1632 [[package]] 1481 1633 name = "num_enum" 1482 - version = "0.5.7" 1634 + version = "0.5.11" 1483 1635 source = "registry+https://github.com/rust-lang/crates.io-index" 1484 - checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" 1636 + checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 1485 1637 dependencies = [ 1486 1638 "num_enum_derive", 1487 1639 ] 1488 1640 1489 1641 [[package]] 1490 1642 name = "num_enum_derive" 1491 - version = "0.5.7" 1643 + version = "0.5.11" 1492 1644 source = "registry+https://github.com/rust-lang/crates.io-index" 1493 - checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" 1645 + checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 1494 1646 dependencies = [ 1495 1647 "proc-macro-crate", 1496 1648 "proc-macro2", ··· 1554 1706 1555 1707 [[package]] 1556 1708 name = "open" 1557 - version = "3.0.2" 1709 + version = "3.2.0" 1558 1710 source = "registry+https://github.com/rust-lang/crates.io-index" 1559 - checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045" 1711 + checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" 1560 1712 dependencies = [ 1561 1713 "pathdiff", 1562 - "windows-sys", 1714 + "windows-sys 0.42.0", 1563 1715 ] 1564 1716 1565 1717 [[package]] 1718 + name = "open" 1719 + version = "4.1.0" 1720 + source = "registry+https://github.com/rust-lang/crates.io-index" 1721 + checksum = "d16814a067484415fda653868c9be0ac5f2abd2ef5d951082a5f2fe1b3662944" 1722 + dependencies = [ 1723 + "is-wsl", 1724 + "pathdiff", 1725 + ] 1726 + 1727 + [[package]] 1728 + name = "overload" 1729 + version = "0.1.1" 1730 + source = "registry+https://github.com/rust-lang/crates.io-index" 1731 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1732 + 1733 + [[package]] 1566 1734 name = "pango" 1567 1735 version = "0.15.10" 1568 1736 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1584 1752 "glib-sys", 1585 1753 "gobject-sys", 1586 1754 "libc", 1587 - "system-deps 6.0.2", 1755 + "system-deps 6.1.0", 1588 1756 ] 1589 1757 1590 1758 [[package]] ··· 1599 1767 1600 1768 [[package]] 1601 1769 name = "parking_lot_core" 1602 - version = "0.9.3" 1770 + version = "0.9.7" 1603 1771 source = "registry+https://github.com/rust-lang/crates.io-index" 1604 - checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 1772 + checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 1605 1773 dependencies = [ 1606 1774 "cfg-if", 1607 1775 "libc", 1608 - "redox_syscall", 1776 + "redox_syscall 0.2.16", 1609 1777 "smallvec", 1610 - "windows-sys", 1778 + "windows-sys 0.45.0", 1611 1779 ] 1612 1780 1613 1781 [[package]] ··· 1627 1795 version = "2.2.0" 1628 1796 source = "registry+https://github.com/rust-lang/crates.io-index" 1629 1797 checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1630 - 1631 - [[package]] 1632 - name = "pest" 1633 - version = "2.2.1" 1634 - source = "registry+https://github.com/rust-lang/crates.io-index" 1635 - checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8" 1636 - dependencies = [ 1637 - "thiserror", 1638 - "ucd-trie", 1639 - ] 1640 1798 1641 1799 [[package]] 1642 1800 name = "phf" ··· 1750 1908 1751 1909 [[package]] 1752 1910 name = "pkg-config" 1753 - version = "0.3.25" 1911 + version = "0.3.27" 1754 1912 source = "registry+https://github.com/rust-lang/crates.io-index" 1755 - checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" 1913 + checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 1756 1914 1757 1915 [[package]] 1758 1916 name = "plist" 1759 - version = "1.3.1" 1917 + version = "1.4.3" 1760 1918 source = "registry+https://github.com/rust-lang/crates.io-index" 1761 - checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" 1919 + checksum = "9bd9647b268a3d3e14ff09c23201133a62589c658db02bb7388c7246aafe0590" 1762 1920 dependencies = [ 1763 - "base64", 1921 + "base64 0.21.0", 1764 1922 "indexmap", 1765 1923 "line-wrap", 1924 + "quick-xml", 1766 1925 "serde", 1767 1926 "time", 1768 - "xml-rs", 1769 1927 ] 1770 1928 1771 1929 [[package]] 1772 1930 name = "png" 1773 - version = "0.17.5" 1931 + version = "0.17.8" 1774 1932 source = "registry+https://github.com/rust-lang/crates.io-index" 1775 - checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" 1933 + checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" 1776 1934 dependencies = [ 1777 1935 "bitflags", 1778 1936 "crc32fast", 1779 - "deflate", 1937 + "fdeflate", 1938 + "flate2", 1780 1939 "miniz_oxide", 1781 1940 ] 1782 1941 1783 1942 [[package]] 1784 1943 name = "ppv-lite86" 1785 - version = "0.2.16" 1944 + version = "0.2.17" 1786 1945 source = "registry+https://github.com/rust-lang/crates.io-index" 1787 - checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" 1946 + checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1788 1947 1789 1948 [[package]] 1790 1949 name = "precomputed-hash" ··· 1794 1953 1795 1954 [[package]] 1796 1955 name = "proc-macro-crate" 1797 - version = "1.2.0" 1956 + version = "1.3.1" 1798 1957 source = "registry+https://github.com/rust-lang/crates.io-index" 1799 - checksum = "26d50bfb8c23f23915855a00d98b5a35ef2e0b871bb52937bacadb798fbb66c8" 1958 + checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 1800 1959 dependencies = [ 1801 1960 "once_cell", 1802 - "thiserror", 1803 - "toml", 1961 + "toml_edit", 1804 1962 ] 1805 1963 1806 1964 [[package]] ··· 1829 1987 1830 1988 [[package]] 1831 1989 name = "proc-macro-hack" 1832 - version = "0.5.19" 1990 + version = "0.5.20+deprecated" 1833 1991 source = "registry+https://github.com/rust-lang/crates.io-index" 1834 - checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" 1992 + checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" 1835 1993 1836 1994 [[package]] 1837 1995 name = "proc-macro2" 1838 - version = "1.0.56" 1996 + version = "1.0.58" 1839 1997 source = "registry+https://github.com/rust-lang/crates.io-index" 1840 - checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" 1998 + checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" 1841 1999 dependencies = [ 1842 2000 "unicode-ident", 1843 2001 ] 1844 2002 1845 2003 [[package]] 2004 + name = "quick-xml" 2005 + version = "0.28.2" 2006 + source = "registry+https://github.com/rust-lang/crates.io-index" 2007 + checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" 2008 + dependencies = [ 2009 + "memchr", 2010 + ] 2011 + 2012 + [[package]] 1846 2013 name = "quote" 1847 - version = "1.0.26" 2014 + version = "1.0.27" 1848 2015 source = "registry+https://github.com/rust-lang/crates.io-index" 1849 - checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" 2016 + checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" 1850 2017 dependencies = [ 1851 2018 "proc-macro2", 1852 2019 ] ··· 1873 2040 dependencies = [ 1874 2041 "libc", 1875 2042 "rand_chacha 0.3.1", 1876 - "rand_core 0.6.3", 2043 + "rand_core 0.6.4", 1877 2044 ] 1878 2045 1879 2046 [[package]] ··· 1893 2060 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1894 2061 dependencies = [ 1895 2062 "ppv-lite86", 1896 - "rand_core 0.6.3", 2063 + "rand_core 0.6.4", 1897 2064 ] 1898 2065 1899 2066 [[package]] ··· 1907 2074 1908 2075 [[package]] 1909 2076 name = "rand_core" 1910 - version = "0.6.3" 2077 + version = "0.6.4" 1911 2078 source = "registry+https://github.com/rust-lang/crates.io-index" 1912 - checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" 2079 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1913 2080 dependencies = [ 1914 - "getrandom 0.2.7", 2081 + "getrandom 0.2.9", 1915 2082 ] 1916 2083 1917 2084 [[package]] ··· 1934 2101 1935 2102 [[package]] 1936 2103 name = "raw-window-handle" 1937 - version = "0.5.2" 2104 + version = "0.5.0" 1938 2105 source = "registry+https://github.com/rust-lang/crates.io-index" 1939 - checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 2106 + checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" 2107 + dependencies = [ 2108 + "cty", 2109 + ] 1940 2110 1941 2111 [[package]] 1942 2112 name = "redox_syscall" ··· 1948 2118 ] 1949 2119 1950 2120 [[package]] 2121 + name = "redox_syscall" 2122 + version = "0.3.5" 2123 + source = "registry+https://github.com/rust-lang/crates.io-index" 2124 + checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 2125 + dependencies = [ 2126 + "bitflags", 2127 + ] 2128 + 2129 + [[package]] 1951 2130 name = "redox_users" 1952 2131 version = "0.4.3" 1953 2132 source = "registry+https://github.com/rust-lang/crates.io-index" 1954 2133 checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 1955 2134 dependencies = [ 1956 - "getrandom 0.2.7", 1957 - "redox_syscall", 2135 + "getrandom 0.2.9", 2136 + "redox_syscall 0.2.16", 1958 2137 "thiserror", 1959 2138 ] 1960 2139 ··· 1975 2154 source = "registry+https://github.com/rust-lang/crates.io-index" 1976 2155 checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1977 2156 dependencies = [ 1978 - "regex-syntax 0.6.27", 2157 + "regex-syntax 0.6.29", 1979 2158 ] 1980 2159 1981 2160 [[package]] 1982 2161 name = "regex-syntax" 1983 - version = "0.6.27" 2162 + version = "0.6.29" 1984 2163 source = "registry+https://github.com/rust-lang/crates.io-index" 1985 - checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" 2164 + checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1986 2165 1987 2166 [[package]] 1988 2167 name = "regex-syntax" ··· 1991 2170 checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" 1992 2171 1993 2172 [[package]] 1994 - name = "remove_dir_all" 1995 - version = "0.5.3" 1996 - source = "registry+https://github.com/rust-lang/crates.io-index" 1997 - checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 1998 - dependencies = [ 1999 - "winapi", 2000 - ] 2001 - 2002 - [[package]] 2003 2173 name = "rfd" 2004 2174 version = "0.10.0" 2005 2175 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2025 2195 2026 2196 [[package]] 2027 2197 name = "rustc_version" 2028 - version = "0.3.3" 2198 + version = "0.4.0" 2029 2199 source = "registry+https://github.com/rust-lang/crates.io-index" 2030 - checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 2200 + checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2031 2201 dependencies = [ 2032 - "semver 0.11.0", 2202 + "semver", 2033 2203 ] 2034 2204 2035 2205 [[package]] 2036 - name = "rustc_version" 2037 - version = "0.4.0" 2206 + name = "rustix" 2207 + version = "0.37.19" 2038 2208 source = "registry+https://github.com/rust-lang/crates.io-index" 2039 - checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2209 + checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" 2040 2210 dependencies = [ 2041 - "semver 1.0.13", 2211 + "bitflags", 2212 + "errno", 2213 + "io-lifetimes", 2214 + "libc", 2215 + "linux-raw-sys", 2216 + "windows-sys 0.48.0", 2042 2217 ] 2043 2218 2044 2219 [[package]] 2045 2220 name = "rustversion" 2046 - version = "1.0.9" 2221 + version = "1.0.12" 2047 2222 source = "registry+https://github.com/rust-lang/crates.io-index" 2048 - checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" 2223 + checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" 2049 2224 2050 2225 [[package]] 2051 2226 name = "ryu" 2052 - version = "1.0.11" 2227 + version = "1.0.13" 2053 2228 source = "registry+https://github.com/rust-lang/crates.io-index" 2054 - checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" 2229 + checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 2055 2230 2056 2231 [[package]] 2057 2232 name = "safemem" ··· 2070 2245 2071 2246 [[package]] 2072 2247 name = "scoped-tls" 2073 - version = "1.0.0" 2248 + version = "1.0.1" 2074 2249 source = "registry+https://github.com/rust-lang/crates.io-index" 2075 - checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" 2250 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2076 2251 2077 2252 [[package]] 2078 2253 name = "scopeguard" ··· 2102 2277 2103 2278 [[package]] 2104 2279 name = "semver" 2105 - version = "0.11.0" 2106 - source = "registry+https://github.com/rust-lang/crates.io-index" 2107 - checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 2108 - dependencies = [ 2109 - "semver-parser", 2110 - ] 2111 - 2112 - [[package]] 2113 - name = "semver" 2114 - version = "1.0.13" 2280 + version = "1.0.17" 2115 2281 source = "registry+https://github.com/rust-lang/crates.io-index" 2116 - checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" 2282 + checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" 2117 2283 dependencies = [ 2118 2284 "serde", 2119 2285 ] 2120 2286 2121 2287 [[package]] 2122 - name = "semver-parser" 2123 - version = "0.10.2" 2124 - source = "registry+https://github.com/rust-lang/crates.io-index" 2125 - checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 2126 - dependencies = [ 2127 - "pest", 2128 - ] 2129 - 2130 - [[package]] 2131 2288 name = "serde" 2132 - version = "1.0.160" 2289 + version = "1.0.163" 2133 2290 source = "registry+https://github.com/rust-lang/crates.io-index" 2134 - checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" 2291 + checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" 2135 2292 dependencies = [ 2136 2293 "serde_derive", 2137 2294 ] 2138 2295 2139 2296 [[package]] 2140 2297 name = "serde_derive" 2141 - version = "1.0.160" 2298 + version = "1.0.163" 2142 2299 source = "registry+https://github.com/rust-lang/crates.io-index" 2143 - checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" 2300 + checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" 2144 2301 dependencies = [ 2145 2302 "proc-macro2", 2146 2303 "quote", 2147 - "syn 2.0.15", 2304 + "syn 2.0.16", 2148 2305 ] 2149 2306 2150 2307 [[package]] ··· 2153 2310 source = "registry+https://github.com/rust-lang/crates.io-index" 2154 2311 checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" 2155 2312 dependencies = [ 2156 - "itoa 1.0.3", 2313 + "itoa 1.0.6", 2157 2314 "ryu", 2158 2315 "serde", 2159 2316 ] 2160 2317 2161 2318 [[package]] 2162 2319 name = "serde_repr" 2163 - version = "0.1.9" 2320 + version = "0.1.12" 2164 2321 source = "registry+https://github.com/rust-lang/crates.io-index" 2165 - checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" 2322 + checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" 2166 2323 dependencies = [ 2167 2324 "proc-macro2", 2168 2325 "quote", 2169 - "syn 1.0.109", 2326 + "syn 2.0.16", 2327 + ] 2328 + 2329 + [[package]] 2330 + name = "serde_spanned" 2331 + version = "0.6.1" 2332 + source = "registry+https://github.com/rust-lang/crates.io-index" 2333 + checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" 2334 + dependencies = [ 2335 + "serde", 2170 2336 ] 2171 2337 2172 2338 [[package]] 2173 2339 name = "serde_with" 2174 - version = "1.14.0" 2340 + version = "2.3.3" 2175 2341 source = "registry+https://github.com/rust-lang/crates.io-index" 2176 - checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" 2342 + checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" 2177 2343 dependencies = [ 2344 + "base64 0.13.1", 2345 + "chrono", 2346 + "hex", 2347 + "indexmap", 2178 2348 "serde", 2349 + "serde_json", 2179 2350 "serde_with_macros", 2351 + "time", 2180 2352 ] 2181 2353 2182 2354 [[package]] 2183 2355 name = "serde_with_macros" 2184 - version = "1.5.2" 2356 + version = "2.3.3" 2185 2357 source = "registry+https://github.com/rust-lang/crates.io-index" 2186 - checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" 2358 + checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" 2187 2359 dependencies = [ 2188 2360 "darling", 2189 2361 "proc-macro2", 2190 2362 "quote", 2191 - "syn 1.0.109", 2363 + "syn 2.0.16", 2192 2364 ] 2193 2365 2194 2366 [[package]] ··· 2225 2397 2226 2398 [[package]] 2227 2399 name = "sha2" 2228 - version = "0.10.2" 2400 + version = "0.10.6" 2229 2401 source = "registry+https://github.com/rust-lang/crates.io-index" 2230 - checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" 2402 + checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" 2231 2403 dependencies = [ 2232 2404 "cfg-if", 2233 2405 "cpufeatures", ··· 2244 2416 ] 2245 2417 2246 2418 [[package]] 2419 + name = "simd-adler32" 2420 + version = "0.3.5" 2421 + source = "registry+https://github.com/rust-lang/crates.io-index" 2422 + checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" 2423 + 2424 + [[package]] 2247 2425 name = "siphasher" 2248 2426 version = "0.3.10" 2249 2427 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2251 2429 2252 2430 [[package]] 2253 2431 name = "slab" 2254 - version = "0.4.7" 2432 + version = "0.4.8" 2255 2433 source = "registry+https://github.com/rust-lang/crates.io-index" 2256 - checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 2434 + checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 2257 2435 dependencies = [ 2258 2436 "autocfg", 2259 2437 ] 2260 2438 2261 2439 [[package]] 2262 2440 name = "smallvec" 2263 - version = "1.9.0" 2441 + version = "1.10.0" 2264 2442 source = "registry+https://github.com/rust-lang/crates.io-index" 2265 - checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 2443 + checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 2266 2444 2267 2445 [[package]] 2268 2446 name = "soup2" ··· 2294 2472 2295 2473 [[package]] 2296 2474 name = "specta" 2297 - version = "1.0.3" 2475 + version = "1.0.4" 2298 2476 source = "registry+https://github.com/rust-lang/crates.io-index" 2299 - checksum = "95aa33f3135e656964f468db8369ac8e0b77ac957fe8cf335960202d68966d3b" 2477 + checksum = "7230ab99f7b726fa49e350886816dbe5b5b151a5f4158470f92850246d5cae5e" 2300 2478 dependencies = [ 2301 2479 "document-features", 2302 2480 "indoc 1.0.9", ··· 2311 2489 2312 2490 [[package]] 2313 2491 name = "specta-macros" 2314 - version = "1.0.3" 2492 + version = "1.0.4" 2315 2493 source = "registry+https://github.com/rust-lang/crates.io-index" 2316 - checksum = "f66517b551b511fa78fa94bc553c7baf4a8d81c68a90e7458ea74f3de70acf6c" 2494 + checksum = "6252ed50d005e1dc2b77ed140f1c230299e0566492470eba40ba34e18cbcfa10" 2317 2495 dependencies = [ 2318 2496 "Inflector", 2319 2497 "itertools", ··· 2340 2518 2341 2519 [[package]] 2342 2520 name = "string_cache" 2343 - version = "0.8.4" 2521 + version = "0.8.7" 2344 2522 source = "registry+https://github.com/rust-lang/crates.io-index" 2345 - checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" 2523 + checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" 2346 2524 dependencies = [ 2347 2525 "new_debug_unreachable", 2348 2526 "once_cell", ··· 2383 2561 2384 2562 [[package]] 2385 2563 name = "syn" 2386 - version = "2.0.15" 2564 + version = "2.0.16" 2387 2565 source = "registry+https://github.com/rust-lang/crates.io-index" 2388 - checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" 2566 + checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" 2389 2567 dependencies = [ 2390 2568 "proc-macro2", 2391 2569 "quote", ··· 2401 2579 "cfg-expr 0.9.1", 2402 2580 "heck 0.3.3", 2403 2581 "pkg-config", 2404 - "toml", 2582 + "toml 0.5.11", 2405 2583 "version-compare 0.0.11", 2406 2584 ] 2407 2585 2408 2586 [[package]] 2409 2587 name = "system-deps" 2410 - version = "6.0.2" 2588 + version = "6.1.0" 2411 2589 source = "registry+https://github.com/rust-lang/crates.io-index" 2412 - checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" 2590 + checksum = "e5fa6fb9ee296c0dc2df41a656ca7948546d061958115ddb0bcaae43ad0d17d2" 2413 2591 dependencies = [ 2414 - "cfg-expr 0.10.3", 2592 + "cfg-expr 0.15.1", 2415 2593 "heck 0.4.1", 2416 2594 "pkg-config", 2417 - "toml", 2418 - "version-compare 0.1.0", 2595 + "toml 0.7.3", 2596 + "version-compare 0.1.1", 2419 2597 ] 2420 2598 2421 2599 [[package]] 2422 2600 name = "tao" 2423 - version = "0.15.8" 2601 + version = "0.16.1" 2424 2602 source = "registry+https://github.com/rust-lang/crates.io-index" 2425 - checksum = "ac8e6399427c8494f9849b58694754d7cc741293348a6836b6c8d2c5aa82d8e6" 2603 + checksum = "dd3cde9c0cd2b872616bba26b818e0d6469330196869d7e5000dba96ce9431df" 2426 2604 dependencies = [ 2427 2605 "bitflags", 2428 2606 "cairo-rs", ··· 2435 2613 "gdk", 2436 2614 "gdk-pixbuf", 2437 2615 "gdk-sys", 2616 + "gdkwayland-sys", 2438 2617 "gdkx11-sys", 2439 2618 "gio", 2440 2619 "glib", ··· 2452 2631 "objc", 2453 2632 "once_cell", 2454 2633 "parking_lot", 2455 - "paste", 2456 2634 "png", 2457 2635 "raw-window-handle", 2458 2636 "scopeguard", 2459 2637 "serde", 2638 + "tao-macros", 2460 2639 "unicode-segmentation", 2461 - "uuid 1.3.2", 2640 + "uuid", 2462 2641 "windows 0.39.0", 2463 2642 "windows-implement", 2464 2643 "x11-dl", 2465 2644 ] 2466 2645 2467 2646 [[package]] 2647 + name = "tao-macros" 2648 + version = "0.1.1" 2649 + source = "registry+https://github.com/rust-lang/crates.io-index" 2650 + checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445" 2651 + dependencies = [ 2652 + "proc-macro2", 2653 + "quote", 2654 + "syn 1.0.109", 2655 + ] 2656 + 2657 + [[package]] 2468 2658 name = "tar" 2469 2659 version = "0.4.38" 2470 2660 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2476 2666 ] 2477 2667 2478 2668 [[package]] 2669 + name = "target-lexicon" 2670 + version = "0.12.7" 2671 + source = "registry+https://github.com/rust-lang/crates.io-index" 2672 + checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" 2673 + 2674 + [[package]] 2479 2675 name = "tauri" 2480 - version = "1.2.4" 2676 + version = "1.3.0" 2481 2677 source = "registry+https://github.com/rust-lang/crates.io-index" 2482 - checksum = "fe7e0f1d535e7cbbbab43c82be4fc992b84f9156c16c160955617e0260ebc449" 2678 + checksum = "d42ba3a2e8556722f31336a0750c10dbb6a81396a1c452977f515da83f69f842" 2483 2679 dependencies = [ 2484 2680 "anyhow", 2485 2681 "cocoa", ··· 2496 2692 "ignore", 2497 2693 "objc", 2498 2694 "once_cell", 2499 - "open", 2695 + "open 3.2.0", 2500 2696 "percent-encoding", 2501 2697 "rand 0.8.5", 2502 2698 "raw-window-handle", 2503 2699 "regex", 2504 2700 "rfd", 2505 - "semver 1.0.13", 2701 + "semver", 2506 2702 "serde", 2507 2703 "serde_json", 2508 2704 "serde_repr", ··· 2517 2713 "thiserror", 2518 2714 "tokio", 2519 2715 "url", 2520 - "uuid 1.3.2", 2716 + "uuid", 2521 2717 "webkit2gtk", 2522 2718 "webview2-com", 2523 2719 "windows 0.39.0", ··· 2525 2721 2526 2722 [[package]] 2527 2723 name = "tauri-build" 2528 - version = "1.0.4" 2724 + version = "1.3.0" 2529 2725 source = "registry+https://github.com/rust-lang/crates.io-index" 2530 - checksum = "acafb1c515c5d14234a294461bd43c723639a84891a45f6a250fd3441ad2e8ed" 2726 + checksum = "929b3bd1248afc07b63e33a6a53c3f82c32d0b0a5e216e4530e94c467e019389" 2531 2727 dependencies = [ 2532 2728 "anyhow", 2533 2729 "cargo_toml", 2534 2730 "heck 0.4.1", 2535 2731 "json-patch", 2536 - "semver 1.0.13", 2732 + "semver", 2733 + "serde", 2537 2734 "serde_json", 2538 2735 "tauri-utils", 2539 - "winres", 2736 + "tauri-winres", 2737 + "winnow", 2540 2738 ] 2541 2739 2542 2740 [[package]] 2543 2741 name = "tauri-codegen" 2544 - version = "1.2.1" 2742 + version = "1.3.0" 2545 2743 source = "registry+https://github.com/rust-lang/crates.io-index" 2546 - checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" 2744 + checksum = "e5a2105f807c6f50b2fa2ce5abd62ef207bc6f14c9fcc6b8caec437f6fb13bde" 2547 2745 dependencies = [ 2548 - "base64", 2746 + "base64 0.21.0", 2549 2747 "brotli", 2550 2748 "ico", 2551 2749 "json-patch", ··· 2554 2752 "proc-macro2", 2555 2753 "quote", 2556 2754 "regex", 2557 - "semver 1.0.13", 2755 + "semver", 2558 2756 "serde", 2559 2757 "serde_json", 2560 2758 "sha2", 2561 2759 "tauri-utils", 2562 2760 "thiserror", 2563 2761 "time", 2564 - "uuid 1.3.2", 2762 + "uuid", 2565 2763 "walkdir", 2566 2764 ] 2567 2765 2568 2766 [[package]] 2569 2767 name = "tauri-macros" 2570 - version = "1.2.1" 2768 + version = "1.3.0" 2571 2769 source = "registry+https://github.com/rust-lang/crates.io-index" 2572 - checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" 2770 + checksum = "8784cfe6f5444097e93c69107d1ac5e8f13d02850efa8d8f2a40fe79674cef46" 2573 2771 dependencies = [ 2574 2772 "heck 0.4.1", 2575 2773 "proc-macro2", ··· 2581 2779 2582 2780 [[package]] 2583 2781 name = "tauri-runtime" 2584 - version = "0.12.1" 2782 + version = "0.13.0" 2585 2783 source = "registry+https://github.com/rust-lang/crates.io-index" 2586 - checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" 2784 + checksum = "b3b80ea3fcd5fefb60739a3b577b277e8fc30434538a2f5bba82ad7d4368c422" 2587 2785 dependencies = [ 2588 2786 "gtk", 2589 2787 "http", ··· 2594 2792 "serde_json", 2595 2793 "tauri-utils", 2596 2794 "thiserror", 2597 - "uuid 1.3.2", 2795 + "url", 2796 + "uuid", 2598 2797 "webview2-com", 2599 2798 "windows 0.39.0", 2600 2799 ] 2601 2800 2602 2801 [[package]] 2603 2802 name = "tauri-runtime-wry" 2604 - version = "0.12.2" 2803 + version = "0.13.0" 2605 2804 source = "registry+https://github.com/rust-lang/crates.io-index" 2606 - checksum = "36b1c5764a41a13176a4599b5b7bd0881bea7d94dfe45e1e755f789b98317e30" 2805 + checksum = "d1c396950b1ba06aee1b4ffe6c7cd305ff433ca0e30acbc5fa1a2f92a4ce70f1" 2607 2806 dependencies = [ 2608 2807 "cocoa", 2609 2808 "gtk", ··· 2612 2811 "raw-window-handle", 2613 2812 "tauri-runtime", 2614 2813 "tauri-utils", 2615 - "uuid 1.3.2", 2814 + "uuid", 2616 2815 "webkit2gtk", 2617 2816 "webview2-com", 2618 2817 "windows 0.39.0", ··· 2636 2835 2637 2836 [[package]] 2638 2837 name = "tauri-utils" 2639 - version = "1.2.1" 2838 + version = "1.3.0" 2640 2839 source = "registry+https://github.com/rust-lang/crates.io-index" 2641 - checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" 2840 + checksum = "5a6f9c2dafef5cbcf52926af57ce9561bd33bb41d7394f8bb849c0330260d864" 2642 2841 dependencies = [ 2643 2842 "brotli", 2644 2843 "ctor", ··· 2652 2851 "phf 0.10.1", 2653 2852 "proc-macro2", 2654 2853 "quote", 2655 - "semver 1.0.13", 2854 + "semver", 2656 2855 "serde", 2657 2856 "serde_json", 2658 2857 "serde_with", ··· 2663 2862 ] 2664 2863 2665 2864 [[package]] 2865 + name = "tauri-winres" 2866 + version = "0.1.1" 2867 + source = "registry+https://github.com/rust-lang/crates.io-index" 2868 + checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" 2869 + dependencies = [ 2870 + "embed-resource", 2871 + "toml 0.7.3", 2872 + ] 2873 + 2874 + [[package]] 2666 2875 name = "tempfile" 2667 - version = "3.3.0" 2876 + version = "3.5.0" 2668 2877 source = "registry+https://github.com/rust-lang/crates.io-index" 2669 - checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" 2878 + checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" 2670 2879 dependencies = [ 2671 2880 "cfg-if", 2672 2881 "fastrand", 2673 - "libc", 2674 - "redox_syscall", 2675 - "remove_dir_all", 2676 - "winapi", 2882 + "redox_syscall 0.3.5", 2883 + "rustix", 2884 + "windows-sys 0.45.0", 2677 2885 ] 2678 2886 2679 2887 [[package]] ··· 2719 2927 dependencies = [ 2720 2928 "proc-macro2", 2721 2929 "quote", 2722 - "syn 2.0.15", 2930 + "syn 2.0.16", 2723 2931 ] 2724 2932 2725 2933 [[package]] 2726 2934 name = "thread_local" 2727 - version = "1.1.4" 2935 + version = "1.1.7" 2728 2936 source = "registry+https://github.com/rust-lang/crates.io-index" 2729 - checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 2937 + checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 2730 2938 dependencies = [ 2939 + "cfg-if", 2731 2940 "once_cell", 2732 2941 ] 2733 2942 2734 2943 [[package]] 2735 2944 name = "time" 2736 - version = "0.3.12" 2945 + version = "0.3.15" 2737 2946 source = "registry+https://github.com/rust-lang/crates.io-index" 2738 - checksum = "74b7cc93fc23ba97fde84f7eea56c55d1ba183f495c6715defdfc7b9cb8c870f" 2947 + checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" 2739 2948 dependencies = [ 2740 - "itoa 1.0.3", 2741 - "js-sys", 2949 + "itoa 1.0.6", 2742 2950 "libc", 2743 2951 "num_threads", 2952 + "serde", 2744 2953 ] 2745 2954 2746 2955 [[package]] 2747 2956 name = "time-machine-inspector" 2748 2957 version = "1.1.5" 2749 2958 dependencies = [ 2750 - "open", 2959 + "open 4.1.0", 2751 2960 "plist", 2961 + "regex", 2752 2962 "serde", 2753 2963 "serde_json", 2754 2964 "specta", ··· 2768 2978 2769 2979 [[package]] 2770 2980 name = "tinyvec_macros" 2771 - version = "0.1.0" 2981 + version = "0.1.1" 2772 2982 source = "registry+https://github.com/rust-lang/crates.io-index" 2773 - checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" 2983 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2774 2984 2775 2985 [[package]] 2776 2986 name = "tokio" 2777 - version = "1.20.1" 2987 + version = "1.28.1" 2778 2988 source = "registry+https://github.com/rust-lang/crates.io-index" 2779 - checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" 2989 + checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" 2780 2990 dependencies = [ 2781 2991 "autocfg", 2782 2992 "bytes", 2783 - "memchr", 2784 2993 "num_cpus", 2785 - "once_cell", 2786 2994 "pin-project-lite", 2995 + "windows-sys 0.48.0", 2787 2996 ] 2788 2997 2789 2998 [[package]] 2790 2999 name = "toml" 2791 - version = "0.5.9" 3000 + version = "0.5.11" 2792 3001 source = "registry+https://github.com/rust-lang/crates.io-index" 2793 - checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" 3002 + checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 2794 3003 dependencies = [ 2795 3004 "serde", 2796 3005 ] 2797 3006 2798 3007 [[package]] 3008 + name = "toml" 3009 + version = "0.7.3" 3010 + source = "registry+https://github.com/rust-lang/crates.io-index" 3011 + checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" 3012 + dependencies = [ 3013 + "serde", 3014 + "serde_spanned", 3015 + "toml_datetime", 3016 + "toml_edit", 3017 + ] 3018 + 3019 + [[package]] 3020 + name = "toml_datetime" 3021 + version = "0.6.1" 3022 + source = "registry+https://github.com/rust-lang/crates.io-index" 3023 + checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" 3024 + dependencies = [ 3025 + "serde", 3026 + ] 3027 + 3028 + [[package]] 3029 + name = "toml_edit" 3030 + version = "0.19.8" 3031 + source = "registry+https://github.com/rust-lang/crates.io-index" 3032 + checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" 3033 + dependencies = [ 3034 + "indexmap", 3035 + "serde", 3036 + "serde_spanned", 3037 + "toml_datetime", 3038 + "winnow", 3039 + ] 3040 + 3041 + [[package]] 2799 3042 name = "tracing" 2800 - version = "0.1.36" 3043 + version = "0.1.37" 2801 3044 source = "registry+https://github.com/rust-lang/crates.io-index" 2802 - checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 3045 + checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 2803 3046 dependencies = [ 2804 3047 "cfg-if", 2805 3048 "pin-project-lite", ··· 2809 3052 2810 3053 [[package]] 2811 3054 name = "tracing-attributes" 2812 - version = "0.1.22" 3055 + version = "0.1.24" 2813 3056 source = "registry+https://github.com/rust-lang/crates.io-index" 2814 - checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 3057 + checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" 2815 3058 dependencies = [ 2816 3059 "proc-macro2", 2817 3060 "quote", 2818 - "syn 1.0.109", 3061 + "syn 2.0.16", 2819 3062 ] 2820 3063 2821 3064 [[package]] 2822 3065 name = "tracing-core" 2823 - version = "0.1.29" 3066 + version = "0.1.31" 2824 3067 source = "registry+https://github.com/rust-lang/crates.io-index" 2825 - checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 3068 + checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 2826 3069 dependencies = [ 2827 3070 "once_cell", 2828 3071 "valuable", ··· 2841 3084 2842 3085 [[package]] 2843 3086 name = "tracing-subscriber" 2844 - version = "0.3.15" 3087 + version = "0.3.17" 2845 3088 source = "registry+https://github.com/rust-lang/crates.io-index" 2846 - checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" 3089 + checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" 2847 3090 dependencies = [ 2848 - "ansi_term", 2849 3091 "matchers", 3092 + "nu-ansi-term", 2850 3093 "once_cell", 2851 3094 "regex", 2852 3095 "sharded-slab", ··· 2859 3102 2860 3103 [[package]] 2861 3104 name = "treediff" 2862 - version = "3.0.2" 3105 + version = "4.0.2" 2863 3106 source = "registry+https://github.com/rust-lang/crates.io-index" 2864 - checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" 3107 + checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" 2865 3108 dependencies = [ 2866 3109 "serde_json", 2867 3110 ] 2868 3111 2869 3112 [[package]] 2870 3113 name = "typenum" 2871 - version = "1.15.0" 2872 - source = "registry+https://github.com/rust-lang/crates.io-index" 2873 - checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" 2874 - 2875 - [[package]] 2876 - name = "ucd-trie" 2877 - version = "0.1.4" 3114 + version = "1.16.0" 2878 3115 source = "registry+https://github.com/rust-lang/crates.io-index" 2879 - checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" 3116 + checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 2880 3117 2881 3118 [[package]] 2882 3119 name = "unicode-bidi" 2883 - version = "0.3.8" 3120 + version = "0.3.13" 2884 3121 source = "registry+https://github.com/rust-lang/crates.io-index" 2885 - checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" 3122 + checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 2886 3123 2887 3124 [[package]] 2888 3125 name = "unicode-ident" 2889 - version = "1.0.3" 3126 + version = "1.0.8" 2890 3127 source = "registry+https://github.com/rust-lang/crates.io-index" 2891 - checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" 3128 + checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 2892 3129 2893 3130 [[package]] 2894 3131 name = "unicode-normalization" 2895 - version = "0.1.21" 3132 + version = "0.1.22" 2896 3133 source = "registry+https://github.com/rust-lang/crates.io-index" 2897 - checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" 3134 + checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2898 3135 dependencies = [ 2899 3136 "tinyvec", 2900 3137 ] ··· 2925 3162 2926 3163 [[package]] 2927 3164 name = "uuid" 2928 - version = "0.8.2" 3165 + version = "1.3.3" 2929 3166 source = "registry+https://github.com/rust-lang/crates.io-index" 2930 - checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 2931 - 2932 - [[package]] 2933 - name = "uuid" 2934 - version = "1.3.2" 2935 - source = "registry+https://github.com/rust-lang/crates.io-index" 2936 - checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" 3167 + checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" 2937 3168 dependencies = [ 2938 - "getrandom 0.2.7", 3169 + "getrandom 0.2.9", 2939 3170 ] 2940 3171 2941 3172 [[package]] ··· 2952 3183 2953 3184 [[package]] 2954 3185 name = "version-compare" 2955 - version = "0.1.0" 3186 + version = "0.1.1" 2956 3187 source = "registry+https://github.com/rust-lang/crates.io-index" 2957 - checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" 3188 + checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 2958 3189 2959 3190 [[package]] 2960 3191 name = "version_check" ··· 2963 3194 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2964 3195 2965 3196 [[package]] 3197 + name = "vswhom" 3198 + version = "0.1.0" 3199 + source = "registry+https://github.com/rust-lang/crates.io-index" 3200 + checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" 3201 + dependencies = [ 3202 + "libc", 3203 + "vswhom-sys", 3204 + ] 3205 + 3206 + [[package]] 3207 + name = "vswhom-sys" 3208 + version = "0.1.2" 3209 + source = "registry+https://github.com/rust-lang/crates.io-index" 3210 + checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" 3211 + dependencies = [ 3212 + "cc", 3213 + "libc", 3214 + ] 3215 + 3216 + [[package]] 2966 3217 name = "walkdir" 2967 - version = "2.3.2" 3218 + version = "2.3.3" 2968 3219 source = "registry+https://github.com/rust-lang/crates.io-index" 2969 - checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" 3220 + checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" 2970 3221 dependencies = [ 2971 3222 "same-file", 2972 - "winapi", 2973 3223 "winapi-util", 2974 3224 ] 2975 3225 ··· 2987 3237 2988 3238 [[package]] 2989 3239 name = "wasm-bindgen" 2990 - version = "0.2.82" 3240 + version = "0.2.86" 2991 3241 source = "registry+https://github.com/rust-lang/crates.io-index" 2992 - checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" 3242 + checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" 2993 3243 dependencies = [ 2994 3244 "cfg-if", 2995 3245 "wasm-bindgen-macro", ··· 2997 3247 2998 3248 [[package]] 2999 3249 name = "wasm-bindgen-backend" 3000 - version = "0.2.82" 3250 + version = "0.2.86" 3001 3251 source = "registry+https://github.com/rust-lang/crates.io-index" 3002 - checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" 3252 + checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" 3003 3253 dependencies = [ 3004 3254 "bumpalo", 3005 3255 "log", 3006 3256 "once_cell", 3007 3257 "proc-macro2", 3008 3258 "quote", 3009 - "syn 1.0.109", 3259 + "syn 2.0.16", 3010 3260 "wasm-bindgen-shared", 3011 3261 ] 3012 3262 3013 3263 [[package]] 3014 3264 name = "wasm-bindgen-futures" 3015 - version = "0.4.32" 3265 + version = "0.4.36" 3016 3266 source = "registry+https://github.com/rust-lang/crates.io-index" 3017 - checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" 3267 + checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" 3018 3268 dependencies = [ 3019 3269 "cfg-if", 3020 3270 "js-sys", ··· 3024 3274 3025 3275 [[package]] 3026 3276 name = "wasm-bindgen-macro" 3027 - version = "0.2.82" 3277 + version = "0.2.86" 3028 3278 source = "registry+https://github.com/rust-lang/crates.io-index" 3029 - checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" 3279 + checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" 3030 3280 dependencies = [ 3031 3281 "quote", 3032 3282 "wasm-bindgen-macro-support", ··· 3034 3284 3035 3285 [[package]] 3036 3286 name = "wasm-bindgen-macro-support" 3037 - version = "0.2.82" 3287 + version = "0.2.86" 3038 3288 source = "registry+https://github.com/rust-lang/crates.io-index" 3039 - checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" 3289 + checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" 3040 3290 dependencies = [ 3041 3291 "proc-macro2", 3042 3292 "quote", 3043 - "syn 1.0.109", 3293 + "syn 2.0.16", 3044 3294 "wasm-bindgen-backend", 3045 3295 "wasm-bindgen-shared", 3046 3296 ] 3047 3297 3048 3298 [[package]] 3049 3299 name = "wasm-bindgen-shared" 3050 - version = "0.2.82" 3300 + version = "0.2.86" 3051 3301 source = "registry+https://github.com/rust-lang/crates.io-index" 3052 - checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" 3302 + checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" 3053 3303 3054 3304 [[package]] 3055 3305 name = "web-sys" 3056 - version = "0.3.59" 3306 + version = "0.3.63" 3057 3307 source = "registry+https://github.com/rust-lang/crates.io-index" 3058 - checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" 3308 + checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" 3059 3309 dependencies = [ 3060 3310 "js-sys", 3061 3311 "wasm-bindgen", ··· 3105 3355 "pango-sys", 3106 3356 "pkg-config", 3107 3357 "soup2-sys", 3108 - "system-deps 6.0.2", 3358 + "system-deps 6.1.0", 3109 3359 ] 3110 3360 3111 3361 [[package]] ··· 3179 3429 3180 3430 [[package]] 3181 3431 name = "windows" 3182 - version = "0.32.0" 3183 - source = "registry+https://github.com/rust-lang/crates.io-index" 3184 - checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" 3185 - dependencies = [ 3186 - "windows_aarch64_msvc 0.32.0", 3187 - "windows_i686_gnu 0.32.0", 3188 - "windows_i686_msvc 0.32.0", 3189 - "windows_x86_64_gnu 0.32.0", 3190 - "windows_x86_64_msvc 0.32.0", 3191 - ] 3192 - 3193 - [[package]] 3194 - name = "windows" 3195 3432 version = "0.37.0" 3196 3433 source = "registry+https://github.com/rust-lang/crates.io-index" 3197 3434 checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" ··· 3218 3455 ] 3219 3456 3220 3457 [[package]] 3458 + name = "windows" 3459 + version = "0.48.0" 3460 + source = "registry+https://github.com/rust-lang/crates.io-index" 3461 + checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 3462 + dependencies = [ 3463 + "windows-targets 0.48.0", 3464 + ] 3465 + 3466 + [[package]] 3221 3467 name = "windows-bindgen" 3222 3468 version = "0.39.0" 3223 3469 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3245 3491 3246 3492 [[package]] 3247 3493 name = "windows-sys" 3248 - version = "0.36.1" 3494 + version = "0.42.0" 3495 + source = "registry+https://github.com/rust-lang/crates.io-index" 3496 + checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 3497 + dependencies = [ 3498 + "windows_aarch64_gnullvm 0.42.2", 3499 + "windows_aarch64_msvc 0.42.2", 3500 + "windows_i686_gnu 0.42.2", 3501 + "windows_i686_msvc 0.42.2", 3502 + "windows_x86_64_gnu 0.42.2", 3503 + "windows_x86_64_gnullvm 0.42.2", 3504 + "windows_x86_64_msvc 0.42.2", 3505 + ] 3506 + 3507 + [[package]] 3508 + name = "windows-sys" 3509 + version = "0.45.0" 3249 3510 source = "registry+https://github.com/rust-lang/crates.io-index" 3250 - checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 3511 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 3251 3512 dependencies = [ 3252 - "windows_aarch64_msvc 0.36.1", 3253 - "windows_i686_gnu 0.36.1", 3254 - "windows_i686_msvc 0.36.1", 3255 - "windows_x86_64_gnu 0.36.1", 3256 - "windows_x86_64_msvc 0.36.1", 3513 + "windows-targets 0.42.2", 3514 + ] 3515 + 3516 + [[package]] 3517 + name = "windows-sys" 3518 + version = "0.48.0" 3519 + source = "registry+https://github.com/rust-lang/crates.io-index" 3520 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3521 + dependencies = [ 3522 + "windows-targets 0.48.0", 3523 + ] 3524 + 3525 + [[package]] 3526 + name = "windows-targets" 3527 + version = "0.42.2" 3528 + source = "registry+https://github.com/rust-lang/crates.io-index" 3529 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 3530 + dependencies = [ 3531 + "windows_aarch64_gnullvm 0.42.2", 3532 + "windows_aarch64_msvc 0.42.2", 3533 + "windows_i686_gnu 0.42.2", 3534 + "windows_i686_msvc 0.42.2", 3535 + "windows_x86_64_gnu 0.42.2", 3536 + "windows_x86_64_gnullvm 0.42.2", 3537 + "windows_x86_64_msvc 0.42.2", 3538 + ] 3539 + 3540 + [[package]] 3541 + name = "windows-targets" 3542 + version = "0.48.0" 3543 + source = "registry+https://github.com/rust-lang/crates.io-index" 3544 + checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 3545 + dependencies = [ 3546 + "windows_aarch64_gnullvm 0.48.0", 3547 + "windows_aarch64_msvc 0.48.0", 3548 + "windows_i686_gnu 0.48.0", 3549 + "windows_i686_msvc 0.48.0", 3550 + "windows_x86_64_gnu 0.48.0", 3551 + "windows_x86_64_gnullvm 0.48.0", 3552 + "windows_x86_64_msvc 0.48.0", 3257 3553 ] 3258 3554 3259 3555 [[package]] ··· 3263 3559 checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" 3264 3560 3265 3561 [[package]] 3266 - name = "windows_aarch64_msvc" 3267 - version = "0.32.0" 3562 + name = "windows_aarch64_gnullvm" 3563 + version = "0.42.2" 3268 3564 source = "registry+https://github.com/rust-lang/crates.io-index" 3269 - checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" 3565 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3270 3566 3271 3567 [[package]] 3272 - name = "windows_aarch64_msvc" 3273 - version = "0.36.1" 3568 + name = "windows_aarch64_gnullvm" 3569 + version = "0.48.0" 3274 3570 source = "registry+https://github.com/rust-lang/crates.io-index" 3275 - checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 3571 + checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 3276 3572 3277 3573 [[package]] 3278 3574 name = "windows_aarch64_msvc" ··· 3287 3583 checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" 3288 3584 3289 3585 [[package]] 3290 - name = "windows_i686_gnu" 3291 - version = "0.32.0" 3586 + name = "windows_aarch64_msvc" 3587 + version = "0.42.2" 3292 3588 source = "registry+https://github.com/rust-lang/crates.io-index" 3293 - checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" 3589 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3294 3590 3295 3591 [[package]] 3296 - name = "windows_i686_gnu" 3297 - version = "0.36.1" 3592 + name = "windows_aarch64_msvc" 3593 + version = "0.48.0" 3298 3594 source = "registry+https://github.com/rust-lang/crates.io-index" 3299 - checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 3595 + checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 3300 3596 3301 3597 [[package]] 3302 3598 name = "windows_i686_gnu" ··· 3311 3607 checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" 3312 3608 3313 3609 [[package]] 3314 - name = "windows_i686_msvc" 3315 - version = "0.32.0" 3610 + name = "windows_i686_gnu" 3611 + version = "0.42.2" 3316 3612 source = "registry+https://github.com/rust-lang/crates.io-index" 3317 - checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" 3613 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3318 3614 3319 3615 [[package]] 3320 - name = "windows_i686_msvc" 3321 - version = "0.36.1" 3616 + name = "windows_i686_gnu" 3617 + version = "0.48.0" 3322 3618 source = "registry+https://github.com/rust-lang/crates.io-index" 3323 - checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 3619 + checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 3324 3620 3325 3621 [[package]] 3326 3622 name = "windows_i686_msvc" ··· 3335 3631 checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" 3336 3632 3337 3633 [[package]] 3338 - name = "windows_x86_64_gnu" 3339 - version = "0.32.0" 3634 + name = "windows_i686_msvc" 3635 + version = "0.42.2" 3340 3636 source = "registry+https://github.com/rust-lang/crates.io-index" 3341 - checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" 3637 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3342 3638 3343 3639 [[package]] 3344 - name = "windows_x86_64_gnu" 3345 - version = "0.36.1" 3640 + name = "windows_i686_msvc" 3641 + version = "0.48.0" 3346 3642 source = "registry+https://github.com/rust-lang/crates.io-index" 3347 - checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 3643 + checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 3348 3644 3349 3645 [[package]] 3350 3646 name = "windows_x86_64_gnu" ··· 3359 3655 checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" 3360 3656 3361 3657 [[package]] 3362 - name = "windows_x86_64_msvc" 3363 - version = "0.32.0" 3658 + name = "windows_x86_64_gnu" 3659 + version = "0.42.2" 3660 + source = "registry+https://github.com/rust-lang/crates.io-index" 3661 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3662 + 3663 + [[package]] 3664 + name = "windows_x86_64_gnu" 3665 + version = "0.48.0" 3666 + source = "registry+https://github.com/rust-lang/crates.io-index" 3667 + checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 3668 + 3669 + [[package]] 3670 + name = "windows_x86_64_gnullvm" 3671 + version = "0.42.2" 3364 3672 source = "registry+https://github.com/rust-lang/crates.io-index" 3365 - checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" 3673 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3366 3674 3367 3675 [[package]] 3368 - name = "windows_x86_64_msvc" 3369 - version = "0.36.1" 3676 + name = "windows_x86_64_gnullvm" 3677 + version = "0.48.0" 3370 3678 source = "registry+https://github.com/rust-lang/crates.io-index" 3371 - checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 3679 + checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 3372 3680 3373 3681 [[package]] 3374 3682 name = "windows_x86_64_msvc" ··· 3383 3691 checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" 3384 3692 3385 3693 [[package]] 3386 - name = "winres" 3387 - version = "0.1.12" 3694 + name = "windows_x86_64_msvc" 3695 + version = "0.42.2" 3388 3696 source = "registry+https://github.com/rust-lang/crates.io-index" 3389 - checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" 3697 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 3698 + 3699 + [[package]] 3700 + name = "windows_x86_64_msvc" 3701 + version = "0.48.0" 3702 + source = "registry+https://github.com/rust-lang/crates.io-index" 3703 + checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 3704 + 3705 + [[package]] 3706 + name = "winnow" 3707 + version = "0.4.1" 3708 + source = "registry+https://github.com/rust-lang/crates.io-index" 3709 + checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" 3710 + dependencies = [ 3711 + "memchr", 3712 + ] 3713 + 3714 + [[package]] 3715 + name = "winreg" 3716 + version = "0.11.0" 3717 + source = "registry+https://github.com/rust-lang/crates.io-index" 3718 + checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189" 3390 3719 dependencies = [ 3391 - "toml", 3720 + "cfg-if", 3721 + "winapi", 3392 3722 ] 3393 3723 3394 3724 [[package]] 3395 3725 name = "wry" 3396 - version = "0.23.4" 3726 + version = "0.24.3" 3397 3727 source = "registry+https://github.com/rust-lang/crates.io-index" 3398 - checksum = "4c1ad8e2424f554cc5bdebe8aa374ef5b433feff817aebabca0389961fc7ef98" 3728 + checksum = "33748f35413c8a98d45f7a08832d848c0c5915501803d1faade5a4ebcd258cea" 3399 3729 dependencies = [ 3400 - "base64", 3730 + "base64 0.13.1", 3401 3731 "block", 3402 3732 "cocoa", 3403 3733 "core-graphics", ··· 3431 3761 3432 3762 [[package]] 3433 3763 name = "x11" 3434 - version = "2.19.1" 3764 + version = "2.21.0" 3435 3765 source = "registry+https://github.com/rust-lang/crates.io-index" 3436 - checksum = "6dd0565fa8bfba8c5efe02725b14dff114c866724eff2cfd44d76cea74bcd87a" 3766 + checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 3437 3767 dependencies = [ 3438 3768 "libc", 3439 3769 "pkg-config", ··· 3458 3788 dependencies = [ 3459 3789 "libc", 3460 3790 ] 3461 - 3462 - [[package]] 3463 - name = "xml-rs" 3464 - version = "0.8.4" 3465 - source = "registry+https://github.com/rust-lang/crates.io-index" 3466 - checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
+4 -3
src-tauri/Cargo.toml
··· 9 9 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 10 10 11 11 [build-dependencies] 12 - tauri-build = { version = "1.0", features = [] } 12 + tauri-build = { version = "1.3", features = [] } 13 13 14 14 [dependencies] 15 15 serde_json = "1.0" 16 16 serde = { version = "1.0", features = ["derive"] } 17 - tauri = { version = "1.0", features = ["devtools", "dialog-message", "macos-private-api", "shell-open"] } 17 + tauri = { version = "1.3", features = ["devtools", "dialog-message", "macos-private-api", "shell-open"] } 18 18 plist = { version = "1.3", features = ["serde"] } 19 - open = "3.0" 19 + open = "4.1" 20 20 tauri-specta = { version = "1.0", features = ["javascript", "typescript"] } 21 21 specta = "1.0" 22 + regex = "1.8" 22 23 23 24 [features] 24 25 default = [ "custom-protocol" ]
+42 -22
src-tauri/src/cmd.rs
··· 1 1 use crate::dir_map::DirMap; 2 - use crate::{compare, listbackups, throw}; 2 + use crate::listbackups::{Backup, Destinations}; 3 + use crate::{compare, throw}; 3 4 use serde::Serialize; 4 5 use specta::Type; 5 6 use std::collections::HashMap; ··· 58 59 Ok(()) 59 60 } 60 61 61 - #[derive(Default)] 62 - pub struct BackupList(pub Mutex<Option<DirMap<()>>>); 62 + pub struct DestinationsState(pub Mutex<Destinations>); 63 63 64 - impl BackupList { 65 - pub fn lock(&self) -> Result<MutexGuard<Option<DirMap<()>>>, String> { 64 + impl DestinationsState { 65 + pub fn lock(&self) -> Result<MutexGuard<Destinations>, String> { 66 66 match self.0.lock() { 67 67 Ok(mutex) => Ok(mutex), 68 - Err(e) => throw!("Unable to lock backup list: {}", e), 68 + Err(e) => throw!("Unable to acquire mutex: {}", e), 69 69 } 70 70 } 71 71 } ··· 73 73 #[command] 74 74 #[specta::specta] 75 75 pub async fn load_backup_list( 76 + destination_id: String, 76 77 refresh: bool, 77 78 w: Window, 78 - state: State<'_, BackupList>, 79 - ) -> Result<DirMap<()>, String> { 79 + state: State<'_, DestinationsState>, 80 + ) -> Result<Vec<Backup>, String> { 80 81 // get cached backup_list 81 82 if !refresh { 82 - let backup_list = state.lock()?; 83 - match &*backup_list { 84 - Some(list) => return Ok(list.clone()), 83 + let mut destinations = state.lock()?; 84 + let destination = destinations.get_destination(&destination_id)?; 85 + match &destination.backups { 86 + Some(backups) => return Ok(backups.clone()), 85 87 None => {} 86 88 } 87 89 } 88 90 89 91 full_disk_access(w).await?; 90 - let dir_map = listbackups::listbackups()?; 91 - println!("Listed backups {:#?}", dir_map); 92 - state.lock()?.replace(dir_map.clone()); 93 - println!("Replaced state"); 92 + let mut destinations = state.lock()?; 93 + let destination = destinations.get_destination(&destination_id)?; 94 + let backups = destination.load_backups_list()?; 95 + println!("Listed backups {:#?}", backups); 94 96 95 - Ok(dir_map) 97 + Ok(backups.clone()) 96 98 } 97 99 98 - #[derive(Serialize, Clone, Type)] 100 + #[derive(Serialize, Clone, Type, Debug)] 99 101 pub struct LoadedBackupItem { 100 102 #[specta(type = u32)] // tauri bigint fix 101 103 pub size: u64, ··· 105 107 pub struct LoadedBackup { 106 108 pub old: String, 107 109 pub new: String, 108 - pub map: DirMap<LoadedBackupItem>, 110 + pub map: DirMap, 109 111 pub loading: bool, 110 112 } 111 113 pub type LoadedBackupsMap = HashMap<(String, String), LoadedBackup>; 112 114 113 - #[derive(Default)] 114 115 pub struct LoadedBackups(pub Mutex<LoadedBackupsMap>); 115 116 116 117 impl LoadedBackups { ··· 141 142 Ok(info.collect()) 142 143 } 143 144 144 - async fn do_compare(old: &str, new: &str, w: Window) -> Result<DirMap<LoadedBackupItem>, String> { 145 + async fn do_compare(old: &str, new: &str, w: Window) -> Result<DirMap, String> { 145 146 full_disk_access(w).await?; 146 147 Ok(compare::compare(&old, &new)?) 147 148 } ··· 149 150 #[command] 150 151 #[specta::specta] 151 152 pub async fn get_backup<'a>( 152 - old_b: String, 153 + destination_id: String, 153 154 new_b: String, 154 155 refresh: bool, 155 156 w: Window, 156 157 state: State<'_, LoadedBackups>, 157 - ) -> Result<DirMap<LoadedBackupItem>, String> { 158 + destinations_state: State<'_, DestinationsState>, 159 + ) -> Result<DirMap, String> { 160 + let (old_b, new_b) = { 161 + let mut destinations = destinations_state.lock()?; 162 + let destination = destinations.get_destination(&destination_id)?; 163 + let backups = match &destination.backups { 164 + Some(data) => data, 165 + None => throw!("Backup list not loaded"), 166 + }; 167 + let new_pos = match backups.iter().position(|p| p.path == new_b) { 168 + Some(pos) => pos, 169 + None => throw!("Unable to find backup {}", new_b), 170 + }; 171 + let old_b = backups 172 + .get(new_pos - 1) 173 + .ok_or("No previous backup")? 174 + .clone() 175 + .path; 176 + (old_b, new_b) 177 + }; 158 178 let old_new = (old_b.clone(), new_b.clone()); 159 179 160 180 // get cached dir_map
+3 -3
src-tauri/src/compare.rs
··· 1 - use crate::cmd::{check_cmd_success, LoadedBackupItem}; 1 + use crate::cmd::check_cmd_success; 2 2 use crate::dir_map::DirMap; 3 3 use crate::{reset_dur, throw}; 4 4 use plist::Value; ··· 122 122 Ok(change) 123 123 } 124 124 125 - pub fn compare(old: &str, new: &str) -> Result<DirMap<LoadedBackupItem>, String> { 125 + pub fn compare(old: &str, new: &str) -> Result<DirMap, String> { 126 126 let mut anchor = Instant::now(); 127 127 128 128 println!("tmutil compare -X -s '{}' '{}'", old, new); ··· 138 138 .spawn() 139 139 .expect("Error calling command"); 140 140 141 - println!("\u{23f1} {:.3}ms running tmutil", reset_dur(&mut anchor)); 141 + reset_dur(&mut anchor); 142 142 143 143 let mut child_out = BufReader::new(cmd.stdout.as_mut().unwrap()); 144 144 let mut lines = Vec::new();
+65
src-tauri/src/destinationinfo.rs
··· 1 + use crate::cmd::{check_cmd_success, DestinationsState}; 2 + use crate::listbackups::Destination; 3 + use crate::throw; 4 + use serde::{Deserialize, Serialize}; 5 + use specta::Type; 6 + use std::collections::HashMap; 7 + use std::process::Command; 8 + use tauri::{command, State}; 9 + 10 + #[derive(Deserialize, Debug)] 11 + #[serde(deny_unknown_fields)] 12 + pub struct DestinationInfoXml { 13 + #[serde(rename = "Destinations")] 14 + pub destinations: Vec<DestinationXml>, 15 + } 16 + 17 + #[derive(Serialize, Deserialize, Debug, Type)] 18 + #[serde(deny_unknown_fields)] 19 + pub struct DestinationXml { 20 + #[serde(alias = "Kind")] 21 + pub kind: String, 22 + #[serde(alias = "URL")] 23 + pub url: String, 24 + #[serde(alias = "Name")] 25 + pub name: String, 26 + #[serde(alias = "ID")] 27 + pub id: String, 28 + #[serde(alias = "LastDestination")] 29 + pub last_destination: u32, // u32 due to tauri-specta 30 + #[serde(alias = "MountPoint")] 31 + pub mount_point: String, 32 + } 33 + 34 + #[command] 35 + #[specta::specta] 36 + pub async fn destinationinfo( 37 + state: State<'_, DestinationsState>, 38 + ) -> Result<Vec<DestinationXml>, String> { 39 + let output = Command::new("tmutil") 40 + .arg("destinationinfo") 41 + .arg("-X") 42 + .output() 43 + .expect("Error calling command"); 44 + check_cmd_success(&output.status, output.stderr.clone())?; 45 + println!("Success running destinationinfo"); 46 + 47 + let output_xml: DestinationInfoXml = match plist::from_bytes(&output.stdout) { 48 + Ok(v) => v, 49 + Err(e) => throw!("Unable to parse response: {}", e), 50 + }; 51 + 52 + let mut destinations_map = HashMap::new(); 53 + for destination_xml in &output_xml.destinations { 54 + destinations_map.insert( 55 + destination_xml.id.clone(), 56 + Destination { 57 + backups: None, 58 + mount_point: destination_xml.mount_point.clone(), 59 + }, 60 + ); 61 + } 62 + state.lock()?.destinations = Some(destinations_map.clone()); 63 + 64 + Ok(output_xml.destinations) 65 + }
+7 -31
src-tauri/src/dir_map.rs
··· 7 7 use std::ffi::OsStr; 8 8 use std::path::{Path, PathBuf}; 9 9 10 - pub type DirContents<I> = HashMap<String, I>; 10 + pub type DirContents = HashMap<String, LoadedBackupItem>; 11 11 12 - #[derive(Serialize, Clone, Debug, Type)] 13 - pub struct DirMap<I> { 14 - pub map: HashMap<String, DirContents<I>>, 12 + #[derive(Serialize, Clone, Debug, Type, Default)] 13 + pub struct DirMap { 14 + pub map: HashMap<String, DirContents>, 15 15 } 16 16 17 17 fn get_parent<'a>(path: &'a Path) -> Result<&'a Path, String> { ··· 27 27 } 28 28 } 29 29 30 - impl<I> DirMap<I> { 30 + impl DirMap { 31 31 pub fn new() -> Self { 32 32 Self { 33 33 map: HashMap::new(), 34 34 } 35 35 } 36 - pub fn get_or_create_dir(&mut self, path: String) -> &mut DirContents<I> { 36 + pub fn get_or_create_dir(&mut self, path: String) -> &mut DirContents { 37 37 self.map.entry(path).or_insert(HashMap::new()) 38 38 } 39 - pub fn item_entry(&mut self, path: &Path) -> Result<Entry<String, I>, String> { 39 + pub fn item_entry(&mut self, path: &Path) -> Result<Entry<String, LoadedBackupItem>, String> { 40 40 let dir = get_parent(path)?.to_string_lossy().to_string(); 41 41 let basename = get_basename(path)?.to_string_lossy().to_string(); 42 42 43 43 let dir_contents = self.get_or_create_dir(dir); 44 44 Ok(dir_contents.entry(basename)) 45 45 } 46 - } 47 - 48 - impl DirMap<()> { 49 - pub fn from_string_paths(str_paths: Vec<String>) -> Result<Self, String> { 50 - let mut dir_map = DirMap::new(); 51 - 52 - for str_path in str_paths { 53 - let path = PathBuf::from(&str_path); 54 - 55 - for ancestor in path.ancestors() { 56 - if ancestor == Path::new("/") { 57 - break; 58 - } 59 - dir_map 60 - .item_entry(ancestor) 61 - .map_err(|e| format!("Unable to save path \"{}\": {}", str_path, e))? 62 - .or_insert(()); 63 - } 64 - } 65 - Ok(dir_map) 66 - } 67 - } 68 - 69 - impl DirMap<LoadedBackupItem> { 70 46 pub fn from_comparison(comparison: compare::Comparison) -> Result<Self, String> { 71 47 let mut dir_map = DirMap::new(); 72 48
+110 -10
src-tauri/src/listbackups.rs
··· 1 1 use crate::cmd::{check_cmd_success, parse_output}; 2 - use crate::dir_map::DirMap; 2 + use regex::Regex; 3 + use serde::Serialize; 4 + use specta::Type; 5 + use std::collections::HashMap; 6 + use std::path::PathBuf; 3 7 use std::process::Command; 4 8 5 - pub fn listbackups() -> Result<DirMap<()>, String> { 9 + #[derive(Serialize, Clone, Type, Default)] 10 + pub struct Destinations { 11 + /// ID -> Destination 12 + pub destinations: Option<HashMap<String, Destination>>, 13 + } 14 + impl Destinations { 15 + pub fn get_destination<'a>(&'a mut self, id: &str) -> Result<&'a mut Destination, String> { 16 + let paths = self 17 + .destinations 18 + .as_mut() 19 + .ok_or("Destinations not loaded")?; 20 + let destination = paths 21 + .get_mut(id) 22 + .ok_or(format!("Destination not found: {}", id)); 23 + destination 24 + } 25 + } 26 + 27 + #[derive(Serialize, Clone, Type)] 28 + pub struct Destination { 29 + /// Backups, if loaded 30 + pub backups: Option<Vec<Backup>>, 31 + pub mount_point: String, 32 + } 33 + impl Destination { 34 + pub fn load_backups_list<'a>(&'a mut self) -> Result<&Vec<Backup>, String> { 35 + let backups = listbackups(&self.mount_point)?; 36 + self.backups = Some(backups); 37 + Ok(self.backups.as_ref().unwrap()) 38 + } 39 + } 40 + 41 + #[derive(Serialize, Clone, Type, Debug)] 42 + pub struct Backup { 43 + pub path: String, 44 + pub name: String, 45 + } 46 + 47 + fn listbackups(mount_point: &str) -> Result<Vec<Backup>, String> { 6 48 println!("tmutil listbackups"); 7 49 8 50 let output = Command::new("tmutil") 9 51 .arg("listbackups") 52 + .arg("-d") 53 + .arg(mount_point) 10 54 .output() 11 55 .expect("Error calling command"); 12 56 check_cmd_success(&output.status, output.stderr.clone())?; 13 57 println!("Success listing backups"); 14 58 15 59 let output_str = parse_output(output.stdout)?; 16 - 17 - if output_str.trim() == "tmutil error 1:\nNo machine directory found for host." { 18 - return Ok(DirMap::new()); 19 - } 60 + println!("{output_str}"); 20 61 21 - let mut paths: Vec<String> = output_str 62 + let mut paths: Vec<_> = output_str 63 + .trim() 22 64 .split('\n') 23 65 .map(|s| s.to_string()) 24 - .filter(|s| s != "") 25 66 .collect(); 26 67 27 68 let mut stored_machine_dir = None; ··· 54 95 if path0.starts_with("/") {} 55 96 } 56 97 57 - let dir_map = DirMap::from_string_paths(paths)?; 58 - Ok(dir_map) 98 + let backups = paths 99 + .into_iter() 100 + .map(|path| Backup { 101 + name: name_from_path(&path), 102 + path, 103 + }) 104 + .collect(); 105 + Ok(backups) 106 + } 107 + 108 + fn name_from_path(path: &str) -> String { 109 + let parts: Vec<_> = PathBuf::from(path) 110 + .components() 111 + .filter_map(|component| match component { 112 + std::path::Component::Normal(name) => Some(name.to_string_lossy().to_string()), 113 + std::path::Component::RootDir => Some("/".to_string()), 114 + _ => panic!("Unexpected path component"), 115 + }) 116 + .collect(); 117 + 118 + // Examples: 119 + // /Volumes/Time Machine Backups/Backups.backupdb/computer-name/2022-08-09-032130 120 + // /Volumes/.timemachine/C5DA5F96-328F-40A3-9FE6-DB1CA872E766/2023-05-17-123613.backup/2023-05-17-123613.backup 121 + 122 + let last = parts.last().cloned().unwrap_or_default(); 123 + 124 + let catalina = Regex::new(r"^\d{4}\-\d{2}\-\d{2}\-\d{6}$").unwrap(); 125 + if catalina.is_match(&last) { 126 + return last; 127 + } 128 + 129 + let ventura = Regex::new(r"^\d{4}\-\d{2}\-\d{2}\-\d{6}.backup$").unwrap(); 130 + if ventura.is_match(&last) { 131 + return last.trim_end_matches(".backup").to_string(); 132 + } 133 + 134 + // fallback 135 + if parts.len() >= 3 && parts[0] == "/" && parts[1] == "Volumes" { 136 + let mut parts = parts; 137 + parts.drain(0..3); // remove /Volumes/<Volume>/ 138 + return parts.join("/"); 139 + } 140 + path.to_string() 141 + } 142 + 143 + #[test] 144 + fn test_name_from_path() { 145 + assert_eq!( 146 + name_from_path( 147 + "/Volumes/Time Machine Backups/Backups.backupdb/computer-name/2022-08-09-032130", 148 + ), 149 + "2022-08-09-032130" 150 + ); 151 + assert_eq!( 152 + name_from_path( 153 + "/Volumes/.timemachine/C5DA5A96-328E-40F3-9FD6-DB1AC872F6A6/2022-08-09-032130.backup/2022-08-09-032130.backup", 154 + ), 155 + "2022-08-09-032130" 156 + ); 157 + assert_eq!(name_from_path("/Volumes/Something/else"), "else"); 158 + assert_eq!(name_from_path("/Volumes"), "/Volumes"); 59 159 }
+4 -1
src-tauri/src/main.rs
··· 13 13 14 14 mod cmd; 15 15 mod compare; 16 + mod destinationinfo; 16 17 mod dir_map; 17 18 mod listbackups; 18 19 ··· 47 48 cmd::load_backup_list, 48 49 cmd::get_backup, 49 50 cmd::backups_info, 51 + destinationinfo::destinationinfo, 50 52 ], 51 53 "../bindings.ts", 52 54 ) ··· 57 59 let ctx = tauri::generate_context!(); 58 60 59 61 tauri::Builder::default() 60 - .manage(cmd::BackupList(Default::default())) 62 + .manage(cmd::DestinationsState(Default::default())) 61 63 .manage(cmd::LoadedBackups(Default::default())) 62 64 .invoke_handler(tauri::generate_handler![ 63 65 error_popup, 64 66 cmd::load_backup_list, 65 67 cmd::get_backup, 66 68 cmd::backups_info, 69 + destinationinfo::destinationinfo, 67 70 ]) 68 71 .setup(|app| { 69 72 let _window = WindowBuilder::new(app, "main", WindowUrl::default())
+28 -11
src/App.svelte
··· 1 1 <script lang="ts"> 2 2 import Page from './page/Page.svelte' 3 3 import Sidebar from './sidebar/Sidebar.svelte' 4 - import { backups, close as closePage, loadBackups } from './page/page' 4 + import { close as closePage } from './page/page' 5 5 import { fade } from 'svelte/transition' 6 6 import { cubicInOut } from 'svelte/easing' 7 7 import ProgressBar from './lib/ProgressBar.svelte' 8 8 import Button from './lib/Button.svelte' 9 + import commands from './lib/commands' 10 + import type { Backup, DestinationXml } from '../bindings' 11 + 12 + let destinations: DestinationXml[] | null = null 13 + let destination: DestinationXml | null = null 14 + let backups: Backup[] | null = null 9 15 10 16 let loading = false 11 - async function load(refresh = false) { 17 + async function refresh(refresh = false) { 12 18 let minEndTime = Date.now() + 250 13 19 if (loading) { 14 20 return 15 21 } 16 22 loading = true 17 23 closePage() 18 - await loadBackups(refresh) 19 - let timeRemaining = Math.max(minEndTime - Date.now()) 24 + 25 + destinations = await commands.destinationinfo() 26 + console.log('Loaded destinations', destinations) 27 + destination = destinations[0] ?? null 28 + 29 + backups = await commands.loadBackupList(destination.id, refresh) 30 + console.log('Loaded backups', backups) 31 + 20 32 await new Promise((resolve) => { 33 + let timeRemaining = Math.max(minEndTime - Date.now()) 21 34 setTimeout(resolve, timeRemaining) 22 35 }) 23 36 loading = false 24 37 } 25 - load() 38 + refresh() 26 39 </script> 27 40 28 41 <div class="sidebar"> 42 + {#if destination !== null} 43 + <p>{destinations[0].mount_point}</p> 44 + {/if} 29 45 {#if loading} 30 46 <div class="loading" transition:fade={{ duration: 500, easing: cubicInOut }}> 31 47 <ProgressBar /> 32 48 </div> 33 49 {:else} 34 50 <div class="sidebar-stuff" transition:fade={{ duration: 300, easing: cubicInOut }}> 35 - <Button disabled={loading} on:click={() => load(true)}>Refresh</Button> 36 - {#if $backups} 37 - <Sidebar backups={$backups} /> 51 + <Button disabled={loading} on:click={() => refresh(true)}>Refresh</Button> 52 + {#if backups} 53 + <Sidebar {backups} /> 38 54 {/if} 39 55 </div> 40 56 {/if} 41 57 </div> 42 - <Page /> 58 + <Page {destination} /> 43 59 44 60 <style lang="sass"> 45 61 @font-face ··· 67 83 font-size: 15px 68 84 .sidebar 69 85 position: relative 70 - flex-shrink: 0 71 86 flex-grow: 1 72 87 min-width: 220px 73 88 max-width: 35% ··· 77 92 backdrop-filter: brightness(80%) 78 93 border: 0px 79 94 border-right: 1px solid hsla(230, 100%, 85%, 0.12) 95 + display: flex 96 + flex-direction: column 80 97 .sidebar-stuff 81 - height: 100% 82 98 display: flex 83 99 flex-direction: column 100 + flex-grow: 1 84 101 .loading 85 102 height: 100% 86 103 position: absolute // for transition
+2 -2
src/lib/Button.svelte
··· 7 7 </button> 8 8 9 9 <style lang="sass"> 10 - $ease-md: cubic-bezier(0.4, 0.0, 0.2, 1) 10 + $ease-out: cubic-bezier(0, 0, 0.2, 1) 11 11 button 12 12 font-family: inherit 13 13 user-select: none ··· 20 20 border: 1px solid hsla(172, 100%, 80%, 0.3) 21 21 color: hsla(172, 100%, 95%, 0.8) 22 22 font-weight: 500 23 - transition: all 200ms $ease-md 23 + transition: all 200ms ease-out 24 24 &:focus 25 25 border: 1px solid hsla(172, 100%, 80%, 0.5) 26 26 box-shadow: 0px 0px 0px 2px hsla(172, 100%, 80%, 0.2)
+23 -19
src/page/Page.svelte
··· 1 1 <script lang="ts"> 2 2 import PageItems from './PageItems.svelte' 3 - import { backups, page, backupInfos, pageMap } from './page' 3 + import { page, backupInfos, pageMap } from './page' 4 4 import Button from '../lib/Button.svelte' 5 5 import ProgressBar from '../lib/ProgressBar.svelte' 6 6 import commands from '../lib/commands' 7 + import type { DestinationXml } from '../../bindings' 8 + 9 + export let destination: DestinationXml | null = null 7 10 8 11 async function compare(autoLoad = false) { 9 - if ($page.loading || $backups === null) { 12 + if ($page.loading || $page.backup === null) { 10 13 return 11 14 } 12 - const fullPathParent = $page.fullPath.substring(0, $page.fullPath.lastIndexOf('/')) 13 - const dir = $backups.dirs[fullPathParent][$page.name] 14 - if (dir !== undefined) { 15 - if (!autoLoad) { 16 - $page.loading = true 17 - } 18 - const result = await commands.getBackup($page.prevPath, $page.fullPath, false) 19 - $pageMap = result.map 20 - backupInfos.load() 21 - console.log('Page items', result) 15 + if (!autoLoad) { 16 + $page.loading = true 22 17 } 18 + const result = await commands.getBackup(destination.id, $page.backup.path, false) 19 + $pageMap = result.map 20 + backupInfos.load() 23 21 } 24 22 25 - $: autoLoad($page.prevPath, $page.fullPath) 26 - function autoLoad(oldPath: string, newPath: string) { 23 + $: if ($page.backup) { 24 + autoLoad($page.backup.path) 25 + } 26 + function autoLoad(newPath: string) { 27 27 for (const info of $backupInfos) { 28 - if (info.old === oldPath && info.new === newPath) { 28 + if (info.new === newPath) { 29 29 compare(true) 30 30 } 31 31 } 32 32 } 33 33 </script> 34 34 35 - {#if $page.fullPath === ''} 35 + {#if !destination} 36 36 <main class="empty"> 37 37 <p>You can open a backup from the sidebar when it's loaded</p> 38 38 </main> 39 + {:else if !$page.backup} 40 + <main class="empty"> 41 + <p>You can open a backup from the sidebar</p> 42 + </main> 39 43 {:else} 40 44 <main> 41 - <div class="bar">{$page.fullPath}</div> 45 + <div class="bar">{$page.backup.path}</div> 42 46 <div class="content"> 43 47 {#if $page.loading} 44 48 <div class="absolute center-align"> 45 49 <ProgressBar /> 46 50 </div> 47 - {:else if $pageMap === null || $pageMap[$page.fullPath] === undefined} 51 + {:else if $pageMap === null || $pageMap[$page.backup.path] === undefined} 48 52 <div class="absolute center-align"> 49 53 <Button on:click={() => compare()}>Load</Button> 50 54 </div> 51 55 {:else} 52 - <PageItems path={$page.fullPath} /> 56 + <PageItems path={$page.backup.path} /> 53 57 {/if} 54 58 </div> 55 59 </main>
+1 -2
src/page/PageItems.svelte
··· 101 101 } 102 102 } 103 103 function bodyKeydown(e: KeyboardEvent) { 104 - console.log('bodyKeydown') 105 - 106 104 if ( 107 105 e.key === 'ArrowLeft' || 108 106 e.key === 'ArrowRight' || ··· 126 124 <svelte:body on:keydown={bodyKeydown} /> 127 125 128 126 {#each dir as item, i} 127 + <!-- svelte-ignore a11y-click-events-have-key-events --> 129 128 <div 130 129 class="item" 131 130 class:open={item.isOpen}
+10 -53
src/page/page.ts
··· 1 1 import { get, writable } from 'svelte/store' 2 2 import commands from '../lib/commands' 3 - 4 - export type Backups = { 5 - dirs: DirMap 6 - rootPath: string 7 - } 8 - export type DirMap = { 9 - [name: string]: DirContent 10 - } 11 - export type DirContent = { 12 - [name: string]: null 13 - } 3 + import type { Backup } from '../../bindings' 14 4 15 5 export const backups = (() => { 16 - const store = writable<Backups | null>(null) 6 + const store = writable<Backup[] | null>(null) 17 7 return { 18 8 subscribe: store.subscribe, 19 - set: (value: Backups | null) => { 9 + set: (value: Backup[] | null) => { 20 10 store.set(value) 21 11 backupInfos.load() 22 12 }, ··· 35 25 load: async () => { 36 26 const result = await commands.backupsInfo() 37 27 const $page = get(page) 38 - result.find((info) => { 39 - if (info.old === $page.prevPath && info.new === $page.fullPath) { 28 + 29 + for (const info of result) { 30 + if (info.new === $page.backup?.path) { 40 31 if ($page.loading !== info.loading) { 41 32 page.set_loading(info.loading) 42 33 } 43 34 } 44 - }) 35 + } 45 36 store.set(result) 46 37 }, 47 38 } ··· 63 54 export const pageMap = writable({} as PageMap) 64 55 65 56 type Page = { 66 - fullPath: string 67 - name: string 68 - prevPath: string 57 + backup: Backup | null 69 58 loading: boolean 70 59 } 71 60 export const page = (() => { 72 61 const store = writable<Page>({ 73 - fullPath: '', 74 - name: '', 75 - prevPath: '', 62 + backup: null, 76 63 loading: false, 77 64 }) 78 65 return { ··· 92 79 93 80 export function close() { 94 81 page.set({ 95 - fullPath: '', 96 - name: '', 97 - prevPath: '', 82 + backup: null, 98 83 loading: false, 99 84 }) 100 85 backups.set(null) 101 86 } 102 - 103 - export async function loadBackups(refresh = false) { 104 - const result = await commands.loadBackupList(refresh) 105 - console.log('Loaded backups', result) 106 - const map = result.map 107 - 108 - let rootPath = '/' 109 - if (Object.keys(map[rootPath]).length === 1 && map[rootPath]['Volumes'] !== undefined) { 110 - rootPath += 'Volumes' 111 - if ( 112 - Object.keys(map[rootPath]).length === 1 && 113 - map[rootPath]['Time Machine Backups'] !== undefined 114 - ) { 115 - rootPath += '/Time Machine Backups' 116 - if ( 117 - Object.keys(map[rootPath]).length === 1 && 118 - map[rootPath]['Backups.backupdb'] !== undefined 119 - ) { 120 - rootPath += '/Backups.backupdb' 121 - } 122 - } 123 - } 124 - 125 - backups.set({ 126 - dirs: result.map, 127 - rootPath, 128 - }) 129 - }
+60 -4
src/sidebar/Sidebar.svelte
··· 1 1 <script lang="ts"> 2 - import type { Backups } from '../page/page' 3 - import SidebarItems from './SidebarItems.svelte' 2 + import type { Backup, BackupInfo } from '../../bindings' 3 + import { page, backupInfos } from '../page/page' 4 4 5 - export let backups: Backups 5 + export let backups: Backup[] 6 + 7 + const enum LoadState { 8 + NothingToLoad, 9 + Loading, 10 + Loaded, 11 + } 12 + 13 + function getLoadState(backupInfos: BackupInfo[], path: unknown): LoadState { 14 + for (const info of backupInfos) { 15 + if (info.new === path) { 16 + if (info.loading) { 17 + return 1 18 + } else { 19 + return 2 20 + } 21 + } 22 + } 23 + return 0 24 + } 6 25 </script> 7 26 8 27 <div class="content"> 9 - <SidebarItems {backups} path={backups.rootPath} /> 28 + {#each backups as backup} 29 + <!-- svelte-ignore a11y-click-events-have-key-events --> 30 + <div 31 + class="item" 32 + data-load-state={getLoadState($backupInfos, backup.path)} 33 + class:selected={$page.backup?.path === backup.path} 34 + on:click={() => { 35 + $page = { 36 + backup, 37 + loading: false, 38 + } 39 + }} 40 + > 41 + {backup.name} 42 + </div> 43 + {/each} 10 44 </div> 11 45 12 46 <style lang="sass"> ··· 14 48 overflow: auto 15 49 height: 10px 16 50 flex-grow: 1 51 + $ease-md: cubic-bezier(0.4, 0.0, 0.2, 1) 52 + .item 53 + font-size: 14px 54 + color: hsla(216, 50%, 70%, 0.75) 55 + cursor: default 56 + user-select: none 57 + padding: 4px 15px 58 + box-sizing: border-box 59 + width: 100% 60 + [data-load-state="1"] 61 + animation: flash 1s $ease-md infinite alternate 62 + [data-load-state="2"] 63 + font-weight: 600 64 + color: hsla(216, 50%, 80%, 0.9) 65 + .selected 66 + background-color: hsla(216, 70%, 70%, 0.2) 67 + animation: none 68 + @keyframes flash 69 + 0% 70 + color: hsla(216, 50%, 70%, 0.5) 71 + 100% 72 + color: hsla(216, 50%, 70%, 0.9) 17 73 </style>
-130
src/sidebar/SidebarItems.svelte
··· 1 - <script lang="ts"> 2 - import { page, backupInfos, type Backups, type BackupInfo } from '../page/page' 3 - 4 - export let path: string 5 - export let backups: Backups 6 - export let indentLevel = 0 7 - 8 - function getChildPath(path: string, childPath: string) { 9 - if (path === '/') { 10 - return '/' + childPath 11 - } else { 12 - return path + '/' + childPath 13 - } 14 - } 15 - 16 - type Item = { 17 - name: string 18 - path: string 19 - prevPath: string | null 20 - isFolder: boolean 21 - show: boolean 22 - } 23 - 24 - $: dir = getDir(backups, path) 25 - function getDir(backups: Backups, path: string): Item[] { 26 - const names = Object.keys(backups.dirs[path]).sort() 27 - let prevChildPath = null as string | null 28 - return names.map((name) => { 29 - const childPath = getChildPath(path, name) 30 - const item: Item = { 31 - name, 32 - path: childPath, 33 - prevPath: prevChildPath, 34 - isFolder: backups.dirs[childPath] !== undefined, 35 - show: true, 36 - } 37 - prevChildPath = childPath 38 - return item 39 - }) 40 - } 41 - 42 - function getLoadState(backupInfos: BackupInfo[], prevPath: unknown, path: unknown) { 43 - for (const info of backupInfos) { 44 - if (info.old === prevPath && info.new === path) { 45 - if (info.loading) { 46 - return 1 47 - } else { 48 - return 2 49 - } 50 - } 51 - } 52 - return 0 53 - } 54 - 55 - function itemClick(item: Item) { 56 - if (item.isFolder) { 57 - item.show = !item.show 58 - console.log('itemClick folder') 59 - } else if (item.prevPath && $page.fullPath !== item.path) { 60 - console.log('Open', item) 61 - 62 - $page = { 63 - fullPath: item.path, 64 - name: item.name, 65 - prevPath: item.prevPath, 66 - loading: false, 67 - } 68 - } else { 69 - console.log('itemClick else', item.prevPath, $page.fullPath, item.path) 70 - } 71 - } 72 - </script> 73 - 74 - {#each dir as item} 75 - <div 76 - class="item" 77 - data-load-state={getLoadState($backupInfos, item.prevPath, item.path)} 78 - class:selected={$page.fullPath === item.path} 79 - style={`padding-left: ${14 * indentLevel + 10}px`} 80 - on:click={() => itemClick(item)} 81 - > 82 - {#if item.isFolder} 83 - <svg 84 - class:open={item.show} 85 - xmlns="http://www.w3.org/2000/svg" 86 - width="24" 87 - height="24" 88 - viewBox="0 0 24 24"><path d="M21 12l-18 12v-24z" /></svg 89 - > 90 - {/if} 91 - {item.name} 92 - </div> 93 - {#if item.isFolder && item.show} 94 - <svelte:self {backups} path={item.path} indentLevel={indentLevel + 1} /> 95 - {/if} 96 - {/each} 97 - 98 - <style lang="sass"> 99 - $ease-md: cubic-bezier(0.4, 0.0, 0.2, 1) 100 - .item 101 - font-size: 14px 102 - color: hsla(216, 50%, 70%, 0.75) 103 - cursor: default 104 - user-select: none 105 - padding: 4px 0px 106 - box-sizing: border-box 107 - width: 100% 108 - [data-load-state="1"] 109 - animation: flash 1s $ease-md infinite alternate 110 - [data-load-state="2"] 111 - font-weight: 600 112 - color: hsla(216, 50%, 80%, 0.9) 113 - .selected 114 - background-color: hsla(216, 70%, 70%, 0.2) 115 - animation: none 116 - 117 - @keyframes flash 118 - 0% 119 - color: hsla(216, 50%, 70%, 0.5) 120 - 100% 121 - color: hsla(216, 50%, 70%, 0.9) 122 - 123 - svg 124 - fill: hsla(216, 50%, 70%, 0.75) 125 - width: 10px 126 - height: 10px 127 - margin-right: 1px 128 - svg.open 129 - transform: rotate(90deg) 130 - </style>