{
setUISetting("pictureViewMasonry", !isMasonry)
- window.posthog?.capture("Switch to Masonry", {
+ window.analytics?.capture("Switch to Masonry", {
masonry: !isMasonry ? 1 : 0,
click: 1,
})
@@ -250,7 +250,7 @@ const WideModeButton = () => {
setUISetting("wideMode", !isWideMode)
// TODO: Remove this after useMeasure can get bounds in time
window.dispatchEvent(new Event("resize"))
- window.posthog?.capture("Switch to Wide Mode", {
+ window.analytics?.capture("Switch to Wide Mode", {
wideMode: !isWideMode ? 1 : 0,
click: 1,
})
diff --git a/apps/renderer/src/modules/feed-column/auto-updater.tsx b/apps/renderer/src/modules/feed-column/auto-updater.tsx
index c372eb3dd4..b03b6e3477 100644
--- a/apps/renderer/src/modules/feed-column/auto-updater.tsx
+++ b/apps/renderer/src/modules/feed-column/auto-updater.tsx
@@ -22,7 +22,7 @@ export const AutoUpdater = () => {
const handleClick = useCallback(() => {
setUpdaterStatus(false)
- window.posthog?.capture("update_restart")
+ window.analytics?.capture("update_restart")
tipcClient?.quitAndInstall()
}, [])
diff --git a/apps/renderer/src/modules/feed-column/corner-player.tsx b/apps/renderer/src/modules/feed-column/corner-player.tsx
index 50838fa597..cf7b47d05c 100644
--- a/apps/renderer/src/modules/feed-column/corner-player.tsx
+++ b/apps/renderer/src/modules/feed-column/corner-player.tsx
@@ -68,15 +68,11 @@ const usePlayerTracker = () => {
useEffect(() => {
const handler = () => {
const playerState = getAudioPlayerAtomValue()
- window.posthog?.capture(
- "player_open_duration",
- {
- duration: Date.now() - playerOpenAt,
- status: playerState.status,
- trigger: "beforeunload",
- },
- { transport: "sendBeacon" },
- )
+ window.analytics?.capture("player_open_duration", {
+ duration: Date.now() - playerOpenAt,
+ status: playerState.status,
+ trigger: "beforeunload",
+ })
}
window.addEventListener("beforeunload", handler)
@@ -86,7 +82,7 @@ const usePlayerTracker = () => {
useEffect(() => {
if (!show) {
const playerState = getAudioPlayerAtomValue()
- window.posthog?.capture("player_open_duration", {
+ window.analytics?.capture("player_open_duration", {
duration: Date.now() - playerOpenAt,
status: playerState.status,
trigger: "manual",
diff --git a/apps/renderer/src/modules/panel/cmdk.tsx b/apps/renderer/src/modules/panel/cmdk.tsx
index a482f7b156..17b43df941 100644
--- a/apps/renderer/src/modules/panel/cmdk.tsx
+++ b/apps/renderer/src/modules/panel/cmdk.tsx
@@ -45,7 +45,7 @@ export const SearchCmdK: React.FC = () => {
React.useEffect(() => {
if (!open) return
- window.posthog?.capture("search_open")
+ window.analytics?.capture("search_open")
// Refresh data
setPage(0)
setSearchInstance(() => searchActions.createLocalDbSearch())
diff --git a/apps/renderer/src/modules/panel/cmdn.tsx b/apps/renderer/src/modules/panel/cmdn.tsx
index 6873454f75..564ec4d04c 100644
--- a/apps/renderer/src/modules/panel/cmdn.tsx
+++ b/apps/renderer/src/modules/panel/cmdn.tsx
@@ -44,7 +44,7 @@ const CmdNPanel = () => {
const defaultView = getSidebarActiveView() as FeedViewType
- window.posthog?.capture("quick_add_feed", { url, defaultView })
+ window.analytics?.capture("quick_add_feed", { url, defaultView })
present({
title: "Add Feed",
diff --git a/apps/renderer/src/modules/settings/tabs/general.tsx b/apps/renderer/src/modules/settings/tabs/general.tsx
index 6256a621f3..9a67a76f5c 100644
--- a/apps/renderer/src/modules/settings/tabs/general.tsx
+++ b/apps/renderer/src/modules/settings/tabs/general.tsx
@@ -27,7 +27,7 @@ import {
} from "~/components/ui/select"
import { useProxyValue, useSetProxy } from "~/hooks/common/useProxySetting"
import { fallbackLanguage } from "~/i18n"
-import { initPostHog } from "~/initialize/posthog"
+import { initAnalytics } from "~/initialize/analytics"
import { tipcClient } from "~/lib/client"
import { cn } from "~/lib/utils"
import { clearLocalPersistStoreData } from "~/store/utils/clear"
@@ -125,10 +125,10 @@ export const SettingGeneral = () => {
onChange(value) {
setGeneralSetting("sendAnonymousData", value)
if (value) {
- initPostHog()
+ initAnalytics()
} else {
- window.posthog?.reset()
- delete window.posthog
+ window.analytics?.reset()
+ delete window.analytics
}
},
}),
diff --git a/apps/renderer/src/modules/wallet/hooks.ts b/apps/renderer/src/modules/wallet/hooks.ts
index 8a8c797059..337f7a43c6 100644
--- a/apps/renderer/src/modules/wallet/hooks.ts
+++ b/apps/renderer/src/modules/wallet/hooks.ts
@@ -23,7 +23,7 @@ export const useTipModal = ({
toast.error("Invalid feed id or entry id")
return
}
- window.posthog?.capture("tip_modal_opened", { entryId })
+ window.analytics?.capture("tip_modal_opened", { entryId })
present({
title: t("tip_modal.tip_title"),
content: () => createElement(TipModalContent, { userId, feedId, entryId }),
diff --git a/apps/renderer/src/providers/stable-router-provider.tsx b/apps/renderer/src/providers/stable-router-provider.tsx
index e35e314f03..9291a7e527 100644
--- a/apps/renderer/src/providers/stable-router-provider.tsx
+++ b/apps/renderer/src/providers/stable-router-provider.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useLayoutEffect } from "react"
+import { useLayoutEffect } from "react"
import type { NavigateFunction } from "react-router-dom"
import { useLocation, useNavigate, useParams, useSearchParams } from "react-router-dom"
@@ -43,19 +43,5 @@ export const StableRouterProvider = () => {
setNavigate({ fn: nav })
}, [searchParams, params, location, nav])
- // Posthog tracking
- useEffect(() => {
- const { pathname } = location
- if (pathname && window.posthog) {
- let url = window.origin + pathname
- if (searchParams.toString()) {
- url = `${url}?${searchParams.toString()}`
- }
- window.posthog.capture("$pageview", {
- $current_url: url,
- })
- }
- }, [location, searchParams])
-
return null
}
diff --git a/apps/renderer/src/queries/feed.ts b/apps/renderer/src/queries/feed.ts
index a1a4f27bf4..33b5a28ed9 100644
--- a/apps/renderer/src/queries/feed.ts
+++ b/apps/renderer/src/queries/feed.ts
@@ -61,7 +61,7 @@ export const useClaimFeedMutation = (feedId: string) =>
toastFetchError(err)
},
onSuccess() {
- window.posthog?.capture("feed_claimed", {
+ window.analytics?.capture("feed_claimed", {
feedId,
})
},
diff --git a/apps/renderer/src/queries/wallet.tsx b/apps/renderer/src/queries/wallet.tsx
index 89d24f9b29..ab1cd435b2 100644
--- a/apps/renderer/src/queries/wallet.tsx
+++ b/apps/renderer/src/queries/wallet.tsx
@@ -79,7 +79,7 @@ export const useClaimWalletDailyRewardMutation = () => {
onSuccess() {
wallet.get().invalidate()
wallet.claimCheck().invalidate()
- window.posthog?.capture("daily_reward_claimed")
+ window.analytics?.capture("daily_reward_claimed")
toast(
navigate("/power")}>
@@ -108,7 +108,7 @@ export const useWalletTipMutation = () =>
onSuccess(_, variables) {
wallet.get().invalidate()
wallet.transactions.get().invalidate()
- window.posthog?.capture("tip_sent", {
+ window.analytics?.capture("tip_sent", {
amount: variables.amount,
entryId: variables.entryId,
})
diff --git a/packages/shared/src/env.ts b/packages/shared/src/env.ts
index ae29ed5102..a4954b6a5f 100644
--- a/packages/shared/src/env.ts
+++ b/packages/shared/src/env.ts
@@ -9,9 +9,12 @@ export const env = createEnv({
VITE_API_URL: z.string().url(),
VITE_IMGPROXY_URL: z.string().url(),
VITE_SENTRY_DSN: z.string().optional(),
- VITE_POSTHOG_KEY: z.string().optional(),
VITE_INBOXES_EMAIL: z.string().default("@follow.re"),
VITE_FIREBASE_CONFIG: z.string().optional(),
+ VITE_OPENPANEL_CLIENT_ID: z.string(),
+ VITE_OPENPANEL_API_URL: z.string().url(),
+
+ VITE_POSTHOG_KEY: z.string().optional(),
},
emptyStringAsUndefined: true,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 68033b355c..fd3def1b5f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -284,12 +284,6 @@ importers:
ofetch:
specifier: 1.4.0
version: 1.4.0
- posthog-js:
- specifier: 1.165.0
- version: 1.165.0
- posthog-node:
- specifier: 4.2.0
- version: 4.2.0
semver:
specifier: 7.6.3
version: 7.6.3
@@ -351,6 +345,9 @@ importers:
'@mozilla/readability':
specifier: ^0.5.0
version: 0.5.0(patch_hash=fgkvsbckled47trggkhdkimzbm)
+ '@openpanel/web':
+ specifier: 1.0.1
+ version: 1.0.1
'@radix-ui/react-avatar':
specifier: 1.1.0
version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -456,6 +453,9 @@ importers:
electron-log:
specifier: 5.2.0
version: 5.2.0
+ firebase:
+ specifier: 10.14.1
+ version: 10.14.1
foxact:
specifier: 0.2.38
version: 0.2.38(react@18.3.1)
@@ -508,8 +508,8 @@ importers:
specifier: 8.2.0
version: 8.2.0
posthog-js:
- specifier: 1.165.0
- version: 1.165.0
+ specifier: 1.169.1
+ version: 1.169.1
re-resizable:
specifier: 6.10.0
version: 6.10.0(patch_hash=yitcmpfwcomg2fky72uc3lhk2i)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1907,6 +1907,200 @@ packages:
'@essentials/request-timeout@1.3.0':
resolution: {integrity: sha512-lKZPhKScNFnR1MBnk4+sxshk46fpvdN+Uh1LlKWFO5g1ocuz4EcknNIL7tm/rsCAs/+xMWiBTwbDUvm+pDNlXw==}
+ '@firebase/analytics-compat@0.2.14':
+ resolution: {integrity: sha512-unRVY6SvRqfNFIAA/kwl4vK+lvQAL2HVcgu9zTrUtTyYDmtIt/lOuHJynBMYEgLnKm39YKBDhtqdapP2e++ASw==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/analytics-types@0.8.2':
+ resolution: {integrity: sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw==}
+
+ '@firebase/analytics@0.10.8':
+ resolution: {integrity: sha512-CVnHcS4iRJPqtIDc411+UmFldk0ShSK3OB+D0bKD8Ck5Vro6dbK5+APZpkuWpbfdL359DIQUnAaMLE+zs/PVyA==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/app-check-compat@0.3.15':
+ resolution: {integrity: sha512-zFIvIFFNqDXpOT2huorz9cwf56VT3oJYRFjSFYdSbGYEJYEaXjLJbfC79lx/zjx4Fh+yuN8pry3TtvwaevrGbg==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/app-check-interop-types@0.3.2':
+ resolution: {integrity: sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==}
+
+ '@firebase/app-check-types@0.5.2':
+ resolution: {integrity: sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA==}
+
+ '@firebase/app-check@0.8.8':
+ resolution: {integrity: sha512-O49RGF1xj7k6BuhxGpHmqOW5hqBIAEbt2q6POW0lIywx7emYtzPDeQI+ryQpC4zbKX646SoVZ711TN1DBLNSOQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/app-compat@0.2.43':
+ resolution: {integrity: sha512-HM96ZyIblXjAC7TzE8wIk2QhHlSvksYkQ4Ukh1GmEenzkucSNUmUX4QvoKrqeWsLEQ8hdcojABeCV8ybVyZmeg==}
+
+ '@firebase/app-types@0.9.2':
+ resolution: {integrity: sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==}
+
+ '@firebase/app@0.10.13':
+ resolution: {integrity: sha512-OZiDAEK/lDB6xy/XzYAyJJkaDqmQ+BCtOEPLqFvxWKUz5JbBmej7IiiRHdtiIOD/twW7O5AxVsfaaGA/V1bNsA==}
+
+ '@firebase/auth-compat@0.5.14':
+ resolution: {integrity: sha512-2eczCSqBl1KUPJacZlFpQayvpilg3dxXLy9cSMTKtQMTQSmondUtPI47P3ikH3bQAXhzKLOE+qVxJ3/IRtu9pw==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/auth-interop-types@0.2.3':
+ resolution: {integrity: sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==}
+
+ '@firebase/auth-types@0.12.2':
+ resolution: {integrity: sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+
+ '@firebase/auth@1.7.9':
+ resolution: {integrity: sha512-yLD5095kVgDw965jepMyUrIgDklD6qH/BZNHeKOgvu7pchOKNjVM+zQoOVYJIKWMWOWBq8IRNVU6NXzBbozaJg==}
+ 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.9':
+ resolution: {integrity: sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==}
+
+ '@firebase/data-connect@0.1.0':
+ resolution: {integrity: sha512-vSe5s8dY13ilhLnfY0eYRmQsdTbH7PUFZtBbqU6JVX/j8Qp9A6G5gG6//ulbX9/1JFOF1IWNOne9c8S/DOCJaQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/database-compat@1.0.8':
+ resolution: {integrity: sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==}
+
+ '@firebase/database-types@1.0.5':
+ resolution: {integrity: sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==}
+
+ '@firebase/database@1.0.8':
+ resolution: {integrity: sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==}
+
+ '@firebase/firestore-compat@0.3.38':
+ resolution: {integrity: sha512-GoS0bIMMkjpLni6StSwRJarpu2+S5m346Na7gr9YZ/BZ/W3/8iHGNr9PxC+f0rNZXqS4fGRn88pICjrZEgbkqQ==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/firestore-types@3.0.2':
+ resolution: {integrity: sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+
+ '@firebase/firestore@4.7.3':
+ resolution: {integrity: sha512-NwVU+JPZ/3bhvNSJMCSzfcBZZg8SUGyzZ2T0EW3/bkUeefCyzMISSt/TTIfEHc8cdyXGlMqfGe3/62u9s74UEg==}
+ engines: {node: '>=10.10.0'}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/functions-compat@0.3.14':
+ resolution: {integrity: sha512-dZ0PKOKQFnOlMfcim39XzaXonSuPPAVuzpqA4ONTIdyaJK/OnBaIEVs/+BH4faa1a2tLeR+Jy15PKqDRQoNIJw==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/functions-types@0.6.2':
+ resolution: {integrity: sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w==}
+
+ '@firebase/functions@0.11.8':
+ resolution: {integrity: sha512-Lo2rTPDn96naFIlSZKVd1yvRRqqqwiJk7cf9TZhUerwnPKgBzXy+aHE22ry+6EjCaQusUoNai6mU6p+G8QZT1g==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/installations-compat@0.2.9':
+ resolution: {integrity: sha512-2lfdc6kPXR7WaL4FCQSQUhXcPbI7ol3wF+vkgtU25r77OxPf8F/VmswQ7sgIkBBWtymn5ZF20TIKtnOj9rjb6w==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/installations-types@0.5.2':
+ resolution: {integrity: sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+
+ '@firebase/installations@0.6.9':
+ resolution: {integrity: sha512-hlT7AwCiKghOX3XizLxXOsTFiFCQnp/oj86zp1UxwDGmyzsyoxtX+UIZyVyH/oBF5+XtblFG9KZzZQ/h+dpy+Q==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/logger@0.4.2':
+ resolution: {integrity: sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==}
+
+ '@firebase/messaging-compat@0.2.12':
+ resolution: {integrity: sha512-pKsiUVZrbmRgdImYqhBNZlkKJbqjlPkVdQRZGRbkTyX4OSGKR0F/oJeCt1a8jEg5UnBp4fdVwSWSp4DuCovvEQ==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/messaging-interop-types@0.2.2':
+ resolution: {integrity: sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA==}
+
+ '@firebase/messaging@0.12.12':
+ resolution: {integrity: sha512-6q0pbzYBJhZEtUoQx7hnPhZvAbuMNuBXKQXOx2YlWhSrlv9N1m0ZzlNpBbu/ItTzrwNKTibdYzUyaaxdWLg+4w==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/performance-compat@0.2.9':
+ resolution: {integrity: sha512-dNl95IUnpsu3fAfYBZDCVhXNkASE0uo4HYaEPd2/PKscfTvsgqFAOxfAXzBEDOnynDWiaGUnb5M1O00JQ+3FXA==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/performance-types@0.2.2':
+ resolution: {integrity: sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA==}
+
+ '@firebase/performance@0.6.9':
+ resolution: {integrity: sha512-PnVaak5sqfz5ivhua+HserxTJHtCar/7zM0flCX6NkzBNzJzyzlH4Hs94h2Il0LQB99roBqoE5QT1JqWqcLJHQ==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/remote-config-compat@0.2.9':
+ resolution: {integrity: sha512-AxzGpWfWFYejH2twxfdOJt5Cfh/ATHONegTd/a0p5flEzsD5JsxXgfkFToop+mypEL3gNwawxrxlZddmDoNxyA==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/remote-config-types@0.3.2':
+ resolution: {integrity: sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA==}
+
+ '@firebase/remote-config@0.4.9':
+ resolution: {integrity: sha512-EO1NLCWSPMHdDSRGwZ73kxEEcTopAxX1naqLJFNApp4hO8WfKfmEpmjxmP5TrrnypjIf2tUkYaKsfbEA7+AMmA==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/storage-compat@0.3.12':
+ resolution: {integrity: sha512-hA4VWKyGU5bWOll+uwzzhEMMYGu9PlKQc1w4DWxB3aIErWYzonrZjF0icqNQZbwKNIdh8SHjZlFeB2w6OSsjfg==}
+ peerDependencies:
+ '@firebase/app-compat': 0.x
+
+ '@firebase/storage-types@0.8.2':
+ resolution: {integrity: sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g==}
+ peerDependencies:
+ '@firebase/app-types': 0.x
+ '@firebase/util': 1.x
+
+ '@firebase/storage@0.13.2':
+ resolution: {integrity: sha512-fxuJnHshbhVwuJ4FuISLu+/76Aby2sh+44ztjF2ppoe0TELIDxPW6/r1KGlWYt//AD0IodDYYA8ZTN89q8YqUw==}
+ peerDependencies:
+ '@firebase/app': 0.x
+
+ '@firebase/util@1.10.0':
+ resolution: {integrity: sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==}
+
+ '@firebase/vertexai-preview@0.0.4':
+ resolution: {integrity: sha512-EBSqyu9eg8frQlVU9/HjKtHN7odqbh9MtAcVz3WwHj4gLCLOoN9F/o+oxlq3CxvFrd3CNTZwu6d2mZtVlEInng==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ '@firebase/app': 0.x
+ '@firebase/app-types': 0.x
+
+ '@firebase/webchannel-wrapper@1.0.1':
+ resolution: {integrity: sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ==}
+
'@floating-ui/core@0.6.2':
resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==}
@@ -1959,6 +2153,15 @@ packages:
'@gar/promisify@1.1.3':
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
+ '@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
+
'@headlessui/react@2.1.8':
resolution: {integrity: sha512-uajqVkAcVG/wHwG9Fh5PFMcFpf2VxM4vNRNKxRjuK009kePVur8LkuuygHfIE+2uZ7z7GnlTtYsyUe6glPpTLg==}
engines: {node: '>=10'}
@@ -2211,6 +2414,12 @@ packages:
'@octokit/types@6.41.0':
resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==}
+ '@openpanel/sdk@1.0.0':
+ resolution: {integrity: sha512-FNmmfjdXoC/VHEjA+WkrQ4lyM5lxEmV7xDd57uj4E+lIS0sU3DLG2mV/dpS8AscnZbUvuMn3kPhiLCqYzuv/gg==}
+
+ '@openpanel/web@1.0.1':
+ resolution: {integrity: sha512-cVZ7Kr9SicczJ/RDIfEtZs8+1iGDzwkabVA/j3NqSl8VSucsC8m1+LVbjmCDzCJNnK4yVn6tEcc9PJRi2rtllw==}
+
'@opentelemetry/api-logs@0.52.1':
resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
engines: {node: '>=14'}
@@ -5338,6 +5547,10 @@ packages:
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ faye-websocket@0.11.4:
+ resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
+ engines: {node: '>=0.8.0'}
+
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
@@ -5387,6 +5600,9 @@ packages:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
+ firebase@10.14.1:
+ resolution: {integrity: sha512-0KZxU+Ela9rUCULqFsUUOYYkjh7OM1EWdIfG6///MtXd0t2/uUIf0iNV5i0KariMhRQ5jve/OY985nrAXFaZeQ==}
+
flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
@@ -5806,6 +6022,9 @@ packages:
http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+ http-parser-js@0.5.8:
+ resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
+
http-proxy-agent@5.0.0:
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
engines: {node: '>= 6'}
@@ -5854,6 +6073,9 @@ packages:
idb-keyval@6.2.1:
resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==}
+ idb@7.1.1:
+ resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
+
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -6266,6 +6488,9 @@ packages:
lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
lodash.castarray@4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
@@ -7405,12 +7630,8 @@ packages:
postgres-range@1.1.4:
resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==}
- posthog-js@1.165.0:
- resolution: {integrity: sha512-rUfRJobvOz3Q9Er+zwb32Eq2qs+ToBe/B4k4IoKzmyszI7240Rf4xVWRB0ky8LvmdZfCeYX5knS2Uv3pnn/d5A==}
-
- posthog-node@4.2.0:
- resolution: {integrity: sha512-hgyCYMyzMvuF3qWMw6JvS8gT55v7Mtp5wKWcnDrw+nu39D0Tk9BXD7I0LOBp0lGlHEPaXCEVYUtviNKrhMALGA==}
- engines: {node: '>=15.0.0'}
+ posthog-js@1.169.1:
+ resolution: {integrity: sha512-zyse2166QgptTXVMgRB5zsJuM2BWR4N+Vzl08ti7KU5gtQA5PSmsMYR6R2YR/LGQsJve4PBRpR8jRHOj1RZZrA==}
postject@1.0.0-alpha.6:
resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==}
@@ -7425,8 +7646,8 @@ packages:
preact@10.11.3:
resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==}
- preact@10.24.1:
- resolution: {integrity: sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==}
+ preact@10.24.3:
+ resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
@@ -7908,9 +8129,6 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- rusha@0.8.14:
- resolution: {integrity: sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==}
-
safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
@@ -8496,6 +8714,10 @@ packages:
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+ undici@6.19.7:
+ resolution: {integrity: sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==}
+ engines: {node: '>=18.17'}
+
undici@6.19.8:
resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==}
engines: {node: '>=18.17'}
@@ -8767,6 +8989,14 @@ packages:
webpack-virtual-modules@0.5.0:
resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
+ 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'}
+
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
@@ -10544,6 +10774,328 @@ snapshots:
dependencies:
'@essentials/raf': 1.2.0
+ '@firebase/analytics-compat@0.2.14(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/analytics': 0.10.8(@firebase/app@0.10.13)
+ '@firebase/analytics-types': 0.8.2
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/analytics-types@0.8.2': {}
+
+ '@firebase/analytics@0.10.8(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/app-check-compat@0.3.15(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-check': 0.8.8(@firebase/app@0.10.13)
+ '@firebase/app-check-types': 0.5.2
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/app-check-interop-types@0.3.2': {}
+
+ '@firebase/app-check-types@0.5.2': {}
+
+ '@firebase/app-check@0.8.8(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/app-compat@0.2.43':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/app-types@0.9.2': {}
+
+ '@firebase/app@0.10.13':
+ dependencies:
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ idb: 7.1.1
+ tslib: 2.7.0
+
+ '@firebase/auth-compat@0.5.14(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/auth': 1.7.9(@firebase/app@0.10.13)
+ '@firebase/auth-types': 0.12.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)
+ '@firebase/component': 0.6.9
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ undici: 6.19.7
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+ - '@react-native-async-storage/async-storage'
+
+ '@firebase/auth-interop-types@0.2.3': {}
+
+ '@firebase/auth-types@0.12.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)':
+ dependencies:
+ '@firebase/app-types': 0.9.2
+ '@firebase/util': 1.10.0
+
+ '@firebase/auth@1.7.9(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ undici: 6.19.7
+
+ '@firebase/component@0.6.9':
+ dependencies:
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/data-connect@0.1.0(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/auth-interop-types': 0.2.3
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/database-compat@1.0.8':
+ dependencies:
+ '@firebase/component': 0.6.9
+ '@firebase/database': 1.0.8
+ '@firebase/database-types': 1.0.5
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/database-types@1.0.5':
+ dependencies:
+ '@firebase/app-types': 0.9.2
+ '@firebase/util': 1.10.0
+
+ '@firebase/database@1.0.8':
+ dependencies:
+ '@firebase/app-check-interop-types': 0.3.2
+ '@firebase/auth-interop-types': 0.2.3
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ faye-websocket: 0.11.4
+ tslib: 2.7.0
+
+ '@firebase/firestore-compat@0.3.38(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/firestore': 4.7.3(@firebase/app@0.10.13)
+ '@firebase/firestore-types': 3.0.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+
+ '@firebase/firestore-types@3.0.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)':
+ dependencies:
+ '@firebase/app-types': 0.9.2
+ '@firebase/util': 1.10.0
+
+ '@firebase/firestore@4.7.3(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ '@firebase/webchannel-wrapper': 1.0.1
+ '@grpc/grpc-js': 1.9.15
+ '@grpc/proto-loader': 0.7.13
+ tslib: 2.7.0
+ undici: 6.19.7
+
+ '@firebase/functions-compat@0.3.14(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/functions': 0.11.8(@firebase/app@0.10.13)
+ '@firebase/functions-types': 0.6.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/functions-types@0.6.2': {}
+
+ '@firebase/functions@0.11.8(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/app-check-interop-types': 0.3.2
+ '@firebase/auth-interop-types': 0.2.3
+ '@firebase/component': 0.6.9
+ '@firebase/messaging-interop-types': 0.2.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ undici: 6.19.7
+
+ '@firebase/installations-compat@0.2.9(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/installations-types': 0.5.2(@firebase/app-types@0.9.2)
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+
+ '@firebase/installations-types@0.5.2(@firebase/app-types@0.9.2)':
+ dependencies:
+ '@firebase/app-types': 0.9.2
+
+ '@firebase/installations@0.6.9(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/util': 1.10.0
+ idb: 7.1.1
+ tslib: 2.7.0
+
+ '@firebase/logger@0.4.2':
+ dependencies:
+ tslib: 2.7.0
+
+ '@firebase/messaging-compat@0.2.12(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/messaging': 0.12.12(@firebase/app@0.10.13)
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/messaging-interop-types@0.2.2': {}
+
+ '@firebase/messaging@0.12.12(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/messaging-interop-types': 0.2.2
+ '@firebase/util': 1.10.0
+ idb: 7.1.1
+ tslib: 2.7.0
+
+ '@firebase/performance-compat@0.2.9(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/performance': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/performance-types': 0.2.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/performance-types@0.2.2': {}
+
+ '@firebase/performance@0.6.9(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/remote-config-compat@0.2.9(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/remote-config': 0.4.9(@firebase/app@0.10.13)
+ '@firebase/remote-config-types': 0.3.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+
+ '@firebase/remote-config-types@0.3.2': {}
+
+ '@firebase/remote-config@0.4.9(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/storage-compat@0.3.12(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app-compat': 0.2.43
+ '@firebase/component': 0.6.9
+ '@firebase/storage': 0.13.2(@firebase/app@0.10.13)
+ '@firebase/storage-types': 0.8.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ transitivePeerDependencies:
+ - '@firebase/app'
+ - '@firebase/app-types'
+
+ '@firebase/storage-types@0.8.2(@firebase/app-types@0.9.2)(@firebase/util@1.10.0)':
+ dependencies:
+ '@firebase/app-types': 0.9.2
+ '@firebase/util': 1.10.0
+
+ '@firebase/storage@0.13.2(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/component': 0.6.9
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+ undici: 6.19.7
+
+ '@firebase/util@1.10.0':
+ dependencies:
+ tslib: 2.7.0
+
+ '@firebase/vertexai-preview@0.0.4(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)':
+ dependencies:
+ '@firebase/app': 0.10.13
+ '@firebase/app-check-interop-types': 0.3.2
+ '@firebase/app-types': 0.9.2
+ '@firebase/component': 0.6.9
+ '@firebase/logger': 0.4.2
+ '@firebase/util': 1.10.0
+ tslib: 2.7.0
+
+ '@firebase/webchannel-wrapper@1.0.1': {}
+
'@floating-ui/core@0.6.2': {}
'@floating-ui/core@1.6.7':
@@ -10607,6 +11159,18 @@ snapshots:
'@gar/promisify@1.1.3': {}
+ '@grpc/grpc-js@1.9.15':
+ dependencies:
+ '@grpc/proto-loader': 0.7.13
+ '@types/node': 22.7.4
+
+ '@grpc/proto-loader@0.7.13':
+ dependencies:
+ lodash.camelcase: 4.3.0
+ long: 5.2.3
+ protobufjs: 7.4.0
+ yargs: 17.7.2
+
'@headlessui/react@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -10941,6 +11505,12 @@ snapshots:
dependencies:
'@octokit/openapi-types': 12.11.0
+ '@openpanel/sdk@1.0.0': {}
+
+ '@openpanel/web@1.0.1':
+ dependencies:
+ '@openpanel/sdk': 1.0.0
+
'@opentelemetry/api-logs@0.52.1':
dependencies:
'@opentelemetry/api': 1.9.0
@@ -14709,6 +15279,10 @@ snapshots:
dependencies:
reusify: 1.0.4
+ faye-websocket@0.11.4:
+ dependencies:
+ websocket-driver: 0.7.4
+
fd-slicer@1.1.0:
dependencies:
pend: 1.2.0
@@ -14755,6 +15329,39 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
+ firebase@10.14.1:
+ dependencies:
+ '@firebase/analytics': 0.10.8(@firebase/app@0.10.13)
+ '@firebase/analytics-compat': 0.2.14(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/app': 0.10.13
+ '@firebase/app-check': 0.8.8(@firebase/app@0.10.13)
+ '@firebase/app-check-compat': 0.3.15(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/app-compat': 0.2.43
+ '@firebase/app-types': 0.9.2
+ '@firebase/auth': 1.7.9(@firebase/app@0.10.13)
+ '@firebase/auth-compat': 0.5.14(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)
+ '@firebase/data-connect': 0.1.0(@firebase/app@0.10.13)
+ '@firebase/database': 1.0.8
+ '@firebase/database-compat': 1.0.8
+ '@firebase/firestore': 4.7.3(@firebase/app@0.10.13)
+ '@firebase/firestore-compat': 0.3.38(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)
+ '@firebase/functions': 0.11.8(@firebase/app@0.10.13)
+ '@firebase/functions-compat': 0.3.14(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/installations': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/installations-compat': 0.2.9(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)
+ '@firebase/messaging': 0.12.12(@firebase/app@0.10.13)
+ '@firebase/messaging-compat': 0.2.12(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/performance': 0.6.9(@firebase/app@0.10.13)
+ '@firebase/performance-compat': 0.2.9(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/remote-config': 0.4.9(@firebase/app@0.10.13)
+ '@firebase/remote-config-compat': 0.2.9(@firebase/app-compat@0.2.43)(@firebase/app@0.10.13)
+ '@firebase/storage': 0.13.2(@firebase/app@0.10.13)
+ '@firebase/storage-compat': 0.3.12(@firebase/app-compat@0.2.43)(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)
+ '@firebase/util': 1.10.0
+ '@firebase/vertexai-preview': 0.0.4(@firebase/app-types@0.9.2)(@firebase/app@0.10.13)
+ transitivePeerDependencies:
+ - '@react-native-async-storage/async-storage'
+
flat-cache@4.0.1:
dependencies:
flatted: 3.3.1
@@ -15338,6 +15945,8 @@ snapshots:
http-cache-semantics@4.1.1: {}
+ http-parser-js@0.5.8: {}
+
http-proxy-agent@5.0.0:
dependencies:
'@tootallnate/once': 2.0.0
@@ -15390,6 +15999,8 @@ snapshots:
idb-keyval@6.2.1: {}
+ idb@7.1.1: {}
+
ieee754@1.2.1: {}
ignore@5.3.2: {}
@@ -15793,6 +16404,8 @@ snapshots:
lodash-es@4.17.21: {}
+ lodash.camelcase@4.3.0: {}
+
lodash.castarray@4.4.0: {}
lodash.debounce@4.0.8: {}
@@ -17133,19 +17746,12 @@ snapshots:
postgres-range@1.1.4: {}
- posthog-js@1.165.0:
+ posthog-js@1.169.1:
dependencies:
fflate: 0.4.8
- preact: 10.24.1
+ preact: 10.24.3
web-vitals: 4.2.3
- posthog-node@4.2.0:
- dependencies:
- axios: 1.7.7(debug@4.3.7)
- rusha: 0.8.14
- transitivePeerDependencies:
- - debug
-
postject@1.0.0-alpha.6:
dependencies:
commander: 9.5.0
@@ -17157,7 +17763,7 @@ snapshots:
preact@10.11.3: {}
- preact@10.24.1: {}
+ preact@10.24.3: {}
prelude-ls@1.2.1: {}
@@ -17745,8 +18351,6 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
- rusha@0.8.14: {}
-
safe-buffer@5.1.2: {}
safe-buffer@5.2.1: {}
@@ -18340,6 +18944,8 @@ snapshots:
undici-types@6.19.8: {}
+ undici@6.19.7: {}
+
undici@6.19.8: {}
unicode-canonical-property-names-ecmascript@2.0.0: {}
@@ -18621,6 +19227,14 @@ snapshots:
webpack-virtual-modules@0.5.0: {}
+ websocket-driver@0.7.4:
+ dependencies:
+ http-parser-js: 0.5.8
+ safe-buffer: 5.2.1
+ websocket-extensions: 0.1.4
+
+ websocket-extensions@0.1.4: {}
+
whatwg-encoding@3.1.1:
dependencies:
iconv-lite: 0.6.3
diff --git a/types/vite.d.ts b/types/vite.d.ts
index 43f292ae00..0f06bfe90c 100644
--- a/types/vite.d.ts
+++ b/types/vite.d.ts
@@ -5,7 +5,8 @@ interface ImportMetaEnv {
VITE_API_URL: string
VITE_IMGPROXY_URL: string
VITE_SENTRY_DSN: string
- VITE_POSTHOG_KEY: string
+ VITE_OPENPANEL_CLIENT_ID: string
+ VITE_OPENPANEL_API_URL: string
VITE_FIREBASE_CONFIG: string
}
diff --git a/vite.config.ts b/vite.config.ts
index f640893790..af6f5e2fdf 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -135,7 +135,7 @@ export default ({ mode }) => {
],
["tldts"],
["shiki", "@shikijs/transformers"],
- ["@sentry/react", "posthog-js"],
+ ["@sentry/react", "@openpanel/web"],
["zod", "react-hook-form", "@hookform/resolvers"],
["swiper"],