Repository: authts/oidc-client-ts
Pull request #1925 (2025-04-04 12:36:02)

fix: Resource Owner Password Credentials flow with oidc scope and no id_token returned will fail sub claim check
If we have a Resource Owner Password Flow and token endpoint does not return `token_id` in the response while returning scope: `openid` it will fail the sub claim check.
```
        if (validateSub && claims.sub !== response.profile.sub) {
            logger.throw(new Error("subject from UserInfo response does not match subject in ID Token"));
        }
```
After some investigation, i noticed that if we don't have token_id ``_validateIdTokenAttributes`` will be skipped which means that ``response.profile`` will always be an empty object and always fail the check ``(validateSub && claims.sub !== response.profile.sub)``



Patch:
diff --git a/package-lock.json b/package-lock.json
index 0d0297fe..bdc3859d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -517,9 +517,9 @@
       "dev": true
     },
     "node_modules/@esbuild/aix-ppc64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
-      "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz",
+      "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==",
       "cpu": [
         "ppc64"
       ],
@@ -534,9 +534,9 @@
       }
     },
     "node_modules/@esbuild/android-arm": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
-      "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz",
+      "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==",
       "cpu": [
         "arm"
       ],
@@ -551,9 +551,9 @@
       }
     },
     "node_modules/@esbuild/android-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
-      "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz",
+      "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==",
       "cpu": [
         "arm64"
       ],
@@ -568,9 +568,9 @@
       }
     },
     "node_modules/@esbuild/android-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
-      "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz",
+      "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==",
       "cpu": [
         "x64"
       ],
@@ -585,9 +585,9 @@
       }
     },
     "node_modules/@esbuild/darwin-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
-      "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz",
+      "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==",
       "cpu": [
         "arm64"
       ],
@@ -602,9 +602,9 @@
       }
     },
     "node_modules/@esbuild/darwin-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
-      "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz",
+      "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==",
       "cpu": [
         "x64"
       ],
@@ -619,9 +619,9 @@
       }
     },
     "node_modules/@esbuild/freebsd-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
-      "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz",
+      "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==",
       "cpu": [
         "arm64"
       ],
@@ -636,9 +636,9 @@
       }
     },
     "node_modules/@esbuild/freebsd-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
-      "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz",
+      "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==",
       "cpu": [
         "x64"
       ],
@@ -653,9 +653,9 @@
       }
     },
     "node_modules/@esbuild/linux-arm": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
-      "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz",
+      "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==",
       "cpu": [
         "arm"
       ],
@@ -670,9 +670,9 @@
       }
     },
     "node_modules/@esbuild/linux-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
-      "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz",
+      "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==",
       "cpu": [
         "arm64"
       ],
@@ -687,9 +687,9 @@
       }
     },
     "node_modules/@esbuild/linux-ia32": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
-      "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz",
+      "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==",
       "cpu": [
         "ia32"
       ],
@@ -704,9 +704,9 @@
       }
     },
     "node_modules/@esbuild/linux-loong64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
-      "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz",
+      "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==",
       "cpu": [
         "loong64"
       ],
@@ -721,9 +721,9 @@
       }
     },
     "node_modules/@esbuild/linux-mips64el": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
-      "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz",
+      "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==",
       "cpu": [
         "mips64el"
       ],
@@ -738,9 +738,9 @@
       }
     },
     "node_modules/@esbuild/linux-ppc64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
-      "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz",
+      "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==",
       "cpu": [
         "ppc64"
       ],
@@ -755,9 +755,9 @@
       }
     },
     "node_modules/@esbuild/linux-riscv64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
-      "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz",
+      "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==",
       "cpu": [
         "riscv64"
       ],
@@ -772,9 +772,9 @@
       }
     },
     "node_modules/@esbuild/linux-s390x": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
-      "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz",
+      "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==",
       "cpu": [
         "s390x"
       ],
@@ -789,9 +789,9 @@
       }
     },
     "node_modules/@esbuild/linux-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
-      "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz",
+      "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==",
       "cpu": [
         "x64"
       ],
@@ -806,9 +806,9 @@
       }
     },
     "node_modules/@esbuild/netbsd-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
-      "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz",
+      "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==",
       "cpu": [
         "arm64"
       ],
@@ -823,9 +823,9 @@
       }
     },
     "node_modules/@esbuild/netbsd-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
-      "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz",
+      "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==",
       "cpu": [
         "x64"
       ],
@@ -840,9 +840,9 @@
       }
     },
     "node_modules/@esbuild/openbsd-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
-      "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz",
+      "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==",
       "cpu": [
         "arm64"
       ],
@@ -857,9 +857,9 @@
       }
     },
     "node_modules/@esbuild/openbsd-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
-      "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz",
+      "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==",
       "cpu": [
         "x64"
       ],
@@ -874,9 +874,9 @@
       }
     },
     "node_modules/@esbuild/sunos-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
-      "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz",
+      "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==",
       "cpu": [
         "x64"
       ],
@@ -891,9 +891,9 @@
       }
     },
     "node_modules/@esbuild/win32-arm64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
-      "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz",
+      "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==",
       "cpu": [
         "arm64"
       ],
@@ -908,9 +908,9 @@
       }
     },
     "node_modules/@esbuild/win32-ia32": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
-      "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz",
+      "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==",
       "cpu": [
         "ia32"
       ],
@@ -925,9 +925,9 @@
       }
     },
     "node_modules/@esbuild/win32-x64": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
-      "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz",
+      "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==",
       "cpu": [
         "x64"
       ],
@@ -1119,14 +1119,16 @@
       }
     },
     "node_modules/@gerrit0/mini-shiki": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.2.1.tgz",
-      "integrity": "sha512-HbzRC6MKB6U8kQhczz0APKPIzFHTrcqhaC7es2EXInq1SpjPVnpVSIsBe6hNoLWqqCx1n5VKiPXq6PfXnHZKOQ==",
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.2.3.tgz",
+      "integrity": "sha512-yemSYr0Oiqk5NAQRfbD5DKUTlThiZw1MxTMx/YpQTg6m4QRJDtV2JTYSuNevgx1ayy/O7x+uwDjh3IgECGFY/Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@shikijs/engine-oniguruma": "^3.2.1",
-        "@shikijs/types": "^3.2.1",
+        "@shikijs/engine-oniguruma": "^3.2.2",
+        "@shikijs/langs": "^3.2.2",
+        "@shikijs/themes": "^3.2.2",
+        "@shikijs/types": "^3.2.2",
         "@shikijs/vscode-textmate": "^10.0.2"
       }
     },
@@ -1575,9 +1577,9 @@
       }
     },
     "node_modules/@microsoft/api-extractor": {
-      "version": "7.52.2",
-      "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.2.tgz",
-      "integrity": "sha512-RX37V5uhBBPUvrrcmIxuQ8TPsohvr6zxo7SsLPOzBYcH9nbjbvtdXrts4cxHCXGOin9JR5ar37qfxtCOuEBTHA==",
+      "version": "7.52.5",
+      "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.5.tgz",
+      "integrity": "sha512-6WWgjjg6FkoDWpF/O3sjB05OkszpI5wtKJqd8fUIR/JJUv8IqNCGr1lJUZJnc1HegcT9gAvyf98KfH0wFncU0w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -1587,7 +1589,7 @@
         "@rushstack/node-core-library": "5.13.0",
         "@rushstack/rig-package": "0.5.3",
         "@rushstack/terminal": "0.15.2",
-        "@rushstack/ts-command-line": "4.23.7",
+        "@rushstack/ts-command-line": "5.0.0",
         "lodash": "~4.17.15",
         "minimatch": "~3.0.3",
         "resolve": "~1.22.1",
@@ -1812,9 +1814,9 @@
       }
     },
     "node_modules/@rushstack/ts-command-line": {
-      "version": "4.23.7",
-      "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.7.tgz",
-      "integrity": "sha512-Gr9cB7DGe6uz5vq2wdr89WbVDKz0UeuFEn5H2CfWDe7JvjFFaiV15gi6mqDBTbHhHCWS7w8mF1h3BnIfUndqdA==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.0.0.tgz",
+      "integrity": "sha512-SW6nqZVxH26Rxz25+lJQRlnXI/YCrNH7NfDEWPPm9i0rwkSE6Rgtmzw96cuZgQjacOh0sw77d6V4SvgarAfr8g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -1825,20 +1827,40 @@
       }
     },
     "node_modules/@shikijs/engine-oniguruma": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.2.1.tgz",
-      "integrity": "sha512-wZZAkayEn6qu2+YjenEoFqj0OyQI64EWsNR6/71d1EkG4sxEOFooowKivsWPpaWNBu3sxAG+zPz5kzBL/SsreQ==",
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.2.2.tgz",
+      "integrity": "sha512-vyXRnWVCSvokwbaUD/8uPn6Gqsf5Hv7XwcW4AgiU4Z2qwy19sdr6VGzMdheKKN58tJOOe5MIKiNb901bgcUXYQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@shikijs/types": "3.2.1",
+        "@shikijs/types": "3.2.2",
         "@shikijs/vscode-textmate": "^10.0.2"
       }
     },
+    "node_modules/@shikijs/langs": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.2.2.tgz",
+      "integrity": "sha512-NY0Urg2dV9ETt3JIOWoMPuoDNwte3geLZ4M1nrPHbkDS8dWMpKcEwlqiEIGqtwZNmt5gKyWpR26ln2Bg2ecPgw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@shikijs/types": "3.2.2"
+      }
+    },
+    "node_modules/@shikijs/themes": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.2.2.tgz",
+      "integrity": "sha512-Zuq4lgAxVKkb0FFdhHSdDkALuRpsj1so1JdihjKNQfgM78EHxV2JhO10qPsMrm01FkE3mDRTdF68wfmsqjt6HA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@shikijs/types": "3.2.2"
+      }
+    },
     "node_modules/@shikijs/types": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.2.1.tgz",
-      "integrity": "sha512-/NTWAk4KE2M8uac0RhOsIhYQf4pdU0OywQuYDGIGAJ6Mjunxl2cGiuLkvu4HLCMn+OTTLRWkjZITp+aYJv60yA==",
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.2.2.tgz",
+      "integrity": "sha512-a5TiHk7EH5Lso8sHcLHbVNNhWKP0Wi3yVnXnu73g86n3WoDgEra7n3KszyeCGuyoagspQ2fzvy4cpSc8pKhb0A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -3235,9 +3257,9 @@
       }
     },
     "node_modules/esbuild": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
-      "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz",
+      "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==",
       "dev": true,
       "hasInstallScript": true,
       "license": "MIT",
@@ -3248,31 +3270,31 @@
         "node": ">=18"
       },
       "optionalDependencies": {
-        "@esbuild/aix-ppc64": "0.25.1",
-        "@esbuild/android-arm": "0.25.1",
-        "@esbuild/android-arm64": "0.25.1",
-        "@esbuild/android-x64": "0.25.1",
-        "@esbuild/darwin-arm64": "0.25.1",
-        "@esbuild/darwin-x64": "0.25.1",
-        "@esbuild/freebsd-arm64": "0.25.1",
-        "@esbuild/freebsd-x64": "0.25.1",
-        "@esbuild/linux-arm": "0.25.1",
-        "@esbuild/linux-arm64": "0.25.1",
-        "@esbuild/linux-ia32": "0.25.1",
-        "@esbuild/linux-loong64": "0.25.1",
-        "@esbuild/linux-mips64el": "0.25.1",
-        "@esbuild/linux-ppc64": "0.25.1",
-        "@esbuild/linux-riscv64": "0.25.1",
-        "@esbuild/linux-s390x": "0.25.1",
-        "@esbuild/linux-x64": "0.25.1",
-        "@esbuild/netbsd-arm64": "0.25.1",
-        "@esbuild/netbsd-x64": "0.25.1",
-        "@esbuild/openbsd-arm64": "0.25.1",
-        "@esbuild/openbsd-x64": "0.25.1",
-        "@esbuild/sunos-x64": "0.25.1",
-        "@esbuild/win32-arm64": "0.25.1",
-        "@esbuild/win32-ia32": "0.25.1",
-        "@esbuild/win32-x64": "0.25.1"
+        "@esbuild/aix-ppc64": "0.25.3",
+        "@esbuild/android-arm": "0.25.3",
+        "@esbuild/android-arm64": "0.25.3",
+        "@esbuild/android-x64": "0.25.3",
+        "@esbuild/darwin-arm64": "0.25.3",
+        "@esbuild/darwin-x64": "0.25.3",
+        "@esbuild/freebsd-arm64": "0.25.3",
+        "@esbuild/freebsd-x64": "0.25.3",
+        "@esbuild/linux-arm": "0.25.3",
+        "@esbuild/linux-arm64": "0.25.3",
+        "@esbuild/linux-ia32": "0.25.3",
+        "@esbuild/linux-loong64": "0.25.3",
+        "@esbuild/linux-mips64el": "0.25.3",
+        "@esbuild/linux-ppc64": "0.25.3",
+        "@esbuild/linux-riscv64": "0.25.3",
+        "@esbuild/linux-s390x": "0.25.3",
+        "@esbuild/linux-x64": "0.25.3",
+        "@esbuild/netbsd-arm64": "0.25.3",
+        "@esbuild/netbsd-x64": "0.25.3",
+        "@esbuild/openbsd-arm64": "0.25.3",
+        "@esbuild/openbsd-x64": "0.25.3",
+        "@esbuild/sunos-x64": "0.25.3",
+        "@esbuild/win32-arm64": "0.25.3",
+        "@esbuild/win32-ia32": "0.25.3",
+        "@esbuild/win32-x64": "0.25.3"
       }
     },
     "node_modules/escalade": {
@@ -4084,10 +4106,11 @@
       }
     },
     "node_modules/http-proxy-middleware": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz",
-      "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==",
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz",
+      "integrity": "sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==",
       "dev": true,
+      "license": "MIT",
       "dependencies": {
         "@types/http-proxy": "^1.17.15",
         "debug": "^4.3.6",
@@ -5222,9 +5245,9 @@
       }
     },
     "node_modules/lint-staged": {
-      "version": "15.5.0",
-      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.0.tgz",
-      "integrity": "sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==",
+      "version": "15.5.1",
+      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.1.tgz",
+      "integrity": "sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -6769,9 +6792,9 @@
       }
     },
     "node_modules/ts-jest": {
-      "version": "29.3.0",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.0.tgz",
-      "integrity": "sha512-4bfGBX7Gd1Aqz3SyeDS9O276wEU/BInZxskPrbhZLyv+c1wskDCqDFMJQJLWrIr/fKoAH4GE5dKUlrdyvo+39A==",
+      "version": "29.3.2",
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz",
+      "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -6783,7 +6806,7 @@
         "lodash.memoize": "^4.1.2",
         "make-error": "^1.3.6",
         "semver": "^7.7.1",
-        "type-fest": "^4.37.0",
+        "type-fest": "^4.39.1",
         "yargs-parser": "^21.1.1"
       },
       "bin": {
@@ -6832,9 +6855,9 @@
       }
     },
     "node_modules/ts-jest/node_modules/type-fest": {
-      "version": "4.38.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz",
-      "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==",
+      "version": "4.39.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz",
+      "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==",
       "dev": true,
       "license": "(MIT OR CC0-1.0)",
       "engines": {
@@ -6878,17 +6901,17 @@
       }
     },
     "node_modules/typedoc": {
-      "version": "0.28.1",
-      "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.1.tgz",
-      "integrity": "sha512-Mn2VPNMaxoe/hlBiLriG4U55oyAa3Xo+8HbtEwV7F5WEOPXqtxzGuMZhJYHaqFJpajeQ6ZDUC2c990NAtTbdgw==",
+      "version": "0.28.3",
+      "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.3.tgz",
+      "integrity": "sha512-5svOCTfXvVSh6zbZKSQluZhR8yN2tKpTeHZxlmWpE6N5vc3R8k/jhg9nnD6n5tN9/ObuQTojkONrOxFdUFUG9w==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
-        "@gerrit0/mini-shiki": "^3.2.1",
+        "@gerrit0/mini-shiki": "^3.2.2",
         "lunr": "^2.3.9",
         "markdown-it": "^14.1.0",
         "minimatch": "^9.0.5",
-        "yaml": "^2.7.0 "
+        "yaml": "^2.7.1"
       },
       "bin": {
         "typedoc": "bin/typedoc"
@@ -7197,9 +7220,9 @@
       "dev": true
     },
     "node_modules/yaml": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
-      "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
+      "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
       "dev": true,
       "license": "ISC",
       "bin": {
diff --git a/samples/Parcel/package-lock.json b/samples/Parcel/package-lock.json
index 0e0b2e44..ddccb30e 100644
--- a/samples/Parcel/package-lock.json
+++ b/samples/Parcel/package-lock.json
@@ -11,7 +11,7 @@
       },
       "devDependencies": {
         "concurrently": "^9.1.2",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       }
     },
     "node_modules/@babel/code-frame": {
@@ -240,22 +240,22 @@
       ]
     },
     "node_modules/@parcel/bundler-default": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.14.2.tgz",
-      "integrity": "sha512-nAUhIPN/7nULJxhRcIUKdtkb7y1WkoKcYXZZZcQzMUu0wFBhyicJzWOQk1zri4LrKJBW4P5JQ4xwdJitc2GGDA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.14.4.tgz",
+      "integrity": "sha512-JVqi5Sb7wv2KCTJFAAjHbnl6KC61jKNVYw/GtZm5s/Wxqvxx2tcp93rmRoBFo9X3gSgkg8jp4HkNAUHTxnsPnQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/graph": "3.4.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/graph": "3.4.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -263,15 +263,15 @@
       }
     },
     "node_modules/@parcel/cache": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.14.2.tgz",
-      "integrity": "sha512-C3uGFSjDGgVbNMxi9WGTavGPQgyv+QP9bBD+kw1LvgoWIvjw21NqDD3PpJS5iDJusEr8b1YOt/j2ejWJmSq2FQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.14.4.tgz",
+      "integrity": "sha512-CTTMySgNSgcSwbNWL4gODU1h9hMjBRyiC8/gcKDFqzw0wC/T+ZwX7wc5zNc/S9aJRTmmgvndcYKoVlds7YV2sg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/fs": "2.14.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/fs": "2.14.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "lmdb": "2.8.5"
       },
       "engines": {
@@ -282,13 +282,13 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/codeframe": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.14.2.tgz",
-      "integrity": "sha512-sjXiM+XUWiq7OOeTDsWUaNvKkrcCA89w0lvLFFXbtxxDXVBnM8SERP8nosA95izKWEy3fA6LopCuPbfz9v7FmA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.14.4.tgz",
+      "integrity": "sha512-fRKkmFGnQIa/X+Kr8csTWjOwRRh2JfJfTpNS8JhbjBSWvOoKsDG9T2U5Ky8akIG7c9WDGwB3ngONauI1vtaInA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -303,17 +303,17 @@
       }
     },
     "node_modules/@parcel/compressor-raw": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.14.2.tgz",
-      "integrity": "sha512-u8fJO1M/BcaJ/Um7pq6/OstJd0Rrs532NHJDc9UQHhreDlrjB2W97vVVMyF0aL23ebzfP3Hta3WnH7Eg64gAJg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.14.4.tgz",
+      "integrity": "sha512-wYRdokznP1iI3n6M6leQ0nI65tCIWhZaD0vW3G3qodDFi+qsdpvZymCpNUkh6AYkFFr3Lur+r/+xkWDoqNoMWA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2"
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -321,76 +321,76 @@
       }
     },
     "node_modules/@parcel/config-default": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.14.2.tgz",
-      "integrity": "sha512-ntqWdRJTyEX48OWnUL6BXCE9tEuVejZfzmdy8FvzeXHnVkQE09d1g8cmerm3B1cN+DoRxKIyLi5Qq1nyI0V9Tw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@parcel/bundler-default": "2.14.2",
-        "@parcel/compressor-raw": "2.14.2",
-        "@parcel/namer-default": "2.14.2",
-        "@parcel/optimizer-css": "2.14.2",
-        "@parcel/optimizer-htmlnano": "2.14.2",
-        "@parcel/optimizer-image": "2.14.2",
-        "@parcel/optimizer-svgo": "2.14.2",
-        "@parcel/optimizer-swc": "2.14.2",
-        "@parcel/packager-css": "2.14.2",
-        "@parcel/packager-html": "2.14.2",
-        "@parcel/packager-js": "2.14.2",
-        "@parcel/packager-raw": "2.14.2",
-        "@parcel/packager-svg": "2.14.2",
-        "@parcel/packager-wasm": "2.14.2",
-        "@parcel/reporter-dev-server": "2.14.2",
-        "@parcel/resolver-default": "2.14.2",
-        "@parcel/runtime-browser-hmr": "2.14.2",
-        "@parcel/runtime-js": "2.14.2",
-        "@parcel/runtime-rsc": "2.14.2",
-        "@parcel/runtime-service-worker": "2.14.2",
-        "@parcel/transformer-babel": "2.14.2",
-        "@parcel/transformer-css": "2.14.2",
-        "@parcel/transformer-html": "2.14.2",
-        "@parcel/transformer-image": "2.14.2",
-        "@parcel/transformer-js": "2.14.2",
-        "@parcel/transformer-json": "2.14.2",
-        "@parcel/transformer-node": "2.14.2",
-        "@parcel/transformer-postcss": "2.14.2",
-        "@parcel/transformer-posthtml": "2.14.2",
-        "@parcel/transformer-raw": "2.14.2",
-        "@parcel/transformer-react-refresh-wrap": "2.14.2",
-        "@parcel/transformer-svg": "2.14.2"
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.14.4.tgz",
+      "integrity": "sha512-bHtr8yT2IZDv5w44/VKoNz07goidO99c6hsp9s0hjSVC1G6krdE+nriryPVfUFbw044LeQThSvA8EwTas72QZg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@parcel/bundler-default": "2.14.4",
+        "@parcel/compressor-raw": "2.14.4",
+        "@parcel/namer-default": "2.14.4",
+        "@parcel/optimizer-css": "2.14.4",
+        "@parcel/optimizer-htmlnano": "2.14.4",
+        "@parcel/optimizer-image": "2.14.4",
+        "@parcel/optimizer-svgo": "2.14.4",
+        "@parcel/optimizer-swc": "2.14.4",
+        "@parcel/packager-css": "2.14.4",
+        "@parcel/packager-html": "2.14.4",
+        "@parcel/packager-js": "2.14.4",
+        "@parcel/packager-raw": "2.14.4",
+        "@parcel/packager-svg": "2.14.4",
+        "@parcel/packager-wasm": "2.14.4",
+        "@parcel/reporter-dev-server": "2.14.4",
+        "@parcel/resolver-default": "2.14.4",
+        "@parcel/runtime-browser-hmr": "2.14.4",
+        "@parcel/runtime-js": "2.14.4",
+        "@parcel/runtime-rsc": "2.14.4",
+        "@parcel/runtime-service-worker": "2.14.4",
+        "@parcel/transformer-babel": "2.14.4",
+        "@parcel/transformer-css": "2.14.4",
+        "@parcel/transformer-html": "2.14.4",
+        "@parcel/transformer-image": "2.14.4",
+        "@parcel/transformer-js": "2.14.4",
+        "@parcel/transformer-json": "2.14.4",
+        "@parcel/transformer-node": "2.14.4",
+        "@parcel/transformer-postcss": "2.14.4",
+        "@parcel/transformer-posthtml": "2.14.4",
+        "@parcel/transformer-raw": "2.14.4",
+        "@parcel/transformer-react-refresh-wrap": "2.14.4",
+        "@parcel/transformer-svg": "2.14.4"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/core": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.14.2.tgz",
-      "integrity": "sha512-VIgo7dgwY9nHJTnxaa86xxQmUX6K5pEAxfsjkFxOhrviTG+KAI5bOHQAbsY61ytTO/x+uSDEnMoIkR8TAIVc3Q==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.14.4.tgz",
+      "integrity": "sha512-dtUMmPDXd7CRAWwMlOc6jh6yLRL4wMi/vNMNdX9J/fafCLFgFBmPqWBhQ9tlX015Q8DEcIRWYPumHIn5dzqEbg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@mischnic/json-sourcemap": "^0.1.0",
-        "@parcel/cache": "2.14.2",
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/events": "2.14.2",
-        "@parcel/feature-flags": "2.14.2",
-        "@parcel/fs": "2.14.2",
-        "@parcel/graph": "3.4.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/package-manager": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/profiler": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/cache": "2.14.4",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/events": "2.14.4",
+        "@parcel/feature-flags": "2.14.4",
+        "@parcel/fs": "2.14.4",
+        "@parcel/graph": "3.4.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/package-manager": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/profiler": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
-        "@parcel/workers": "2.14.2",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
+        "@parcel/workers": "2.14.4",
         "base-x": "^3.0.8",
         "browserslist": "^4.6.6",
         "clone": "^2.1.1",
@@ -410,9 +410,9 @@
       }
     },
     "node_modules/@parcel/diagnostic": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.14.2.tgz",
-      "integrity": "sha512-xoq9gf08Pv4q3zJUJqG9zsA1IBIr328HsEJpRC7b7zDd8j6DVJjrWTYDWnBybHAMXQ34x1qjsTDyvJcGA7uyWA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.14.4.tgz",
+      "integrity": "sha512-+pElcMMlTnpEIm9MrrSEOh38ylKYYdTYMgv2iZQU7799yzD9sSac9dkGSbbKGDYWhALCuzWQOgdaGG9ExJZw6w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -428,9 +428,9 @@
       }
     },
     "node_modules/@parcel/error-overlay": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/error-overlay/-/error-overlay-2.14.2.tgz",
-      "integrity": "sha512-/xFL4dVb5bh9L+31Zo3whI5RdhPDgSJNZ/yIPuITKiC7UWWEZpLdGvdCwP0EV3NVA4RauYJovkcgCgtkM61LBQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/error-overlay/-/error-overlay-2.14.4.tgz",
+      "integrity": "sha512-GZ6Z1XO/VYqIFNwa3iAYWX7Pskwd+xw9tPw9kjF7tG8wdL9VipkcILJ4APj/G5CKw8XrXH/6NsC7HndNbR7EqA==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -442,9 +442,9 @@
       }
     },
     "node_modules/@parcel/events": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.14.2.tgz",
-      "integrity": "sha512-ZwHOicEfnr0DVlA2+I9HN/wAIOKqpjVe/kRLZfKA3N5R2xLB+Mx3e5zDMSi2kCxkkqW5Yg0qxSI9hy3kTNgM0A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.14.4.tgz",
+      "integrity": "sha512-QzZr291JuENw7BsehKc3z29ukLMApPdjRFcOYXFuMWaHkpC7lzFK/KAY4Mi9HCa3aQe90zCcuxZg+bBsNF9XxQ==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -456,9 +456,9 @@
       }
     },
     "node_modules/@parcel/feature-flags": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.14.2.tgz",
-      "integrity": "sha512-TqurCACfUVoCRNWYSNHdIStc8ibWl+ZHPZWKOpnZSnBOgYf0lppmeq1W/dHTeaBDCB57VZM9d0ucFd0Xd0SZlA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.14.4.tgz",
+      "integrity": "sha512-T2HE+lOmlU6PZOUnuXn6UZPXV4higCPgF2c2YXhrzTlSFcLMiAXATyzrylbYY/i/WjiYAlqvmEcaBX5fSaW95g==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -470,18 +470,18 @@
       }
     },
     "node_modules/@parcel/fs": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.14.2.tgz",
-      "integrity": "sha512-SOKgXMGA4buLs56kEVqymdpysb9Lpmo7QQn9QRcSZYX0u+vkD5JORCK0SiO7etvPWFttXNKjdlYE9IvvrRweaQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.14.4.tgz",
+      "integrity": "sha512-SQbuW6v1URv871FVj23HoC8+UUwpgkQ7iWmG7EITpp6AV42ojRr/jZ93hLjzkQQfYlRI64jUExn6AQAZDN3bqQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/feature-flags": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/types-internal": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/feature-flags": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/types-internal": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "@parcel/watcher": "^2.0.7",
-        "@parcel/workers": "2.14.2"
+        "@parcel/workers": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0"
@@ -491,17 +491,17 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/graph": {
-      "version": "3.4.2",
-      "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.4.2.tgz",
-      "integrity": "sha512-yMP3Adz/zSkxPtTu9rh8XELkYyJfhysnw8PFA9UJlfvVWZsyir0ZWQC6R6cchlVthpVRAn29VIBOy67vmcgqjg==",
+      "version": "3.4.4",
+      "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.4.4.tgz",
+      "integrity": "sha512-AIbJ8d8aCPcKAkqc45LENjAMIrp8nRGlmky5LyY5244qqnR1B+tsvU47XoGymM3OaXLdVjv8knJ4K0ci9/l/4w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/feature-flags": "2.14.2",
+        "@parcel/feature-flags": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
@@ -513,14 +513,14 @@
       }
     },
     "node_modules/@parcel/logger": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.14.2.tgz",
-      "integrity": "sha512-gnG/0J2mj1Ot/1XoKbTh0YdEt+vWnODc022FgG+df5+qBiPwonwsIThSv1feUHX2EqHCEtbpXJ+OzZdzXRH9yA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.14.4.tgz",
+      "integrity": "sha512-uqSGeCqraWpbe8gqbb1k9ePrlzdKoOwkdQPcRIv8TTTWZfCt6Qcl08w8didO4iAOz4H5C4Ng82wbVO/ieaMoKg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/events": "2.14.2"
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/events": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0"
@@ -531,9 +531,9 @@
       }
     },
     "node_modules/@parcel/markdown-ansi": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.14.2.tgz",
-      "integrity": "sha512-9wSiT2C7kW9pcvh2PyiuN/jWvIkDWpZvlGpCGmFU87qYAJbOjsjC7cybqDbqVEMQUplFPs8RL5vcTGU88vrzvA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.14.4.tgz",
+      "integrity": "sha512-B4787HHXHi0wcuYbV4qBibws/yaX4RXoNel5xWdwzn1ZFmeLAXluNjMO2Q6FmII/Lej9OIQEaTppl7/DxJGifg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -548,19 +548,19 @@
       }
     },
     "node_modules/@parcel/namer-default": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.14.2.tgz",
-      "integrity": "sha512-4Om4hEOZCX08uWqNvh6M4AX6344rtt1YT0Yup7uuLw2N5H8dr0Xpy4SXLabD52SAoi57gG2B0yX8g7tV142QzQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.14.4.tgz",
+      "integrity": "sha512-3FvZhkRgYlipj0NGRmw/rZ9ZiuM+a9ZcNW/MHRpytiNNBgcGCpR00XKhhvn0O5//MH13nLpiQXUf+J279CuN2A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -568,17 +568,17 @@
       }
     },
     "node_modules/@parcel/node-resolver-core": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.5.2.tgz",
-      "integrity": "sha512-cUSsfwd+Phatm5oeiJIzev6TojbDGL09/GUzoWKwpx3exT2VqcrFfHEt4GQLBUJsTf/bqk5FzyzK548ue09loQ==",
+      "version": "3.5.4",
+      "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.5.4.tgz",
+      "integrity": "sha512-KmmsVD8Ym+19DIbe0Y2SUbdcB+iUfgstR4dBpaogV36DlxV4d0uiia4GCpOO3kG9zlRYMVsfZEwy/NNZHELx3w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@mischnic/json-sourcemap": "^0.1.0",
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/fs": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/fs": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1",
         "semver": "^7.5.2"
       },
@@ -591,23 +591,23 @@
       }
     },
     "node_modules/@parcel/optimizer-css": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.14.2.tgz",
-      "integrity": "sha512-wg9BlMvBUo4kwKVuQ8ec/GlNyCMyx9Xg36Y8DBgj55sBHhk7M4/+C8yTGbxDlu6NU0+/Tx0yuypCe/Fq17wWaA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.14.4.tgz",
+      "integrity": "sha512-5rwwnsP8pnTqis5fs2YyNUvke6YprWlU8Y9pD55hK1Y1MbYmvCqaIyQv9lcpHJQiqrwsZ2pl5B3Ph5buDSQehQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
+        "@parcel/utils": "2.14.4",
         "browserslist": "^4.6.6",
         "lightningcss": "^1.22.1",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -615,22 +615,22 @@
       }
     },
     "node_modules/@parcel/optimizer-htmlnano": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.14.2.tgz",
-      "integrity": "sha512-Z9W8FMasZfRTI9rLTYgjxAABaZRG6zfPaMLQPXCv5KmDuQcrm9UcpGEuboFd7UCTA/ajPpFLWFZroRfmG9Ox1w==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.14.4.tgz",
+      "integrity": "sha512-hLVaN7ResQcgKRo9uDm7oddC4DwR7qoTFsYn4Ftj8qGbgqB2nRpCCK0R66PA/9U98LyTOlAl1J6TEvxWR+IlKw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "htmlnano": "^2.0.0",
         "nullthrows": "^1.1.1",
         "posthtml": "^0.16.5"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -638,44 +638,44 @@
       }
     },
     "node_modules/@parcel/optimizer-image": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.14.2.tgz",
-      "integrity": "sha512-pVEKAfpFRgjjmjU+mJ17uA9tycMinZz4v1J7TWo+nq0z5D4ifKSusTvhIEnY6aj2WZnYZKN8II2dCdT9OkOO2A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.14.4.tgz",
+      "integrity": "sha512-F5xw6ayFWOxu2XP5MI8g9khOCKNkVj4nGoXrBcgLoCKW4o07buCUKY4Sy04P3u7Leip6TOk7qpt3Q1179h6KTQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/utils": "2.14.2",
-        "@parcel/workers": "2.14.2"
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/utils": "2.14.4",
+        "@parcel/workers": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/optimizer-svgo": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.14.2.tgz",
-      "integrity": "sha512-2uU50h/wEEX8F2TdJKXN3zpGJqBGeraa9s5354WCC84TqJprb1ZMdweVpi2KZn+GjjOrjAxDKe3a8/Z6EavLmQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.14.4.tgz",
+      "integrity": "sha512-bjZ2VHhzclBQ99SC2ZXsFKJ6zi0hXTPbGdaVblMu0iheeXcATdoNzey0eizaoSmLe9IyFJoN6gvnLdQqGfZLZg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2"
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -683,22 +683,22 @@
       }
     },
     "node_modules/@parcel/optimizer-swc": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.14.2.tgz",
-      "integrity": "sha512-oqzukZcW56+W/vfNBNDh9TvBJYMB038eXZg5Fz6pamY/vHLuaZT5G1P1/znpsVcVwAAvzK0fCJsfG3KQ6RxjgQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.14.4.tgz",
+      "integrity": "sha512-7+p5ILEj2S02Rs6YzwF74g0kpAZzF9idDP9zjLVZWo9JYvoRvH0LW90bI7yKXWpKB8QOtwziqgWkcgItSIWBnA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
+        "@parcel/utils": "2.14.4",
         "@swc/core": "^1.11.5",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -706,19 +706,19 @@
       }
     },
     "node_modules/@parcel/package-manager": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.14.2.tgz",
-      "integrity": "sha512-vagjbhRxYAfU1dQP5qAbBA9KpYROKDtqsa9YV5+5ni7HTkQR3PdSkjd9dIV/7UnsN9kiYHu/jhxTFM0cxjC3pw==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.14.4.tgz",
+      "integrity": "sha512-chF2rBmLtLPZe0qtbqJtq6hNGCRu0+1wFs2j5sqxr1ZttvvhRpATu/7pD+gKTFmfL7iJkOpGTU485SYmyO1xjg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/fs": "2.14.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/node-resolver-core": "3.5.2",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
-        "@parcel/workers": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/fs": "2.14.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/node-resolver-core": "3.5.4",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
+        "@parcel/workers": "2.14.4",
         "@swc/core": "^1.11.5",
         "semver": "^7.5.2"
       },
@@ -730,26 +730,26 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/packager-css": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.14.2.tgz",
-      "integrity": "sha512-WD2vTHWIc1ETCLgKslyC4lTKqCG9Rj//EUaGw8HW7krL8dAEAdIhEvUJWzzAHsyiyORcqo+as8QFT4Wf+Fx9Jg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.14.4.tgz",
+      "integrity": "sha512-AvJhE1AQ4OcuOUtKoifhE1Y8KgYitzKMvmgsgQlwySdrkk6dz+XGHfZ9goTzIUaz9xZzwbJH7h/pvaIP8jQ9yQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
+        "@parcel/utils": "2.14.4",
         "lightningcss": "^1.22.1",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -757,21 +757,21 @@
       }
     },
     "node_modules/@parcel/packager-html": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.14.2.tgz",
-      "integrity": "sha512-cWkUQGGcaMcag3MqzxurqP5Ffz3rmaF572cY828aEuTfdER1rXvA4VdTJxrYWbpILe2YBYxlZPtGQYKYV5rKSQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.14.4.tgz",
+      "integrity": "sha512-rsYz3NDaKRCuQOAWGc3eYJ2GHesm62iRCQTMGlZ7Oplp748vu2c1Uee/mP43WlslvDxHtV7rzVNyo88MS6sc5w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1",
         "posthtml": "^0.16.5"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -779,24 +779,24 @@
       }
     },
     "node_modules/@parcel/packager-js": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.14.2.tgz",
-      "integrity": "sha512-Yw9Le3UBb/vwOCyAr1gdOPTDUyLC2Ulx8IXpP/BM7XGoGu2k7xGtGRz//2ytH0N18Et9F/1FAw9CJxMRsd/abg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.14.4.tgz",
+      "integrity": "sha512-Fz98TzYFcd9xCj6jqMtyd7c3n65GRmuoG7u0S/2g4sJrR5Zen70n1zlBGX7mEoOvB5lKRijzoNqBtB+7bWqS5A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "globals": "^13.2.0",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -804,17 +804,17 @@
       }
     },
     "node_modules/@parcel/packager-raw": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.14.2.tgz",
-      "integrity": "sha512-nDIh3FNiUhQR22U3RNcLt1N2vBc/OGwGRvqivs9yqqyiyUWX95cVcBwB9zkFH7Gd5u8R8w4u+zQP/IGSvA5gVQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.14.4.tgz",
+      "integrity": "sha512-7yDcPGsSSz4WiCWj2KoC2pNBXNislulI1RXaWyBAMzQhevQ+9D2ga/ZPgpcNjcWr8Y1tRb3QITETkTmZVHmPXQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2"
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -822,20 +822,20 @@
       }
     },
     "node_modules/@parcel/packager-svg": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.14.2.tgz",
-      "integrity": "sha512-J+unuT121omswg0HIIRU3Ow4BeuZkos3WGwZI8RFZ5OFC4sdrCqoCEFllWKLeTMFmGrCJki0SGH6ZPRjf1hcaQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.14.4.tgz",
+      "integrity": "sha512-ja5P9PXp+v/mh+UXUXdQ1O35yr2kRqdRlytYrzmAaeILuS1ko2n3ZJoeUYYprYOh/UmLmkgbXh/DyzrhEH7TZw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "posthtml": "^0.16.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -843,17 +843,17 @@
       }
     },
     "node_modules/@parcel/packager-wasm": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.14.2.tgz",
-      "integrity": "sha512-RlysqyEiyTEPXgesZWiWXT5va/Kn1Sh9hrFHq+3CQJvhDBMlPqNBCOq4W4swwge8DBLKOi3J5YVSSVZL6LZybQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.14.4.tgz",
+      "integrity": "sha512-sgGCitPjl80Ku+xZIu3wCIAjOYXVEGJ00uXeexR8hgMx/PMhiHXLWUG8eLYAvxXx/CcLmHDOEBNrl6G3JxsP9g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2"
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">=16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -861,13 +861,13 @@
       }
     },
     "node_modules/@parcel/plugin": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.14.2.tgz",
-      "integrity": "sha512-iUL6eJFcJkMmvTpaav+SA4bR+MEG/d5+QO6MQFsl+jkGEohDCbJlm2kCjnhjY9Gu2UAl2GMC0k+DFb5R2v9HYg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.14.4.tgz",
+      "integrity": "sha512-EcehbthkBtQ9S2jWAzIiSlodbIMZ0bSsN3PC1q9jVaCM16ueObjZohKkzMjzR6Qot91qL0EJoMLzuNvtryvpHA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/types": "2.14.2"
+        "@parcel/types": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0"
@@ -878,15 +878,15 @@
       }
     },
     "node_modules/@parcel/profiler": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.14.2.tgz",
-      "integrity": "sha512-kNgEz7FDC1hb7gpA/Z3s9vp6NiAJ5tEvxGhRAV64CDx98Jd/FES5MJLZ7A0vDWMHqDChgtprCkh0u3KnWrXRqg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.14.4.tgz",
+      "integrity": "sha512-oZAdCDW3bYRpBOuL4coq4OQDN6HXADaSd4X8xJCeGsEsbVfJt0Qg5RgxdWC1L86mukyZMQ9ZrQUpC8aU9CAmFg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/events": "2.14.2",
-        "@parcel/types-internal": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/events": "2.14.4",
+        "@parcel/types-internal": "2.14.4",
         "chrome-trace-event": "^1.0.2"
       },
       "engines": {
@@ -898,21 +898,21 @@
       }
     },
     "node_modules/@parcel/reporter-cli": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.14.2.tgz",
-      "integrity": "sha512-qzsn8GXBsl6dc8rLdmFsVVYAvzzSP+q+c6dvxvspC5NMu9N/fE4zfeZ0ShLexsxlpjn/ipa7cJo0gZa6E8F8qg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.14.4.tgz",
+      "integrity": "sha512-KgBXBiwGb9hqf3A6vw6eIqX1uYaMRjSqYXUUybGTOxonc+yB6J5q+skv1Wuty6IYuBfjNlV/zdvgggVZMl0ZxA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/types": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/types": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "chalk": "^4.1.2",
         "term-size": "^2.2.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -920,20 +920,20 @@
       }
     },
     "node_modules/@parcel/reporter-dev-server": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.14.2.tgz",
-      "integrity": "sha512-a5AY9+MImQAg4rJ60BlGtOf813JOlFABDpw6QJ85OEw5wp5a8BAbYUgxj7eX/gr8l2k8pSY5BZcSA9PUC3YFeg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.14.4.tgz",
+      "integrity": "sha512-Ezg24vHftV0El0tWcxnsGAxwSdNTMs9M+l9Nbm1k4rydx1lCoKBAhpa2Icv8vKZY8K075giww8TOkjk6zVkAmQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/codeframe": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/codeframe": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2"
+        "@parcel/utils": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -941,20 +941,20 @@
       }
     },
     "node_modules/@parcel/reporter-tracer": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.14.2.tgz",
-      "integrity": "sha512-zGtM2GYGpT9wrFTebrKcs7aMeCVLE+aHpfeI4dQDGFkYE5QTVswkpbZkqdhp8bVRcX+p6E8YQnRb88cJhpcDqA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.14.4.tgz",
+      "integrity": "sha512-EN+rzdEnoMuC5qbYIcuP6v1vTb/dDPrrnIEtDFEsSyuBuDfQevtOech8oHzjGEBOlC8svm+OzW/wIj2L2rmF2A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "chrome-trace-event": "^1.0.3",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -962,18 +962,18 @@
       }
     },
     "node_modules/@parcel/resolver-default": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.14.2.tgz",
-      "integrity": "sha512-HzfLPK1NUiYYuONlfPg92Lv0qfF/GtZ3hP4bNI7L0MI/eOtkd19dDxXADVaF4bTY2WmnL7m2pfaZ0+Y1+zuJuw==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.14.4.tgz",
+      "integrity": "sha512-s4XKnfScF/cwqGyYG/sB4WpktIJ55dvpu64ZiglHkkPvY5wT4p7A61mTIp6ck0ZPYmeG/zfd+P0B3qPpNF5mUw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/node-resolver-core": "3.5.2",
-        "@parcel/plugin": "2.14.2"
+        "@parcel/node-resolver-core": "3.5.4",
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -981,18 +981,18 @@
       }
     },
     "node_modules/@parcel/runtime-browser-hmr": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.14.2.tgz",
-      "integrity": "sha512-YJrnc52/2RMx4FaT4rt/1SCZIux9l/v3YFc9v+jCl+NEpBhDou//GBI3RPRJ0EPUgFOwmj3IZ9uPzm5WxokhGA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.14.4.tgz",
+      "integrity": "sha512-7o3XHOkuNy2jUH8xdKJSzIfatdAqvr/PHg9vQN0Cz4r80XCXDh1ovfz/x0Q9gpBv+LMBs+ufZ4tP+RfgJ/jKpQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2"
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1000,20 +1000,20 @@
       }
     },
     "node_modules/@parcel/runtime-js": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.14.2.tgz",
-      "integrity": "sha512-CqcCiURZh7hPNXF+wudsPbEbGPpANHFvHdR3O6IkQxKoWluqu2EyOzS89j1jMU4wprIK91D4snVYuZjYERTh/w==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.14.4.tgz",
+      "integrity": "sha512-F9RvDELU/0fyV2/rHkjpPcLeKF/ZU3gnHIQnkh2Q5/41XhymyNAvMmYGPM6VpbOAnDlYeVjwfyJ41x8FOL6u4Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1021,20 +1021,20 @@
       }
     },
     "node_modules/@parcel/runtime-rsc": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/runtime-rsc/-/runtime-rsc-2.14.2.tgz",
-      "integrity": "sha512-d58QQ/MQBlL4jvjWw3CaCAHJtwhRVuhvm0g523yor3fgbG6Iu4KFea5t5yml1C86sXMCBxWpqKJI93+bQHK1sA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/runtime-rsc/-/runtime-rsc-2.14.4.tgz",
+      "integrity": "sha512-FXoO1GWvC/yQOUYX+0rTUQVku91DSJnjegqJaiJSUOEGeJWF9mBmY/3QDkksvhwB25vJkLYsu/M5Fx83OA2u6w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1042,19 +1042,19 @@
       }
     },
     "node_modules/@parcel/runtime-service-worker": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.14.2.tgz",
-      "integrity": "sha512-atFl7z3DBH5nQeRW+rdt2JulZJVergEtAK4sWfSsUIbEiBaTiK2/v7Jjxm4UDF4laHFp6d5AGixIr9TxJl7x5w==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.14.4.tgz",
+      "integrity": "sha512-6+vz2DYP9tK+GHRPwW/qfUNvGOHvFpsN/Thk+tSIZ+PHT1DTWfpf02eo7fzpImdZAzllSz3m1IXgrOH00LdOKA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1062,9 +1062,9 @@
       }
     },
     "node_modules/@parcel/rust": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.14.2.tgz",
-      "integrity": "sha512-NPXebSTdhLttERkWgJZf/QRIIvQ8DpGby84T6FGM0pfFzocnHmuL/36J5xjquEncbSjFEVUBGomCpJNQLBwK9g==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.14.4.tgz",
+      "integrity": "sha512-Ti+ZVr8mMTgrSA7UHcFXxG98anD0C8dGzYfP1+DTgxkcU16nywTv5F/VsPqpV2qiDWrHbm06CEWQbOrowjzvVw==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -1097,16 +1097,16 @@
       }
     },
     "node_modules/@parcel/transformer-babel": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.14.2.tgz",
-      "integrity": "sha512-tVGRmHRys71AQhm4vHf9RCSYiMj5C+c7Qr0dj4RRNy8uLY+NTCi/Zdvb3ZVN069DikP1T2TpGd57gALcqK6zDQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.14.4.tgz",
+      "integrity": "sha512-9yMnlFuKQYgXJY8OWpcR2vSigpMm5MCEJJl6r+g3KkXHFwK1Gket2sC4Wd5JbHv98SNzJ9rdD4Xrre/eXJu6pw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
+        "@parcel/utils": "2.14.4",
         "browserslist": "^4.6.6",
         "json5": "^2.2.0",
         "nullthrows": "^1.1.1",
@@ -1114,7 +1114,7 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1122,23 +1122,23 @@
       }
     },
     "node_modules/@parcel/transformer-css": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.14.2.tgz",
-      "integrity": "sha512-Q7QOwty7R/VWx1wPhnOKY7CZb4GRK/GBJH9HP6vo/1+Zf5fm9jbYhItZb3tDl7ufKqZz5UfbJhBhybaETO6umg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.14.4.tgz",
+      "integrity": "sha512-sf0NuzPH4kSpL4VgV94xY5kPxoAndoNouUFPaHmN3hW6QiTHShRubfDsginSOHl5QhghSfr4qtP7t7HxCSDq6A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
+        "@parcel/utils": "2.14.4",
         "browserslist": "^4.6.6",
         "lightningcss": "^1.22.1",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1146,15 +1146,15 @@
       }
     },
     "node_modules/@parcel/transformer-html": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.14.2.tgz",
-      "integrity": "sha512-6HGo7m/ARInEeXoYWCIYz1wtK9pJPbRkxdqZr/lSKQAbLsyTZQZx/GgnkgKRtsmcLp8vCffMI4Yul/2RPcTJ0A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.14.4.tgz",
+      "integrity": "sha512-h0iCfU2SN+gh5LTfZTRiXHavl3CdJ2i3F9jzVrRjdH8pfLqy5eOy1tQ8vyqMsshk+VdlZ1+vUiZ7uaKkkBq/fg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "nullthrows": "^1.1.1",
         "posthtml": "^0.16.5",
         "posthtml-parser": "^0.12.1",
@@ -1164,7 +1164,7 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1185,38 +1185,38 @@
       }
     },
     "node_modules/@parcel/transformer-image": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.14.2.tgz",
-      "integrity": "sha512-av3JZ5sizv6cIspSusZErk6yGd23UpWGIbQJsIMFnxMF9miBgmN0er92d40LI9gIGyEcpWMBYyUPH2jHEQnaNg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.14.4.tgz",
+      "integrity": "sha512-QVGAdQ16YxNo7PTzBazUabmrn4dss1EDeMrh0bFUeRTZdYaYu5z/+gnRc5R4oHcHK6oxnECi808TquMQcQxDEA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
-        "@parcel/workers": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
+        "@parcel/workers": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/transformer-js": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.14.2.tgz",
-      "integrity": "sha512-8urpoFlRpFUHEwbOxXPbqmAI+bRjcg0ED6msuSbzVODIc4qsztVt48gXuSfEBfcQIfFJzDpRTh01GOYjMQQKRA==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.14.4.tgz",
+      "integrity": "sha512-fBC8NVM8xXxjGQY5r88Z46akSErFO5hRVA4kuRI0tkXorjov3Mu4hu6MLq974TEQluSvGXUYGT5Mq2iXZ75M7w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "@parcel/source-map": "^2.1.1",
-        "@parcel/utils": "2.14.2",
-        "@parcel/workers": "2.14.2",
+        "@parcel/utils": "2.14.4",
+        "@parcel/workers": "2.14.4",
         "@swc/helpers": "^0.5.0",
         "browserslist": "^4.6.6",
         "nullthrows": "^1.1.1",
@@ -1225,29 +1225,29 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@parcel/transformer-json": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.14.2.tgz",
-      "integrity": "sha512-wcQrlDJAmCVZ1PHVKb1ayHWzfdqpCMN8TUoYA6kB1626K6wBv5FD9NqQZA4Fs5u8cVy/ZhtZ+LfogzS7wQSpwQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.14.4.tgz",
+      "integrity": "sha512-+28n3/qhc2q6Zoqhufk1YKU442a2JyyE0ILFsT17Of+lcNX+QtXYPOYcky7TNENnoUz9TpOAFev64P99UN7huA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
+        "@parcel/plugin": "2.14.4",
         "json5": "^2.2.0"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1255,17 +1255,17 @@
       }
     },
     "node_modules/@parcel/transformer-node": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-node/-/transformer-node-2.14.2.tgz",
-      "integrity": "sha512-Y2Wz4ziyqOwOe+6/yayKdvYhoz6AvfblY38upfjOCh8amZcmcXCZRxVf8uZAm5y2BvbVbWZTdNYaK0o+MDud5g==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-node/-/transformer-node-2.14.4.tgz",
+      "integrity": "sha512-K5k/GkGN4SwGdil8g10AcPPJn+hV0vzcv4l2qYoCqaxxIPCrpjmMnoA8a3kRgxvD8s54KciFYYjmU5Cj5NjvbA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2"
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1273,16 +1273,16 @@
       }
     },
     "node_modules/@parcel/transformer-postcss": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.14.2.tgz",
-      "integrity": "sha512-ny74JKyYDx0mW+6r7pkRrKRe/vxq+9l035dynTs4blBJloI1gwpelnpbK0kA9t13hb7So1XxkXphO90GRB202A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.14.4.tgz",
+      "integrity": "sha512-GxkXkcgG2XGt6ivoUF5yD1tmQPV+d71gUxyBGv1i1jg4x65R12Gc/npzWk9TCH2dShSdHOA90OJpNL4k0JlLtg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "clone": "^2.1.1",
         "nullthrows": "^1.1.1",
         "postcss-value-parser": "^4.2.0",
@@ -1290,7 +1290,7 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1298,14 +1298,14 @@
       }
     },
     "node_modules/@parcel/transformer-posthtml": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.14.2.tgz",
-      "integrity": "sha512-U4Lt7j1EYkxiDiLpem05m1xSEebcpWU8VPdc4n4Y3P5NjbW3lFivMvIK30QRkjoDofpY2tiLFROrdNy8EFqe1A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.14.4.tgz",
+      "integrity": "sha512-V9dnsA5+t7uF/hWc9HwJcaKkmP8K2go6yAQOpxu+knyszfz3t2jw/k4L/VFjqCATf90agal/iRTPVkHvWDCzZw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1",
         "posthtml": "^0.16.5",
         "posthtml-parser": "^0.12.1",
@@ -1314,7 +1314,7 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1322,17 +1322,17 @@
       }
     },
     "node_modules/@parcel/transformer-raw": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.14.2.tgz",
-      "integrity": "sha512-ufGaypQLRsnZBZqylaJQQ0W5PWre+dGVlnBBkuQYY9qVo2wvGfP0sPY+xKK2i6IFfegmigFKeigViDeSoo6Ldw==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.14.4.tgz",
+      "integrity": "sha512-GCuUWKAb9YHB/krmzBeQbtHKKZopT3c3AzoPTq/4woV4Ti1zUZ83oFyTX1tBKQ+MMB1BW+HrPkFld0iY4gp/Ng==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/plugin": "2.14.2"
+        "@parcel/plugin": "2.14.4"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1340,20 +1340,20 @@
       }
     },
     "node_modules/@parcel/transformer-react-refresh-wrap": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.14.2.tgz",
-      "integrity": "sha512-gSqqjxN6qEQQtloL2QNleL0RfU5TeZEHz9IAYxTgo/kpzLv8Oiz0T93CmutbzkF38uyjI1xKO0Qj8X+lGhO9zQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.14.4.tgz",
+      "integrity": "sha512-nb70CAvjDizAIQ1naZ39P/PxYWtPllWvvxrkpldNnk8AF74OcHodrsuHKwhyPZHMmnMdexFonsenf+VeN4l/aQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/error-overlay": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/error-overlay": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "react-refresh": ">=0.9 <=0.16"
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1361,15 +1361,15 @@
       }
     },
     "node_modules/@parcel/transformer-svg": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.14.2.tgz",
-      "integrity": "sha512-WFyh/JwAeJWwQX2NUrKGWolXrtL6Uu/BbrYAFvWIH9GHVlq24GofRDKnncrbtF8CJ4y3K7S5ztExLpirLQT0Tg==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.14.4.tgz",
+      "integrity": "sha512-iqnyvgGmwu4wNh+khEBkMEu1hAGZWnc7/xQnhiuQBAcoy5qGNEjyVUv6PbMLWWAVK/0PjqV4FaB2deXBYKeW0A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/plugin": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/plugin": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "nullthrows": "^1.1.1",
         "posthtml": "^0.16.5",
         "posthtml-parser": "^0.12.1",
@@ -1378,7 +1378,7 @@
       },
       "engines": {
         "node": ">= 16.0.0",
-        "parcel": "^2.14.2"
+        "parcel": "^2.14.4"
       },
       "funding": {
         "type": "opencollective",
@@ -1386,41 +1386,41 @@
       }
     },
     "node_modules/@parcel/types": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.14.2.tgz",
-      "integrity": "sha512-15vSnfdjWB3fLkqGGZ0dEZVeHheH4XgtkSBnmwhgLN7LgigK1P9BwwN8/cN/tIKMP+YfcvjVpHCtaeKRGpje9A==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.14.4.tgz",
+      "integrity": "sha512-NL4N9M6IPwBquAo1DKOPqy66nwJLXMX3KPalzAA7ktt3HYr5YNG5h3GeVXPOLNIVVMrSIiodYGPEeEBYy6kyYA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/types-internal": "2.14.2",
-        "@parcel/workers": "2.14.2"
+        "@parcel/types-internal": "2.14.4",
+        "@parcel/workers": "2.14.4"
       }
     },
     "node_modules/@parcel/types-internal": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.14.2.tgz",
-      "integrity": "sha512-ylh2LMQtPPhc20RtygT1Qpji6zK4fSdpnokWyImJG6GYLN5tqN7tS0F0o6nPo6/1ll+X11CxTa/MPO6g+NaphQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.14.4.tgz",
+      "integrity": "sha512-Y2JnljFG7KcxLrCiYNCqBfjDo12alhRVpNugm0jwz1EQ3OQNO3HYiB0f3djq6pv2clZ5ndpgkNgYsn6L7KR9Nw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/feature-flags": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/feature-flags": "2.14.4",
         "@parcel/source-map": "^2.1.1",
         "utility-types": "^3.10.0"
       }
     },
     "node_modules/@parcel/utils": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.14.2.tgz",
-      "integrity": "sha512-jgDQrzPOU4IfWnYjRL2zGMbc439334ia1nRa13XcID3+oEp10HWTxw26PGhnYQ02mlOwxg8mtrb5ugZOL+dEIQ==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.14.4.tgz",
+      "integrity": "sha512-icK6QgKjis+UZLyaHJcsKXYOSKYeYr41m8ZB9j20/yEcvrMqj/LMVsNjLz3iWVhLwfgussG2ODxycCdu3M5cvQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/codeframe": "2.14.2",
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/markdown-ansi": "2.14.2",
-        "@parcel/rust": "2.14.2",
+        "@parcel/codeframe": "2.14.4",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/markdown-ansi": "2.14.4",
+        "@parcel/rust": "2.14.4",
         "@parcel/source-map": "^2.1.1",
         "chalk": "^4.1.2",
         "nullthrows": "^1.1.1"
@@ -1743,17 +1743,17 @@
       }
     },
     "node_modules/@parcel/workers": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.14.2.tgz",
-      "integrity": "sha512-tbM71fwlmwOL62v+B1cxnte0oS/D9sNVW2CxFZJROpi4jiBJYi2SWCJsQPNVbXYdnU2gzSbQX7ozX0CaE4f9Qw==",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.14.4.tgz",
+      "integrity": "sha512-OAjW2dJOaRKy4UD5YwnUi7mY+gt/QbjagjrKh2fQDnrvuK8dpr5GrjEOLOe6QsxEE0vpe3jshhGMJTYqLni3kQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/profiler": "2.14.2",
-        "@parcel/types-internal": "2.14.2",
-        "@parcel/utils": "2.14.2",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/profiler": "2.14.4",
+        "@parcel/types-internal": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "nullthrows": "^1.1.1"
       },
       "engines": {
@@ -1764,7 +1764,7 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.14.2"
+        "@parcel/core": "^2.14.4"
       }
     },
     "node_modules/@swc/core": {
@@ -1994,9 +1994,9 @@
       }
     },
     "node_modules/@swc/types": {
-      "version": "0.1.19",
-      "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz",
-      "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==",
+      "version": "0.1.20",
+      "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.20.tgz",
+      "integrity": "sha512-/rlIpxwKrhz4BIplXf6nsEHtqlhzuNN34/k3kMAXH4/lvVoA3cdq+60aqVNnyvw2uITEaCi0WV3pxBe4dQqoXQ==",
       "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
@@ -2508,9 +2508,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.5.123",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz",
-      "integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==",
+      "version": "1.5.128",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz",
+      "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==",
       "dev": true,
       "license": "ISC"
     },
@@ -3558,24 +3558,24 @@
       "license": "MIT"
     },
     "node_modules/parcel": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.14.2.tgz",
-      "integrity": "sha512-dqB4/Oo8L7HfWyrxAQKnizQ/XzQM2iAY5fEaZUgS4wh+B3FE4LO5JVgobhVBBrIOoT02sV4gUEQhNJeU3raSuA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@parcel/config-default": "2.14.2",
-        "@parcel/core": "2.14.2",
-        "@parcel/diagnostic": "2.14.2",
-        "@parcel/events": "2.14.2",
-        "@parcel/feature-flags": "2.14.2",
-        "@parcel/fs": "2.14.2",
-        "@parcel/logger": "2.14.2",
-        "@parcel/package-manager": "2.14.2",
-        "@parcel/reporter-cli": "2.14.2",
-        "@parcel/reporter-dev-server": "2.14.2",
-        "@parcel/reporter-tracer": "2.14.2",
-        "@parcel/utils": "2.14.2",
+      "version": "2.14.4",
+      "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.14.4.tgz",
+      "integrity": "sha512-XmnIurC4CPdQm9OFJMbjgvto5Jz2szZ5/p6EY4pAljU/SLPhtBzJ3+J6OyljGFdbVxEXx4dp+7Cvf7eaDZsEEg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@parcel/config-default": "2.14.4",
+        "@parcel/core": "2.14.4",
+        "@parcel/diagnostic": "2.14.4",
+        "@parcel/events": "2.14.4",
+        "@parcel/feature-flags": "2.14.4",
+        "@parcel/fs": "2.14.4",
+        "@parcel/logger": "2.14.4",
+        "@parcel/package-manager": "2.14.4",
+        "@parcel/reporter-cli": "2.14.4",
+        "@parcel/reporter-dev-server": "2.14.4",
+        "@parcel/reporter-tracer": "2.14.4",
+        "@parcel/utils": "2.14.4",
         "chalk": "^4.1.2",
         "commander": "^12.1.0",
         "get-port": "^4.2.0"
diff --git a/samples/Parcel/package.json b/samples/Parcel/package.json
index 8ea48fa1..3143ac87 100644
--- a/samples/Parcel/package.json
+++ b/samples/Parcel/package.json
@@ -13,6 +13,6 @@
   },
   "devDependencies": {
     "concurrently": "^9.1.2",
-    "parcel": "^2.14.2"
+    "parcel": "^2.14.4"
   }
 }
diff --git a/src/ResponseValidator.ts b/src/ResponseValidator.ts
index ec8f1037..9c103536 100644
--- a/src/ResponseValidator.ts
+++ b/src/ResponseValidator.ts
@@ -53,13 +53,14 @@ export class ResponseValidator {
 
     public async validateCredentialsResponse(response: SigninResponse, skipUserInfo: boolean): Promise<void> {
         const logger = this._logger.create("validateCredentialsResponse");
+        const shouldValidateSubClaim = response.isOpenId && !!response.id_token;
 
-        if (response.isOpenId && !!response.id_token) {
+        if (shouldValidateSubClaim) {
             this._validateIdTokenAttributes(response);
         }
         logger.debug("tokens validated");
 
-        await this._processClaims(response, skipUserInfo, response.isOpenId);
+        await this._processClaims(response, skipUserInfo, shouldValidateSubClaim);
         logger.debug("claims processed");
     }
 


Test patch:
diff --git a/src/ResponseValidator.test.ts b/src/ResponseValidator.test.ts
index f8cded3d..de9381a9 100644
--- a/src/ResponseValidator.test.ts
+++ b/src/ResponseValidator.test.ts
@@ -610,6 +610,22 @@ describe("ResponseValidator", () => {
 
         });
 
+        it("should process an openid signin response without an id_token and userinfo containing sub property, as a non-openid signin response", async () => {
+            Object.assign(stubResponse, {
+                access_token: "access_token",
+                isOpenId: true,
+            });
+
+            jest.spyOn(subject["_userInfoService"], "getClaims").mockResolvedValue({
+                nickname: "Nick",
+                sub: "subsub",
+            });
+
+            // act
+
+            await expect(subject.validateCredentialsResponse(stubResponse, false)).resolves.toBeUndefined();
+        });
+
         it("should process a valid non-openid signin response skipping userInfo", async () => {
             // arrange
             Object.assign(stubResponse, {