diff --git a/.gitignore b/.gitignore
index 0bef5d88a1..30584f342b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -101,6 +101,7 @@ stats.json
# Firebase (Android) Google services
google-services.json
+GoogleService-Info.plist
# Performance results (Flashlight)
.perf/
diff --git a/app.config.js b/app.config.js
index 2f8b53e8e9..88c6201001 100644
--- a/app.config.js
+++ b/app.config.js
@@ -44,6 +44,7 @@ module.exports = function (_config) {
newArchEnabled: false,
ios: {
supportsTablet: false,
+ googleServicesFile: './GoogleService-Info.plist',
bundleIdentifier: 'xyz.blueskyweb.app',
config: {
usesNonExemptEncryption: false,
@@ -194,12 +195,15 @@ module.exports = function (_config) {
'react-native-edge-to-edge',
{android: {enforceNavigationBarContrast: false}},
],
+ '@react-native-firebase/app',
+ '@react-native-firebase/crashlytics',
[
'expo-build-properties',
{
ios: {
deploymentTarget: '15.1',
buildReactNativeFromSource: true,
+ useFrameworks: 'static',
},
android: {
compileSdkVersion: 35,
@@ -217,12 +221,6 @@ module.exports = function (_config) {
},
],
'react-native-compressor',
- [
- '@bitdrift/react-native',
- {
- networkInstrumentation: true,
- },
- ],
'./plugins/starterPackAppClipExtension/withStarterPackAppClip.js',
'./plugins/withGradleJVMHeapSizeIncrease.js',
'./plugins/withAndroidManifestLargeHeapPlugin.js',
diff --git a/firebase.json b/firebase.json
new file mode 100644
index 0000000000..006eb8f106
--- /dev/null
+++ b/firebase.json
@@ -0,0 +1,5 @@
+{
+ "react-native": {
+ "crashlytics_debug_enabled": true
+ }
+}
diff --git a/package.json b/package.json
index 938b7da721..dab2452d6c 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,6 @@
},
"dependencies": {
"@atproto/api": "^0.17.1",
- "@bitdrift/react-native": "^0.6.8",
"@braintree/sanitize-url": "^6.0.2",
"@bsky.app/alf": "^0.1.5",
"@bsky.app/react-native-mmkv": "2.12.5",
@@ -97,6 +96,8 @@
"@miblanchard/react-native-slider": "^2.6.0",
"@mozzius/expo-dynamic-app-icon": "^1.8.0",
"@react-native-async-storage/async-storage": "2.2.0",
+ "@react-native-firebase/app": "^23.4.1",
+ "@react-native-firebase/crashlytics": "^23.4.1",
"@react-navigation/bottom-tabs": "^7.3.13",
"@react-navigation/drawer": "^7.3.12",
"@react-navigation/native": "^7.1.9",
diff --git a/src/App.native.tsx b/src/App.native.tsx
index 2ae39b2732..9afa56812a 100644
--- a/src/App.native.tsx
+++ b/src/App.native.tsx
@@ -1,4 +1,3 @@
-import '#/logger/bitdrift/setup'
import '#/view/icons'
import React, {useEffect, useState} from 'react'
diff --git a/src/logger/crashlytics/lib/index.ts b/src/logger/crashlytics/lib/index.ts
new file mode 100644
index 0000000000..4736fce183
--- /dev/null
+++ b/src/logger/crashlytics/lib/index.ts
@@ -0,0 +1 @@
+export * from '@react-native-firebase/crashlytics'
diff --git a/src/logger/crashlytics/lib/index.web.ts b/src/logger/crashlytics/lib/index.web.ts
new file mode 100644
index 0000000000..4a03879a2f
--- /dev/null
+++ b/src/logger/crashlytics/lib/index.web.ts
@@ -0,0 +1,3 @@
+export const getCrashlytics = () => {}
+export const log = () => {}
+export const recordError = () => {}
diff --git a/src/logger/index.ts b/src/logger/index.ts
index f4a381b3e7..24b6237c3f 100644
--- a/src/logger/index.ts
+++ b/src/logger/index.ts
@@ -3,8 +3,8 @@ import {nanoid} from 'nanoid/non-secure'
import {logEvent} from '#/lib/statsig/statsig'
import {add} from '#/logger/logDump'
import {type MetricEvents} from '#/logger/metrics'
-import {bitdriftTransport} from '#/logger/transports/bitdrift'
import {consoleTransport} from '#/logger/transports/console'
+import {crashlyticsTransport} from '#/logger/transports/crashlytics'
import {
LogContext,
LogLevel,
@@ -18,13 +18,15 @@ import {ENV} from '#/env'
const TRANSPORTS: Transport[] = (function configureTransports() {
switch (ENV) {
case 'production': {
- return [isNative && bitdriftTransport].filter(Boolean) as Transport[]
+ return [isNative && crashlyticsTransport].filter(Boolean) as Transport[]
}
case 'test': {
return []
}
default: {
- return [consoleTransport]
+ return [consoleTransport, isNative && crashlyticsTransport].filter(
+ Boolean,
+ ) as Transport[]
}
}
})()
diff --git a/src/logger/transports/crashlytics.ts b/src/logger/transports/crashlytics.ts
new file mode 100644
index 0000000000..04225d7a66
--- /dev/null
+++ b/src/logger/transports/crashlytics.ts
@@ -0,0 +1,20 @@
+import {getCrashlytics, log, recordError} from '#/logger/crashlytics/lib'
+import {LogLevel, type Transport} from '#/logger/types'
+import {prepareMetadata} from '#/logger/util'
+
+export const crashlyticsTransport: Transport = (
+ level,
+ context,
+ message,
+ metadata,
+) => {
+ if (level === LogLevel.Error) {
+ const payload =
+ message instanceof Error ? message : new Error(message.toString())
+ recordError(getCrashlytics(), payload)
+ } else {
+ let payload = `(${context ?? 'default'}) ${message.toString()}`
+ payload += JSON.stringify(prepareMetadata(metadata))
+ log(getCrashlytics(), payload)
+ }
+}
diff --git a/src/logger/transports/crashlytics.tsg b/src/logger/transports/crashlytics.tsg
new file mode 100644
index 0000000000..04225d7a66
--- /dev/null
+++ b/src/logger/transports/crashlytics.tsg
@@ -0,0 +1,20 @@
+import {getCrashlytics, log, recordError} from '#/logger/crashlytics/lib'
+import {LogLevel, type Transport} from '#/logger/types'
+import {prepareMetadata} from '#/logger/util'
+
+export const crashlyticsTransport: Transport = (
+ level,
+ context,
+ message,
+ metadata,
+) => {
+ if (level === LogLevel.Error) {
+ const payload =
+ message instanceof Error ? message : new Error(message.toString())
+ recordError(getCrashlytics(), payload)
+ } else {
+ let payload = `(${context ?? 'default'}) ${message.toString()}`
+ payload += JSON.stringify(prepareMetadata(metadata))
+ log(getCrashlytics(), payload)
+ }
+}
diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts
index 36d19299b9..9d7529dcba 100644
--- a/src/state/session/agent.ts
+++ b/src/state/session/agent.ts
@@ -23,6 +23,7 @@ import {
import {tryFetchGates} from '#/lib/statsig/statsig'
import {getAge} from '#/lib/strings/time'
import {logger} from '#/logger'
+import {getCrashlytics, setUserId} from '#/logger/crashlytics/lib'
import {snoozeEmailConfirmationPrompt} from '#/state/shell/reminders'
import {emitNetworkConfirmed, emitNetworkLost} from '../events'
import {addSessionErrorLog} from './logging'
@@ -79,6 +80,10 @@ export async function createAgentAndResume(
agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ if (agent.sessionManager.did) {
+ setUserId(getCrashlytics(), agent.sessionManager.did)
+ }
+
return agent.prepare(gates, moderation, onSessionChange)
}
@@ -114,6 +119,10 @@ export async function createAgentAndLogin(
agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ if (agent.sessionManager.did) {
+ setUserId(getCrashlytics(), agent.sessionManager.did)
+ }
+
return agent.prepare(gates, moderation, onSessionChange)
}
diff --git a/src/view/screens/Storybook/index.tsx b/src/view/screens/Storybook/index.tsx
index 8706547610..4e52aa1e3a 100644
--- a/src/view/screens/Storybook/index.tsx
+++ b/src/view/screens/Storybook/index.tsx
@@ -3,6 +3,7 @@ import {View} from 'react-native'
import {useNavigation} from '@react-navigation/native'
import {type NavigationProp} from '#/lib/routes/types'
+import {crash, getCrashlytics} from '#/logger/crashlytics/lib'
import {useSetThemePrefs} from '#/state/shell'
import {ListContained} from '#/view/screens/Storybook/ListContained'
import {atoms as a, ThemeProvider} from '#/alf'
@@ -96,6 +97,14 @@ function StorybookInner() {
Open Shared Prefs Tester
+
+
diff --git a/yarn.lock b/yarn.lock
index 9ce8a58080..8c530d7259 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3633,14 +3633,6 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@bitdrift/react-native@^0.6.8":
- version "0.6.8"
- resolved "https://registry.yarnpkg.com/@bitdrift/react-native/-/react-native-0.6.8.tgz#386495857bc81345de418750b5ca0e3c3b964f6c"
- integrity sha512-ixjJTEfUz3GeQ7srxpoYpnOGVx+iDA/A8Y3CZe5cg+/b0d8xur8fBKFoRBiXXohzJnYq4W8MIWIhLAwm5sD9oA==
- dependencies:
- "@expo/config-plugins" "^9.0.14"
- fast-json-stringify "^6.0.0"
-
"@braintree/sanitize-url@^6.0.2":
version "6.0.4"
resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz#923ca57e173c6b232bbbb07347b1be982f03e783"
@@ -4027,26 +4019,6 @@
node-forge "^1.2.1"
nullthrows "^1.1.1"
-"@expo/config-plugins@^9.0.14":
- version "9.0.14"
- resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-9.0.14.tgz#c57cc86c238b276823ff66d96e4722366d57b12c"
- integrity sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==
- dependencies:
- "@expo/config-types" "^52.0.3"
- "@expo/json-file" "~9.0.1"
- "@expo/plist" "^0.2.1"
- "@expo/sdk-runtime-versions" "^1.0.0"
- chalk "^4.1.2"
- debug "^4.3.5"
- getenv "^1.0.0"
- glob "^10.4.2"
- resolve-from "^5.0.0"
- semver "^7.5.4"
- slash "^3.0.0"
- slugify "^1.6.6"
- xcode "^3.0.1"
- xml2js "0.6.0"
-
"@expo/config-plugins@~54.0.1":
version "54.0.1"
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-54.0.1.tgz#cf811b38c7cf6ee32c611265605683032bf13b48"
@@ -4067,11 +4039,6 @@
xcode "^3.0.1"
xml2js "0.6.0"
-"@expo/config-types@^52.0.3":
- version "52.0.3"
- resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-52.0.3.tgz#511f2f868172c93abeac7183beeb921dc72d6e1e"
- integrity sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==
-
"@expo/config-types@^54.0.8":
version "54.0.8"
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-54.0.8.tgz#2aa1f96e0abad6a125d0ff1092b303280f7962e9"
@@ -4179,15 +4146,6 @@
"@babel/code-frame" "~7.10.4"
json5 "^2.2.3"
-"@expo/json-file@~9.0.1":
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-9.0.1.tgz#ff60654caf1fa3c33f9b17dcd1e9691eb854a318"
- integrity sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==
- dependencies:
- "@babel/code-frame" "~7.10.4"
- json5 "^2.2.3"
- write-file-atomic "^2.3.0"
-
"@expo/mcp-tunnel@~0.0.7":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@expo/mcp-tunnel/-/mcp-tunnel-0.0.8.tgz#8c4fabec4e25e119998b22bd846e9d12435da4da"
@@ -4262,15 +4220,6 @@
ora "^3.4.0"
resolve-workspace-root "^2.0.0"
-"@expo/plist@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.2.1.tgz#a315e1964ee9eece5c56040d460db5de7af85889"
- integrity sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==
- dependencies:
- "@xmldom/xmldom" "~0.7.7"
- base64-js "^1.2.3"
- xmlbuilder "^14.0.0"
-
"@expo/plist@^0.4.7":
version "0.4.7"
resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.4.7.tgz#40fa796e93d5be0452ce72e5110e69c8ac915403"
@@ -4380,12 +4329,396 @@
resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a"
integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==
-"@fastify/merge-json-schemas@^0.2.0":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@fastify/merge-json-schemas/-/merge-json-schemas-0.2.1.tgz#3aa30d2f0c81a8ac5995b6d94ed4eaa2c3055824"
- integrity sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==
+"@firebase/ai@2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@firebase/ai/-/ai-2.4.0.tgz#fe67130f8b8770aa74c028f511dc61b67440a30a"
+ integrity sha512-YilG6AJ/nYpCKtxZyvEzBRAQv5bU+2tBOKX4Ps0rNNSdxN39aT37kGhjATbk1kq1z5Lq7mkWglw/ajAF3lOWUg==
dependencies:
- dequal "^2.0.3"
+ "@firebase/app-check-interop-types" "0.3.3"
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/analytics-compat@0.2.25":
+ version "0.2.25"
+ resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.2.25.tgz#1f48bb6237bed7d6a3cf8136957aa5ceb245507b"
+ integrity sha512-fdzoaG0BEKbqksRDhmf4JoyZf16Wosrl0Y7tbZtJyVDOOwziE0vrFjmZuTdviL0yhak+Nco6rMsUUbkbD+qb6Q==
+ dependencies:
+ "@firebase/analytics" "0.10.19"
+ "@firebase/analytics-types" "0.8.3"
+ "@firebase/component" "0.7.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/analytics-types@0.8.3":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.8.3.tgz#d08cd39a6209693ca2039ba7a81570dfa6c1518f"
+ integrity sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==
+
+"@firebase/analytics@0.10.19":
+ version "0.10.19"
+ resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.10.19.tgz#6bddeb9db287fa2367066855b12ec514e2914697"
+ integrity sha512-3wU676fh60gaiVYQEEXsbGS4HbF2XsiBphyvvqDbtC1U4/dO4coshbYktcCHq+HFaGIK07iHOh4pME0hEq1fcg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/installations" "0.6.19"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/app-check-compat@0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.4.0.tgz#94ac0cf9f66cab1d81a7b14e0c151dcc2684bc95"
+ integrity sha512-UfK2Q8RJNjYM/8MFORltZRG9lJj11k0nW84rrffiKvcJxLf1jf6IEjCIkCamykHE73C6BwqhVfhIBs69GXQV0g==
+ dependencies:
+ "@firebase/app-check" "0.11.0"
+ "@firebase/app-check-types" "0.5.3"
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/app-check-interop-types@0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz#ed9c4a4f48d1395ef378f007476db3940aa5351a"
+ integrity sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==
+
+"@firebase/app-check-types@0.5.3":
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.5.3.tgz#38ba954acf4bffe451581a32fffa20337f11d8e5"
+ integrity sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==
+
+"@firebase/app-check@0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.11.0.tgz#a7e1d1e3f5ae36eabed1455db937114fe869ce8f"
+ integrity sha512-XAvALQayUMBJo58U/rxW02IhsesaxxfWVmVkauZvGEz3vOAjMEQnzFlyblqkc2iAaO82uJ2ZVyZv9XzPfxjJ6w==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/app-compat@0.5.4":
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.5.4.tgz#eb8f47d51c57887c9979279d4d39e4ee85270fe4"
+ integrity sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==
+ dependencies:
+ "@firebase/app" "0.14.4"
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/app-types@0.9.3":
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.3.tgz#8408219eae9b1fb74f86c24e7150a148460414ad"
+ integrity sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==
+
+"@firebase/app@0.14.4":
+ version "0.14.4"
+ resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.14.4.tgz#1d2ce74c09752dec9664e2f981b20335c4efbec1"
+ integrity sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ idb "7.1.1"
+ tslib "^2.1.0"
+
+"@firebase/auth-compat@0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.6.0.tgz#1464ea6049b2ad0aae83b4fdcd5e5e5aba6b1c50"
+ integrity sha512-J0lGSxXlG/lYVi45wbpPhcWiWUMXevY4fvLZsN1GHh+po7TZVng+figdHBVhFheaiipU8HZyc7ljw1jNojM2nw==
+ dependencies:
+ "@firebase/auth" "1.11.0"
+ "@firebase/auth-types" "0.13.0"
+ "@firebase/component" "0.7.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/auth-interop-types@0.2.4":
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz#176a08686b0685596ff03d7879b7e4115af53de0"
+ integrity sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==
+
+"@firebase/auth-types@0.13.0":
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.13.0.tgz#ae6e0015e3bd4bfe18edd0942b48a0a118a098d9"
+ integrity sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==
+
+"@firebase/auth@1.11.0":
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.11.0.tgz#81a4f77b16d97c502e493b2a14a97443e243a2a0"
+ integrity sha512-5j7+ua93X+IRcJ1oMDTClTo85l7Xe40WSkoJ+shzPrX7OISlVWLdE1mKC57PSD+/LfAbdhJmvKixINBw2ESK6w==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/component@0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.7.0.tgz#3736644fdb6d3572dceae7fdc1c35a8bd3819adc"
+ integrity sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==
+ dependencies:
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/data-connect@0.3.11":
+ version "0.3.11"
+ resolved "https://registry.yarnpkg.com/@firebase/data-connect/-/data-connect-0.3.11.tgz#60a7a9649e4aedd005546032466ef9abc0a544c1"
+ integrity sha512-G258eLzAD6im9Bsw+Qm1Z+P4x0PGNQ45yeUuuqe5M9B1rn0RJvvsQCRHXgE52Z+n9+WX1OJd/crcuunvOGc7Vw==
+ dependencies:
+ "@firebase/auth-interop-types" "0.2.4"
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/database-compat@2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-2.1.0.tgz#c64488d741c6da2ed8dcf02f2e433089dae2f590"
+ integrity sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/database" "1.1.0"
+ "@firebase/database-types" "1.0.16"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/database-types@1.0.16":
+ version "1.0.16"
+ resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.16.tgz#262f54b8dbebbc46259757b3ba384224fb2ede48"
+ integrity sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==
+ dependencies:
+ "@firebase/app-types" "0.9.3"
+ "@firebase/util" "1.13.0"
+
+"@firebase/database@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.1.0.tgz#bdf60f1605079a87ceb2b5e30d90846e0bde294b"
+ integrity sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==
+ dependencies:
+ "@firebase/app-check-interop-types" "0.3.3"
+ "@firebase/auth-interop-types" "0.2.4"
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ faye-websocket "0.11.4"
+ tslib "^2.1.0"
+
+"@firebase/firestore-compat@0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.4.2.tgz#2c9f5bef1dff004ae2db5759608f17d7973da78c"
+ integrity sha512-cy7ov6SpFBx+PHwFdOOjbI7kH00uNKmIFurAn560WiPCZXy9EMnil1SOG7VF4hHZKdenC+AHtL4r3fNpirpm0w==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/firestore" "4.9.2"
+ "@firebase/firestore-types" "3.0.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/firestore-types@3.0.3":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-3.0.3.tgz#7d0c3dd8850c0193d8f5ee0cc8f11961407742c1"
+ integrity sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==
+
+"@firebase/firestore@4.9.2":
+ version "4.9.2"
+ resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.9.2.tgz#0c65203f9754d5aa801ec31c6f885445cfb346f4"
+ integrity sha512-iuA5+nVr/IV/Thm0Luoqf2mERUvK9g791FZpUJV1ZGXO6RL2/i/WFJUj5ZTVXy5pRjpWYO+ZzPcReNrlilmztA==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ "@firebase/webchannel-wrapper" "1.0.5"
+ "@grpc/grpc-js" "~1.9.0"
+ "@grpc/proto-loader" "^0.7.8"
+ tslib "^2.1.0"
+
+"@firebase/functions-compat@0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.4.1.tgz#b253b761845f0c82bbdf76ef59975978ed84eb65"
+ integrity sha512-AxxUBXKuPrWaVNQ8o1cG1GaCAtXT8a0eaTDfqgS5VsRYLAR0ALcfqDLwo/QyijZj1w8Qf8n3Qrfy/+Im245hOQ==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/functions" "0.13.1"
+ "@firebase/functions-types" "0.6.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/functions-types@0.6.3":
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.6.3.tgz#f5faf770248b13f45d256f614230da6a11bfb654"
+ integrity sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==
+
+"@firebase/functions@0.13.1":
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.13.1.tgz#472e8456568689154b87a494ee8c10ee2e610d94"
+ integrity sha512-sUeWSb0rw5T+6wuV2o9XNmh9yHxjFI9zVGFnjFi+n7drTEWpl7ZTz1nROgGrSu472r+LAaj+2YaSicD4R8wfbw==
+ dependencies:
+ "@firebase/app-check-interop-types" "0.3.3"
+ "@firebase/auth-interop-types" "0.2.4"
+ "@firebase/component" "0.7.0"
+ "@firebase/messaging-interop-types" "0.2.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/installations-compat@0.2.19":
+ version "0.2.19"
+ resolved "https://registry.yarnpkg.com/@firebase/installations-compat/-/installations-compat-0.2.19.tgz#4bc57c8c57d241eeca95900ff3033d6ec3dbcc7c"
+ integrity sha512-khfzIY3EI5LePePo7vT19/VEIH1E3iYsHknI/6ek9T8QCozAZshWT9CjlwOzZrKvTHMeNcbpo/VSOSIWDSjWdQ==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/installations" "0.6.19"
+ "@firebase/installations-types" "0.5.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/installations-types@0.5.3":
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.5.3.tgz#cac8a14dd49f09174da9df8ae453f9b359c3ef2f"
+ integrity sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==
+
+"@firebase/installations@0.6.19":
+ version "0.6.19"
+ resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.6.19.tgz#93c569321f6fb399f4f1a197efc0053ce6452c7c"
+ integrity sha512-nGDmiwKLI1lerhwfwSHvMR9RZuIH5/8E3kgUWnVRqqL7kGVSktjLTWEMva7oh5yxQ3zXfIlIwJwMcaM5bK5j8Q==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/util" "1.13.0"
+ idb "7.1.1"
+ tslib "^2.1.0"
+
+"@firebase/logger@0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.5.0.tgz#a9e55b1c669a0983dc67127fa4a5964ce8ed5e1b"
+ integrity sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==
+ dependencies:
+ tslib "^2.1.0"
+
+"@firebase/messaging-compat@0.2.23":
+ version "0.2.23"
+ resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.2.23.tgz#2ca6b36ea238fae4dff53bf85442c4a2af516224"
+ integrity sha512-SN857v/kBUvlQ9X/UjAqBoQ2FEaL1ZozpnmL1ByTe57iXkmnVVFm9KqAsTfmf+OEwWI4kJJe9NObtN/w22lUgg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/messaging" "0.12.23"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/messaging-interop-types@0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz#e647c9cd1beecfe6a6e82018a6eec37555e4da3e"
+ integrity sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==
+
+"@firebase/messaging@0.12.23":
+ version "0.12.23"
+ resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.12.23.tgz#71f932a521ac39d9f036175672e37897531010eb"
+ integrity sha512-cfuzv47XxqW4HH/OcR5rM+AlQd1xL/VhuaeW/wzMW1LFrsFcTn0GND/hak1vkQc2th8UisBcrkVcQAnOnKwYxg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/installations" "0.6.19"
+ "@firebase/messaging-interop-types" "0.2.3"
+ "@firebase/util" "1.13.0"
+ idb "7.1.1"
+ tslib "^2.1.0"
+
+"@firebase/performance-compat@0.2.22":
+ version "0.2.22"
+ resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.2.22.tgz#1c24ea360b03cfef831bdf379b4fc7080f412741"
+ integrity sha512-xLKxaSAl/FVi10wDX/CHIYEUP13jXUjinL+UaNXT9ByIvxII5Ne5150mx6IgM8G6Q3V+sPiw9C8/kygkyHUVxg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/performance" "0.7.9"
+ "@firebase/performance-types" "0.2.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/performance-types@0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.2.3.tgz#5ce64e90fa20ab5561f8b62a305010cf9fab86fb"
+ integrity sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==
+
+"@firebase/performance@0.7.9":
+ version "0.7.9"
+ resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.7.9.tgz#7e3a072b1542f0df3f502684a38a0516b0d72cab"
+ integrity sha512-UzybENl1EdM2I1sjYm74xGt/0JzRnU/0VmfMAKo2LSpHJzaj77FCLZXmYQ4oOuE+Pxtt8Wy2BVJEENiZkaZAzQ==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/installations" "0.6.19"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+ web-vitals "^4.2.4"
+
+"@firebase/remote-config-compat@0.2.20":
+ version "0.2.20"
+ resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.2.20.tgz#4bca09b1361867d0c882411970486ee06622e071"
+ integrity sha512-P/ULS9vU35EL9maG7xp66uljkZgcPMQOxLj3Zx2F289baTKSInE6+YIkgHEi1TwHoddC/AFePXPpshPlEFkbgg==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/logger" "0.5.0"
+ "@firebase/remote-config" "0.7.0"
+ "@firebase/remote-config-types" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/remote-config-types@0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.5.0.tgz#f0f503b32edda3384f5252f9900cd9613adbb99c"
+ integrity sha512-vI3bqLoF14L/GchtgayMiFpZJF+Ao3uR8WCde0XpYNkSokDpAKca2DxvcfeZv7lZUqkUwQPL2wD83d3vQ4vvrg==
+
+"@firebase/remote-config@0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.7.0.tgz#0e5e5879a7a9121c9da55606be8fa40ff70ddae1"
+ integrity sha512-dX95X6WlW7QlgNd7aaGdjAIZUiQkgWgNS+aKNu4Wv92H1T8Ue/NDUjZHd9xb8fHxLXIHNZeco9/qbZzr500MjQ==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/installations" "0.6.19"
+ "@firebase/logger" "0.5.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/storage-compat@0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.4.0.tgz#a09bd33c262123e7e3ed0cd590b4c6e2ce4a8902"
+ integrity sha512-vDzhgGczr1OfcOy285YAPur5pWDEvD67w4thyeCUh6Ys0izN9fNYtA1MJERmNBfqjqu0lg0FM5GLbw0Il21M+g==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/storage" "0.14.0"
+ "@firebase/storage-types" "0.8.3"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/storage-types@0.8.3":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.8.3.tgz#2531ef593a3452fc12c59117195d6485c6632d3d"
+ integrity sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==
+
+"@firebase/storage@0.14.0":
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.14.0.tgz#01acb97d413ada7c91de860fb260623468baa25d"
+ integrity sha512-xWWbb15o6/pWEw8H01UQ1dC5U3rf8QTAzOChYyCpafV6Xki7KVp3Yaw2nSklUwHEziSWE9KoZJS7iYeyqWnYFA==
+ dependencies:
+ "@firebase/component" "0.7.0"
+ "@firebase/util" "1.13.0"
+ tslib "^2.1.0"
+
+"@firebase/util@1.13.0":
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.13.0.tgz#2e9e7569722a1e3fc86b1b4076d5cbfbfa7265d6"
+ integrity sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==
+ dependencies:
+ tslib "^2.1.0"
+
+"@firebase/webchannel-wrapper@1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.5.tgz#39cf5a600450cb42f1f0b507cc385459bf103b27"
+ integrity sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==
"@floating-ui/core@^1.0.0":
version "1.6.0"
@@ -4559,6 +4892,14 @@
"@grpc/proto-loader" "^0.7.13"
"@js-sdsl/ordered-map" "^4.4.2"
+"@grpc/grpc-js@~1.9.0":
+ version "1.9.15"
+ resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.15.tgz#433d7ac19b1754af690ea650ab72190bd700739b"
+ integrity sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==
+ dependencies:
+ "@grpc/proto-loader" "^0.7.8"
+ "@types/node" ">=12.12.47"
+
"@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.8":
version "0.7.15"
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.15.tgz#4cdfbf35a35461fc843abe8b9e2c0770b5095e60"
@@ -6124,6 +6465,20 @@
dependencies:
merge-options "^3.0.4"
+"@react-native-firebase/app@^23.4.1":
+ version "23.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-firebase/app/-/app-23.4.1.tgz#00c836c6fc3f921de0fbe235362627ce73df8de6"
+ integrity sha512-AVxk9dS3plHjIUDWUlKSEAbKrEtGweLZXEMZpJokvLyNbeL1i4dDAUkDriPzjIEgtxaFX3rUxFuBRQvLHlsmAA==
+ dependencies:
+ firebase "12.4.0"
+
+"@react-native-firebase/crashlytics@^23.4.1":
+ version "23.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-firebase/crashlytics/-/crashlytics-23.4.1.tgz#f3633c38a10a34673a72378994231b3f86603b97"
+ integrity sha512-8lH2yMEbpl0bvgt9b67FJVltuKRsq9BwGQrnUeWZDWGSHWdUVyFHvf79AkSxqebmuF1B1NuohTix4fOkhrq3sQ==
+ dependencies:
+ stacktrace-js "^2.0.2"
+
"@react-native/assets-registry@0.81.4":
version "0.81.4"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.81.4.tgz#bfa477c8e9d54d6ef4ab6e81b886d5be13c09fbd"
@@ -7592,6 +7947,13 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.1.tgz#178d58ee7e4834152b0e8b4d30cbfab578b9bb30"
integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==
+"@types/node@>=12.12.47":
+ version "24.9.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.9.1.tgz#b7360b3c789089e57e192695a855aa4f6981a53c"
+ integrity sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==
+ dependencies:
+ undici-types "~7.16.0"
+
"@types/node@>=13.7.0":
version "22.15.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.3.tgz#b7fb9396a8ec5b5dfb1345d8ac2502060e9af68b"
@@ -7989,11 +8351,6 @@
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99"
integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
-"@xmldom/xmldom@~0.7.7":
- version "0.7.13"
- resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.13.tgz#ff34942667a4e19a9f4a0996a76814daac364cf3"
- integrity sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==
-
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -8111,13 +8468,6 @@ ajv-formats@^2.1.1:
dependencies:
ajv "^8.0.0"
-ajv-formats@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
- integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
- dependencies:
- ajv "^8.0.0"
-
ajv-keywords@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
@@ -8150,16 +8500,6 @@ ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.9.0:
require-from-string "^2.0.2"
uri-js "^4.2.2"
-ajv@^8.12.0:
- version "8.17.1"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
- integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
- dependencies:
- fast-deep-equal "^3.1.3"
- fast-uri "^3.0.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
-
anser@^1.4.9:
version "1.4.10"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
@@ -10146,11 +10486,6 @@ depd@~1.1.2:
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
-dequal@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
- integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
@@ -11614,18 +11949,6 @@ fast-json-stringify@^5.8.0:
fast-uri "^2.1.0"
rfdc "^1.2.0"
-fast-json-stringify@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-6.0.1.tgz#82f1cb45fa96d0ca24b601f1738066976d6e2430"
- integrity sha512-s7SJE83QKBZwg54dIbD5rCtzOBVD43V1ReWXXYqBgwCwHLYAAT0RQc/FmrQglXqWPpz6omtryJQOau5jI4Nrvg==
- dependencies:
- "@fastify/merge-json-schemas" "^0.2.0"
- ajv "^8.12.0"
- ajv-formats "^3.0.1"
- fast-uri "^3.0.0"
- json-schema-ref-resolver "^2.0.0"
- rfdc "^1.2.0"
-
fast-levenshtein@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
@@ -11653,11 +11976,6 @@ fast-uri@^2.1.0:
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a"
integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==
-fast-uri@^3.0.0, fast-uri@^3.0.1:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748"
- integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==
-
fast-xml-parser@5.2.5:
version "5.2.5"
resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a"
@@ -11672,7 +11990,7 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
-faye-websocket@^0.11.3:
+faye-websocket@0.11.4, faye-websocket@^0.11.3:
version "0.11.4"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
@@ -11824,6 +12142,40 @@ find-yarn-workspace-root@^2.0.0, find-yarn-workspace-root@~2.0.0:
dependencies:
micromatch "^4.0.2"
+firebase@12.4.0:
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/firebase/-/firebase-12.4.0.tgz#c9de52c23e707d90aa43343ab3ad1c1ce6b71301"
+ integrity sha512-/chNgDQ6ppPPGOQO4jctxOa/5JeQxuhaxA7Y90K0I+n/wPfoO8mRveedhVUdo7ExLcWUivnnow/ouSLYSI5Icw==
+ dependencies:
+ "@firebase/ai" "2.4.0"
+ "@firebase/analytics" "0.10.19"
+ "@firebase/analytics-compat" "0.2.25"
+ "@firebase/app" "0.14.4"
+ "@firebase/app-check" "0.11.0"
+ "@firebase/app-check-compat" "0.4.0"
+ "@firebase/app-compat" "0.5.4"
+ "@firebase/app-types" "0.9.3"
+ "@firebase/auth" "1.11.0"
+ "@firebase/auth-compat" "0.6.0"
+ "@firebase/data-connect" "0.3.11"
+ "@firebase/database" "1.1.0"
+ "@firebase/database-compat" "2.1.0"
+ "@firebase/firestore" "4.9.2"
+ "@firebase/firestore-compat" "0.4.2"
+ "@firebase/functions" "0.13.1"
+ "@firebase/functions-compat" "0.4.1"
+ "@firebase/installations" "0.6.19"
+ "@firebase/installations-compat" "0.2.19"
+ "@firebase/messaging" "0.12.23"
+ "@firebase/messaging-compat" "0.2.23"
+ "@firebase/performance" "0.7.9"
+ "@firebase/performance-compat" "0.2.22"
+ "@firebase/remote-config" "0.7.0"
+ "@firebase/remote-config-compat" "0.2.20"
+ "@firebase/storage" "0.14.0"
+ "@firebase/storage-compat" "0.4.0"
+ "@firebase/util" "1.13.0"
+
flat-cache@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -12641,6 +12993,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
+idb@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b"
+ integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==
+
ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
@@ -14007,13 +14364,6 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-json-schema-ref-resolver@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/json-schema-ref-resolver/-/json-schema-ref-resolver-2.0.1.tgz#c92f16b452df069daac53e1984159e0f9af0598d"
- integrity sha512-HG0SIB9X4J8bwbxCbnd5FfPEbcXAJYTi1pBJeP/QPON+w8ovSME8iRG+ElHNxZNX2Qh6eYn1GdzJFS4cDFfx0Q==
- dependencies:
- dequal "^2.0.3"
-
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -19468,6 +19818,11 @@ undici-types@~6.21.0:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
+undici-types@~7.16.0:
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46"
+ integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==
+
undici@^5.28.2:
version "5.28.2"
resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91"
@@ -19785,6 +20140,11 @@ wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
+web-vitals@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-4.2.4.tgz#1d20bc8590a37769bd0902b289550936069184b7"
+ integrity sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -20177,15 +20537,6 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-write-file-atomic@^2.3.0:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
- integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- signal-exit "^3.0.2"
-
write-file-atomic@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
@@ -20247,11 +20598,6 @@ xml@^1.0.1:
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==
-xmlbuilder@^14.0.0:
- version "14.0.0"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-14.0.0.tgz#876b5aec4f05ffd5feb97b0a871c855d16fbeb8c"
- integrity sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==
-
xmlbuilder@^15.1.1:
version "15.1.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"