Repository: stateful/vscode-runme
Pull request #286 (2023-03-08 17:03:38)

Improve gRPC runner error handling
Significantly improves the error handling situation for gRPC runner. Included is:

 - Handle case where server is disconnected prematurely and close terminal (previously terminal task would hang)
 - If grpc runner fails, show error message to user
 - If grpc environment creation fails, show error message to user


Patch:
diff --git a/__mocks__/vscode.ts b/__mocks__/vscode.ts
index da30326c..7a772768 100644
--- a/__mocks__/vscode.ts
+++ b/__mocks__/vscode.ts
@@ -46,6 +46,10 @@ export const workspace = {
     createDirectory: vi.fn(),
     delete: vi.fn()
   },
+  createFileSystemWatcher: vi.fn().mockReturnValue({
+    onDidCreate: vi.fn(),
+    onDidDelete: vi.fn()
+  }),
   workspaceFolders: [
     {
       uri: {
diff --git a/package-lock.json b/package-lock.json
index f6490d4a..dce1246a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "runme",
-  "version": "0.7.1-edge.1",
+  "version": "0.7.2",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "runme",
-      "version": "0.7.1-edge.1",
+      "version": "0.7.2",
       "hasInstallScript": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -2366,9 +2366,9 @@
       "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
     },
     "node_modules/@grpc/grpc-js": {
-      "version": "1.8.11",
-      "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.11.tgz",
-      "integrity": "sha512-f/xC+6Z2QKsRJ+VSSFlt4hA5KSRm+PKvMWV8kMPkMgGlFidR6PeIkXrOasIY2roe+WROM6GFQLlgDKfeEZo2YQ==",
+      "version": "1.8.12",
+      "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.12.tgz",
+      "integrity": "sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ==",
       "dependencies": {
         "@grpc/proto-loader": "^0.7.0",
         "@types/node": ">=12.12.47"
@@ -2697,7 +2697,7 @@
       "version": "0.3.2",
       "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
       "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@jridgewell/gen-mapping": "^0.3.0",
         "@jridgewell/trace-mapping": "^0.3.9"
@@ -2707,7 +2707,7 @@
       "version": "0.3.2",
       "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
       "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@jridgewell/set-array": "^1.0.1",
         "@jridgewell/sourcemap-codec": "^1.4.10",
@@ -3804,8 +3804,7 @@
     "node_modules/@sinclair/typebox": {
       "version": "0.25.24",
       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
-      "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
-      "dev": true
+      "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
     },
     "node_modules/@sindresorhus/is": {
       "version": "5.3.0",
@@ -4096,9 +4095,9 @@
       "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
     },
     "node_modules/@types/node": {
-      "version": "18.14.6",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz",
-      "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA=="
+      "version": "18.15.1",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.1.tgz",
+      "integrity": "sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw=="
     },
     "node_modules/@types/node-fetch": {
       "version": "2.6.2",
@@ -4447,9 +4446,9 @@
       }
     },
     "node_modules/@vanilla-extract/css": {
-      "version": "1.9.5",
-      "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.9.5.tgz",
-      "integrity": "sha512-aVSv6q24zelKRtWx/l9yshU3gD1uCDMZ2ZGcIiYnAcPfyLryrG/1X5DxtyiPKcyI/hZWoteHofsN//2q9MvzOA==",
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.10.0.tgz",
+      "integrity": "sha512-s/EFfLDKbU1c2jnELNl+l14AufvIyryDh09ZZxRRqKjRKitiKvEjoiUy964pGKmfHngc9O0mkbzqrbhWaH+96Q==",
       "dependencies": {
         "@emotion/hash": "^0.9.0",
         "@vanilla-extract/private": "^1.0.3",
@@ -4532,27 +4531,29 @@
       }
     },
     "node_modules/@vanilla-extract/integration": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.1.1.tgz",
-      "integrity": "sha512-JGlynmtCju+NWU5ITgs81szCo8A4hFfW1E2oAsn++JHvgU7+wyg9N0TwByZOB1/nbrHVKISzRvl1M0BeB0mZXQ==",
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.2.1.tgz",
+      "integrity": "sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==",
       "dependencies": {
         "@babel/core": "^7.20.7",
         "@babel/plugin-syntax-typescript": "^7.20.0",
         "@vanilla-extract/babel-plugin-debug-ids": "^1.0.2",
-        "@vanilla-extract/css": "^1.9.4",
-        "esbuild": "^0.16.3",
+        "@vanilla-extract/css": "^1.10.0",
+        "esbuild": "0.17.6",
         "eval": "0.1.6",
         "find-up": "^5.0.0",
         "javascript-stringify": "^2.0.1",
         "lodash": "^4.17.21",
         "mlly": "^1.1.0",
-        "outdent": "^0.8.0"
+        "outdent": "^0.8.0",
+        "vite": "^4.1.4",
+        "vite-node": "^0.28.5"
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-arm": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
-      "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.6.tgz",
+      "integrity": "sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==",
       "cpu": [
         "arm"
       ],
@@ -4565,9 +4566,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-arm64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
-      "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.6.tgz",
+      "integrity": "sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==",
       "cpu": [
         "arm64"
       ],
@@ -4580,9 +4581,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
-      "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.6.tgz",
+      "integrity": "sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==",
       "cpu": [
         "x64"
       ],
@@ -4595,9 +4596,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/darwin-arm64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
-      "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.6.tgz",
+      "integrity": "sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==",
       "cpu": [
         "arm64"
       ],
@@ -4610,9 +4611,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/darwin-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
-      "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.6.tgz",
+      "integrity": "sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==",
       "cpu": [
         "x64"
       ],
@@ -4625,9 +4626,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/freebsd-arm64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
-      "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.6.tgz",
+      "integrity": "sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==",
       "cpu": [
         "arm64"
       ],
@@ -4640,9 +4641,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/freebsd-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
-      "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.6.tgz",
+      "integrity": "sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==",
       "cpu": [
         "x64"
       ],
@@ -4655,9 +4656,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-arm": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
-      "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.6.tgz",
+      "integrity": "sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==",
       "cpu": [
         "arm"
       ],
@@ -4670,9 +4671,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-arm64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
-      "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.6.tgz",
+      "integrity": "sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==",
       "cpu": [
         "arm64"
       ],
@@ -4685,9 +4686,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-ia32": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
-      "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.6.tgz",
+      "integrity": "sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==",
       "cpu": [
         "ia32"
       ],
@@ -4700,9 +4701,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-loong64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
-      "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.6.tgz",
+      "integrity": "sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==",
       "cpu": [
         "loong64"
       ],
@@ -4715,9 +4716,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-mips64el": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
-      "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.6.tgz",
+      "integrity": "sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==",
       "cpu": [
         "mips64el"
       ],
@@ -4730,9 +4731,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-ppc64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
-      "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.6.tgz",
+      "integrity": "sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==",
       "cpu": [
         "ppc64"
       ],
@@ -4745,9 +4746,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-riscv64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
-      "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.6.tgz",
+      "integrity": "sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==",
       "cpu": [
         "riscv64"
       ],
@@ -4760,9 +4761,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-s390x": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
-      "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.6.tgz",
+      "integrity": "sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==",
       "cpu": [
         "s390x"
       ],
@@ -4775,9 +4776,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
-      "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.6.tgz",
+      "integrity": "sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==",
       "cpu": [
         "x64"
       ],
@@ -4790,9 +4791,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/netbsd-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
-      "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.6.tgz",
+      "integrity": "sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==",
       "cpu": [
         "x64"
       ],
@@ -4805,9 +4806,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/openbsd-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
-      "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.6.tgz",
+      "integrity": "sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==",
       "cpu": [
         "x64"
       ],
@@ -4820,9 +4821,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/sunos-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
-      "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.6.tgz",
+      "integrity": "sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==",
       "cpu": [
         "x64"
       ],
@@ -4835,9 +4836,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-arm64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
-      "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.6.tgz",
+      "integrity": "sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==",
       "cpu": [
         "arm64"
       ],
@@ -4850,9 +4851,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-ia32": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
-      "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.6.tgz",
+      "integrity": "sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==",
       "cpu": [
         "ia32"
       ],
@@ -4865,9 +4866,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
-      "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.6.tgz",
+      "integrity": "sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==",
       "cpu": [
         "x64"
       ],
@@ -4880,9 +4881,9 @@
       }
     },
     "node_modules/@vanilla-extract/integration/node_modules/esbuild": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
-      "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
+      "version": "0.17.6",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.6.tgz",
+      "integrity": "sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==",
       "hasInstallScript": true,
       "bin": {
         "esbuild": "bin/esbuild"
@@ -4891,28 +4892,60 @@
         "node": ">=12"
       },
       "optionalDependencies": {
-        "@esbuild/android-arm": "0.16.17",
-        "@esbuild/android-arm64": "0.16.17",
-        "@esbuild/android-x64": "0.16.17",
-        "@esbuild/darwin-arm64": "0.16.17",
-        "@esbuild/darwin-x64": "0.16.17",
-        "@esbuild/freebsd-arm64": "0.16.17",
-        "@esbuild/freebsd-x64": "0.16.17",
-        "@esbuild/linux-arm": "0.16.17",
-        "@esbuild/linux-arm64": "0.16.17",
-        "@esbuild/linux-ia32": "0.16.17",
-        "@esbuild/linux-loong64": "0.16.17",
-        "@esbuild/linux-mips64el": "0.16.17",
-        "@esbuild/linux-ppc64": "0.16.17",
-        "@esbuild/linux-riscv64": "0.16.17",
-        "@esbuild/linux-s390x": "0.16.17",
-        "@esbuild/linux-x64": "0.16.17",
-        "@esbuild/netbsd-x64": "0.16.17",
-        "@esbuild/openbsd-x64": "0.16.17",
-        "@esbuild/sunos-x64": "0.16.17",
-        "@esbuild/win32-arm64": "0.16.17",
-        "@esbuild/win32-ia32": "0.16.17",
-        "@esbuild/win32-x64": "0.16.17"
+        "@esbuild/android-arm": "0.17.6",
+        "@esbuild/android-arm64": "0.17.6",
+        "@esbuild/android-x64": "0.17.6",
+        "@esbuild/darwin-arm64": "0.17.6",
+        "@esbuild/darwin-x64": "0.17.6",
+        "@esbuild/freebsd-arm64": "0.17.6",
+        "@esbuild/freebsd-x64": "0.17.6",
+        "@esbuild/linux-arm": "0.17.6",
+        "@esbuild/linux-arm64": "0.17.6",
+        "@esbuild/linux-ia32": "0.17.6",
+        "@esbuild/linux-loong64": "0.17.6",
+        "@esbuild/linux-mips64el": "0.17.6",
+        "@esbuild/linux-ppc64": "0.17.6",
+        "@esbuild/linux-riscv64": "0.17.6",
+        "@esbuild/linux-s390x": "0.17.6",
+        "@esbuild/linux-x64": "0.17.6",
+        "@esbuild/netbsd-x64": "0.17.6",
+        "@esbuild/openbsd-x64": "0.17.6",
+        "@esbuild/sunos-x64": "0.17.6",
+        "@esbuild/win32-arm64": "0.17.6",
+        "@esbuild/win32-ia32": "0.17.6",
+        "@esbuild/win32-x64": "0.17.6"
+      }
+    },
+    "node_modules/@vanilla-extract/integration/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/@vanilla-extract/integration/node_modules/vite-node": {
+      "version": "0.28.5",
+      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.28.5.tgz",
+      "integrity": "sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==",
+      "dependencies": {
+        "cac": "^6.7.14",
+        "debug": "^4.3.4",
+        "mlly": "^1.1.0",
+        "pathe": "^1.1.0",
+        "picocolors": "^1.0.0",
+        "source-map": "^0.6.1",
+        "source-map-support": "^0.5.21",
+        "vite": "^3.0.0 || ^4.0.0"
+      },
+      "bin": {
+        "vite-node": "vite-node.mjs"
+      },
+      "engines": {
+        "node": ">=v14.16.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
       }
     },
     "node_modules/@vanilla-extract/private": {
@@ -4920,17 +4953,12 @@
       "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.3.tgz",
       "integrity": "sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ=="
     },
-    "node_modules/@vercel/build-utils": {
-      "version": "6.3.2",
-      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.2.tgz",
-      "integrity": "sha512-wUYa8eUyTg1jPGRCrjpIxJm1r6hQE7ccbECWzDCAikuWG4iadS2zWrF7bsAcuUj7fTMf8sNFhmsknTJgyN3B3g=="
-    },
     "node_modules/@vercel/client": {
-      "version": "12.4.2",
-      "resolved": "https://registry.npmjs.org/@vercel/client/-/client-12.4.2.tgz",
-      "integrity": "sha512-RuBbgOB41eBPrOgQPoOTzv58z6XZKlhfyW09Q/bsagyleVSvp1ssW0mcEBCOJ7jfb/XZwSB/fN5x2iKI2T0m/Q==",
+      "version": "12.4.4",
+      "resolved": "https://registry.npmjs.org/@vercel/client/-/client-12.4.4.tgz",
+      "integrity": "sha512-C44d4WXiTzAqQ+PFkZ9lRtZQUiZuAGsFHYK5Cl/vFH11h9hzFxg6D6sstWipxTVnpIkeBqnG1SpJlV5MqkQiZQ==",
       "dependencies": {
-        "@vercel/build-utils": "6.3.2",
+        "@vercel/build-utils": "6.3.4",
         "@vercel/routing-utils": "2.1.10",
         "@zeit/fetch": "5.2.0",
         "async-retry": "1.2.3",
@@ -4948,6 +4976,11 @@
         "node": ">= 14"
       }
     },
+    "node_modules/@vercel/client/node_modules/@vercel/build-utils": {
+      "version": "6.3.4",
+      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+      "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+    },
     "node_modules/@vercel/client/node_modules/bl": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -5083,33 +5116,23 @@
       }
     },
     "node_modules/@vercel/gatsby-plugin-vercel-builder": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-1.1.11.tgz",
-      "integrity": "sha512-FyPg3RqpEPHJa8ubpMkGDrk5ZG0fPRIRsZZYBsYRtzvHGdd1AkTltdc8iIPm/pPDPiJhdYO+WPk8cIGwiHj52w==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-1.2.1.tgz",
+      "integrity": "sha512-L4Sydz8JJPZM9ZmIoxCMCc6TnQVEgbwPbmKNPESLPPUZkPpyaNcMYa8APkbyiEQMp8tuq5flEE21Aoq5tDkD3A==",
       "dependencies": {
-        "@vercel/build-utils": "6.3.2",
-        "@vercel/node": "2.9.10",
+        "@sinclair/typebox": "0.25.24",
+        "@vercel/build-utils": "6.3.4",
+        "@vercel/node": "2.9.12",
         "@vercel/routing-utils": "2.1.10",
-        "ajv": "8.12.0",
         "esbuild": "0.14.47",
         "etag": "1.8.1",
         "fs-extra": "11.1.0"
       }
     },
-    "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/ajv": {
-      "version": "8.12.0",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
-      "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
-      "dependencies": {
-        "fast-deep-equal": "^3.1.1",
-        "json-schema-traverse": "^1.0.0",
-        "require-from-string": "^2.0.2",
-        "uri-js": "^4.2.2"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/epoberezkin"
-      }
+    "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/@vercel/build-utils": {
+      "version": "6.3.4",
+      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+      "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
     },
     "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/fs-extra": {
       "version": "11.1.0",
@@ -5124,11 +5147,6 @@
         "node": ">=14.14"
       }
     },
-    "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/json-schema-traverse": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
-      "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
-    },
     "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/jsonfile": {
       "version": "6.1.0",
       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -5149,19 +5167,19 @@
       }
     },
     "node_modules/@vercel/go": {
-      "version": "2.3.9",
-      "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.3.9.tgz",
-      "integrity": "sha512-ncDvPRKIr/jYM0fcGMfMTVJ3GjvdpAWTl6rFXBje8MfTRmHvOcfHd3UIM2GY7s5TtTbC1Bxsr005LPpW28b3Vg=="
+      "version": "2.3.11",
+      "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.3.11.tgz",
+      "integrity": "sha512-IuFnrQzTuTBp08/+2UHWIZ4KYB0TJvTjVEvGE275nsDXqlssZRDNHXfjGTEouScCN7HuYQMkEFRn+xlMb+0qHg=="
     },
     "node_modules/@vercel/hydrogen": {
-      "version": "0.0.55",
-      "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.55.tgz",
-      "integrity": "sha512-U8czvRtud52+aMknNnWXtzK3zU2KAIU081XsuKpUY3YhpgaHU4Z9ZnzFdQQ87Y2PGXGwhmS6DEUe8XBipnRfbA=="
+      "version": "0.0.57",
+      "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.57.tgz",
+      "integrity": "sha512-VOI7AYJlrrxoPaxbYpAJz/t0516a7/sMtukAT834T7Ne/MOgj5fU6n/IOTBqz3si8tZ7NybWIlM+T5iJSozoZw=="
     },
     "node_modules/@vercel/next": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.6.4.tgz",
-      "integrity": "sha512-SGba20U4H651cCK3nhgMFGBw98nMbB8Wn8EuNHMTmI9p/aByd34kde7+3cBntKW+n9bmfR8b5hlNqoLLFHob2w=="
+      "version": "3.6.6",
+      "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.6.6.tgz",
+      "integrity": "sha512-vnlMCHwyXkUGB3Bc5nUwf27fe1Q8t+1VosSAY+97tCJURlIodvSKDBMmR/x+Fb/uoWip66MmO63DH9szLUw0cQ=="
     },
     "node_modules/@vercel/nft": {
       "version": "0.22.5",
@@ -5201,13 +5219,13 @@
       }
     },
     "node_modules/@vercel/node": {
-      "version": "2.9.10",
-      "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.9.10.tgz",
-      "integrity": "sha512-rpl0dkJVQpPgIPvAG2hIuxwIIUoxRFqGwMVqqsp6r9sr2Y03q+t2UtPSGOyBRpE+0JdYV2GzcRcgiPQi3Udi7w==",
+      "version": "2.9.12",
+      "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.9.12.tgz",
+      "integrity": "sha512-NGbOK9bl7Lhnr1OfB+iz2yIOuMhOQKZz66jn11153mDqqlQ93i7cNcQeMU61A1waJj1KubqViMGWKgxO7QTCUw==",
       "dependencies": {
         "@edge-runtime/vm": "2.0.0",
         "@types/node": "14.18.33",
-        "@vercel/build-utils": "6.3.2",
+        "@vercel/build-utils": "6.3.4",
         "@vercel/node-bridge": "3.1.14",
         "@vercel/static-config": "2.0.13",
         "edge-runtime": "2.0.0",
@@ -5228,6 +5246,11 @@
       "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz",
       "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg=="
     },
+    "node_modules/@vercel/node/node_modules/@vercel/build-utils": {
+      "version": "6.3.4",
+      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+      "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+    },
     "node_modules/@vercel/node/node_modules/node-fetch": {
       "version": "2.6.7",
       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -5260,14 +5283,14 @@
       }
     },
     "node_modules/@vercel/python": {
-      "version": "3.1.51",
-      "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.51.tgz",
-      "integrity": "sha512-/Hd0sDOy8JWyLaw+AlLhRtUkAPyIvW5A4od0c4rHsn6Gasuom5jFMG6RlO1NWEOSbJNyuGGe3/1R8wTu4qZDZA=="
+      "version": "3.1.53",
+      "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.53.tgz",
+      "integrity": "sha512-jr6D7AZ70cFfTV7+dmqFL9d1ssbx/3/o1AwOm1iq/XlAGLNhoMYVaT/m/oC7st82OyBUk7X0Ek5NLaUZsjlQbg=="
     },
     "node_modules/@vercel/redwood": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.1.7.tgz",
-      "integrity": "sha512-xGr74P1sT6ZQh/PbW8YS/k1w5D24e0oliB/GCoqYmoKPuavpIeScJGHNvGjvYffbwWunArgR283k0oPMIIlo/w==",
+      "version": "1.1.9",
+      "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.1.9.tgz",
+      "integrity": "sha512-blFWThhosa+LhqReoXI+xnXoD9Gj2PK/jIfvSo9vP2Kzbzr/hLfcaDqv1ZQted/PuZilaa3gX9j7e/kPFsXulw==",
       "dependencies": {
         "@vercel/nft": "0.22.5",
         "@vercel/routing-utils": "2.1.10",
@@ -5283,9 +5306,9 @@
       }
     },
     "node_modules/@vercel/remix": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.6.0.tgz",
-      "integrity": "sha512-OFutrm02n2KZL2nJNB6OSgFT7EMbYdXbwFhUAbQ3tjUAgmR06FP3DDcY2EG4+hBRDDahhRrNTzgdih3ZTAaX9A==",
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.6.2.tgz",
+      "integrity": "sha512-y0b32OJbQpvcEZPIB+BNyoCIpXH+hN/T/WN6PEPYOFzMQzb9Zjh2SEMBO+mh3azbq64RWWedxljIrSyR59jfAQ==",
       "dependencies": {
         "@remix-run/dev": "npm:@vercel/remix-run-dev@1.14.0",
         "@vercel/nft": "0.22.5",
@@ -5311,17 +5334,17 @@
       }
     },
     "node_modules/@vercel/ruby": {
-      "version": "1.3.68",
-      "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.68.tgz",
-      "integrity": "sha512-TGE9iMrRBiKITL8lP5rhd7Q6hbfBCX5WjIzGLcx4f+uLli1ZE61kjMmYjToSr3ahkGET/kL6+T2nFpc/sPVcrw=="
+      "version": "1.3.70",
+      "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.70.tgz",
+      "integrity": "sha512-tVCl78XWuZEzi8oyumzB7pAuxLPK54zTko6yJVqXtytOyuLorTB+LLEV9wDzh+Yird8bVsA/hDf6qoYJaFYagA=="
     },
     "node_modules/@vercel/static-build": {
-      "version": "1.3.14",
-      "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.3.14.tgz",
-      "integrity": "sha512-z0lYuclfpsP+yHAC0QSYPi6+7IiZlt3HBgJbQtPBy/iu5NdMrCJU1J/R86D76CsQaRk70iCByrVfgSkn6FuEFg==",
+      "version": "1.3.16",
+      "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.3.16.tgz",
+      "integrity": "sha512-Nz1qXjcgaWZfZd3CU/1WITLIu9kcGu7tiBs1+t2Fh1013rwQdb/YothpjXKauUhMbUm3blgH0Jej86N2ctrpTw==",
       "dependencies": {
         "@vercel/gatsby-plugin-vercel-analytics": "1.0.8",
-        "@vercel/gatsby-plugin-vercel-builder": "1.1.11"
+        "@vercel/gatsby-plugin-vercel-builder": "1.2.1"
       }
     },
     "node_modules/@vercel/static-config": {
@@ -5591,16 +5614,16 @@
       }
     },
     "node_modules/@wdio/cli": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.5.6.tgz",
-      "integrity": "sha512-xw86S9OVUvYNkdSmgXfDAeA2I2a+GoZYwarpnAHZUCdig+Q3rvcXGhpx6CrjtT49YVXBq1r1M/QRFPpjsapqBg==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.5.9.tgz",
+      "integrity": "sha512-wZndxvrwOlYKJqZA5Ju0n34NY3hsHwbqBwLVRoKUKlZC2BR/KwWtWE2+RJA/j8/KlkPkxaJzFTq46h8Yv1mSKA==",
       "dev": true,
       "dependencies": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
-        "@wdio/globals": "8.5.6",
+        "@wdio/globals": "8.5.9",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
         "async-exit-hook": "^2.0.1",
@@ -5617,7 +5640,7 @@
         "mkdirp": "^2.0.0",
         "read-pkg-up": "9.1.0",
         "recursive-readdir": "^2.2.2",
-        "webdriverio": "8.5.6",
+        "webdriverio": "8.5.9",
         "yargs": "^17.5.1",
         "yarn-install": "^1.0.0"
       },
@@ -5628,6 +5651,25 @@
         "node": "^16.13 || >=18"
       }
     },
+    "node_modules/@wdio/cli/node_modules/@wdio/globals": {
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.5.9.tgz",
+      "integrity": "sha512-WdBBUvDiyK+7jgjwTcElF+8keF7a0GiV4tg9IYYMWBwApEgrIIQNmG99pl8DZ93ojUQUQ5eCKW52fJySv1GGwg==",
+      "dev": true,
+      "engines": {
+        "node": "^16.13 || >=18"
+      },
+      "optionalDependencies": {
+        "expect-webdriverio": "^4.0.1",
+        "webdriverio": "8.5.9"
+      }
+    },
+    "node_modules/@wdio/cli/node_modules/@wdio/protocols": {
+      "version": "8.5.7",
+      "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+      "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+      "dev": true
+    },
     "node_modules/@wdio/cli/node_modules/chalk": {
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
@@ -5691,6 +5733,114 @@
         "webdriverio": "8.5.6"
       }
     },
+    "node_modules/@wdio/globals/node_modules/devtools": {
+      "version": "8.5.6",
+      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
+      "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "@types/node": "^18.0.0",
+        "@wdio/config": "8.5.6",
+        "@wdio/logger": "8.1.0",
+        "@wdio/protocols": "8.5.6",
+        "@wdio/types": "8.4.0",
+        "@wdio/utils": "8.5.6",
+        "chrome-launcher": "^0.15.0",
+        "edge-paths": "^3.0.5",
+        "import-meta-resolve": "^2.1.0",
+        "puppeteer-core": "19.7.2",
+        "query-selector-shadow-dom": "^1.0.0",
+        "ua-parser-js": "^1.0.1",
+        "uuid": "^9.0.0",
+        "which": "^3.0.0"
+      },
+      "engines": {
+        "node": "^16.13 || >=18"
+      }
+    },
+    "node_modules/@wdio/globals/node_modules/is-plain-obj": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+      "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+      "dev": true,
+      "optional": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@wdio/globals/node_modules/minimatch": {
+      "version": "7.4.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
+      "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@wdio/globals/node_modules/webdriverio": {
+      "version": "8.5.6",
+      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
+      "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "@types/node": "^18.0.0",
+        "@wdio/config": "8.5.6",
+        "@wdio/logger": "8.1.0",
+        "@wdio/protocols": "8.5.6",
+        "@wdio/repl": "8.1.0",
+        "@wdio/types": "8.4.0",
+        "@wdio/utils": "8.5.6",
+        "archiver": "^5.0.0",
+        "aria-query": "^5.0.0",
+        "css-shorthand-properties": "^1.1.1",
+        "css-value": "^0.0.1",
+        "devtools": "8.5.6",
+        "devtools-protocol": "^0.0.1109433",
+        "grapheme-splitter": "^1.0.2",
+        "import-meta-resolve": "^2.1.0",
+        "is-plain-obj": "^4.1.0",
+        "lodash.clonedeep": "^4.5.0",
+        "lodash.zip": "^4.2.0",
+        "minimatch": "^7.0.0",
+        "puppeteer-core": "19.7.2",
+        "query-selector-shadow-dom": "^1.0.0",
+        "resq": "^1.9.1",
+        "rgb2hex": "0.2.5",
+        "serialize-error": "^8.0.0",
+        "webdriver": "8.5.6"
+      },
+      "engines": {
+        "node": "^16.13 || >=18"
+      }
+    },
+    "node_modules/@wdio/globals/node_modules/which": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
+      "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
     "node_modules/@wdio/local-runner": {
       "version": "8.5.6",
       "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.5.6.tgz",
@@ -5811,6 +5961,109 @@
         "node": "^16.13 || >=18"
       }
     },
+    "node_modules/@wdio/runner/node_modules/devtools": {
+      "version": "8.5.6",
+      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
+      "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "^18.0.0",
+        "@wdio/config": "8.5.6",
+        "@wdio/logger": "8.1.0",
+        "@wdio/protocols": "8.5.6",
+        "@wdio/types": "8.4.0",
+        "@wdio/utils": "8.5.6",
+        "chrome-launcher": "^0.15.0",
+        "edge-paths": "^3.0.5",
+        "import-meta-resolve": "^2.1.0",
+        "puppeteer-core": "19.7.2",
+        "query-selector-shadow-dom": "^1.0.0",
+        "ua-parser-js": "^1.0.1",
+        "uuid": "^9.0.0",
+        "which": "^3.0.0"
+      },
+      "engines": {
+        "node": "^16.13 || >=18"
+      }
+    },
+    "node_modules/@wdio/runner/node_modules/is-plain-obj": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+      "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@wdio/runner/node_modules/minimatch": {
+      "version": "7.4.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
+      "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@wdio/runner/node_modules/webdriverio": {
+      "version": "8.5.6",
+      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
+      "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "^18.0.0",
+        "@wdio/config": "8.5.6",
+        "@wdio/logger": "8.1.0",
+        "@wdio/protocols": "8.5.6",
+        "@wdio/repl": "8.1.0",
+        "@wdio/types": "8.4.0",
+        "@wdio/utils": "8.5.6",
+        "archiver": "^5.0.0",
+        "aria-query": "^5.0.0",
+        "css-shorthand-properties": "^1.1.1",
+        "css-value": "^0.0.1",
+        "devtools": "8.5.6",
+        "devtools-protocol": "^0.0.1109433",
+        "grapheme-splitter": "^1.0.2",
+        "import-meta-resolve": "^2.1.0",
+        "is-plain-obj": "^4.1.0",
+        "lodash.clonedeep": "^4.5.0",
+        "lodash.zip": "^4.2.0",
+        "minimatch": "^7.0.0",
+        "puppeteer-core": "19.7.2",
+        "query-selector-shadow-dom": "^1.0.0",
+        "resq": "^1.9.1",
+        "rgb2hex": "0.2.5",
+        "serialize-error": "^8.0.0",
+        "webdriver": "8.5.6"
+      },
+      "engines": {
+        "node": "^16.13 || >=18"
+      }
+    },
+    "node_modules/@wdio/runner/node_modules/which": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
+      "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
     "node_modules/@wdio/spec-reporter": {
       "version": "8.4.0",
       "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.4.0.tgz",
@@ -7286,7 +7539,6 @@
       "version": "6.7.14",
       "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
       "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
-      "dev": true,
       "engines": {
         "node": ">=8"
       }
@@ -8171,9 +8423,9 @@
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
     },
     "node_modules/core-js-compat": {
-      "version": "3.29.0",
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz",
-      "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==",
+      "version": "3.29.1",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz",
+      "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==",
       "dependencies": {
         "browserslist": "^4.21.5"
       },
@@ -8908,15 +9160,15 @@
       }
     },
     "node_modules/devtools": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
-      "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.9.tgz",
+      "integrity": "sha512-zhEHZjqsWnnOnDozSkKBXEBsfV1qtdk5gbHQQnu2B22Az7f3nZnLfznNVmqxcaYC3lmplsnnMlsRk6WgouAagw==",
       "dev": true,
       "dependencies": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
         "chrome-launcher": "^0.15.0",
@@ -8938,6 +9190,12 @@
       "integrity": "sha512-w1Eqih66egbSr2eOoGZ+NsdF7HdxmKDo3pKFBySEGsmVvwWWNXzNCDcKrbFnd23Jf7kH1M806OfelXwu+Jk11g==",
       "dev": true
     },
+    "node_modules/devtools/node_modules/@wdio/protocols": {
+      "version": "8.5.7",
+      "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+      "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+      "dev": true
+    },
     "node_modules/devtools/node_modules/which": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
@@ -17615,9 +17873,9 @@
       }
     },
     "node_modules/preact": {
-      "version": "10.13.0",
-      "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.0.tgz",
-      "integrity": "sha512-ERdIdUpR6doqdaSIh80hvzebHB7O6JxycOhyzAeLEchqOq/4yueslQbfnPwXaNhAYacFTyCclhwkEbOumT0tHw==",
+      "version": "10.13.1",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.1.tgz",
+      "integrity": "sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ==",
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/preact"
@@ -18480,9 +18738,9 @@
       }
     },
     "node_modules/regexpu-core": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz",
-      "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==",
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+      "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
       "dependencies": {
         "@babel/regjsgen": "^0.8.0",
         "regenerate": "^1.4.2",
@@ -18788,7 +19046,6 @@
       "version": "3.18.0",
       "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz",
       "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==",
-      "dev": true,
       "bin": {
         "rollup": "dist/bin/rollup"
       },
@@ -19436,7 +19693,6 @@
       "version": "0.5.21",
       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
       "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-      "dev": true,
       "dependencies": {
         "buffer-from": "^1.0.0",
         "source-map": "^0.6.0"
@@ -19446,7 +19702,6 @@
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "dev": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -19981,9 +20236,9 @@
       }
     },
     "node_modules/tar/node_modules/minipass": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
-      "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
+      "version": "4.2.5",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
+      "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
       "engines": {
         "node": ">=8"
       }
@@ -20035,7 +20290,7 @@
       "version": "5.16.5",
       "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz",
       "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@jridgewell/source-map": "^0.3.2",
         "acorn": "^8.5.0",
@@ -20097,7 +20352,7 @@
       "version": "2.20.3",
       "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/test-exclude": {
       "version": "6.0.0",
@@ -20731,9 +20986,9 @@
       "dev": true
     },
     "node_modules/undici": {
-      "version": "5.20.0",
-      "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz",
-      "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
+      "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==",
       "dependencies": {
         "busboy": "^1.6.0"
       },
@@ -21153,21 +21408,21 @@
       }
     },
     "node_modules/vercel": {
-      "version": "28.16.13",
-      "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.16.13.tgz",
-      "integrity": "sha512-yCEZrXDUOsluUhsPBpe1cDlHuC8UnQF3Zbjdss1yQUe6uRhZOT4yxf+uuM8h+e90CnjZQfwCok3RdHTIJM87Rg==",
+      "version": "28.16.15",
+      "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.16.15.tgz",
+      "integrity": "sha512-BMf/PYgJ5Tz5q9w/poWCKIQ2XHPiFpU1gdMpujOFlBwNHXp2XbOiIJkoEKSSNzYIJibrpBha/KE93qw4bgFN/w==",
       "hasInstallScript": true,
       "dependencies": {
-        "@vercel/build-utils": "6.3.2",
-        "@vercel/go": "2.3.9",
-        "@vercel/hydrogen": "0.0.55",
-        "@vercel/next": "3.6.4",
-        "@vercel/node": "2.9.10",
-        "@vercel/python": "3.1.51",
-        "@vercel/redwood": "1.1.7",
-        "@vercel/remix": "1.6.0",
-        "@vercel/ruby": "1.3.68",
-        "@vercel/static-build": "1.3.14"
+        "@vercel/build-utils": "6.3.4",
+        "@vercel/go": "2.3.11",
+        "@vercel/hydrogen": "0.0.57",
+        "@vercel/next": "3.6.6",
+        "@vercel/node": "2.9.12",
+        "@vercel/python": "3.1.53",
+        "@vercel/redwood": "1.1.9",
+        "@vercel/remix": "1.6.2",
+        "@vercel/ruby": "1.3.70",
+        "@vercel/static-build": "1.3.16"
       },
       "bin": {
         "vc": "dist/index.js",
@@ -21177,6 +21432,11 @@
         "node": ">= 14"
       }
     },
+    "node_modules/vercel/node_modules/@vercel/build-utils": {
+      "version": "6.3.4",
+      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+      "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+    },
     "node_modules/vfile": {
       "version": "5.3.7",
       "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
@@ -21222,7 +21482,6 @@
       "version": "4.1.4",
       "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz",
       "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==",
-      "dev": true,
       "dependencies": {
         "esbuild": "^0.16.14",
         "postcss": "^8.4.21",
@@ -21297,7 +21556,6 @@
       "cpu": [
         "arm"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "android"
@@ -21313,7 +21571,6 @@
       "cpu": [
         "arm64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "android"
@@ -21329,7 +21586,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "android"
@@ -21345,7 +21601,6 @@
       "cpu": [
         "arm64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "darwin"
@@ -21361,7 +21616,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "darwin"
@@ -21377,7 +21631,6 @@
       "cpu": [
         "arm64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "freebsd"
@@ -21393,7 +21646,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "freebsd"
@@ -21409,7 +21661,6 @@
       "cpu": [
         "arm"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21425,7 +21676,6 @@
       "cpu": [
         "arm64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21441,7 +21691,6 @@
       "cpu": [
         "ia32"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21457,7 +21706,6 @@
       "cpu": [
         "loong64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21473,7 +21721,6 @@
       "cpu": [
         "mips64el"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21489,7 +21736,6 @@
       "cpu": [
         "ppc64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21505,7 +21751,6 @@
       "cpu": [
         "riscv64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21521,7 +21766,6 @@
       "cpu": [
         "s390x"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21537,7 +21781,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "linux"
@@ -21553,7 +21796,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "netbsd"
@@ -21569,7 +21811,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "openbsd"
@@ -21585,7 +21826,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "sunos"
@@ -21601,7 +21841,6 @@
       "cpu": [
         "arm64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "win32"
@@ -21617,7 +21856,6 @@
       "cpu": [
         "ia32"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "win32"
@@ -21633,7 +21871,6 @@
       "cpu": [
         "x64"
       ],
-      "dev": true,
       "optional": true,
       "os": [
         "win32"
@@ -21646,7 +21883,6 @@
       "version": "0.16.17",
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
       "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
-      "dev": true,
       "hasInstallScript": true,
       "bin": {
         "esbuild": "bin/esbuild"
@@ -22013,15 +22249,15 @@
       }
     },
     "node_modules/webdriverio": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
-      "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.9.tgz",
+      "integrity": "sha512-nKjrp6lmPdyg5nnst6BVcV+8r+3Yx/hOhgO2G+0kfCpQp2uATwn2Y4fk6u7ba09e8gsAyxI+1bYv34ra8zKCdQ==",
       "dev": true,
       "dependencies": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/repl": "8.1.0",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
@@ -22029,7 +22265,7 @@
         "aria-query": "^5.0.0",
         "css-shorthand-properties": "^1.1.1",
         "css-value": "^0.0.1",
-        "devtools": "8.5.6",
+        "devtools": "8.5.9",
         "devtools-protocol": "^0.0.1109433",
         "grapheme-splitter": "^1.0.2",
         "import-meta-resolve": "^2.1.0",
@@ -22042,12 +22278,18 @@
         "resq": "^1.9.1",
         "rgb2hex": "0.2.5",
         "serialize-error": "^8.0.0",
-        "webdriver": "8.5.6"
+        "webdriver": "8.5.7"
       },
       "engines": {
         "node": "^16.13 || >=18"
       }
     },
+    "node_modules/webdriverio/node_modules/@wdio/protocols": {
+      "version": "8.5.7",
+      "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+      "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+      "dev": true
+    },
     "node_modules/webdriverio/node_modules/is-plain-obj": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
@@ -22075,15 +22317,58 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/webdriverio/node_modules/webdriver": {
+      "version": "8.5.7",
+      "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.5.7.tgz",
+      "integrity": "sha512-KDw72g7EY0tqvSDkfF1YFHIw75VOVKKAesGxag3++8nVtp+YNsE/6xr9iov7UDKjre3tXphgj//r2RouSDCO5g==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "^18.0.0",
+        "@types/ws": "^8.5.3",
+        "@wdio/config": "8.5.6",
+        "@wdio/logger": "8.1.0",
+        "@wdio/protocols": "8.5.7",
+        "@wdio/types": "8.4.0",
+        "@wdio/utils": "8.5.6",
+        "deepmerge-ts": "^4.2.2",
+        "got": "^12.1.0",
+        "ky": "^0.33.0",
+        "ws": "^8.8.0"
+      },
+      "engines": {
+        "node": "^16.13 || >=18"
+      }
+    },
+    "node_modules/webdriverio/node_modules/ws": {
+      "version": "8.13.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+      "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/webidl-conversions": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
       "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
     },
     "node_modules/webpack": {
-      "version": "5.75.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
-      "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+      "version": "5.76.1",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz",
+      "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==",
       "dev": true,
       "dependencies": {
         "@types/eslint-scope": "^3.7.3",
@@ -24664,9 +24949,9 @@
       "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
     },
     "@grpc/grpc-js": {
-      "version": "1.8.11",
-      "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.11.tgz",
-      "integrity": "sha512-f/xC+6Z2QKsRJ+VSSFlt4hA5KSRm+PKvMWV8kMPkMgGlFidR6PeIkXrOasIY2roe+WROM6GFQLlgDKfeEZo2YQ==",
+      "version": "1.8.12",
+      "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.12.tgz",
+      "integrity": "sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ==",
       "requires": {
         "@grpc/proto-loader": "^0.7.0",
         "@types/node": ">=12.12.47"
@@ -24916,7 +25201,7 @@
       "version": "0.3.2",
       "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
       "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "@jridgewell/gen-mapping": "^0.3.0",
         "@jridgewell/trace-mapping": "^0.3.9"
@@ -24926,7 +25211,7 @@
           "version": "0.3.2",
           "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
           "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "@jridgewell/set-array": "^1.0.1",
             "@jridgewell/sourcemap-codec": "^1.4.10",
@@ -25768,8 +26053,7 @@
     "@sinclair/typebox": {
       "version": "0.25.24",
       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
-      "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
-      "dev": true
+      "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
     },
     "@sindresorhus/is": {
       "version": "5.3.0",
@@ -26041,9 +26325,9 @@
       "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
     },
     "@types/node": {
-      "version": "18.14.6",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz",
-      "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA=="
+      "version": "18.15.1",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.1.tgz",
+      "integrity": "sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw=="
     },
     "@types/node-fetch": {
       "version": "2.6.2",
@@ -26303,9 +26587,9 @@
       }
     },
     "@vanilla-extract/css": {
-      "version": "1.9.5",
-      "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.9.5.tgz",
-      "integrity": "sha512-aVSv6q24zelKRtWx/l9yshU3gD1uCDMZ2ZGcIiYnAcPfyLryrG/1X5DxtyiPKcyI/hZWoteHofsN//2q9MvzOA==",
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.10.0.tgz",
+      "integrity": "sha512-s/EFfLDKbU1c2jnELNl+l14AufvIyryDh09ZZxRRqKjRKitiKvEjoiUy964pGKmfHngc9O0mkbzqrbhWaH+96Q==",
       "requires": {
         "@emotion/hash": "^0.9.0",
         "@vanilla-extract/private": "^1.0.3",
@@ -26366,182 +26650,204 @@
       }
     },
     "@vanilla-extract/integration": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.1.1.tgz",
-      "integrity": "sha512-JGlynmtCju+NWU5ITgs81szCo8A4hFfW1E2oAsn++JHvgU7+wyg9N0TwByZOB1/nbrHVKISzRvl1M0BeB0mZXQ==",
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.2.1.tgz",
+      "integrity": "sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==",
       "requires": {
         "@babel/core": "^7.20.7",
         "@babel/plugin-syntax-typescript": "^7.20.0",
         "@vanilla-extract/babel-plugin-debug-ids": "^1.0.2",
-        "@vanilla-extract/css": "^1.9.4",
-        "esbuild": "^0.16.3",
+        "@vanilla-extract/css": "^1.10.0",
+        "esbuild": "0.17.6",
         "eval": "0.1.6",
         "find-up": "^5.0.0",
         "javascript-stringify": "^2.0.1",
         "lodash": "^4.17.21",
         "mlly": "^1.1.0",
-        "outdent": "^0.8.0"
+        "outdent": "^0.8.0",
+        "vite": "^4.1.4",
+        "vite-node": "^0.28.5"
       },
       "dependencies": {
         "@esbuild/android-arm": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
-          "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.6.tgz",
+          "integrity": "sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==",
           "optional": true
         },
         "@esbuild/android-arm64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
-          "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.6.tgz",
+          "integrity": "sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==",
           "optional": true
         },
         "@esbuild/android-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
-          "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.6.tgz",
+          "integrity": "sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==",
           "optional": true
         },
         "@esbuild/darwin-arm64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
-          "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.6.tgz",
+          "integrity": "sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==",
           "optional": true
         },
         "@esbuild/darwin-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
-          "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.6.tgz",
+          "integrity": "sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==",
           "optional": true
         },
         "@esbuild/freebsd-arm64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
-          "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.6.tgz",
+          "integrity": "sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==",
           "optional": true
         },
         "@esbuild/freebsd-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
-          "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.6.tgz",
+          "integrity": "sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==",
           "optional": true
         },
         "@esbuild/linux-arm": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
-          "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.6.tgz",
+          "integrity": "sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==",
           "optional": true
         },
         "@esbuild/linux-arm64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
-          "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.6.tgz",
+          "integrity": "sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==",
           "optional": true
         },
         "@esbuild/linux-ia32": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
-          "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.6.tgz",
+          "integrity": "sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==",
           "optional": true
         },
         "@esbuild/linux-loong64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
-          "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.6.tgz",
+          "integrity": "sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==",
           "optional": true
         },
         "@esbuild/linux-mips64el": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
-          "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.6.tgz",
+          "integrity": "sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==",
           "optional": true
         },
         "@esbuild/linux-ppc64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
-          "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.6.tgz",
+          "integrity": "sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==",
           "optional": true
         },
         "@esbuild/linux-riscv64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
-          "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.6.tgz",
+          "integrity": "sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==",
           "optional": true
         },
         "@esbuild/linux-s390x": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
-          "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.6.tgz",
+          "integrity": "sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==",
           "optional": true
         },
         "@esbuild/linux-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
-          "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.6.tgz",
+          "integrity": "sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==",
           "optional": true
         },
         "@esbuild/netbsd-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
-          "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.6.tgz",
+          "integrity": "sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==",
           "optional": true
         },
         "@esbuild/openbsd-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
-          "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.6.tgz",
+          "integrity": "sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==",
           "optional": true
         },
         "@esbuild/sunos-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
-          "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.6.tgz",
+          "integrity": "sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==",
           "optional": true
         },
         "@esbuild/win32-arm64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
-          "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.6.tgz",
+          "integrity": "sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==",
           "optional": true
         },
         "@esbuild/win32-ia32": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
-          "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.6.tgz",
+          "integrity": "sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==",
           "optional": true
         },
         "@esbuild/win32-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
-          "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.6.tgz",
+          "integrity": "sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==",
           "optional": true
         },
         "esbuild": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
-          "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
+          "version": "0.17.6",
+          "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.6.tgz",
+          "integrity": "sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==",
+          "requires": {
+            "@esbuild/android-arm": "0.17.6",
+            "@esbuild/android-arm64": "0.17.6",
+            "@esbuild/android-x64": "0.17.6",
+            "@esbuild/darwin-arm64": "0.17.6",
+            "@esbuild/darwin-x64": "0.17.6",
+            "@esbuild/freebsd-arm64": "0.17.6",
+            "@esbuild/freebsd-x64": "0.17.6",
+            "@esbuild/linux-arm": "0.17.6",
+            "@esbuild/linux-arm64": "0.17.6",
+            "@esbuild/linux-ia32": "0.17.6",
+            "@esbuild/linux-loong64": "0.17.6",
+            "@esbuild/linux-mips64el": "0.17.6",
+            "@esbuild/linux-ppc64": "0.17.6",
+            "@esbuild/linux-riscv64": "0.17.6",
+            "@esbuild/linux-s390x": "0.17.6",
+            "@esbuild/linux-x64": "0.17.6",
+            "@esbuild/netbsd-x64": "0.17.6",
+            "@esbuild/openbsd-x64": "0.17.6",
+            "@esbuild/sunos-x64": "0.17.6",
+            "@esbuild/win32-arm64": "0.17.6",
+            "@esbuild/win32-ia32": "0.17.6",
+            "@esbuild/win32-x64": "0.17.6"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+        },
+        "vite-node": {
+          "version": "0.28.5",
+          "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.28.5.tgz",
+          "integrity": "sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==",
           "requires": {
-            "@esbuild/android-arm": "0.16.17",
-            "@esbuild/android-arm64": "0.16.17",
-            "@esbuild/android-x64": "0.16.17",
-            "@esbuild/darwin-arm64": "0.16.17",
-            "@esbuild/darwin-x64": "0.16.17",
-            "@esbuild/freebsd-arm64": "0.16.17",
-            "@esbuild/freebsd-x64": "0.16.17",
-            "@esbuild/linux-arm": "0.16.17",
-            "@esbuild/linux-arm64": "0.16.17",
-            "@esbuild/linux-ia32": "0.16.17",
-            "@esbuild/linux-loong64": "0.16.17",
-            "@esbuild/linux-mips64el": "0.16.17",
-            "@esbuild/linux-ppc64": "0.16.17",
-            "@esbuild/linux-riscv64": "0.16.17",
-            "@esbuild/linux-s390x": "0.16.17",
-            "@esbuild/linux-x64": "0.16.17",
-            "@esbuild/netbsd-x64": "0.16.17",
-            "@esbuild/openbsd-x64": "0.16.17",
-            "@esbuild/sunos-x64": "0.16.17",
-            "@esbuild/win32-arm64": "0.16.17",
-            "@esbuild/win32-ia32": "0.16.17",
-            "@esbuild/win32-x64": "0.16.17"
+            "cac": "^6.7.14",
+            "debug": "^4.3.4",
+            "mlly": "^1.1.0",
+            "pathe": "^1.1.0",
+            "picocolors": "^1.0.0",
+            "source-map": "^0.6.1",
+            "source-map-support": "^0.5.21",
+            "vite": "^3.0.0 || ^4.0.0"
           }
         }
       }
@@ -26551,17 +26857,12 @@
       "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.3.tgz",
       "integrity": "sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ=="
     },
-    "@vercel/build-utils": {
-      "version": "6.3.2",
-      "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.2.tgz",
-      "integrity": "sha512-wUYa8eUyTg1jPGRCrjpIxJm1r6hQE7ccbECWzDCAikuWG4iadS2zWrF7bsAcuUj7fTMf8sNFhmsknTJgyN3B3g=="
-    },
     "@vercel/client": {
-      "version": "12.4.2",
-      "resolved": "https://registry.npmjs.org/@vercel/client/-/client-12.4.2.tgz",
-      "integrity": "sha512-RuBbgOB41eBPrOgQPoOTzv58z6XZKlhfyW09Q/bsagyleVSvp1ssW0mcEBCOJ7jfb/XZwSB/fN5x2iKI2T0m/Q==",
+      "version": "12.4.4",
+      "resolved": "https://registry.npmjs.org/@vercel/client/-/client-12.4.4.tgz",
+      "integrity": "sha512-C44d4WXiTzAqQ+PFkZ9lRtZQUiZuAGsFHYK5Cl/vFH11h9hzFxg6D6sstWipxTVnpIkeBqnG1SpJlV5MqkQiZQ==",
       "requires": {
-        "@vercel/build-utils": "6.3.2",
+        "@vercel/build-utils": "6.3.4",
         "@vercel/routing-utils": "2.1.10",
         "@zeit/fetch": "5.2.0",
         "async-retry": "1.2.3",
@@ -26576,6 +26877,11 @@
         "tar-fs": "1.16.3"
       },
       "dependencies": {
+        "@vercel/build-utils": {
+          "version": "6.3.4",
+          "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+          "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+        },
         "bl": {
           "version": "1.2.3",
           "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -26693,29 +26999,23 @@
       }
     },
     "@vercel/gatsby-plugin-vercel-builder": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-1.1.11.tgz",
-      "integrity": "sha512-FyPg3RqpEPHJa8ubpMkGDrk5ZG0fPRIRsZZYBsYRtzvHGdd1AkTltdc8iIPm/pPDPiJhdYO+WPk8cIGwiHj52w==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-1.2.1.tgz",
+      "integrity": "sha512-L4Sydz8JJPZM9ZmIoxCMCc6TnQVEgbwPbmKNPESLPPUZkPpyaNcMYa8APkbyiEQMp8tuq5flEE21Aoq5tDkD3A==",
       "requires": {
-        "@vercel/build-utils": "6.3.2",
-        "@vercel/node": "2.9.10",
+        "@sinclair/typebox": "0.25.24",
+        "@vercel/build-utils": "6.3.4",
+        "@vercel/node": "2.9.12",
         "@vercel/routing-utils": "2.1.10",
-        "ajv": "8.12.0",
         "esbuild": "0.14.47",
         "etag": "1.8.1",
         "fs-extra": "11.1.0"
       },
       "dependencies": {
-        "ajv": {
-          "version": "8.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
-          "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "json-schema-traverse": "^1.0.0",
-            "require-from-string": "^2.0.2",
-            "uri-js": "^4.2.2"
-          }
+        "@vercel/build-utils": {
+          "version": "6.3.4",
+          "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+          "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
         },
         "fs-extra": {
           "version": "11.1.0",
@@ -26727,11 +27027,6 @@
             "universalify": "^2.0.0"
           }
         },
-        "json-schema-traverse": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
-          "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
-        },
         "jsonfile": {
           "version": "6.1.0",
           "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -26749,19 +27044,19 @@
       }
     },
     "@vercel/go": {
-      "version": "2.3.9",
-      "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.3.9.tgz",
-      "integrity": "sha512-ncDvPRKIr/jYM0fcGMfMTVJ3GjvdpAWTl6rFXBje8MfTRmHvOcfHd3UIM2GY7s5TtTbC1Bxsr005LPpW28b3Vg=="
+      "version": "2.3.11",
+      "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.3.11.tgz",
+      "integrity": "sha512-IuFnrQzTuTBp08/+2UHWIZ4KYB0TJvTjVEvGE275nsDXqlssZRDNHXfjGTEouScCN7HuYQMkEFRn+xlMb+0qHg=="
     },
     "@vercel/hydrogen": {
-      "version": "0.0.55",
-      "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.55.tgz",
-      "integrity": "sha512-U8czvRtud52+aMknNnWXtzK3zU2KAIU081XsuKpUY3YhpgaHU4Z9ZnzFdQQ87Y2PGXGwhmS6DEUe8XBipnRfbA=="
+      "version": "0.0.57",
+      "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.57.tgz",
+      "integrity": "sha512-VOI7AYJlrrxoPaxbYpAJz/t0516a7/sMtukAT834T7Ne/MOgj5fU6n/IOTBqz3si8tZ7NybWIlM+T5iJSozoZw=="
     },
     "@vercel/next": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.6.4.tgz",
-      "integrity": "sha512-SGba20U4H651cCK3nhgMFGBw98nMbB8Wn8EuNHMTmI9p/aByd34kde7+3cBntKW+n9bmfR8b5hlNqoLLFHob2w=="
+      "version": "3.6.6",
+      "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.6.6.tgz",
+      "integrity": "sha512-vnlMCHwyXkUGB3Bc5nUwf27fe1Q8t+1VosSAY+97tCJURlIodvSKDBMmR/x+Fb/uoWip66MmO63DH9szLUw0cQ=="
     },
     "@vercel/nft": {
       "version": "0.22.5",
@@ -26794,13 +27089,13 @@
       }
     },
     "@vercel/node": {
-      "version": "2.9.10",
-      "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.9.10.tgz",
-      "integrity": "sha512-rpl0dkJVQpPgIPvAG2hIuxwIIUoxRFqGwMVqqsp6r9sr2Y03q+t2UtPSGOyBRpE+0JdYV2GzcRcgiPQi3Udi7w==",
+      "version": "2.9.12",
+      "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.9.12.tgz",
+      "integrity": "sha512-NGbOK9bl7Lhnr1OfB+iz2yIOuMhOQKZz66jn11153mDqqlQ93i7cNcQeMU61A1waJj1KubqViMGWKgxO7QTCUw==",
       "requires": {
         "@edge-runtime/vm": "2.0.0",
         "@types/node": "14.18.33",
-        "@vercel/build-utils": "6.3.2",
+        "@vercel/build-utils": "6.3.4",
         "@vercel/node-bridge": "3.1.14",
         "@vercel/static-config": "2.0.13",
         "edge-runtime": "2.0.0",
@@ -26816,6 +27111,11 @@
           "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz",
           "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg=="
         },
+        "@vercel/build-utils": {
+          "version": "6.3.4",
+          "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+          "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+        },
         "node-fetch": {
           "version": "2.6.7",
           "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -26837,14 +27137,14 @@
       "integrity": "sha512-TAbo0rwBenmWywcEup+5lZgr6ILPPq55P33JRX+oJJuTxYib0NqVj47gEvLTxaj3MoJFgp0iDlC9A0uAf4ykxQ=="
     },
     "@vercel/python": {
-      "version": "3.1.51",
-      "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.51.tgz",
-      "integrity": "sha512-/Hd0sDOy8JWyLaw+AlLhRtUkAPyIvW5A4od0c4rHsn6Gasuom5jFMG6RlO1NWEOSbJNyuGGe3/1R8wTu4qZDZA=="
+      "version": "3.1.53",
+      "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.53.tgz",
+      "integrity": "sha512-jr6D7AZ70cFfTV7+dmqFL9d1ssbx/3/o1AwOm1iq/XlAGLNhoMYVaT/m/oC7st82OyBUk7X0Ek5NLaUZsjlQbg=="
     },
     "@vercel/redwood": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.1.7.tgz",
-      "integrity": "sha512-xGr74P1sT6ZQh/PbW8YS/k1w5D24e0oliB/GCoqYmoKPuavpIeScJGHNvGjvYffbwWunArgR283k0oPMIIlo/w==",
+      "version": "1.1.9",
+      "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.1.9.tgz",
+      "integrity": "sha512-blFWThhosa+LhqReoXI+xnXoD9Gj2PK/jIfvSo9vP2Kzbzr/hLfcaDqv1ZQted/PuZilaa3gX9j7e/kPFsXulw==",
       "requires": {
         "@vercel/nft": "0.22.5",
         "@vercel/routing-utils": "2.1.10",
@@ -26859,9 +27159,9 @@
       }
     },
     "@vercel/remix": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.6.0.tgz",
-      "integrity": "sha512-OFutrm02n2KZL2nJNB6OSgFT7EMbYdXbwFhUAbQ3tjUAgmR06FP3DDcY2EG4+hBRDDahhRrNTzgdih3ZTAaX9A==",
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.6.2.tgz",
+      "integrity": "sha512-y0b32OJbQpvcEZPIB+BNyoCIpXH+hN/T/WN6PEPYOFzMQzb9Zjh2SEMBO+mh3azbq64RWWedxljIrSyR59jfAQ==",
       "requires": {
         "@remix-run/dev": "npm:@vercel/remix-run-dev@1.14.0",
         "@vercel/nft": "0.22.5",
@@ -26887,17 +27187,17 @@
       }
     },
     "@vercel/ruby": {
-      "version": "1.3.68",
-      "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.68.tgz",
-      "integrity": "sha512-TGE9iMrRBiKITL8lP5rhd7Q6hbfBCX5WjIzGLcx4f+uLli1ZE61kjMmYjToSr3ahkGET/kL6+T2nFpc/sPVcrw=="
+      "version": "1.3.70",
+      "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.70.tgz",
+      "integrity": "sha512-tVCl78XWuZEzi8oyumzB7pAuxLPK54zTko6yJVqXtytOyuLorTB+LLEV9wDzh+Yird8bVsA/hDf6qoYJaFYagA=="
     },
     "@vercel/static-build": {
-      "version": "1.3.14",
-      "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.3.14.tgz",
-      "integrity": "sha512-z0lYuclfpsP+yHAC0QSYPi6+7IiZlt3HBgJbQtPBy/iu5NdMrCJU1J/R86D76CsQaRk70iCByrVfgSkn6FuEFg==",
+      "version": "1.3.16",
+      "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.3.16.tgz",
+      "integrity": "sha512-Nz1qXjcgaWZfZd3CU/1WITLIu9kcGu7tiBs1+t2Fh1013rwQdb/YothpjXKauUhMbUm3blgH0Jej86N2ctrpTw==",
       "requires": {
         "@vercel/gatsby-plugin-vercel-analytics": "1.0.8",
-        "@vercel/gatsby-plugin-vercel-builder": "1.1.11"
+        "@vercel/gatsby-plugin-vercel-builder": "1.2.1"
       }
     },
     "@vercel/static-config": {
@@ -27118,16 +27418,16 @@
       }
     },
     "@wdio/cli": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.5.6.tgz",
-      "integrity": "sha512-xw86S9OVUvYNkdSmgXfDAeA2I2a+GoZYwarpnAHZUCdig+Q3rvcXGhpx6CrjtT49YVXBq1r1M/QRFPpjsapqBg==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.5.9.tgz",
+      "integrity": "sha512-wZndxvrwOlYKJqZA5Ju0n34NY3hsHwbqBwLVRoKUKlZC2BR/KwWtWE2+RJA/j8/KlkPkxaJzFTq46h8Yv1mSKA==",
       "dev": true,
       "requires": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
-        "@wdio/globals": "8.5.6",
+        "@wdio/globals": "8.5.9",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
         "async-exit-hook": "^2.0.1",
@@ -27144,11 +27444,27 @@
         "mkdirp": "^2.0.0",
         "read-pkg-up": "9.1.0",
         "recursive-readdir": "^2.2.2",
-        "webdriverio": "8.5.6",
+        "webdriverio": "8.5.9",
         "yargs": "^17.5.1",
         "yarn-install": "^1.0.0"
       },
       "dependencies": {
+        "@wdio/globals": {
+          "version": "8.5.9",
+          "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.5.9.tgz",
+          "integrity": "sha512-WdBBUvDiyK+7jgjwTcElF+8keF7a0GiV4tg9IYYMWBwApEgrIIQNmG99pl8DZ93ojUQUQ5eCKW52fJySv1GGwg==",
+          "dev": true,
+          "requires": {
+            "expect-webdriverio": "^4.0.1",
+            "webdriverio": "8.5.9"
+          }
+        },
+        "@wdio/protocols": {
+          "version": "8.5.7",
+          "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+          "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+          "dev": true
+        },
         "chalk": {
           "version": "5.2.0",
           "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
@@ -27196,6 +27512,92 @@
       "requires": {
         "expect-webdriverio": "^4.0.1",
         "webdriverio": "8.5.6"
+      },
+      "dependencies": {
+        "devtools": {
+          "version": "8.5.6",
+          "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
+          "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/node": "^18.0.0",
+            "@wdio/config": "8.5.6",
+            "@wdio/logger": "8.1.0",
+            "@wdio/protocols": "8.5.6",
+            "@wdio/types": "8.4.0",
+            "@wdio/utils": "8.5.6",
+            "chrome-launcher": "^0.15.0",
+            "edge-paths": "^3.0.5",
+            "import-meta-resolve": "^2.1.0",
+            "puppeteer-core": "19.7.2",
+            "query-selector-shadow-dom": "^1.0.0",
+            "ua-parser-js": "^1.0.1",
+            "uuid": "^9.0.0",
+            "which": "^3.0.0"
+          }
+        },
+        "is-plain-obj": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+          "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+          "dev": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "7.4.2",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
+          "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "brace-expansion": "^2.0.1"
+          }
+        },
+        "webdriverio": {
+          "version": "8.5.6",
+          "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
+          "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/node": "^18.0.0",
+            "@wdio/config": "8.5.6",
+            "@wdio/logger": "8.1.0",
+            "@wdio/protocols": "8.5.6",
+            "@wdio/repl": "8.1.0",
+            "@wdio/types": "8.4.0",
+            "@wdio/utils": "8.5.6",
+            "archiver": "^5.0.0",
+            "aria-query": "^5.0.0",
+            "css-shorthand-properties": "^1.1.1",
+            "css-value": "^0.0.1",
+            "devtools": "8.5.6",
+            "devtools-protocol": "^0.0.1109433",
+            "grapheme-splitter": "^1.0.2",
+            "import-meta-resolve": "^2.1.0",
+            "is-plain-obj": "^4.1.0",
+            "lodash.clonedeep": "^4.5.0",
+            "lodash.zip": "^4.2.0",
+            "minimatch": "^7.0.0",
+            "puppeteer-core": "19.7.2",
+            "query-selector-shadow-dom": "^1.0.0",
+            "resq": "^1.9.1",
+            "rgb2hex": "0.2.5",
+            "serialize-error": "^8.0.0",
+            "webdriver": "8.5.6"
+          }
+        },
+        "which": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
+          "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
       }
     },
     "@wdio/local-runner": {
@@ -27294,6 +27696,87 @@
         "gaze": "^1.1.2",
         "webdriver": "8.5.6",
         "webdriverio": "8.5.6"
+      },
+      "dependencies": {
+        "devtools": {
+          "version": "8.5.6",
+          "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
+          "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+          "dev": true,
+          "requires": {
+            "@types/node": "^18.0.0",
+            "@wdio/config": "8.5.6",
+            "@wdio/logger": "8.1.0",
+            "@wdio/protocols": "8.5.6",
+            "@wdio/types": "8.4.0",
+            "@wdio/utils": "8.5.6",
+            "chrome-launcher": "^0.15.0",
+            "edge-paths": "^3.0.5",
+            "import-meta-resolve": "^2.1.0",
+            "puppeteer-core": "19.7.2",
+            "query-selector-shadow-dom": "^1.0.0",
+            "ua-parser-js": "^1.0.1",
+            "uuid": "^9.0.0",
+            "which": "^3.0.0"
+          }
+        },
+        "is-plain-obj": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+          "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "7.4.2",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
+          "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "^2.0.1"
+          }
+        },
+        "webdriverio": {
+          "version": "8.5.6",
+          "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
+          "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+          "dev": true,
+          "requires": {
+            "@types/node": "^18.0.0",
+            "@wdio/config": "8.5.6",
+            "@wdio/logger": "8.1.0",
+            "@wdio/protocols": "8.5.6",
+            "@wdio/repl": "8.1.0",
+            "@wdio/types": "8.4.0",
+            "@wdio/utils": "8.5.6",
+            "archiver": "^5.0.0",
+            "aria-query": "^5.0.0",
+            "css-shorthand-properties": "^1.1.1",
+            "css-value": "^0.0.1",
+            "devtools": "8.5.6",
+            "devtools-protocol": "^0.0.1109433",
+            "grapheme-splitter": "^1.0.2",
+            "import-meta-resolve": "^2.1.0",
+            "is-plain-obj": "^4.1.0",
+            "lodash.clonedeep": "^4.5.0",
+            "lodash.zip": "^4.2.0",
+            "minimatch": "^7.0.0",
+            "puppeteer-core": "19.7.2",
+            "query-selector-shadow-dom": "^1.0.0",
+            "resq": "^1.9.1",
+            "rgb2hex": "0.2.5",
+            "serialize-error": "^8.0.0",
+            "webdriver": "8.5.6"
+          }
+        },
+        "which": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
+          "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
       }
     },
     "@wdio/spec-reporter": {
@@ -28462,8 +28945,7 @@
     "cac": {
       "version": "6.7.14",
       "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
-      "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
-      "dev": true
+      "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="
     },
     "cacache": {
       "version": "15.3.0",
@@ -29097,9 +29579,9 @@
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
     },
     "core-js-compat": {
-      "version": "3.29.0",
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz",
-      "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==",
+      "version": "3.29.1",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz",
+      "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==",
       "requires": {
         "browserslist": "^4.21.5"
       }
@@ -29654,15 +30136,15 @@
       }
     },
     "devtools": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.6.tgz",
-      "integrity": "sha512-XgcBAjhRp0hIzL1M6u3IJK3pAOqDag9U7ChohrJMxw7J0uVWOOZQ3YafFdU0MZT1e+qBWrDYgdYx0mO1uWpJMQ==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/devtools/-/devtools-8.5.9.tgz",
+      "integrity": "sha512-zhEHZjqsWnnOnDozSkKBXEBsfV1qtdk5gbHQQnu2B22Az7f3nZnLfznNVmqxcaYC3lmplsnnMlsRk6WgouAagw==",
       "dev": true,
       "requires": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
         "chrome-launcher": "^0.15.0",
@@ -29675,6 +30157,12 @@
         "which": "^3.0.0"
       },
       "dependencies": {
+        "@wdio/protocols": {
+          "version": "8.5.7",
+          "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+          "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+          "dev": true
+        },
         "which": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz",
@@ -36050,9 +36538,9 @@
       "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
     },
     "preact": {
-      "version": "10.13.0",
-      "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.0.tgz",
-      "integrity": "sha512-ERdIdUpR6doqdaSIh80hvzebHB7O6JxycOhyzAeLEchqOq/4yueslQbfnPwXaNhAYacFTyCclhwkEbOumT0tHw=="
+      "version": "10.13.1",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.1.tgz",
+      "integrity": "sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ=="
     },
     "prebuild-install": {
       "version": "7.1.1",
@@ -36682,9 +37170,9 @@
       "dev": true
     },
     "regexpu-core": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz",
-      "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==",
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+      "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
       "requires": {
         "@babel/regjsgen": "^0.8.0",
         "regenerate": "^1.4.2",
@@ -36912,7 +37400,6 @@
       "version": "3.18.0",
       "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz",
       "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==",
-      "dev": true,
       "requires": {
         "fsevents": "~2.3.2"
       }
@@ -37409,7 +37896,6 @@
       "version": "0.5.21",
       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
       "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-      "dev": true,
       "requires": {
         "buffer-from": "^1.0.0",
         "source-map": "^0.6.0"
@@ -37418,8 +37904,7 @@
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
         }
       }
     },
@@ -37771,9 +38256,9 @@
           "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
         },
         "minipass": {
-          "version": "4.2.4",
-          "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
-          "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ=="
+          "version": "4.2.5",
+          "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
+          "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q=="
         },
         "mkdirp": {
           "version": "1.0.4",
@@ -37856,7 +38341,7 @@
       "version": "5.16.5",
       "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz",
       "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "@jridgewell/source-map": "^0.3.2",
         "acorn": "^8.5.0",
@@ -37868,7 +38353,7 @@
           "version": "2.20.3",
           "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
           "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-          "dev": true
+          "devOptional": true
         }
       }
     },
@@ -38372,9 +38857,9 @@
       "dev": true
     },
     "undici": {
-      "version": "5.20.0",
-      "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz",
-      "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
+      "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==",
       "requires": {
         "busboy": "^1.6.0"
       }
@@ -38693,20 +39178,27 @@
       "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
     },
     "vercel": {
-      "version": "28.16.13",
-      "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.16.13.tgz",
-      "integrity": "sha512-yCEZrXDUOsluUhsPBpe1cDlHuC8UnQF3Zbjdss1yQUe6uRhZOT4yxf+uuM8h+e90CnjZQfwCok3RdHTIJM87Rg==",
-      "requires": {
-        "@vercel/build-utils": "6.3.2",
-        "@vercel/go": "2.3.9",
-        "@vercel/hydrogen": "0.0.55",
-        "@vercel/next": "3.6.4",
-        "@vercel/node": "2.9.10",
-        "@vercel/python": "3.1.51",
-        "@vercel/redwood": "1.1.7",
-        "@vercel/remix": "1.6.0",
-        "@vercel/ruby": "1.3.68",
-        "@vercel/static-build": "1.3.14"
+      "version": "28.16.15",
+      "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.16.15.tgz",
+      "integrity": "sha512-BMf/PYgJ5Tz5q9w/poWCKIQ2XHPiFpU1gdMpujOFlBwNHXp2XbOiIJkoEKSSNzYIJibrpBha/KE93qw4bgFN/w==",
+      "requires": {
+        "@vercel/build-utils": "6.3.4",
+        "@vercel/go": "2.3.11",
+        "@vercel/hydrogen": "0.0.57",
+        "@vercel/next": "3.6.6",
+        "@vercel/node": "2.9.12",
+        "@vercel/python": "3.1.53",
+        "@vercel/redwood": "1.1.9",
+        "@vercel/remix": "1.6.2",
+        "@vercel/ruby": "1.3.70",
+        "@vercel/static-build": "1.3.16"
+      },
+      "dependencies": {
+        "@vercel/build-utils": {
+          "version": "6.3.4",
+          "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-6.3.4.tgz",
+          "integrity": "sha512-7qhJP/5yz/9aBmkJirRxcTrvrLdV6PUT9DpxsILnfdw7WAJ5KSa59kBj8Aw4VhW4CqK4pFcuMMHr73aYRcEmkg=="
+        }
       }
     },
     "vfile": {
@@ -38742,7 +39234,6 @@
       "version": "4.1.4",
       "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz",
       "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==",
-      "dev": true,
       "requires": {
         "esbuild": "^0.16.14",
         "fsevents": "~2.3.2",
@@ -38755,161 +39246,138 @@
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
           "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/android-arm64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
           "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/android-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
           "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/darwin-arm64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
           "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/darwin-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
           "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/freebsd-arm64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
           "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/freebsd-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
           "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-arm": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
           "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-arm64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
           "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-ia32": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
           "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-loong64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
           "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-mips64el": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
           "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-ppc64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
           "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-riscv64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
           "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-s390x": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
           "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/linux-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
           "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/netbsd-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
           "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/openbsd-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
           "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/sunos-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
           "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/win32-arm64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
           "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/win32-ia32": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
           "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
-          "dev": true,
           "optional": true
         },
         "@esbuild/win32-x64": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
           "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
-          "dev": true,
           "optional": true
         },
         "esbuild": {
           "version": "0.16.17",
           "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
           "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
-          "dev": true,
           "requires": {
             "@esbuild/android-arm": "0.16.17",
             "@esbuild/android-arm64": "0.16.17",
@@ -39168,15 +39636,15 @@
       }
     },
     "webdriverio": {
-      "version": "8.5.6",
-      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.6.tgz",
-      "integrity": "sha512-rE4RJmprKEH7+suElywMiR7tz1oxkqZzC2oBKZmJHlm7t0umVNRberqlqMeuYRVnPFOuDONQu176y9inV1VygQ==",
+      "version": "8.5.9",
+      "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.5.9.tgz",
+      "integrity": "sha512-nKjrp6lmPdyg5nnst6BVcV+8r+3Yx/hOhgO2G+0kfCpQp2uATwn2Y4fk6u7ba09e8gsAyxI+1bYv34ra8zKCdQ==",
       "dev": true,
       "requires": {
         "@types/node": "^18.0.0",
         "@wdio/config": "8.5.6",
         "@wdio/logger": "8.1.0",
-        "@wdio/protocols": "8.5.6",
+        "@wdio/protocols": "8.5.7",
         "@wdio/repl": "8.1.0",
         "@wdio/types": "8.4.0",
         "@wdio/utils": "8.5.6",
@@ -39184,7 +39652,7 @@
         "aria-query": "^5.0.0",
         "css-shorthand-properties": "^1.1.1",
         "css-value": "^0.0.1",
-        "devtools": "8.5.6",
+        "devtools": "8.5.9",
         "devtools-protocol": "^0.0.1109433",
         "grapheme-splitter": "^1.0.2",
         "import-meta-resolve": "^2.1.0",
@@ -39197,9 +39665,15 @@
         "resq": "^1.9.1",
         "rgb2hex": "0.2.5",
         "serialize-error": "^8.0.0",
-        "webdriver": "8.5.6"
+        "webdriver": "8.5.7"
       },
       "dependencies": {
+        "@wdio/protocols": {
+          "version": "8.5.7",
+          "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.5.7.tgz",
+          "integrity": "sha512-ymdXSRqHugEptLdjLnvX7m7TY6cvae1B1yiFJVpaKwj88s4PaCUs7aISexC0ES9s6z8ZWRjZo3mrKPlwZ/IKCw==",
+          "dev": true
+        },
         "is-plain-obj": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
@@ -39214,6 +39688,32 @@
           "requires": {
             "brace-expansion": "^2.0.1"
           }
+        },
+        "webdriver": {
+          "version": "8.5.7",
+          "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.5.7.tgz",
+          "integrity": "sha512-KDw72g7EY0tqvSDkfF1YFHIw75VOVKKAesGxag3++8nVtp+YNsE/6xr9iov7UDKjre3tXphgj//r2RouSDCO5g==",
+          "dev": true,
+          "requires": {
+            "@types/node": "^18.0.0",
+            "@types/ws": "^8.5.3",
+            "@wdio/config": "8.5.6",
+            "@wdio/logger": "8.1.0",
+            "@wdio/protocols": "8.5.7",
+            "@wdio/types": "8.4.0",
+            "@wdio/utils": "8.5.6",
+            "deepmerge-ts": "^4.2.2",
+            "got": "^12.1.0",
+            "ky": "^0.33.0",
+            "ws": "^8.8.0"
+          }
+        },
+        "ws": {
+          "version": "8.13.0",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+          "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+          "dev": true,
+          "requires": {}
         }
       }
     },
@@ -39223,9 +39723,9 @@
       "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
     },
     "webpack": {
-      "version": "5.75.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
-      "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+      "version": "5.76.1",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz",
+      "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==",
       "dev": true,
       "requires": {
         "@types/eslint-scope": "^3.7.3",
diff --git a/package.json b/package.json
index bce028d2..49a066b2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "runme",
-  "version": "0.7.1-edge.1",
+  "version": "0.7.2",
   "publisher": "stateful",
   "displayName": "Runme",
   "description": "Run your README.md as an interactive notebook",
diff --git a/src/extension/executors/runner.ts b/src/extension/executors/runner.ts
index f749c43d..8ee2ec04 100644
--- a/src/extension/executors/runner.ts
+++ b/src/extension/executors/runner.ts
@@ -11,7 +11,8 @@ import {
   tasks,
   NotebookCellExecution,
   TextDocument,
-  ExtensionContext
+  ExtensionContext,
+  Disposable,
 } from 'vscode'
 
 import { OutputType } from '../../constants'
@@ -89,6 +90,8 @@ export async function executeRunner(
     tty: interactive
   })
 
+  const disposables: Disposable[] = [ program ]
+
   if(!interactive) {
     const output: Buffer[] = []
 
@@ -125,9 +128,7 @@ export async function executeRunner(
       program.close()
     })
 
-    context.subscriptions.push({
-      dispose: () => program.close()
-    })
+    disposables.push({ dispose: () => program.close() })
 
     await program.run()
   } else {
@@ -150,17 +151,13 @@ export async function executeRunner(
 
     const execution = await tasks.executeTask(taskExecution)
 
-    context.subscriptions.push({
-      dispose: () => execution.terminate()
-    })
+    disposables.push({ dispose: () => execution.terminate() })
 
     exec.token.onCancellationRequested(() => {
       try {
         // runs `program.close()` implicitly
         execution.terminate()
-        closeTerminalByEnvID(RUNME_ID)
       } catch (err: any) {
-        // console.error(`[Runme] Failed to terminate task: ${(err as Error).message}`)
         throw new Error(`[Runme] Failed to terminate task: ${(err as Error).message}`)
       }
     })
@@ -193,19 +190,35 @@ export async function executeRunner(
     })
   }
 
-  return await new Promise<boolean>((resolve) => {
+  const dispose: Disposable = { dispose() { disposables.forEach(d => d.dispose()) }, }
+  context.subscriptions.push(dispose)
+
+  return await new Promise<boolean>((resolve, reject) => {
     program.onDidClose((code) => {
       resolve(code === 0)
     })
 
     program.onInternalErr((e) => {
-      console.error('Internal failure executing runner', e)
-      resolve(false)
+      reject(e)
     })
 
-    if(program.hasExited()) {
-      // unexpected early return, likely an error
-      resolve(false)
+    const exitReason = program.hasExited()
+
+    // unexpected early return, likely an error
+    if(exitReason) {
+      switch(exitReason.type) {
+        case 'error': {
+          reject(exitReason.error)
+        } break
+
+        case 'exit': {
+          resolve(exitReason.code === 0)
+        } break
+
+        default: {
+          resolve(false)
+        }
+      }
     }
 
     if(background && interactive) {
@@ -217,6 +230,6 @@ export async function executeRunner(
         BACKGROUND_TASK_HIDE_TIMEOUT
       )
     }
-  })
+  }).finally(() => { dispose.dispose() })
 }
 
diff --git a/src/extension/executors/task.ts b/src/extension/executors/task.ts
index c909189a..d9c5f52a 100644
--- a/src/extension/executors/task.ts
+++ b/src/extension/executors/task.ts
@@ -17,10 +17,14 @@ import { sh as inlineSh } from './shell'
 const BACKGROUND_TASK_HIDE_TIMEOUT = 2000
 const LABEL_LIMIT = 15
 
-export function closeTerminalByEnvID (id: string) {
+export function closeTerminalByEnvID (id: string, kill?: boolean) {
   const terminal = window.terminals.find(t => getTerminalRunmeId(t) === id)
   if (terminal) {
-    terminal.hide()
+    if(kill) {
+      terminal.dispose()
+    } else {
+      terminal.hide()
+    }
   }
 }
 
diff --git a/src/extension/extension.ts b/src/extension/extension.ts
index 8f4347f3..eec5ed84 100644
--- a/src/extension/extension.ts
+++ b/src/extension/extension.ts
@@ -61,6 +61,7 @@ export class RunmeExtension {
       kernel,
       serializer,
       server,
+      treeViewer,
       workspace.registerNotebookSerializer(Kernel.type, serializer, {
         transientOutputs: true,
         transientCellMetadata: {
diff --git a/src/extension/handler/uri.ts b/src/extension/handler/uri.ts
index e7633b38..93ba85c9 100644
--- a/src/extension/handler/uri.ts
+++ b/src/extension/handler/uri.ts
@@ -114,7 +114,7 @@ export class RunmeUriHandler implements UriHandler {
     const terminal = window.createTerminal(`Runme Terminal #${NEXT_TERM_ID++}`)
     terminal.show(true)
 
-    terminal.sendText(`git clone ${repository} ${targetDirUri.fsPath}`)
+    terminal.sendText(`git clone ${repository} "${targetDirUri.fsPath}"`)
     const success = await new Promise<boolean>(
       (resolve) => waitForProjectCheckout(fileToOpen, targetDirUri, repository, resolve))
 
@@ -124,7 +124,7 @@ export class RunmeUriHandler implements UriHandler {
 
     progress.report({ increment: 50, message: 'Opening project...' })
     console.log(`[Runme] Attempt to open folder ${targetDirUri.fsPath}`)
-    await commands.executeCommand('vscode.openFolder', Uri.parse(targetDirUri.fsPath), {
+    await commands.executeCommand('vscode.openFolder', targetDirUri, {
       forceNewWindow: true
     })
     progress.report({ increment: 100 })
diff --git a/src/extension/kernel.ts b/src/extension/kernel.ts
index 88ab7595..1b2aba8a 100644
--- a/src/extension/kernel.ts
+++ b/src/extension/kernel.ts
@@ -267,7 +267,7 @@ export class Kernel implements Disposable {
       this.runner &&
       !(hasPsuedoTerminalExperimentEnabled && terminal)
     ) {
-      const runScript = (execKey: 'sh'|'bash' = 'bash') => executeRunner(
+      const runScript = async (execKey: 'sh'|'bash' = 'bash') => await executeRunner(
         this.context,
         this.runner!,
         exec,
@@ -277,7 +277,8 @@ export class Kernel implements Disposable {
         environmentManager
       )
         .catch((e) => {
-          console.error(e)
+          window.showErrorMessage(`Internal failure executing runner: ${e.message}`)
+          console.error('[Runme] Internal failure executing runner', e.message)
           return false
         })
 
@@ -323,17 +324,22 @@ export class Kernel implements Disposable {
     if(this.#experiments.get('grpcRunner') && runner) {
       this.runner = runner
 
-      this.runnerReadyListener = runner.onReady(() => {
+      this.runnerReadyListener = runner.onReady(async () => {
         this.environment = undefined
 
-        runner.createEnvironment(
-          // copy env from process naively for now
-          // later we might want a more sophisticated approach/to bring this serverside
-          Object.entries(process.env).map(([k, v]) => `${k}=${v || ''}`)
-        ).then(env => {
+        try {
+          const env = await runner.createEnvironment(
+            // copy env from process naively for now
+            // later we might want a more sophisticated approach/to bring this serverside
+            Object.entries(process.env).map(([k, v]) => `${k}=${v || ''}`)
+          )
+
           if(this.runner !== runner) { return }
           this.environment = env
-        })
+        } catch(e: any) {
+          window.showErrorMessage(`Failed to create environment for gRPC Runner: ${e.message}`)
+          console.error('[Runme] Failed to create gRPC Runner environment', e)
+        }
       })
     }
   }
diff --git a/src/extension/provider/launcher.ts b/src/extension/provider/launcher.ts
index a3a58993..bd8d4f14 100644
--- a/src/extension/provider/launcher.ts
+++ b/src/extension/provider/launcher.ts
@@ -11,6 +11,7 @@ import {
   Uri,
   commands,
   FileType,
+  Disposable,
 } from 'vscode'
 
 import { Kernel } from '../kernel'
@@ -51,11 +52,24 @@ export class RunmeFile extends TreeItem {
   }
 }
 
-export class RunmeLauncherProvider implements TreeDataProvider<RunmeFile> {
+export class RunmeLauncherProvider implements TreeDataProvider<RunmeFile>, Disposable {
+  #disposables: Disposable[] = []
+
   private filesTree: Map<string, TreeFile> = new Map()
   private defaultItemState: TreeItemCollapsibleState = TreeItemCollapsibleState.Collapsed
 
-  constructor(private workspaceRoot?: string | undefined) {}
+  constructor(private workspaceRoot?: string | undefined) {
+    const watcher = workspace.createFileSystemWatcher(
+      '**/*.md',
+      false,
+      true,
+      false
+    )
+    this.#disposables.push(
+      watcher.onDidCreate((file) => this.#onFileChange(file, true)),
+      watcher.onDidDelete((file) => this.#onFileChange(file))
+    )
+  }
 
   private _onDidChangeTreeData: EventEmitter<RunmeFile | undefined> = new EventEmitter<RunmeFile | undefined>()
   readonly onDidChangeTreeData: Event<RunmeFile | undefined> = this._onDidChangeTreeData.event
@@ -104,6 +118,10 @@ export class RunmeLauncherProvider implements TreeDataProvider<RunmeFile> {
     }))
   }
 
+  get disposables () {
+    return this.#disposables
+  }
+
   getParent () {
     return null
   }
@@ -138,29 +156,63 @@ export class RunmeLauncherProvider implements TreeDataProvider<RunmeFile> {
       const hasGitDirectory = (await getPathType(gitIgnoreUri)) === FileType.File
 
       if (hasGitDirectory) {
-        const ignoreList = await workspace.openTextDocument(gitIgnoreUri)
-        const patterns = mapGitIgnoreToGlobFolders(ignoreList.getText().split('\n'))
-        excludePatterns = patterns.join(',')
+        try {
+          const ignoreList = await workspace.openTextDocument(gitIgnoreUri)
+          const patterns = mapGitIgnoreToGlobFolders(ignoreList.getText().split('\n'))
+          excludePatterns = patterns.join(',')
+        } catch (err: unknown) {
+          console.error(`Failed to read .gitignore file: ${(err as Error).message}`)
+        }
       }
     }
-    const files = await workspace.findFiles('**/*.md', `{${excludePatterns}}`)
-    const rootFolder = basename(this.workspaceRoot || '')
 
     /**
      * we need to tweak the folder name to force VS Code re-render the tree view
      * see https://github.com/microsoft/vscode/issues/172479
      */
-    const nameTweaker = ++i % 2 ? ' ' : ''
-    for (const { path } of files) {
-      const info = basename(path)
-      const folderPath = dirname(path)
-      const folderName = dirname(path).replace(resolve(this.workspaceRoot || '', '..'), '') + nameTweaker || rootFolder
-      if (!this.filesTree.has(folderName)) {
-        this.filesTree.set(folderName, { files: [info], folderPath })
-      } else {
-        const { files } = this.filesTree.get(folderName) || { files: [] }
-        this.filesTree.set(folderName, { files: [...files, info], folderPath })
-      }
+    ++i
+
+    const files = await workspace.findFiles('**/*.md', `{${excludePatterns}}`)
+    for (const file of files) {
+      this.#addFileToTree(file)
+    }
+  }
+
+  #uriToEntry (file: Uri) {
+    const nameTweaker = i % 2 ? ' ' : ''
+
+    const rootFolder = basename(this.workspaceRoot || '')
+    const info = basename(file.path)
+    const folderPath = dirname(file.path)
+    const folderName = folderPath.replace(resolve(this.workspaceRoot || '', '..'), '') + nameTweaker || rootFolder
+    return { info, folderPath, folderName }
+  }
+
+  #addFileToTree (file: Uri) {
+    const { info, folderPath, folderName } = this.#uriToEntry(file)
+    if (!this.filesTree.has(folderName)) {
+      this.filesTree.set(folderName, { files: [info], folderPath })
+    } else {
+      const { files } = this.filesTree.get(folderName) || { files: [] }
+      this.filesTree.set(folderName, { files: [...files, info], folderPath })
     }
   }
+
+  #onFileChange (file: Uri, isAdded = false) {
+    /**
+     * adding a file this way allows us to keep folder open
+     * when a file was added
+     */
+    if (isAdded) {
+      this.#addFileToTree(file)
+      return this._onDidChangeTreeData.fire(undefined)
+    }
+
+    this.refresh()
+  }
+
+  dispose() {
+    this.refresh()
+    this.#disposables.forEach((d) => d.dispose())
+  }
 }
diff --git a/src/extension/runner.ts b/src/extension/runner.ts
index a96407cc..92ff6371 100644
--- a/src/extension/runner.ts
+++ b/src/extension/runner.ts
@@ -6,7 +6,6 @@ import {
   EventEmitter,
   Disposable,
 } from 'vscode'
-import type { UInt32Value } from '@buf/stateful_runme.community_timostamm-protobuf-ts/google/protobuf/wrappers_pb'
 import { RpcError } from '@protobuf-ts/runtime-rpc'
 
 import type { DisposableAsync } from '../types'
@@ -75,6 +74,19 @@ interface IRunnerChild extends DisposableAsync { }
 
 export interface IRunnerEnvironment extends IRunnerChild { }
 
+export type RunnerExitReason =
+  |{
+    type: 'exit'
+    code: number
+  }
+  |{
+    type: 'error'
+    error: Error
+  }
+  |{
+    type: 'disposed'
+  }
+
 export interface IRunnerProgramSession extends IRunnerChild, Pseudoterminal {
   /**
    * Called when an unrecoverable error occurs, for instance a failure over gRPC
@@ -85,7 +97,7 @@ export interface IRunnerProgramSession extends IRunnerChild, Pseudoterminal {
   readonly onInternalErr: Event<Error>
 
   readonly onDidErr: Event<string>
-  readonly onDidClose: Event<number>
+  readonly onDidClose: Event<number | void>
 
   /**
    * Implementers should **still call `onDidWrite`** to stay compatible with
@@ -102,7 +114,7 @@ export interface IRunnerProgramSession extends IRunnerChild, Pseudoterminal {
 
   setRunOptions(opts: RunProgramOptions): void
   run(): Promise<void>
-  hasExited(): boolean
+  hasExited(): RunnerExitReason|undefined
 }
 
 export class GrpcRunner implements IRunner {
@@ -282,7 +294,7 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
   readonly _onInternalErr = this.register(new EventEmitter<Error>())
   readonly _onDidWrite    = this.register(new EventEmitter<string>())
   readonly _onDidErr      = this.register(new EventEmitter<string>())
-  readonly _onDidClose    = this.register(new EventEmitter<number>())
+  readonly _onDidClose    = this.register(new EventEmitter<number | void>())
   readonly _onStdoutRaw   = this.register(new EventEmitter<Uint8Array>())
   readonly _onStderrRaw   = this.register(new EventEmitter<Uint8Array>())
 
@@ -293,9 +305,9 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
   readonly onStderrRaw = this._onStderrRaw.event
   readonly onInternalErr = this._onInternalErr.event
 
-  private readonly session: ExecuteDuplex
+  protected exitReason?: RunnerExitReason
 
-  private exitCode: UInt32Value|undefined
+  private readonly session: ExecuteDuplex
 
   private isDisposed = false
 
@@ -338,8 +350,7 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
       }
 
       if(exitCode) {
-        this._onDidClose.fire(exitCode.value)
-        this.exitCode = exitCode
+        this._close({ type: 'exit', code: exitCode.value })
         this.dispose()
       }
     })
@@ -440,6 +451,13 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
   }
 
   open(): void {
+    // Workaround to force terminal to close if opened after early exit
+    // TODO(mxs): find a better solution here
+    if(this.hasExited()) {
+      this._onDidClose.fire(1)
+      return
+    }
+
     // in pty, we wait for open to run
     this.run()
   }
@@ -448,9 +466,21 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
     if(this.isDisposed) { return }
     this.isDisposed = true
 
+    this._close({ type: 'disposed' })
+
     await this.session.requests.complete()
   }
 
+  _close(reason: RunnerExitReason) {
+    if (this.hasExited()) { return }
+
+    this.exitReason = reason
+
+    if(reason.type !== 'disposed') {
+      this._onDidClose.fire(reason.type === 'exit' ? reason.code : 1)
+    }
+  }
+
   /**
    * Manually closed by the user
    *
@@ -469,12 +499,15 @@ export class GrpcRunnerProgramSession implements IRunnerProgramSession {
    * Unrecoverable internal error
    */
   private error(error: Error) {
+    this._close({ type: 'error', error })
+
     this._onInternalErr.fire(error)
+
     this.dispose()
   }
 
   hasExited() {
-    return this.exitCode !== undefined || this.isDisposed
+    return this.exitReason
   }
 
   protected register<T extends Disposable>(disposable: T): T {


Test patch:
diff --git a/tests/extension/handler/uri.test.ts b/tests/extension/handler/uri.test.ts
index 80b09139..68f85b55 100644
--- a/tests/extension/handler/uri.test.ts
+++ b/tests/extension/handler/uri.test.ts
@@ -167,7 +167,7 @@ describe('RunmeUriHandler', () => {
       vi.mocked(waitForProjectCheckout).mockImplementation(
         async (_, __, ___, resolve) => resolve(false))
       await handler['_cloneProject'](progress, { fsPath: '/bar/foo' } as any, '/foo/bar', 'README.md')
-      expect(terminal.sendText).toBeCalledWith('git clone /foo/bar /bar/foo')
+      expect(terminal.sendText).toBeCalledWith('git clone /foo/bar "/bar/foo"')
       expect(terminal.dispose).toBeCalledTimes(1)
       expect(progress.report).toBeCalledTimes(1)
     })
@@ -181,7 +181,7 @@ describe('RunmeUriHandler', () => {
       expect(terminal.dispose).toBeCalledTimes(1)
       expect(commands.executeCommand).toBeCalledWith(
         'vscode.openFolder',
-        'some url',
+        { 'fsPath': '/bar/foo' },
         { forceNewWindow: true }
       )
     })
diff --git a/tests/extension/provider/launcher.test.ts b/tests/extension/provider/launcher.test.ts
index 349603a7..d8fd9cf3 100644
--- a/tests/extension/provider/launcher.test.ts
+++ b/tests/extension/provider/launcher.test.ts
@@ -1,5 +1,5 @@
 import { vi, describe, it, expect, beforeEach } from 'vitest'
-import { commands, Uri } from 'vscode'
+import { commands, Uri, workspace } from 'vscode'
 
 import { RunmeFile, RunmeLauncherProvider } from '../../../src/extension/provider/launcher'
 import { getDefaultWorkspace } from '../../../src/extension/utils'
@@ -28,6 +28,7 @@ vi.mock('../../../src/extension/utils', () => ({
 
 beforeEach(() => {
   vi.mocked(commands.executeCommand).mockClear()
+  vi.mocked(workspace.createFileSystemWatcher).mockClear()
 })
 
 describe('Runme Notebooks', () => {
@@ -87,4 +88,21 @@ describe('Runme Notebooks', () => {
     expect(commands.executeCommand).toBeCalledWith('setContext', 'runme.launcher.isExpanded', true)
     expect(launchProvider.refresh).toBeCalledTimes(1)
   })
+
+  it('adds files to list', async () => {
+    const handler = vi.fn()
+    vi.mocked(workspace.createFileSystemWatcher).mockReturnValue({
+      onDidCreate: handler,
+      onDidDelete: handler
+    } as any)
+    const launchProvider = new RunmeLauncherProvider()
+    launchProvider.refresh = vi.fn()
+    launchProvider['_onDidChangeTreeData'] = { fire: vi.fn() } as any
+    expect(workspace.createFileSystemWatcher).toBeCalledWith('**/*.md', false, true, false)
+    handler.mock.calls[0][0]({ path: '/foo/bar' }, true)
+    expect([...launchProvider['filesTree'].entries()])
+      .toEqual([['/foo ', { files: ['bar'], folderPath: '/foo' }]])
+      handler.mock.calls[1][0]({ path: '/foo/bar' })
+    expect(launchProvider.refresh).toBeCalledTimes(1)
+  })
 })