diff --git a/package.json b/package.json
index 368075c..44f0c36 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,6 @@
"dependencies": {
"@primevue/themes": "4.2.5",
"axios": "1.7.9",
- "firebase": "11.3.0",
"pinia": "2.3.1",
"primeflex": "3.3.1",
"primeicons": "7.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d8b69c0..2ec8f39 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,9 +14,6 @@ importers:
axios:
specifier: 1.7.9
version: 1.7.9
- firebase:
- specifier: 11.3.0
- version: 11.3.0
pinia:
specifier: 2.3.1
version: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))
@@ -68,225 +65,6 @@ packages:
resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==}
engines: {node: '>=6.9.0'}
- '@firebase/analytics-compat@0.2.17':
- resolution: {integrity: sha512-SJNVOeTvzdqZQvXFzj7yAirXnYcLDxh57wBFROfeowq/kRN1AqOw1tG6U4OiFOEhqi7s3xLze/LMkZatk2IEww==}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/analytics-types@0.8.3':
- resolution: {integrity: sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==}
-
- '@firebase/analytics@0.10.11':
- resolution: {integrity: sha512-zwuPiRE0+hgcS95JZbJ6DFQN4xYFO8IyGxpeePTV51YJMwCf3lkBa6FnZ/iXIqDKcBPMgMuuEZozI0BJWaLEYg==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/app-check-compat@0.3.18':
- resolution: {integrity: sha512-qjozwnwYmAIdrsVGrJk+hnF1WBois54IhZR6gO0wtZQoTvWL/GtiA2F31TIgAhF0ayUiZhztOv1RfC7YyrZGDQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/app-check-interop-types@0.3.3':
- resolution: {integrity: sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==}
-
- '@firebase/app-check-types@0.5.3':
- resolution: {integrity: sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==}
-
- '@firebase/app-check@0.8.11':
- resolution: {integrity: sha512-42zIfRI08/7bQqczAy7sY2JqZYEv3a1eNa4fLFdtJ54vNevbBIRSEA3fZgRqWFNHalh5ohsBXdrYgFqaRIuCcQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/app-compat@0.2.49':
- resolution: {integrity: sha512-vf838b9WrHs2GH6NfsvA27a3ngDzCnR7oxmc5LJHaJ7mWSCuce1iDRJ2B6raJ6SH9592XXvtW+kzRcPYhC/LoA==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/app-types@0.9.3':
- resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==}
-
- '@firebase/app@0.11.0':
- resolution: {integrity: sha512-FaPl2RB2iClQK4IIAN4ruhzyGNRcvAwXk0Ltqdt55RiTmQ4aM2EAJicgI8QNQd2JIkeCT1K8JKsEba3T1/J7FA==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/auth-compat@0.5.18':
- resolution: {integrity: sha512-dFBev8AMNb2AgIt9afwf/Ku4/0Wq9R9OFSeBB/xjyJt+RfQ9PnNWqU2oFphews23byLg6jle8twRA7iOYfRGRw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/auth-interop-types@0.2.4':
- resolution: {integrity: sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==}
-
- '@firebase/auth-types@0.13.0':
- resolution: {integrity: sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==}
- peerDependencies:
- '@firebase/app-types': 0.x
- '@firebase/util': 1.x
-
- '@firebase/auth@1.9.0':
- resolution: {integrity: sha512-Xz2mbEYauF689qXG/4HppS2+/yGo9R7B6eNUBh3H2+XpAZTGdx8d8TFsW/BMTAK9Q95NB0pb1Bbvfx0lwofq8Q==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
- '@react-native-async-storage/async-storage': ^1.18.1
- peerDependenciesMeta:
- '@react-native-async-storage/async-storage':
- optional: true
-
- '@firebase/component@0.6.12':
- resolution: {integrity: sha512-YnxqjtohLbnb7raXt2YuA44cC1wA9GiehM/cmxrsoxKlFxBLy2V0OkRSj9gpngAE0UoJ421Wlav9ycO7lTPAUw==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/data-connect@0.3.0':
- resolution: {integrity: sha512-inbLq0JyQD/d02Al3Lso0Hc8z1BVpB3dYSMFcQkeKhYyjn5bspLczLdasPbCOEUp8MOkLblLZhJuRs7Q/spFnw==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/database-compat@2.0.3':
- resolution: {integrity: sha512-uHGQrSUeJvsDfA+IyHW5O4vdRPsCksEzv4T4Jins+bmQgYy20ZESU4x01xrQCn/nzqKHuQMEW99CoCO7D+5NiQ==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/database-types@1.0.8':
- resolution: {integrity: sha512-6lPWIGeufhUq1heofZULyVvWFhD01TUrkkB9vyhmksjZ4XF7NaivQp9rICMk7QNhqwa+uDCaj4j+Q8qqcSVZ9g==}
-
- '@firebase/database@1.0.12':
- resolution: {integrity: sha512-psFl5t6rSFHq3i3fnU1QQlc4BB9Hnhh8TgEqvQlPPm8kDLw8gYxvjqYw3c5CZW0+zKR837nwT6im/wtJUivMKw==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/firestore-compat@0.3.42':
- resolution: {integrity: sha512-L/JqnVw7Bf+2jcCmW1nCiknkIVVM5RIR4rHE1UrtInAvP9vo8pUhFEZVzbwX71SuCoHOwjiaPDvVSeOFachokg==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/firestore-types@3.0.3':
- resolution: {integrity: sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==}
- peerDependencies:
- '@firebase/app-types': 0.x
- '@firebase/util': 1.x
-
- '@firebase/firestore@4.7.7':
- resolution: {integrity: sha512-DDYBjqSyd2vD3SjfRqI2Q9Ua1N0URP+1P0/SnNdVSp0/S5mkbaklIX/eU+199ze0XXnC61RYLqi6KYTYtGoz2A==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/functions-compat@0.3.19':
- resolution: {integrity: sha512-uw4tR8NcJCDu86UD63Za8A8SgFgmAVFb1XsGlkuBY7gpLyZWEFavWnwRkZ/8cUwpqUhp/SptXFZ1WFJSnOokLw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/functions-types@0.6.3':
- resolution: {integrity: sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==}
-
- '@firebase/functions@0.12.2':
- resolution: {integrity: sha512-iKpFDoCYk/Qm+Qwv5ynRb9/yq64QOt0A0+t9NuekyAZnSoV56kSNq/PmsVmBauar5SlmEjhHk6QKdMBP9S0gXA==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/installations-compat@0.2.12':
- resolution: {integrity: sha512-RhcGknkxmFu92F6Jb3rXxv6a4sytPjJGifRZj8MSURPuv2Xu+/AispCXEfY1ZraobhEHTG5HLGsP6R4l9qB5aA==}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/installations-types@0.5.3':
- resolution: {integrity: sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==}
- peerDependencies:
- '@firebase/app-types': 0.x
-
- '@firebase/installations@0.6.12':
- resolution: {integrity: sha512-ES/WpuAV2k2YtBTvdaknEo7IY8vaGjIjS3zhnHSAIvY9KwTR8XZFXOJoZ3nSkjN1A5R4MtEh+07drnzPDg9vaw==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/logger@0.4.4':
- resolution: {integrity: sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/messaging-compat@0.2.16':
- resolution: {integrity: sha512-9HZZ88Ig3zQ0ok/Pwt4gQcNsOhoEy8hDHoGsV1am6ulgMuGuDVD2gl11Lere2ksL+msM12Lddi2x/7TCqmODZw==}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/messaging-interop-types@0.2.3':
- resolution: {integrity: sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==}
-
- '@firebase/messaging@0.12.16':
- resolution: {integrity: sha512-VJ8sCEIeP3+XkfbJA7410WhYGHdloYFZXoHe/vt+vNVDGw8JQPTQSVTRvjrUprEf5I4Tbcnpr2H34lS6zhCHSA==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/performance-compat@0.2.13':
- resolution: {integrity: sha512-pB0SMQj2TLQ6roDcX0YQDWvUnVgsVOl0VnUvyT/VBdCUuQYDHobZsPEuQsoEqmPA44KS/Gl0oyKqf+I8UPtRgw==}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/performance-types@0.2.3':
- resolution: {integrity: sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==}
-
- '@firebase/performance@0.7.0':
- resolution: {integrity: sha512-L91PwYuiJdKXKSRqsWNicvTppAJVzKjye03UlegeD6TkpKjb93T8AmJ9B0Mt0bcWHCNtnnRBCdSCvD2U9GZDjw==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/remote-config-compat@0.2.12':
- resolution: {integrity: sha512-91jLWPtubIuPBngg9SzwvNCWzhMLcyBccmt7TNZP+y1cuYFNOWWHKUXQ3IrxCLB7WwLqQaEu7fTDAjHsTyBsSw==}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/remote-config-types@0.4.0':
- resolution: {integrity: sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==}
-
- '@firebase/remote-config@0.5.0':
- resolution: {integrity: sha512-weiEbpBp5PBJTHUWR4GwI7ZacaAg68BKha5QnZ8Go65W4oQjEWqCW/rfskABI/OkrGijlL3CUmCB/SA6mVo0qA==}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/storage-compat@0.3.16':
- resolution: {integrity: sha512-EeMuok/s0r938lEomia8XILEqSYULm7HcYZ/GTZLDWur0kMf2ktuPVZiTdRiwEV3Iki7FtQO5txrQ/0pLRVLAw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app-compat': 0.x
-
- '@firebase/storage-types@0.8.3':
- resolution: {integrity: sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==}
- peerDependencies:
- '@firebase/app-types': 0.x
- '@firebase/util': 1.x
-
- '@firebase/storage@0.13.6':
- resolution: {integrity: sha512-BEJLYQzVgAoglRl5VRIRZ91RRBZgS/O37/PSGQJBYNuoLmFZUrtwrlLTOAwG776NlO9VQR+K2j15/36Lr2EqHA==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
-
- '@firebase/util@1.10.3':
- resolution: {integrity: sha512-wfoF5LTy0m2ufUapV0ZnpcGQvuavTbJ5Qr1Ze9OJGL70cSMvhDyjS4w2121XdA3lGZSTOsDOyGhpoDtYwck85A==}
- engines: {node: '>=18.0.0'}
-
- '@firebase/vertexai@1.0.4':
- resolution: {integrity: sha512-Nkf/r4u166b4Id6zrrW0Qtg1KyZpQvvYchtkebamnHtIfY+Qnt51I/sx4Saos/WrmO8SnrSU850LfmJ7pehYXg==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@firebase/app': 0.x
- '@firebase/app-types': 0.x
-
- '@firebase/webchannel-wrapper@1.0.3':
- resolution: {integrity: sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ==}
-
- '@grpc/grpc-js@1.9.15':
- resolution: {integrity: sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==}
- engines: {node: ^8.13.0 || >=10.10.0}
-
- '@grpc/proto-loader@0.7.13':
- resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==}
- engines: {node: '>=6'}
- hasBin: true
-
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
@@ -345,36 +123,6 @@ packages:
resolution: {integrity: sha512-8F7yA36xYIKtNuAuyBdZZEks/bKDwlhH5WjpqGGB0FdwfAEoBYsynQ5sdqcT2Lb/NsajHmS5lc++Ttlvr1g1Lw==}
engines: {node: '>=12.11.0'}
- '@protobufjs/aspromise@1.1.2':
- resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
-
- '@protobufjs/base64@1.1.2':
- resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
-
- '@protobufjs/codegen@2.0.4':
- resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
-
- '@protobufjs/eventemitter@1.1.0':
- resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
-
- '@protobufjs/fetch@1.1.0':
- resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
-
- '@protobufjs/float@1.0.2':
- resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
-
- '@protobufjs/inquire@1.1.0':
- resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
-
- '@protobufjs/path@1.1.2':
- resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
-
- '@protobufjs/pool@1.1.0':
- resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
-
- '@protobufjs/utf8@1.1.0':
- resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
-
'@rsbuild/core@1.2.5':
resolution: {integrity: sha512-k9JFE613b0X0WUaqfp6CIh2sS+jpzx30cCqe8wPIaQ/tVfUc1kr7gfR3dwcdiE68+WVnFHGm1JqMdeOZogjsJQ==}
engines: {node: '>=16.7.0'}
@@ -579,10 +327,6 @@ packages:
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
@@ -612,10 +356,6 @@ packages:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines: {node: '>=6.0'}
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -643,9 +383,6 @@ packages:
electron-to-chromium@1.5.97:
resolution: {integrity: sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==}
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
enhanced-resolve@5.18.1:
resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
@@ -693,13 +430,6 @@ packages:
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
- faye-websocket@0.11.4:
- resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
- engines: {node: '>=0.8.0'}
-
- firebase@11.3.0:
- resolution: {integrity: sha512-wLuBsWqg/M3pay2qOOLLKjTQxPUO2yrJgZLt4TKUwA3c3lrFNM2zc40uzD9LQdUk6H9HEK6bXjGPFrpwmu7HzA==}
-
follow-redirects@1.15.9:
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
engines: {node: '>=4.0'}
@@ -713,10 +443,6 @@ packages:
resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
engines: {node: '>= 6'}
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
@@ -730,16 +456,6 @@ packages:
hash-sum@2.0.0:
resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
- http-parser-js@0.5.9:
- resolution: {integrity: sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==}
-
- idb@7.1.1:
- resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
isomorphic-rslog@0.0.6:
resolution: {integrity: sha512-HM0q6XqQ93psDlqvuViNs/Ea3hAyGDkIdVAHlrEocjjAwGrs1fZ+EdQjS9eUPacnYB7Y8SoDdSY3H8p3ce205A==}
engines: {node: '>=14.17.6'}
@@ -761,12 +477,6 @@ packages:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
- lodash.camelcase@4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
-
- long@5.3.0:
- resolution: {integrity: sha512-5vvY5yF1zF/kXk+L94FRiTDa1Znom46UjPCH6/XbSvS8zBKMFBHTJk8KDMqJ+2J6QezQFi7k1k8v21ClJYHPaw==}
-
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
@@ -818,10 +528,6 @@ packages:
resolution: {integrity: sha512-7UMOIJvdFz4jQyhC76yhNdSlHtXvVpmE2JSo2ndUTBWjWJOkYyT562rQ4ayO+bMdJLtzBGqgY64I9ZfEvNd7vQ==}
engines: {node: '>=12.11.0'}
- protobufjs@7.4.0:
- resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==}
- engines: {node: '>=12.0.0'}
-
proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
@@ -832,10 +538,6 @@ packages:
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
@@ -865,14 +567,6 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@@ -966,9 +660,6 @@ packages:
resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==}
engines: {node: '>=10.13.0'}
- web-vitals@4.2.4:
- resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==}
-
webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
@@ -983,30 +674,6 @@ packages:
webpack-cli:
optional: true
- websocket-driver@0.7.4:
- resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
- engines: {node: '>=0.8.0'}
-
- websocket-extensions@0.1.4:
- resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
- engines: {node: '>=0.8.0'}
-
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
-
snapshots:
'@babel/helper-string-parser@7.25.9': {}
@@ -1022,336 +689,6 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@firebase/analytics-compat@0.2.17(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/analytics': 0.10.11(@firebase/app@0.11.0)
- '@firebase/analytics-types': 0.8.3
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/analytics-types@0.8.3': {}
-
- '@firebase/analytics@0.10.11(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/app-check-compat@0.3.18(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-check': 0.8.11(@firebase/app@0.11.0)
- '@firebase/app-check-types': 0.5.3
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/app-check-interop-types@0.3.3': {}
-
- '@firebase/app-check-types@0.5.3': {}
-
- '@firebase/app-check@0.8.11(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/app-compat@0.2.49':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/app-types@0.9.3': {}
-
- '@firebase/app@0.11.0':
- dependencies:
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- idb: 7.1.1
- tslib: 2.8.1
-
- '@firebase/auth-compat@0.5.18(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/auth': 1.9.0(@firebase/app@0.11.0)
- '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)
- '@firebase/component': 0.6.12
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
- - '@firebase/app-types'
- - '@react-native-async-storage/async-storage'
-
- '@firebase/auth-interop-types@0.2.4': {}
-
- '@firebase/auth-types@0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)':
- dependencies:
- '@firebase/app-types': 0.9.3
- '@firebase/util': 1.10.3
-
- '@firebase/auth@1.9.0(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/component@0.6.12':
- dependencies:
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/data-connect@0.3.0(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/auth-interop-types': 0.2.4
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/database-compat@2.0.3':
- dependencies:
- '@firebase/component': 0.6.12
- '@firebase/database': 1.0.12
- '@firebase/database-types': 1.0.8
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/database-types@1.0.8':
- dependencies:
- '@firebase/app-types': 0.9.3
- '@firebase/util': 1.10.3
-
- '@firebase/database@1.0.12':
- dependencies:
- '@firebase/app-check-interop-types': 0.3.3
- '@firebase/auth-interop-types': 0.2.4
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- faye-websocket: 0.11.4
- tslib: 2.8.1
-
- '@firebase/firestore-compat@0.3.42(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/firestore': 4.7.7(@firebase/app@0.11.0)
- '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
- - '@firebase/app-types'
-
- '@firebase/firestore-types@3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)':
- dependencies:
- '@firebase/app-types': 0.9.3
- '@firebase/util': 1.10.3
-
- '@firebase/firestore@4.7.7(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- '@firebase/webchannel-wrapper': 1.0.3
- '@grpc/grpc-js': 1.9.15
- '@grpc/proto-loader': 0.7.13
- tslib: 2.8.1
-
- '@firebase/functions-compat@0.3.19(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/functions': 0.12.2(@firebase/app@0.11.0)
- '@firebase/functions-types': 0.6.3
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/functions-types@0.6.3': {}
-
- '@firebase/functions@0.12.2(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/app-check-interop-types': 0.3.3
- '@firebase/auth-interop-types': 0.2.4
- '@firebase/component': 0.6.12
- '@firebase/messaging-interop-types': 0.2.3
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/installations-compat@0.2.12(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3)
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
- - '@firebase/app-types'
-
- '@firebase/installations-types@0.5.3(@firebase/app-types@0.9.3)':
- dependencies:
- '@firebase/app-types': 0.9.3
-
- '@firebase/installations@0.6.12(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/util': 1.10.3
- idb: 7.1.1
- tslib: 2.8.1
-
- '@firebase/logger@0.4.4':
- dependencies:
- tslib: 2.8.1
-
- '@firebase/messaging-compat@0.2.16(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/messaging': 0.12.16(@firebase/app@0.11.0)
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/messaging-interop-types@0.2.3': {}
-
- '@firebase/messaging@0.12.16(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/messaging-interop-types': 0.2.3
- '@firebase/util': 1.10.3
- idb: 7.1.1
- tslib: 2.8.1
-
- '@firebase/performance-compat@0.2.13(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/performance': 0.7.0(@firebase/app@0.11.0)
- '@firebase/performance-types': 0.2.3
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/performance-types@0.2.3': {}
-
- '@firebase/performance@0.7.0(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- web-vitals: 4.2.4
-
- '@firebase/remote-config-compat@0.2.12(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/remote-config': 0.5.0(@firebase/app@0.11.0)
- '@firebase/remote-config-types': 0.4.0
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
-
- '@firebase/remote-config-types@0.4.0': {}
-
- '@firebase/remote-config@0.5.0(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/storage-compat@0.3.16(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app-compat': 0.2.49
- '@firebase/component': 0.6.12
- '@firebase/storage': 0.13.6(@firebase/app@0.11.0)
- '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)
- '@firebase/util': 1.10.3
- tslib: 2.8.1
- transitivePeerDependencies:
- - '@firebase/app'
- - '@firebase/app-types'
-
- '@firebase/storage-types@0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)':
- dependencies:
- '@firebase/app-types': 0.9.3
- '@firebase/util': 1.10.3
-
- '@firebase/storage@0.13.6(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/component': 0.6.12
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/util@1.10.3':
- dependencies:
- tslib: 2.8.1
-
- '@firebase/vertexai@1.0.4(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)':
- dependencies:
- '@firebase/app': 0.11.0
- '@firebase/app-check-interop-types': 0.3.3
- '@firebase/app-types': 0.9.3
- '@firebase/component': 0.6.12
- '@firebase/logger': 0.4.4
- '@firebase/util': 1.10.3
- tslib: 2.8.1
-
- '@firebase/webchannel-wrapper@1.0.3': {}
-
- '@grpc/grpc-js@1.9.15':
- dependencies:
- '@grpc/proto-loader': 0.7.13
- '@types/node': 22.13.1
-
- '@grpc/proto-loader@0.7.13':
- dependencies:
- lodash.camelcase: 4.3.0
- long: 5.3.0
- protobufjs: 7.4.0
- yargs: 17.7.2
-
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
@@ -1418,29 +755,6 @@ snapshots:
dependencies:
'@primeuix/styled': 0.3.2
- '@protobufjs/aspromise@1.1.2': {}
-
- '@protobufjs/base64@1.1.2': {}
-
- '@protobufjs/codegen@2.0.4': {}
-
- '@protobufjs/eventemitter@1.1.0': {}
-
- '@protobufjs/fetch@1.1.0':
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/inquire': 1.1.0
-
- '@protobufjs/float@1.0.2': {}
-
- '@protobufjs/inquire@1.1.0': {}
-
- '@protobufjs/path@1.1.2': {}
-
- '@protobufjs/pool@1.1.0': {}
-
- '@protobufjs/utf8@1.1.0': {}
-
'@rsbuild/core@1.2.5':
dependencies:
'@rspack/core': 1.2.2(@swc/helpers@0.5.15)
@@ -1700,8 +1014,6 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- ansi-regex@5.0.1: {}
-
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
@@ -1734,12 +1046,6 @@ snapshots:
chrome-trace-event@1.0.4: {}
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -1760,8 +1066,6 @@ snapshots:
electron-to-chromium@1.5.97: {}
- emoji-regex@8.0.0: {}
-
enhanced-resolve@5.18.1:
dependencies:
graceful-fs: 4.2.11
@@ -1796,43 +1100,6 @@ snapshots:
fast-uri@3.0.6: {}
- faye-websocket@0.11.4:
- dependencies:
- websocket-driver: 0.7.4
-
- firebase@11.3.0:
- dependencies:
- '@firebase/analytics': 0.10.11(@firebase/app@0.11.0)
- '@firebase/analytics-compat': 0.2.17(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/app': 0.11.0
- '@firebase/app-check': 0.8.11(@firebase/app@0.11.0)
- '@firebase/app-check-compat': 0.3.18(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/app-compat': 0.2.49
- '@firebase/app-types': 0.9.3
- '@firebase/auth': 1.9.0(@firebase/app@0.11.0)
- '@firebase/auth-compat': 0.5.18(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)
- '@firebase/data-connect': 0.3.0(@firebase/app@0.11.0)
- '@firebase/database': 1.0.12
- '@firebase/database-compat': 2.0.3
- '@firebase/firestore': 4.7.7(@firebase/app@0.11.0)
- '@firebase/firestore-compat': 0.3.42(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)
- '@firebase/functions': 0.12.2(@firebase/app@0.11.0)
- '@firebase/functions-compat': 0.3.19(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/installations': 0.6.12(@firebase/app@0.11.0)
- '@firebase/installations-compat': 0.2.12(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)
- '@firebase/messaging': 0.12.16(@firebase/app@0.11.0)
- '@firebase/messaging-compat': 0.2.16(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/performance': 0.7.0(@firebase/app@0.11.0)
- '@firebase/performance-compat': 0.2.13(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/remote-config': 0.5.0(@firebase/app@0.11.0)
- '@firebase/remote-config-compat': 0.2.12(@firebase/app-compat@0.2.49)(@firebase/app@0.11.0)
- '@firebase/storage': 0.13.6(@firebase/app@0.11.0)
- '@firebase/storage-compat': 0.3.16(@firebase/app-compat@0.2.49)(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)
- '@firebase/util': 1.10.3
- '@firebase/vertexai': 1.0.4(@firebase/app-types@0.9.3)(@firebase/app@0.11.0)
- transitivePeerDependencies:
- - '@react-native-async-storage/async-storage'
-
follow-redirects@1.15.9: {}
form-data@4.0.1:
@@ -1841,8 +1108,6 @@ snapshots:
combined-stream: 1.0.8
mime-types: 2.1.35
- get-caller-file@2.0.5: {}
-
glob-to-regexp@0.4.1: {}
graceful-fs@4.2.11: {}
@@ -1851,12 +1116,6 @@ snapshots:
hash-sum@2.0.0: {}
- http-parser-js@0.5.9: {}
-
- idb@7.1.1: {}
-
- is-fullwidth-code-point@3.0.0: {}
-
isomorphic-rslog@0.0.6: {}
jest-worker@27.5.1:
@@ -1873,10 +1132,6 @@ snapshots:
loader-runner@4.3.0: {}
- lodash.camelcase@4.3.0: {}
-
- long@5.3.0: {}
-
magic-string@0.30.17:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -1926,21 +1181,6 @@ snapshots:
transitivePeerDependencies:
- vue
- protobufjs@7.4.0:
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/base64': 1.1.2
- '@protobufjs/codegen': 2.0.4
- '@protobufjs/eventemitter': 1.1.0
- '@protobufjs/fetch': 1.1.0
- '@protobufjs/float': 1.0.2
- '@protobufjs/inquire': 1.1.0
- '@protobufjs/path': 1.1.2
- '@protobufjs/pool': 1.1.0
- '@protobufjs/utf8': 1.1.0
- '@types/node': 22.13.1
- long: 5.3.0
-
proxy-from-env@1.1.0: {}
punycode@2.3.1: {}
@@ -1949,8 +1189,6 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- require-directory@2.1.1: {}
-
require-from-string@2.0.2: {}
safe-buffer@5.2.1: {}
@@ -1981,16 +1219,6 @@ snapshots:
source-map@0.6.1: {}
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -2066,8 +1294,6 @@ snapshots:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
- web-vitals@4.2.4: {}
-
webpack-sources@3.2.3: {}
webpack@5.97.1:
@@ -2099,31 +1325,3 @@ snapshots:
- '@swc/core'
- esbuild
- uglify-js
-
- websocket-driver@0.7.4:
- dependencies:
- http-parser-js: 0.5.9
- safe-buffer: 5.2.1
- websocket-extensions: 0.1.4
-
- websocket-extensions@0.1.4: {}
-
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- y18n@5.0.8: {}
-
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
diff --git a/rsbuild.config.ts b/rsbuild.config.ts
index 0e63ab0..55d1952 100644
--- a/rsbuild.config.ts
+++ b/rsbuild.config.ts
@@ -4,6 +4,7 @@ import { pluginVue } from '@rsbuild/plugin-vue';
export default defineConfig({
plugins: [pluginVue()],
html: {
+ title: 'Firebase Auth Vue',
favicon: 'https://www.gstatic.com/devrel-devsite/prod/v9d8458b4d932582248eb0dcdffdc6a8fe4b6994060b14993d6b364721b7e870f/firebase/images/favicon.png',
},
source: {
diff --git a/src/App.vue b/src/App.vue
index 7f5aed2..96ff863 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,13 +1,82 @@
+
+
+ -
+ SignIn
+
+
+ -
+ SignUp
+
+
+ -
+ Cars
+
+
+ -
+ About
+
+
+ -
+ Exit
+
+
+
+
+
diff --git a/src/firebase/index.ts b/src/firebase/index.ts
deleted file mode 100644
index 3fbfec6..0000000
--- a/src/firebase/index.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { initializeApp } from "firebase/app";
-
-const firebaseConfig = {
- apiKey: process.env.FIREBASE_API_KEY,
- authDomain: process.env.FIREBASE_AUTH_DOMAIN,
- projectId: process.env.FIREBASE_PROJECT_ID,
- storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
- messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
- appId: process.env.FIREBASE_APP_ID,
-};
-
-export const firebaseApp = initializeApp(firebaseConfig);
diff --git a/src/index.ts b/src/index.ts
index d3d8a50..7906b62 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -2,7 +2,6 @@ import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import pinia from './store';
-import './firebase';
import Aura from '@primevue/themes/lara';
import PrimeVue from 'primevue/config';
import 'primeicons/primeicons.css'
diff --git a/src/pages/AboutPage.vue b/src/pages/AboutPage.vue
new file mode 100644
index 0000000..552dd3a
--- /dev/null
+++ b/src/pages/AboutPage.vue
@@ -0,0 +1,5 @@
+
+
+ About page
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
index cd29631..f8d72ea 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -1,5 +1,5 @@
import { createRouter, createWebHistory } from 'vue-router'
-
+import {useAuthStore} from '../store/auth';
const router = createRouter({
history: createWebHistory(),
@@ -7,19 +7,50 @@ const router = createRouter({
{
path: '/sign-up',
name: 'SignUp',
- component: () => import('../pages/SignUp.vue')
+ component: () => import('../pages/SignUp.vue'),
+ meta: {
+ auth: false
+ },
},
{
path: '/sign-in',
name: 'SignIn',
- component: () => import('../pages/SignIn.vue')
+ component: () => import('../pages/SignIn.vue'),
+ meta: {
+ auth: false
+ }
},
{
path: '/cars',
+ alias: '/',
name: 'Cars',
- component: () => import('../pages/CarsPage.vue')
+ component: () => import('../pages/CarsPage.vue'),
+ meta: {
+ auth: true
+ }
+ },
+ {
+ path: '/about',
+ name: 'About',
+ component: () => import('../pages/AboutPage.vue'),
}
]
})
+router.beforeEach((to, from, next) => {
+ const store = useAuthStore();
+ const needAuth = to.meta.auth;
+ if (needAuth && !store.userInfo.token) {
+ next('/sign-in');
+ return
+ }
+
+ if (needAuth === false && store.userInfo.token) {
+ next('/cars');
+ return
+ }
+
+ next();
+});
+
export default router;
diff --git a/src/store/auth.ts b/src/store/auth.ts
index 59cc59b..a324beb 100644
--- a/src/store/auth.ts
+++ b/src/store/auth.ts
@@ -44,13 +44,20 @@ export const useAuthStore = defineStore('auth', () => {
returnSecureToken: true
})
- userInfo.value = {
+ const userData = {
email: data.email,
expiresIn: data.expiresIn,
refreshToken: data.refreshToken,
userId: data.localId,
token: data.idToken,
- }
+ };
+ userInfo.value = userData;
+
+ localStorage.setItem('userToken', JSON.stringify({
+ expiresIn: userData.expiresIn,
+ refreshToken: userData.refreshToken,
+ token: userData.token,
+ }))
} catch (e) {
if (e instanceof AxiosError){
switch (e?.response?.data?.error?.message) {
@@ -92,10 +99,33 @@ export const useAuthStore = defineStore('auth', () => {
}
};
+ const logout = () => {
+ userInfo.value = {
+ token: '',
+ email: '',
+ userId: '',
+ refreshToken: '',
+ expiresIn: '',
+ }
+ localStorage.removeItem('userToken');
+ }
+
+ const updateTokens = (accessToken: string, refreshToken: string) => {
+ userInfo.value.token = accessToken;
+ userInfo.value.refreshToken = refreshToken;
+
+ localStorage.setItem('userToken', JSON.stringify({
+ token: accessToken,
+ refreshToken,
+ }))
+ }
+
return {
auth,
userInfo,
error,
loading,
+ logout,
+ updateTokens,
}
})
diff --git a/src/utils/api.ts b/src/utils/api.ts
index 531ca7b..5c92db8 100644
--- a/src/utils/api.ts
+++ b/src/utils/api.ts
@@ -7,6 +7,10 @@ const api = axios.create({
});
api.interceptors.request.use((config) => {
+ if (config.url.includes('signInWithPassword') || config.url.includes('signUp')) {
+ return config;
+ }
+
const authStore = useAuthStore();
let params = new URLSearchParams();
params.append('auth', authStore.userInfo.token);
@@ -15,11 +19,30 @@ api.interceptors.request.use((config) => {
return config
})
-api.interceptors.response.use(null, (response) => {
- if (response.status === 401) {
- router.push('/sign-in')
+api.interceptors.response.use(null, async (error) => {
+ const authStore = useAuthStore();
+ const originalRequest = error.config
+
+ if (error.status === 401 && !originalRequest._retry) {
+ originalRequest._retry = true;
+
+ try {
+ const { data: newTokens } = await axios.post(
+ `https://identitytoolkit.googleapis.com/v1/token?key=${process.env.FIREBASE_API_KEY}`, {
+ grant_type: 'refresh_token',
+ refresh_token: JSON.parse(localStorage.getItem('userToken')).refreshToken
+ }
+ )
+ authStore.updateTokens(newTokens.access_token, newTokens.refresh_token);
+ originalRequest.params.set('auth', newTokens.access_token)
+ return axios(originalRequest);
+ } catch (e) {
+ authStore.logout();
+ await router.push('/sign-in')
+ }
}
- return response;
+
+ return error;
})
export default api;