feat: add refresh tokens
This commit is contained in:
parent
40c8616240
commit
e5448049cb
@ -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",
|
||||
|
||||
802
pnpm-lock.yaml
generated
802
pnpm-lock.yaml
generated
@ -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
|
||||
|
||||
@ -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: {
|
||||
|
||||
69
src/App.vue
69
src/App.vue
@ -1,13 +1,82 @@
|
||||
<template>
|
||||
<header>
|
||||
<ul>
|
||||
<li v-if="!authStore.userInfo.token">
|
||||
<router-link to="/sign-in">SignIn</router-link>
|
||||
</li>
|
||||
|
||||
<li v-if="!authStore.userInfo.token">
|
||||
<router-link to="/sign-up">SignUp</router-link>
|
||||
</li>
|
||||
|
||||
<li v-if="authStore.userInfo.token">
|
||||
<router-link to="/cars">Cars</router-link>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<router-link to="/about">About</router-link>
|
||||
</li>
|
||||
|
||||
<li v-if="authStore.userInfo.token">
|
||||
<a href="#" @click.prevent="exit">Exit</a>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<div class="container">
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
|
||||
import { useAuthStore } from '@/store/auth.js';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const authStore = useAuthStore();
|
||||
const router = useRouter();
|
||||
|
||||
const checkUser = () => {
|
||||
const userToken = localStorage.getItem('userToken');
|
||||
|
||||
if (userToken) {
|
||||
const data = JSON.parse(userToken);
|
||||
authStore.userInfo.token = data.token;
|
||||
authStore.userInfo.refreshToken = data.refreshToken;
|
||||
authStore.userInfo.expiresIn = data.expiresIn;
|
||||
}
|
||||
}
|
||||
|
||||
const exit = () => {
|
||||
authStore.logout();
|
||||
router.push('/sign-in')
|
||||
}
|
||||
|
||||
checkUser();
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
ul {
|
||||
display: flex;
|
||||
gap: 15px;
|
||||
list-style: none;
|
||||
font-family: Arial, sans-serif;
|
||||
li {
|
||||
a {
|
||||
color: teal;
|
||||
text-decoration: none;
|
||||
|
||||
&:visited {
|
||||
color: darkslategray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -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);
|
||||
@ -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'
|
||||
|
||||
5
src/pages/AboutPage.vue
Normal file
5
src/pages/AboutPage.vue
Normal file
@ -0,0 +1,5 @@
|
||||
<template>
|
||||
<h1>
|
||||
About page
|
||||
</h1>
|
||||
</template>
|
||||
@ -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;
|
||||
|
||||
@ -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,
|
||||
}
|
||||
})
|
||||
|
||||
@ -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
|
||||
}
|
||||
return response;
|
||||
)
|
||||
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 error;
|
||||
})
|
||||
|
||||
export default api;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user