shrey77777 commited on
Commit
74d85f4
·
verified ·
1 Parent(s): f7d1694

Upload ALKABRAIN AI companion

Browse files

Warm Claude.ai-style AI companion routing to 20+ open-source HF models, with Replit Auth, Postgres, Razorpay billing, chat history, and strict help bot.

artifacts/ai-router/package.json CHANGED
@@ -80,6 +80,7 @@
80
  },
81
  "dependencies": {
82
  "@workspace/replit-auth-web": "workspace:*",
 
83
  "zustand": "^5.0.12"
84
  }
85
  }
 
80
  },
81
  "dependencies": {
82
  "@workspace/replit-auth-web": "workspace:*",
83
+ "firebase": "^12.12.1",
84
  "zustand": "^5.0.12"
85
  }
86
  }
artifacts/api-server/src/routes/firebaseAuth.ts ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Router, type IRouter, type Request, type Response } from "express";
2
+ import { db, usersTable } from "@workspace/db";
3
+ import {
4
+ clearSession,
5
+ createSession,
6
+ getSessionId,
7
+ SESSION_COOKIE,
8
+ SESSION_TTL,
9
+ type SessionData,
10
+ } from "../lib/auth";
11
+
12
+ const FIREBASE_API_KEY =
13
+ process.env.FIREBASE_API_KEY ?? "AIzaSyDfwkxrDu84aSavw7tc5yra62__T6ghbVw";
14
+
15
+ const router: IRouter = Router();
16
+
17
+ interface FirebaseLookupUser {
18
+ localId: string;
19
+ email?: string;
20
+ displayName?: string;
21
+ photoUrl?: string;
22
+ emailVerified?: boolean;
23
+ }
24
+
25
+ async function verifyIdToken(idToken: string): Promise<FirebaseLookupUser | null> {
26
+ try {
27
+ const r = await fetch(
28
+ `https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=${FIREBASE_API_KEY}`,
29
+ {
30
+ method: "POST",
31
+ headers: { "Content-Type": "application/json" },
32
+ body: JSON.stringify({ idToken }),
33
+ },
34
+ );
35
+ if (!r.ok) return null;
36
+ const data = (await r.json()) as { users?: FirebaseLookupUser[] };
37
+ return data.users?.[0] ?? null;
38
+ } catch {
39
+ return null;
40
+ }
41
+ }
42
+
43
+ router.post("/auth/firebase", async (req: Request, res: Response) => {
44
+ const idToken = (req.body as { idToken?: string } | undefined)?.idToken;
45
+ if (!idToken || typeof idToken !== "string") {
46
+ res.status(400).json({ error: "idToken required" });
47
+ return;
48
+ }
49
+
50
+ const fbUser = await verifyIdToken(idToken);
51
+ if (!fbUser?.localId) {
52
+ res.status(401).json({ error: "Invalid Firebase ID token" });
53
+ return;
54
+ }
55
+
56
+ const displayName = fbUser.displayName ?? "";
57
+ const [firstName, ...rest] = displayName.split(" ");
58
+
59
+ const userData = {
60
+ id: `fb:${fbUser.localId}`,
61
+ email: fbUser.email ?? null,
62
+ firstName: firstName || null,
63
+ lastName: rest.length ? rest.join(" ") : null,
64
+ profileImageUrl: fbUser.photoUrl ?? null,
65
+ };
66
+
67
+ const [dbUser] = await db
68
+ .insert(usersTable)
69
+ .values(userData)
70
+ .onConflictDoUpdate({
71
+ target: usersTable.id,
72
+ set: { ...userData, updatedAt: new Date() },
73
+ })
74
+ .returning();
75
+
76
+ const sessionData: SessionData = {
77
+ user: {
78
+ id: dbUser.id,
79
+ email: dbUser.email,
80
+ firstName: dbUser.firstName,
81
+ lastName: dbUser.lastName,
82
+ profileImageUrl: dbUser.profileImageUrl,
83
+ },
84
+ access_token: idToken,
85
+ };
86
+
87
+ const sid = await createSession(sessionData);
88
+ res.cookie(SESSION_COOKIE, sid, {
89
+ httpOnly: true,
90
+ secure: true,
91
+ sameSite: "lax",
92
+ path: "/",
93
+ maxAge: SESSION_TTL,
94
+ });
95
+ res.json({ user: sessionData.user });
96
+ });
97
+
98
+ router.post("/auth/firebase/logout", async (req: Request, res: Response) => {
99
+ const sid = getSessionId(req);
100
+ await clearSession(res, sid);
101
+ res.json({ success: true });
102
+ });
103
+
104
+ export default router;
artifacts/api-server/src/routes/index.ts CHANGED
@@ -1,6 +1,7 @@
1
  import { Router, type IRouter } from "express";
2
  import healthRouter from "./health";
3
  import authRouter from "./auth";
 
4
  import modelsRouter from "./models";
5
  import chatRouter from "./chat";
6
  import billingRouter from "./billing";
@@ -13,6 +14,7 @@ const router: IRouter = Router();
13
 
14
  router.use(healthRouter);
15
  router.use(authRouter);
 
16
  router.use(modelsRouter);
17
  router.use(chatRouter);
18
  router.use(billingRouter);
 
1
  import { Router, type IRouter } from "express";
2
  import healthRouter from "./health";
3
  import authRouter from "./auth";
4
+ import firebaseAuthRouter from "./firebaseAuth";
5
  import modelsRouter from "./models";
6
  import chatRouter from "./chat";
7
  import billingRouter from "./billing";
 
14
 
15
  router.use(healthRouter);
16
  router.use(authRouter);
17
+ router.use(firebaseAuthRouter);
18
  router.use(modelsRouter);
19
  router.use(chatRouter);
20
  router.use(billingRouter);
lib/replit-auth-web/package.json CHANGED
@@ -7,7 +7,8 @@
7
  ".": "./src/index.ts"
8
  },
9
  "dependencies": {
10
- "@workspace/api-client-react": "workspace:*"
 
11
  },
12
  "peerDependencies": {
13
  "react": ">=18"
 
7
  ".": "./src/index.ts"
8
  },
9
  "dependencies": {
10
+ "@workspace/api-client-react": "workspace:*",
11
+ "firebase": "^11.0.0"
12
  },
13
  "peerDependencies": {
14
  "react": ">=18"
lib/replit-auth-web/src/use-auth.ts CHANGED
@@ -1,8 +1,35 @@
1
  import { useState, useEffect, useCallback } from "react";
2
  import type { AuthUser } from "@workspace/api-client-react";
 
 
 
 
 
 
 
 
3
 
4
  export type { AuthUser };
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  interface AuthState {
7
  user: AuthUser | null;
8
  isLoading: boolean;
@@ -11,43 +38,65 @@ interface AuthState {
11
  logout: () => void;
12
  }
13
 
 
 
 
 
 
 
 
 
 
 
 
14
  export function useAuth(): AuthState {
15
  const [user, setUser] = useState<AuthUser | null>(null);
16
  const [isLoading, setIsLoading] = useState(true);
17
 
18
  useEffect(() => {
19
  let cancelled = false;
20
-
21
- fetch("/api/auth/user", { credentials: "include" })
22
- .then((res) => {
23
- if (!res.ok) throw new Error(`HTTP ${res.status}`);
24
- return res.json() as Promise<{ user: AuthUser | null }>;
25
- })
26
- .then((data) => {
27
- if (!cancelled) {
28
- setUser(data.user ?? null);
29
- setIsLoading(false);
30
- }
31
- })
32
- .catch(() => {
33
- if (!cancelled) {
34
- setUser(null);
35
- setIsLoading(false);
36
- }
37
- });
38
-
39
  return () => {
40
  cancelled = true;
41
  };
42
  }, []);
43
 
44
- const login = useCallback(() => {
45
- const base = import.meta.env.BASE_URL.replace(/\/+$/, "") || "/";
46
- window.location.href = `/api/login?returnTo=${encodeURIComponent(base)}`;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  }, []);
48
 
49
- const logout = useCallback(() => {
50
- window.location.href = "/api/logout";
 
 
 
 
 
 
 
 
51
  }, []);
52
 
53
  return {
 
1
  import { useState, useEffect, useCallback } from "react";
2
  import type { AuthUser } from "@workspace/api-client-react";
3
+ import { initializeApp, type FirebaseApp } from "firebase/app";
4
+ import {
5
+ getAuth,
6
+ GoogleAuthProvider,
7
+ signInWithPopup,
8
+ signOut as fbSignOut,
9
+ type Auth,
10
+ } from "firebase/auth";
11
 
12
  export type { AuthUser };
13
 
14
+ const firebaseConfig = {
15
+ apiKey: "AIzaSyDfwkxrDu84aSavw7tc5yra62__T6ghbVw",
16
+ authDomain: "gen-lang-client-0709280604.firebaseapp.com",
17
+ projectId: "gen-lang-client-0709280604",
18
+ storageBucket: "gen-lang-client-0709280604.firebasestorage.app",
19
+ messagingSenderId: "1041373393186",
20
+ appId: "1:1041373393186:web:b7f96702433c6d0651f57b",
21
+ measurementId: "G-KEHV4YYDV7",
22
+ };
23
+
24
+ let app: FirebaseApp | null = null;
25
+ let authInstance: Auth | null = null;
26
+
27
+ function getFirebaseAuth(): Auth {
28
+ if (!app) app = initializeApp(firebaseConfig);
29
+ if (!authInstance) authInstance = getAuth(app);
30
+ return authInstance;
31
+ }
32
+
33
  interface AuthState {
34
  user: AuthUser | null;
35
  isLoading: boolean;
 
38
  logout: () => void;
39
  }
40
 
41
+ async function fetchMe(): Promise<AuthUser | null> {
42
+ try {
43
+ const res = await fetch("/api/auth/user", { credentials: "include" });
44
+ if (!res.ok) return null;
45
+ const data = (await res.json()) as { user: AuthUser | null };
46
+ return data.user ?? null;
47
+ } catch {
48
+ return null;
49
+ }
50
+ }
51
+
52
  export function useAuth(): AuthState {
53
  const [user, setUser] = useState<AuthUser | null>(null);
54
  const [isLoading, setIsLoading] = useState(true);
55
 
56
  useEffect(() => {
57
  let cancelled = false;
58
+ fetchMe().then((u) => {
59
+ if (!cancelled) {
60
+ setUser(u);
61
+ setIsLoading(false);
62
+ }
63
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  return () => {
65
  cancelled = true;
66
  };
67
  }, []);
68
 
69
+ const login = useCallback(async () => {
70
+ try {
71
+ const auth = getFirebaseAuth();
72
+ const provider = new GoogleAuthProvider();
73
+ const result = await signInWithPopup(auth, provider);
74
+ const idToken = await result.user.getIdToken();
75
+ const res = await fetch("/api/auth/firebase", {
76
+ method: "POST",
77
+ credentials: "include",
78
+ headers: { "Content-Type": "application/json" },
79
+ body: JSON.stringify({ idToken }),
80
+ });
81
+ if (!res.ok) throw new Error(`Sign-in failed: ${res.status}`);
82
+ const u = await fetchMe();
83
+ setUser(u);
84
+ } catch (err) {
85
+ console.error("Google sign-in failed", err);
86
+ alert("Sign-in failed. Please try again.");
87
+ }
88
  }, []);
89
 
90
+ const logout = useCallback(async () => {
91
+ try {
92
+ await fbSignOut(getFirebaseAuth());
93
+ } catch {}
94
+ await fetch("/api/auth/firebase/logout", {
95
+ method: "POST",
96
+ credentials: "include",
97
+ }).catch(() => {});
98
+ setUser(null);
99
+ window.location.href = "/";
100
  }, []);
101
 
102
  return {
lib/replit-auth-web/tsconfig.json CHANGED
@@ -5,9 +5,9 @@
5
  "rootDir": "src",
6
  "jsx": "react-jsx",
7
  "lib": ["esnext", "dom", "dom.iterable"],
8
- "types": [],
9
  "noEmit": true,
10
  "moduleResolution": "bundler"
11
  },
12
  "include": ["src"]
13
- }
 
5
  "rootDir": "src",
6
  "jsx": "react-jsx",
7
  "lib": ["esnext", "dom", "dom.iterable"],
8
+ "types": ["vite/client"],
9
  "noEmit": true,
10
  "moduleResolution": "bundler"
11
  },
12
  "include": ["src"]
13
+ }
package.json CHANGED
@@ -10,7 +10,10 @@
10
  },
11
  "private": true,
12
  "devDependencies": {
13
- "typescript": "~5.9.2",
14
- "prettier": "^3.8.1"
 
 
 
15
  }
16
  }
 
10
  },
11
  "private": true,
12
  "devDependencies": {
13
+ "prettier": "^3.8.1",
14
+ "typescript": "~5.9.2"
15
+ },
16
+ "dependencies": {
17
+ "@huggingface/hub": "^2.11.0"
18
  }
19
  }
pnpm-lock.yaml CHANGED
@@ -156,6 +156,10 @@ overrides:
156
  importers:
157
 
158
  .:
 
 
 
 
159
  devDependencies:
160
  prettier:
161
  specifier: ^3.8.1
@@ -169,6 +173,9 @@ importers:
169
  '@workspace/replit-auth-web':
170
  specifier: workspace:*
171
  version: link:../../lib/replit-auth-web
 
 
 
172
  zustand:
173
  specifier: ^5.0.12
174
  version: 5.0.12(@types/react@19.2.14)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0))
@@ -670,6 +677,9 @@ importers:
670
  '@workspace/api-client-react':
671
  specifier: workspace:*
672
  version: link:../api-client-react
 
 
 
673
  devDependencies:
674
  '@types/react':
675
  specifier: 'catalog:'
@@ -796,6 +806,382 @@ packages:
796
  cpu: [x64]
797
  os: [linux]
798
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
799
  '@floating-ui/core@1.7.5':
800
  resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
801
 
@@ -814,11 +1200,28 @@ packages:
814
  '@gerrit0/mini-shiki@3.23.0':
815
  resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==}
816
 
 
 
 
 
 
 
 
 
 
817
  '@hookform/resolvers@3.10.0':
818
  resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==}
819
  peerDependencies:
820
  react-hook-form: ^7.0.0
821
 
 
 
 
 
 
 
 
 
822
  '@jridgewell/gen-mapping@0.3.13':
823
  resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
824
 
@@ -894,6 +1297,36 @@ packages:
894
  '@pinojs/redact@0.4.0':
895
  resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  '@radix-ui/number@1.1.1':
898
  resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
899
 
@@ -1826,6 +2259,10 @@ packages:
1826
  resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
1827
  engines: {node: '>=8'}
1828
 
 
 
 
 
1829
  argparse@2.0.1:
1830
  resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
1831
 
@@ -1914,6 +2351,14 @@ packages:
1914
  class-variance-authority@0.7.1:
1915
  resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
1916
 
 
 
 
 
 
 
 
 
1917
  clsx@2.1.1:
1918
  resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
1919
  engines: {node: '>=6'}
@@ -1924,6 +2369,13 @@ packages:
1924
  react: ^18 || ^19 || ^19.0.0-rc
1925
  react-dom: ^18 || ^19 || ^19.0.0-rc
1926
 
 
 
 
 
 
 
 
1927
  colorette@2.0.20:
1928
  resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
1929
 
@@ -2203,6 +2655,9 @@ packages:
2203
  embla-carousel@8.6.0:
2204
  resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==}
2205
 
 
 
 
2206
  encodeurl@2.0.0:
2207
  resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
2208
  engines: {node: '>= 0.8'}
@@ -2319,6 +2774,10 @@ packages:
2319
  fault@1.0.4:
2320
  resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
2321
 
 
 
 
 
2322
  fdir@6.5.0:
2323
  resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
2324
  engines: {node: '>=12.0.0'}
@@ -2348,6 +2807,12 @@ packages:
2348
  resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==}
2349
  engines: {node: '>=20'}
2350
 
 
 
 
 
 
 
2351
  format@0.2.2:
2352
  resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
2353
  engines: {node: '>=0.4.x'}
@@ -2468,6 +2933,9 @@ packages:
2468
  resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
2469
  engines: {node: '>= 0.8'}
2470
 
 
 
 
2471
  human-signals@8.0.1:
2472
  resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
2473
  engines: {node: '>=18.18.0'}
@@ -2476,6 +2944,9 @@ packages:
2476
  resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
2477
  engines: {node: '>=0.10.0'}
2478
 
 
 
 
2479
  ignore@7.0.5:
2480
  resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
2481
  engines: {node: '>= 4'}
@@ -2522,6 +2993,10 @@ packages:
2522
  resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2523
  engines: {node: '>=0.10.0'}
2524
 
 
 
 
 
2525
  is-glob@4.0.3:
2526
  resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2527
  engines: {node: '>=0.10.0'}
@@ -2618,9 +3093,15 @@ packages:
2618
  resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==}
2619
  engines: {node: '>=20'}
2620
 
 
 
 
2621
  lodash@4.17.23:
2622
  resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
2623
 
 
 
 
2624
  longest-streak@3.1.0:
2625
  resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
2626
 
@@ -3054,6 +3535,10 @@ packages:
3054
  property-information@7.1.0:
3055
  resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
3056
 
 
 
 
 
3057
  proxy-addr@2.0.7:
3058
  resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
3059
  engines: {node: '>= 0.10'}
@@ -3222,6 +3707,10 @@ packages:
3222
  remeda@2.33.6:
3223
  resolution: {integrity: sha512-tazDGH7s75kUPGBKLvhgBEHMgW+TdDFhjUAMdQj57IoWz6HsGa5D2RX5yDUz6IIqiRRvZiaEHzCzWdTeixc/Kg==}
3224
 
 
 
 
 
3225
  require-from-string@2.0.2:
3226
  resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
3227
  engines: {node: '>=0.10.0'}
@@ -3245,6 +3734,9 @@ packages:
3245
  run-parallel@1.2.0:
3246
  resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3247
 
 
 
 
3248
  safe-stable-stringify@2.5.0:
3249
  resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
3250
  engines: {node: '>=10'}
@@ -3339,6 +3831,10 @@ packages:
3339
  resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
3340
  engines: {node: '>=0.6.19'}
3341
 
 
 
 
 
3342
  stringify-entities@4.0.4:
3343
  resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
3344
 
@@ -3585,6 +4081,17 @@ packages:
3585
  resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
3586
  engines: {node: '>= 8'}
3587
 
 
 
 
 
 
 
 
 
 
 
 
3588
  which@2.0.2:
3589
  resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3590
  engines: {node: '>= 8'}
@@ -3595,6 +4102,10 @@ packages:
3595
  peerDependencies:
3596
  react: '>=16.8.0'
3597
 
 
 
 
 
3598
  wrappy@1.0.2:
3599
  resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3600
 
@@ -3602,6 +4113,10 @@ packages:
3602
  resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
3603
  engines: {node: '>=0.4'}
3604
 
 
 
 
 
3605
  yallist@3.1.1:
3606
  resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
3607
 
@@ -3610,6 +4125,14 @@ packages:
3610
  engines: {node: '>= 14.6'}
3611
  hasBin: true
3612
 
 
 
 
 
 
 
 
 
3613
  yocto-queue@1.2.2:
3614
  resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
3615
  engines: {node: '>=12.20'}
@@ -3772,6 +4295,630 @@ snapshots:
3772
  '@esbuild/linux-x64@0.27.3':
3773
  optional: true
3774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3775
  '@floating-ui/core@1.7.5':
3776
  dependencies:
3777
  '@floating-ui/utils': 0.2.11
@@ -3797,10 +4944,30 @@ snapshots:
3797
  '@shikijs/types': 3.23.0
3798
  '@shikijs/vscode-textmate': 10.0.2
3799
 
 
 
 
 
 
 
 
 
 
 
 
 
3800
  '@hookform/resolvers@3.10.0(react-hook-form@7.71.2(react@19.1.0))':
3801
  dependencies:
3802
  react-hook-form: 7.71.2(react@19.1.0)
3803
 
 
 
 
 
 
 
 
 
3804
  '@jridgewell/gen-mapping@0.3.13':
3805
  dependencies:
3806
  '@jridgewell/sourcemap-codec': 1.5.5
@@ -3950,6 +5117,29 @@ snapshots:
3950
 
3951
  '@pinojs/redact@0.4.0': {}
3952
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3953
  '@radix-ui/number@1.1.1': {}
3954
 
3955
  '@radix-ui/primitive@1.1.3': {}
@@ -4951,6 +6141,10 @@ snapshots:
4951
 
4952
  ansi-regex@5.0.1: {}
4953
 
 
 
 
 
4954
  argparse@2.0.1: {}
4955
 
4956
  aria-hidden@1.2.6:
@@ -5037,6 +6231,17 @@ snapshots:
5037
  dependencies:
5038
  clsx: 2.1.1
5039
 
 
 
 
 
 
 
 
 
 
 
 
5040
  clsx@2.1.1: {}
5041
 
5042
  cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
@@ -5051,6 +6256,12 @@ snapshots:
5051
  - '@types/react'
5052
  - '@types/react-dom'
5053
 
 
 
 
 
 
 
5054
  colorette@2.0.20: {}
5055
 
5056
  comma-separated-tokens@1.0.8: {}
@@ -5209,6 +6420,8 @@ snapshots:
5209
 
5210
  embla-carousel@8.6.0: {}
5211
 
 
 
5212
  encodeurl@2.0.0: {}
5213
 
5214
  end-of-stream@1.4.5:
@@ -5344,6 +6557,10 @@ snapshots:
5344
  dependencies:
5345
  format: 0.2.2
5346
 
 
 
 
 
5347
  fdir@6.5.0(picomatch@4.0.3):
5348
  optionalDependencies:
5349
  picomatch: 4.0.3
@@ -5377,6 +6594,72 @@ snapshots:
5377
  locate-path: 8.0.0
5378
  unicorn-magic: 0.3.0
5379
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5380
  format@0.2.2: {}
5381
 
5382
  formdata-polyfill@4.0.10:
@@ -5513,12 +6796,16 @@ snapshots:
5513
  statuses: 2.0.2
5514
  toidentifier: 1.0.1
5515
 
 
 
5516
  human-signals@8.0.1: {}
5517
 
5518
  iconv-lite@0.7.2:
5519
  dependencies:
5520
  safer-buffer: 2.1.2
5521
 
 
 
5522
  ignore@7.0.5: {}
5523
 
5524
  inherits@2.0.4: {}
@@ -5554,6 +6841,8 @@ snapshots:
5554
 
5555
  is-extglob@2.1.1: {}
5556
 
 
 
5557
  is-glob@4.0.3:
5558
  dependencies:
5559
  is-extglob: 2.1.1
@@ -5621,8 +6910,12 @@ snapshots:
5621
  dependencies:
5622
  p-locate: 6.0.0
5623
 
 
 
5624
  lodash@4.17.23: {}
5625
 
 
 
5626
  longest-streak@3.1.0: {}
5627
 
5628
  loose-envify@1.4.0:
@@ -6297,6 +7590,21 @@ snapshots:
6297
 
6298
  property-information@7.1.0: {}
6299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6300
  proxy-addr@2.0.7:
6301
  dependencies:
6302
  forwarded: 0.2.0
@@ -6499,6 +7807,8 @@ snapshots:
6499
 
6500
  remeda@2.33.6: {}
6501
 
 
 
6502
  require-from-string@2.0.2: {}
6503
 
6504
  resolve-pkg-maps@1.0.0: {}
@@ -6526,6 +7836,8 @@ snapshots:
6526
  dependencies:
6527
  queue-microtask: 1.2.3
6528
 
 
 
6529
  safe-stable-stringify@2.5.0: {}
6530
 
6531
  safer-buffer@2.1.2: {}
@@ -6632,6 +7944,12 @@ snapshots:
6632
 
6633
  string-argv@0.3.2: {}
6634
 
 
 
 
 
 
 
6635
  stringify-entities@4.0.4:
6636
  dependencies:
6637
  character-entities-html4: 2.1.0
@@ -6852,6 +8170,16 @@ snapshots:
6852
 
6853
  web-streams-polyfill@3.3.3: {}
6854
 
 
 
 
 
 
 
 
 
 
 
6855
  which@2.0.2:
6856
  dependencies:
6857
  isexe: 2.0.0
@@ -6863,14 +8191,34 @@ snapshots:
6863
  regexparam: 3.0.0
6864
  use-sync-external-store: 1.6.0(react@19.1.0)
6865
 
 
 
 
 
 
 
6866
  wrappy@1.0.2: {}
6867
 
6868
  xtend@4.0.2: {}
6869
 
 
 
6870
  yallist@3.1.1: {}
6871
 
6872
  yaml@2.8.2: {}
6873
 
 
 
 
 
 
 
 
 
 
 
 
 
6874
  yocto-queue@1.2.2: {}
6875
 
6876
  yoctocolors@2.1.2: {}
 
156
  importers:
157
 
158
  .:
159
+ dependencies:
160
+ '@huggingface/hub':
161
+ specifier: ^2.11.0
162
+ version: 2.11.0
163
  devDependencies:
164
  prettier:
165
  specifier: ^3.8.1
 
173
  '@workspace/replit-auth-web':
174
  specifier: workspace:*
175
  version: link:../../lib/replit-auth-web
176
+ firebase:
177
+ specifier: ^12.12.1
178
+ version: 12.12.1
179
  zustand:
180
  specifier: ^5.0.12
181
  version: 5.0.12(@types/react@19.2.14)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0))
 
677
  '@workspace/api-client-react':
678
  specifier: workspace:*
679
  version: link:../api-client-react
680
+ firebase:
681
+ specifier: ^11.0.0
682
+ version: 11.10.0
683
  devDependencies:
684
  '@types/react':
685
  specifier: 'catalog:'
 
806
  cpu: [x64]
807
  os: [linux]
808
 
809
+ '@firebase/ai@1.4.1':
810
+ resolution: {integrity: sha512-bcusQfA/tHjUjBTnMx6jdoPMpDl3r8K15Z+snHz9wq0Foox0F/V+kNLXucEOHoTL2hTc9l+onZCyBJs2QoIC3g==}
811
+ engines: {node: '>=18.0.0'}
812
+ peerDependencies:
813
+ '@firebase/app': 0.x
814
+ '@firebase/app-types': 0.x
815
+
816
+ '@firebase/ai@2.11.1':
817
+ resolution: {integrity: sha512-WGTF81W3WBKJY+c7xqTzO15OGAkCAs8cpADqflAI0skhTZjIkhF0qyf55rq4Ctt6jKygkv99rPfMrjAHTgXaVQ==}
818
+ engines: {node: '>=20.0.0'}
819
+ peerDependencies:
820
+ '@firebase/app': 0.x
821
+ '@firebase/app-types': 0.x
822
+
823
+ '@firebase/analytics-compat@0.2.23':
824
+ resolution: {integrity: sha512-3AdO10RN18G5AzREPoFgYhW6vWXr3u+OYQv6pl3CX6Fky8QRk0AHurZlY3Q1xkXO0TDxIsdhO3y65HF7PBOJDw==}
825
+ peerDependencies:
826
+ '@firebase/app-compat': 0.x
827
+
828
+ '@firebase/analytics-compat@0.2.27':
829
+ resolution: {integrity: sha512-ZObpYpAxL6JfgH7GnvlDD0sbzGZ0o4nijV8skatV9ZX49hJtCYbFqaEcPYptT94rgX1KUoKEderC7/fa7hybtw==}
830
+ peerDependencies:
831
+ '@firebase/app-compat': 0.x
832
+
833
+ '@firebase/analytics-types@0.8.3':
834
+ resolution: {integrity: sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==}
835
+
836
+ '@firebase/analytics@0.10.17':
837
+ resolution: {integrity: sha512-n5vfBbvzduMou/2cqsnKrIes4auaBjdhg8QNA2ZQZ59QgtO2QiwBaXQZQE4O4sgB0Ds1tvLgUUkY+pwzu6/xEg==}
838
+ peerDependencies:
839
+ '@firebase/app': 0.x
840
+
841
+ '@firebase/analytics@0.10.21':
842
+ resolution: {integrity: sha512-j2y2q65BlgLGB5Pwjhv/Jopw2X/TBTzvAtI5z/DSp56U4wBj7LfhBfzbdCtFPges+Wz0g55GdoawXibOH5jGng==}
843
+ peerDependencies:
844
+ '@firebase/app': 0.x
845
+
846
+ '@firebase/app-check-compat@0.3.26':
847
+ resolution: {integrity: sha512-PkX+XJMLDea6nmnopzFKlr+s2LMQGqdyT2DHdbx1v1dPSqOol2YzgpgymmhC67vitXVpNvS3m/AiWQWWhhRRPQ==}
848
+ engines: {node: '>=18.0.0'}
849
+ peerDependencies:
850
+ '@firebase/app-compat': 0.x
851
+
852
+ '@firebase/app-check-compat@0.4.2':
853
+ resolution: {integrity: sha512-M91NhxqbSkI0ChkJWy69blC+rPr6HEgaeRllddSaU1pQ/7IiegeCQM9pPDIgvWnwnBSzKhUHpe6ro/jhJ+cvzw==}
854
+ engines: {node: '>=20.0.0'}
855
+ peerDependencies:
856
+ '@firebase/app-compat': 0.x
857
+
858
+ '@firebase/app-check-interop-types@0.3.3':
859
+ resolution: {integrity: sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==}
860
+
861
+ '@firebase/app-check-types@0.5.3':
862
+ resolution: {integrity: sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==}
863
+
864
+ '@firebase/app-check@0.10.1':
865
+ resolution: {integrity: sha512-MgNdlms9Qb0oSny87pwpjKush9qUwCJhfmTJHDfrcKo4neLGiSeVE4qJkzP7EQTIUFKp84pbTxobSAXkiuQVYQ==}
866
+ engines: {node: '>=18.0.0'}
867
+ peerDependencies:
868
+ '@firebase/app': 0.x
869
+
870
+ '@firebase/app-check@0.11.2':
871
+ resolution: {integrity: sha512-jcXQVMHAQ5AEKzVD5C7s5fmAYeFOuN6lAJeNTgZK2B9aLnofWaJt8u1A8Idm8gpsBBYSaY3cVyeH5SWMOVPBLQ==}
872
+ engines: {node: '>=20.0.0'}
873
+ peerDependencies:
874
+ '@firebase/app': 0.x
875
+
876
+ '@firebase/app-compat@0.4.2':
877
+ resolution: {integrity: sha512-LssbyKHlwLeiV8GBATyOyjmHcMpX/tFjzRUCS1jnwGAew1VsBB4fJowyS5Ud5LdFbYpJeS+IQoC+RQxpK7eH3Q==}
878
+ engines: {node: '>=18.0.0'}
879
+
880
+ '@firebase/app-compat@0.5.11':
881
+ resolution: {integrity: sha512-KaACDjXkK5VLpI01vEs592R7/8s5DjFdIXfKoR385ly1SmK3Tu+jMHCIB4MsiY5jsez6v7VlEX/3rJ90dVkHyA==}
882
+ engines: {node: '>=20.0.0'}
883
+
884
+ '@firebase/app-types@0.9.3':
885
+ resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==}
886
+
887
+ '@firebase/app-types@0.9.4':
888
+ resolution: {integrity: sha512-crX9TA5SVYZwLPG7/R16IsH8FLlgkPXjJUVhsVpHVDSqJiq3D/NuFTM5ctxGTExXAOeIn//69tQw47CPerM8MQ==}
889
+
890
+ '@firebase/app@0.13.2':
891
+ resolution: {integrity: sha512-jwtMmJa1BXXDCiDx1vC6SFN/+HfYG53UkfJa6qeN5ogvOunzbFDO3wISZy5n9xgYFUrEP6M7e8EG++riHNTv9w==}
892
+ engines: {node: '>=18.0.0'}
893
+
894
+ '@firebase/app@0.14.11':
895
+ resolution: {integrity: sha512-yxADFW35LYkP8oSGobGsYIrI42I+GPCvKTNHx4meT9Yq3C950IVz1eANoBk822I9tbKv1wyv9P4Bv1G5TpucFw==}
896
+ engines: {node: '>=20.0.0'}
897
+
898
+ '@firebase/auth-compat@0.5.28':
899
+ resolution: {integrity: sha512-HpMSo/cc6Y8IX7bkRIaPPqT//Jt83iWy5rmDWeThXQCAImstkdNo3giFLORJwrZw2ptiGkOij64EH1ztNJzc7Q==}
900
+ engines: {node: '>=18.0.0'}
901
+ peerDependencies:
902
+ '@firebase/app-compat': 0.x
903
+
904
+ '@firebase/auth-compat@0.6.5':
905
+ resolution: {integrity: sha512-IfVsafZ3QiXbsydXTP/XMI0wVYbJLI1rkb8Qqf03/h5FnL+upbbPOb+6Yj3RpcX+Y1iP5Uh18lxTHlXfbiyAow==}
906
+ engines: {node: '>=20.0.0'}
907
+ peerDependencies:
908
+ '@firebase/app-compat': 0.x
909
+
910
+ '@firebase/auth-interop-types@0.2.4':
911
+ resolution: {integrity: sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==}
912
+
913
+ '@firebase/auth-types@0.13.0':
914
+ resolution: {integrity: sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==}
915
+ peerDependencies:
916
+ '@firebase/app-types': 0.x
917
+ '@firebase/util': 1.x
918
+
919
+ '@firebase/auth@1.10.8':
920
+ resolution: {integrity: sha512-GpuTz5ap8zumr/ocnPY57ZanX02COsXloY6Y/2LYPAuXYiaJRf6BAGDEdRq1BMjP93kqQnKNuKZUTMZbQ8MNYA==}
921
+ engines: {node: '>=18.0.0'}
922
+ peerDependencies:
923
+ '@firebase/app': 0.x
924
+ '@react-native-async-storage/async-storage': ^1.18.1
925
+ peerDependenciesMeta:
926
+ '@react-native-async-storage/async-storage':
927
+ optional: true
928
+
929
+ '@firebase/auth@1.13.0':
930
+ resolution: {integrity: sha512-mKkSLNym3UbnnZ06dAmtqzp5EpPGCANGCZDJbkoR135aoUdKG6Aizwcnp29RzsQpwH0nmy5nay17Sfbsh9oY8A==}
931
+ engines: {node: '>=20.0.0'}
932
+ peerDependencies:
933
+ '@firebase/app': 0.x
934
+ '@react-native-async-storage/async-storage': ^2.2.0 || ^3.0.0
935
+ peerDependenciesMeta:
936
+ '@react-native-async-storage/async-storage':
937
+ optional: true
938
+
939
+ '@firebase/component@0.6.18':
940
+ resolution: {integrity: sha512-n28kPCkE2dL2U28fSxZJjzPPVpKsQminJ6NrzcKXAI0E/lYC8YhfwpyllScqVEvAI3J2QgJZWYgrX+1qGI+SQQ==}
941
+ engines: {node: '>=18.0.0'}
942
+
943
+ '@firebase/component@0.7.2':
944
+ resolution: {integrity: sha512-iyVDGc6Vjx7Rm0cAdccLH/NG6fADsgJak/XW9IA2lPf8AjIlsemOpFGKczYyPHxm4rnKdR8z6sK4+KEC7NwmEg==}
945
+ engines: {node: '>=20.0.0'}
946
+
947
+ '@firebase/data-connect@0.3.10':
948
+ resolution: {integrity: sha512-VMVk7zxIkgwlVQIWHOKFahmleIjiVFwFOjmakXPd/LDgaB/5vzwsB5DWIYo+3KhGxWpidQlR8geCIn39YflJIQ==}
949
+ peerDependencies:
950
+ '@firebase/app': 0.x
951
+
952
+ '@firebase/data-connect@0.6.0':
953
+ resolution: {integrity: sha512-OiugPRcdlhqXF97oR9CjVObILmsWU0dFUS0gXNYEe4bDfpW8pZmQ5GqhIPPtLWbT/0W2lMJJD7VILFMk+xuHPg==}
954
+ peerDependencies:
955
+ '@firebase/app': 0.x
956
+
957
+ '@firebase/database-compat@2.0.11':
958
+ resolution: {integrity: sha512-itEsHARSsYS95+udF/TtIzNeQ0Uhx4uIna0sk4E0wQJBUnLc/G1X6D7oRljoOuwwCezRLGvWBRyNrugv/esOEw==}
959
+ engines: {node: '>=18.0.0'}
960
+
961
+ '@firebase/database-compat@2.1.3':
962
+ resolution: {integrity: sha512-GMyfWjD8mehjg/QpNkY/tl9G/MoeugPeg91n9D0atggxbWuKF/2KhVPHZDH+XmoP0EKYqMWYTtKxBsaBaNKLYQ==}
963
+ engines: {node: '>=20.0.0'}
964
+
965
+ '@firebase/database-types@1.0.15':
966
+ resolution: {integrity: sha512-XWHJ0VUJ0k2E9HDMlKxlgy/ZuTa9EvHCGLjaKSUvrQnwhgZuRU5N3yX6SZ+ftf2hTzZmfRkv+b3QRvGg40bKNw==}
967
+
968
+ '@firebase/database-types@1.0.19':
969
+ resolution: {integrity: sha512-FqewjUZmV9LqFfuEnmgdcUpiOUz7qwLXxnm/H8BcMFEzQXtd1yyUDm8ex5VRad2nuTE+ahOuCjUAM/cyDncO+g==}
970
+
971
+ '@firebase/database@1.0.20':
972
+ resolution: {integrity: sha512-H9Rpj1pQ1yc9+4HQOotFGLxqAXwOzCHsRSRjcQFNOr8lhUt6LeYjf0NSRL04sc4X0dWe8DsCvYKxMYvFG/iOJw==}
973
+ engines: {node: '>=18.0.0'}
974
+
975
+ '@firebase/database@1.1.2':
976
+ resolution: {integrity: sha512-lP96CMjMPy/+d1d9qaaHjHHdzdwvEOuyyLq9ehX89e2XMKwS1jHNzYBO+42bdSumuj5ukPbmnFtViZu8YOMT+w==}
977
+ engines: {node: '>=20.0.0'}
978
+
979
+ '@firebase/firestore-compat@0.3.53':
980
+ resolution: {integrity: sha512-qI3yZL8ljwAYWrTousWYbemay2YZa+udLWugjdjju2KODWtLG94DfO4NALJgPLv8CVGcDHNFXoyQexdRA0Cz8Q==}
981
+ engines: {node: '>=18.0.0'}
982
+ peerDependencies:
983
+ '@firebase/app-compat': 0.x
984
+
985
+ '@firebase/firestore-compat@0.4.8':
986
+ resolution: {integrity: sha512-WK9NJRpnosGD2nuyjdr7K+Ht7AxRYJlTF62myI4rRA7ibJOosbecvjacR5oirJ7s1BgNS6qzcBw7n4fD3a5w1w==}
987
+ engines: {node: '>=20.0.0'}
988
+ peerDependencies:
989
+ '@firebase/app-compat': 0.x
990
+
991
+ '@firebase/firestore-types@3.0.3':
992
+ resolution: {integrity: sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==}
993
+ peerDependencies:
994
+ '@firebase/app-types': 0.x
995
+ '@firebase/util': 1.x
996
+
997
+ '@firebase/firestore@4.14.0':
998
+ resolution: {integrity: sha512-bZc6YOjRkMBVA16527tgzi6iN9n//xRB3Mmx/R+Gr6UAP/+xrIKOejQIcn1hh+tCzNT8jO0jI+kWox5J4tB/qQ==}
999
+ engines: {node: '>=20.0.0'}
1000
+ peerDependencies:
1001
+ '@firebase/app': 0.x
1002
+
1003
+ '@firebase/firestore@4.8.0':
1004
+ resolution: {integrity: sha512-QSRk+Q1/CaabKyqn3C32KSFiOdZpSqI9rpLK5BHPcooElumOBooPFa6YkDdiT+/KhJtel36LdAacha9BptMj2A==}
1005
+ engines: {node: '>=18.0.0'}
1006
+ peerDependencies:
1007
+ '@firebase/app': 0.x
1008
+
1009
+ '@firebase/functions-compat@0.3.26':
1010
+ resolution: {integrity: sha512-A798/6ff5LcG2LTWqaGazbFYnjBW8zc65YfID/en83ALmkhu2b0G8ykvQnLtakbV9ajrMYPn7Yc/XcYsZIUsjA==}
1011
+ engines: {node: '>=18.0.0'}
1012
+ peerDependencies:
1013
+ '@firebase/app-compat': 0.x
1014
+
1015
+ '@firebase/functions-compat@0.4.3':
1016
+ resolution: {integrity: sha512-BxkEwWgx1of0tKaao/r2VR6WBLk/RAiyztatiONPrPE8gkitFkOnOCxf8i9cUyA5hX5RGt5H30uNn25Q6QNEmQ==}
1017
+ engines: {node: '>=20.0.0'}
1018
+ peerDependencies:
1019
+ '@firebase/app-compat': 0.x
1020
+
1021
+ '@firebase/functions-types@0.6.3':
1022
+ resolution: {integrity: sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==}
1023
+
1024
+ '@firebase/functions@0.12.9':
1025
+ resolution: {integrity: sha512-FG95w6vjbUXN84Ehezc2SDjGmGq225UYbHrb/ptkRT7OTuCiQRErOQuyt1jI1tvcDekdNog+anIObihNFz79Lg==}
1026
+ engines: {node: '>=18.0.0'}
1027
+ peerDependencies:
1028
+ '@firebase/app': 0.x
1029
+
1030
+ '@firebase/functions@0.13.3':
1031
+ resolution: {integrity: sha512-csO7ckK3SSs+NUZW1nms9EK7ckHe/1QOjiP8uAkCYa7ND18s44vjE9g3KxEeIUpyEPqZaX1EhJuFyZjHigAcYw==}
1032
+ engines: {node: '>=20.0.0'}
1033
+ peerDependencies:
1034
+ '@firebase/app': 0.x
1035
+
1036
+ '@firebase/installations-compat@0.2.18':
1037
+ resolution: {integrity: sha512-aLFohRpJO5kKBL/XYL4tN+GdwEB/Q6Vo9eZOM/6Kic7asSUgmSfGPpGUZO1OAaSRGwF4Lqnvi1f/f9VZnKzChw==}
1038
+ peerDependencies:
1039
+ '@firebase/app-compat': 0.x
1040
+
1041
+ '@firebase/installations-compat@0.2.21':
1042
+ resolution: {integrity: sha512-zahIUkaVKbR8zmTeBHkdfaVl6JGWlhVoSjF7CVH33nFqD3SlPEpEEegn2GNT5iAfsVdtlCyJJ9GW4YKjq+RJKQ==}
1043
+ peerDependencies:
1044
+ '@firebase/app-compat': 0.x
1045
+
1046
+ '@firebase/installations-types@0.5.3':
1047
+ resolution: {integrity: sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==}
1048
+ peerDependencies:
1049
+ '@firebase/app-types': 0.x
1050
+
1051
+ '@firebase/installations@0.6.18':
1052
+ resolution: {integrity: sha512-NQ86uGAcvO8nBRwVltRL9QQ4Reidc/3whdAasgeWCPIcrhOKDuNpAALa6eCVryLnK14ua2DqekCOX5uC9XbU/A==}
1053
+ peerDependencies:
1054
+ '@firebase/app': 0.x
1055
+
1056
+ '@firebase/installations@0.6.21':
1057
+ resolution: {integrity: sha512-xGFGTeICJZ5vhrmmDukeczIcFULFXybojML2+QSDFoKj5A7zbGN7KzFGSKNhDkIxpjzsYG9IleJyUebuAcmqWA==}
1058
+ peerDependencies:
1059
+ '@firebase/app': 0.x
1060
+
1061
+ '@firebase/logger@0.4.4':
1062
+ resolution: {integrity: sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g==}
1063
+ engines: {node: '>=18.0.0'}
1064
+
1065
+ '@firebase/logger@0.5.0':
1066
+ resolution: {integrity: sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==}
1067
+ engines: {node: '>=20.0.0'}
1068
+
1069
+ '@firebase/messaging-compat@0.2.22':
1070
+ resolution: {integrity: sha512-5ZHtRnj6YO6f/QPa/KU6gryjmX4Kg33Kn4gRpNU6M1K47Gm8kcQwPkX7erRUYEH1mIWptfvjvXMHWoZaWjkU7A==}
1071
+ peerDependencies:
1072
+ '@firebase/app-compat': 0.x
1073
+
1074
+ '@firebase/messaging-compat@0.2.25':
1075
+ resolution: {integrity: sha512-eoOQqGLtRlseTdiemTN44LlHZpltK5gnhq8XVUuLgtIOG+odtDzrz2UoTpcJWSzaJQVxNLb/x9f39tHdDM4N4w==}
1076
+ peerDependencies:
1077
+ '@firebase/app-compat': 0.x
1078
+
1079
+ '@firebase/messaging-interop-types@0.2.3':
1080
+ resolution: {integrity: sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==}
1081
+
1082
+ '@firebase/messaging@0.12.22':
1083
+ resolution: {integrity: sha512-GJcrPLc+Hu7nk+XQ70Okt3M1u1eRr2ZvpMbzbc54oTPJZySHcX9ccZGVFcsZbSZ6o1uqumm8Oc7OFkD3Rn1/og==}
1084
+ peerDependencies:
1085
+ '@firebase/app': 0.x
1086
+
1087
+ '@firebase/messaging@0.12.25':
1088
+ resolution: {integrity: sha512-7RhDwoDHlOK1/ou0/LeubxmjcngsTjDdrY/ssg2vwAVpUuVAhQzQvuCAOYxcX5wNC1zCgQ54AP1vdngBwbCmOQ==}
1089
+ peerDependencies:
1090
+ '@firebase/app': 0.x
1091
+
1092
+ '@firebase/performance-compat@0.2.20':
1093
+ resolution: {integrity: sha512-XkFK5NmOKCBuqOKWeRgBUFZZGz9SzdTZp4OqeUg+5nyjapTiZ4XoiiUL8z7mB2q+63rPmBl7msv682J3rcDXIQ==}
1094
+ peerDependencies:
1095
+ '@firebase/app-compat': 0.x
1096
+
1097
+ '@firebase/performance-compat@0.2.24':
1098
+ resolution: {integrity: sha512-YRlejH8wLt7ThWao+HXoKUHUrZKGYq+otxkPS+8nuE5PeN1cBXX7NAJl9ueuUkBwMIrnKdnDqL/voHXxDAAt3g==}
1099
+ peerDependencies:
1100
+ '@firebase/app-compat': 0.x
1101
+
1102
+ '@firebase/performance-types@0.2.3':
1103
+ resolution: {integrity: sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==}
1104
+
1105
+ '@firebase/performance@0.7.11':
1106
+ resolution: {integrity: sha512-V3uAhrz7IYJuji+OgT3qYTGKxpek/TViXti9OSsUJ4AexZ3jQjYH5Yrn7JvBxk8MGiSLsC872hh+BxQiPZsm7g==}
1107
+ peerDependencies:
1108
+ '@firebase/app': 0.x
1109
+
1110
+ '@firebase/performance@0.7.7':
1111
+ resolution: {integrity: sha512-JTlTQNZKAd4+Q5sodpw6CN+6NmwbY72av3Lb6wUKTsL7rb3cuBIhQSrslWbVz0SwK3x0ZNcqX24qtRbwKiv+6w==}
1112
+ peerDependencies:
1113
+ '@firebase/app': 0.x
1114
+
1115
+ '@firebase/remote-config-compat@0.2.18':
1116
+ resolution: {integrity: sha512-YiETpldhDy7zUrnS8e+3l7cNs0sL7+tVAxvVYU0lu7O+qLHbmdtAxmgY+wJqWdW2c9nDvBFec7QiF58pEUu0qQ==}
1117
+ peerDependencies:
1118
+ '@firebase/app-compat': 0.x
1119
+
1120
+ '@firebase/remote-config-compat@0.2.23':
1121
+ resolution: {integrity: sha512-4+KqRRHEUUmKT6tFmnpWATOsaFfmSuBs1jXH8JzVtMLEYqq/WS9IDM92OdefFDSrAA2xGd0WN004z8mKeIIscw==}
1122
+ peerDependencies:
1123
+ '@firebase/app-compat': 0.x
1124
+
1125
+ '@firebase/remote-config-types@0.4.0':
1126
+ resolution: {integrity: sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==}
1127
+
1128
+ '@firebase/remote-config-types@0.5.0':
1129
+ resolution: {integrity: sha512-vI3bqLoF14L/GchtgayMiFpZJF+Ao3uR8WCde0XpYNkSokDpAKca2DxvcfeZv7lZUqkUwQPL2wD83d3vQ4vvrg==}
1130
+
1131
+ '@firebase/remote-config@0.6.5':
1132
+ resolution: {integrity: sha512-fU0c8HY0vrVHwC+zQ/fpXSqHyDMuuuglV94VF6Yonhz8Fg2J+KOowPGANM0SZkLvVOYpTeWp3ZmM+F6NjwWLnw==}
1133
+ peerDependencies:
1134
+ '@firebase/app': 0.x
1135
+
1136
+ '@firebase/remote-config@0.8.2':
1137
+ resolution: {integrity: sha512-5EXqOThV4upjK9D38d/qOSVwOqRhemlaOFk9vCkMNNALeIlwr+4pLjtLNo4qoY8etQmU/1q4aIATE9N8PFqg0g==}
1138
+ peerDependencies:
1139
+ '@firebase/app': 0.x
1140
+
1141
+ '@firebase/storage-compat@0.3.24':
1142
+ resolution: {integrity: sha512-XHn2tLniiP7BFKJaPZ0P8YQXKiVJX+bMyE2j2YWjYfaddqiJnROJYqSomwW6L3Y+gZAga35ONXUJQju6MB6SOQ==}
1143
+ engines: {node: '>=18.0.0'}
1144
+ peerDependencies:
1145
+ '@firebase/app-compat': 0.x
1146
+
1147
+ '@firebase/storage-compat@0.4.2':
1148
+ resolution: {integrity: sha512-R+aB38wxCH5zjIO/xu9KznI7fgiPuZAG98uVm1NcidHyyupGgIDLKigGmRGBZMnxibe/m2oxNKoZpfEbUX2aQQ==}
1149
+ engines: {node: '>=20.0.0'}
1150
+ peerDependencies:
1151
+ '@firebase/app-compat': 0.x
1152
+
1153
+ '@firebase/storage-types@0.8.3':
1154
+ resolution: {integrity: sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==}
1155
+ peerDependencies:
1156
+ '@firebase/app-types': 0.x
1157
+ '@firebase/util': 1.x
1158
+
1159
+ '@firebase/storage@0.13.14':
1160
+ resolution: {integrity: sha512-xTq5ixxORzx+bfqCpsh+o3fxOsGoDjC1nO0Mq2+KsOcny3l7beyBhP/y1u5T6mgsFQwI1j6oAkbT5cWdDBx87g==}
1161
+ engines: {node: '>=18.0.0'}
1162
+ peerDependencies:
1163
+ '@firebase/app': 0.x
1164
+
1165
+ '@firebase/storage@0.14.2':
1166
+ resolution: {integrity: sha512-o/culaTeJ8GRpKXRJov21rux/n9dRaSOWLebyatFP2sqEdCxQPjVA1H9Z2fzYwQxMIU0JVmC7SPPmU11v7L6vQ==}
1167
+ engines: {node: '>=20.0.0'}
1168
+ peerDependencies:
1169
+ '@firebase/app': 0.x
1170
+
1171
+ '@firebase/util@1.12.1':
1172
+ resolution: {integrity: sha512-zGlBn/9Dnya5ta9bX/fgEoNC3Cp8s6h+uYPYaDieZsFOAdHP/ExzQ/eaDgxD3GOROdPkLKpvKY0iIzr9adle0w==}
1173
+ engines: {node: '>=18.0.0'}
1174
+
1175
+ '@firebase/util@1.15.0':
1176
+ resolution: {integrity: sha512-AmWf3cHAOMbrCPG4xdPKQaj5iHnyYfyLKZxwz+Xf55bqKbpAmcYifB4jQinT2W9XhDRHISOoPyBOariJpCG6FA==}
1177
+ engines: {node: '>=20.0.0'}
1178
+
1179
+ '@firebase/webchannel-wrapper@1.0.3':
1180
+ resolution: {integrity: sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ==}
1181
+
1182
+ '@firebase/webchannel-wrapper@1.0.5':
1183
+ resolution: {integrity: sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==}
1184
+
1185
  '@floating-ui/core@1.7.5':
1186
  resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
1187
 
 
1200
  '@gerrit0/mini-shiki@3.23.0':
1201
  resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==}
1202
 
1203
+ '@grpc/grpc-js@1.9.15':
1204
+ resolution: {integrity: sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==}
1205
+ engines: {node: ^8.13.0 || >=10.10.0}
1206
+
1207
+ '@grpc/proto-loader@0.7.15':
1208
+ resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==}
1209
+ engines: {node: '>=6'}
1210
+ hasBin: true
1211
+
1212
  '@hookform/resolvers@3.10.0':
1213
  resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==}
1214
  peerDependencies:
1215
  react-hook-form: ^7.0.0
1216
 
1217
+ '@huggingface/hub@2.11.0':
1218
+ resolution: {integrity: sha512-WS6QGaXYeBVFlaB4SOn6z4LGUpLB5kRZNL08uUni4izX353KxiwwZMK5+/AWX86MJh8SMZNa/JFcvFCcQsbszQ==}
1219
+ engines: {node: '>=18'}
1220
+ hasBin: true
1221
+
1222
+ '@huggingface/tasks@0.19.90':
1223
+ resolution: {integrity: sha512-nfV9luJbvwGQ/5oKXkKhCV9h4X7mwh1YaGG3ORd6UMLDSwr1OFSSatcBX0O9OtBtmNK19aGSjbLFqqgcIR6+IA==}
1224
+
1225
  '@jridgewell/gen-mapping@0.3.13':
1226
  resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
1227
 
 
1297
  '@pinojs/redact@0.4.0':
1298
  resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
1299
 
1300
+ '@protobufjs/aspromise@1.1.2':
1301
+ resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
1302
+
1303
+ '@protobufjs/base64@1.1.2':
1304
+ resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
1305
+
1306
+ '@protobufjs/codegen@2.0.4':
1307
+ resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
1308
+
1309
+ '@protobufjs/eventemitter@1.1.0':
1310
+ resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
1311
+
1312
+ '@protobufjs/fetch@1.1.0':
1313
+ resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
1314
+
1315
+ '@protobufjs/float@1.0.2':
1316
+ resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
1317
+
1318
+ '@protobufjs/inquire@1.1.0':
1319
+ resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
1320
+
1321
+ '@protobufjs/path@1.1.2':
1322
+ resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
1323
+
1324
+ '@protobufjs/pool@1.1.0':
1325
+ resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
1326
+
1327
+ '@protobufjs/utf8@1.1.0':
1328
+ resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
1329
+
1330
  '@radix-ui/number@1.1.1':
1331
  resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
1332
 
 
2259
  resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
2260
  engines: {node: '>=8'}
2261
 
2262
+ ansi-styles@4.3.0:
2263
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
2264
+ engines: {node: '>=8'}
2265
+
2266
  argparse@2.0.1:
2267
  resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
2268
 
 
2351
  class-variance-authority@0.7.1:
2352
  resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
2353
 
2354
+ cli-progress@3.12.0:
2355
+ resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==}
2356
+ engines: {node: '>=4'}
2357
+
2358
+ cliui@8.0.1:
2359
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
2360
+ engines: {node: '>=12'}
2361
+
2362
  clsx@2.1.1:
2363
  resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
2364
  engines: {node: '>=6'}
 
2369
  react: ^18 || ^19 || ^19.0.0-rc
2370
  react-dom: ^18 || ^19 || ^19.0.0-rc
2371
 
2372
+ color-convert@2.0.1:
2373
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
2374
+ engines: {node: '>=7.0.0'}
2375
+
2376
+ color-name@1.1.4:
2377
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
2378
+
2379
  colorette@2.0.20:
2380
  resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
2381
 
 
2655
  embla-carousel@8.6.0:
2656
  resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==}
2657
 
2658
+ emoji-regex@8.0.0:
2659
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
2660
+
2661
  encodeurl@2.0.0:
2662
  resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
2663
  engines: {node: '>= 0.8'}
 
2774
  fault@1.0.4:
2775
  resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
2776
 
2777
+ faye-websocket@0.11.4:
2778
+ resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
2779
+ engines: {node: '>=0.8.0'}
2780
+
2781
  fdir@6.5.0:
2782
  resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
2783
  engines: {node: '>=12.0.0'}
 
2807
  resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==}
2808
  engines: {node: '>=20'}
2809
 
2810
+ firebase@11.10.0:
2811
+ resolution: {integrity: sha512-nKBXoDzF0DrXTBQJlZa+sbC5By99ysYU1D6PkMRYknm0nCW7rJly47q492Ht7Ndz5MeYSBuboKuhS1e6mFC03w==}
2812
+
2813
+ firebase@12.12.1:
2814
+ resolution: {integrity: sha512-ee7xA+bTJLfjB9BP/8FQr3EkxmpAAGc1lNc5QkWgTDpUw24HYXFPm7FEWRdLtGnygxIdYpFmepSc5VjkI6NHhw==}
2815
+
2816
  format@0.2.2:
2817
  resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
2818
  engines: {node: '>=0.4.x'}
 
2933
  resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
2934
  engines: {node: '>= 0.8'}
2935
 
2936
+ http-parser-js@0.5.10:
2937
+ resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==}
2938
+
2939
  human-signals@8.0.1:
2940
  resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
2941
  engines: {node: '>=18.18.0'}
 
2944
  resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
2945
  engines: {node: '>=0.10.0'}
2946
 
2947
+ idb@7.1.1:
2948
+ resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
2949
+
2950
  ignore@7.0.5:
2951
  resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
2952
  engines: {node: '>= 4'}
 
2993
  resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2994
  engines: {node: '>=0.10.0'}
2995
 
2996
+ is-fullwidth-code-point@3.0.0:
2997
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
2998
+ engines: {node: '>=8'}
2999
+
3000
  is-glob@4.0.3:
3001
  resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
3002
  engines: {node: '>=0.10.0'}
 
3093
  resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==}
3094
  engines: {node: '>=20'}
3095
 
3096
+ lodash.camelcase@4.3.0:
3097
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
3098
+
3099
  lodash@4.17.23:
3100
  resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
3101
 
3102
+ long@5.3.2:
3103
+ resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
3104
+
3105
  longest-streak@3.1.0:
3106
  resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
3107
 
 
3535
  property-information@7.1.0:
3536
  resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
3537
 
3538
+ protobufjs@7.5.5:
3539
+ resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==}
3540
+ engines: {node: '>=12.0.0'}
3541
+
3542
  proxy-addr@2.0.7:
3543
  resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
3544
  engines: {node: '>= 0.10'}
 
3707
  remeda@2.33.6:
3708
  resolution: {integrity: sha512-tazDGH7s75kUPGBKLvhgBEHMgW+TdDFhjUAMdQj57IoWz6HsGa5D2RX5yDUz6IIqiRRvZiaEHzCzWdTeixc/Kg==}
3709
 
3710
+ require-directory@2.1.1:
3711
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
3712
+ engines: {node: '>=0.10.0'}
3713
+
3714
  require-from-string@2.0.2:
3715
  resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
3716
  engines: {node: '>=0.10.0'}
 
3734
  run-parallel@1.2.0:
3735
  resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3736
 
3737
+ safe-buffer@5.2.1:
3738
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
3739
+
3740
  safe-stable-stringify@2.5.0:
3741
  resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
3742
  engines: {node: '>=10'}
 
3831
  resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
3832
  engines: {node: '>=0.6.19'}
3833
 
3834
+ string-width@4.2.3:
3835
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3836
+ engines: {node: '>=8'}
3837
+
3838
  stringify-entities@4.0.4:
3839
  resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
3840
 
 
4081
  resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
4082
  engines: {node: '>= 8'}
4083
 
4084
+ web-vitals@4.2.4:
4085
+ resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==}
4086
+
4087
+ websocket-driver@0.7.4:
4088
+ resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
4089
+ engines: {node: '>=0.8.0'}
4090
+
4091
+ websocket-extensions@0.1.4:
4092
+ resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
4093
+ engines: {node: '>=0.8.0'}
4094
+
4095
  which@2.0.2:
4096
  resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
4097
  engines: {node: '>= 8'}
 
4102
  peerDependencies:
4103
  react: '>=16.8.0'
4104
 
4105
+ wrap-ansi@7.0.0:
4106
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
4107
+ engines: {node: '>=10'}
4108
+
4109
  wrappy@1.0.2:
4110
  resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
4111
 
 
4113
  resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
4114
  engines: {node: '>=0.4'}
4115
 
4116
+ y18n@5.0.8:
4117
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
4118
+ engines: {node: '>=10'}
4119
+
4120
  yallist@3.1.1:
4121
  resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
4122
 
 
4125
  engines: {node: '>= 14.6'}
4126
  hasBin: true
4127
 
4128
+ yargs-parser@21.1.1:
4129
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
4130
+ engines: {node: '>=12'}
4131
+
4132
+ yargs@17.7.2:
4133
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
4134
+ engines: {node: '>=12'}
4135
+
4136
  yocto-queue@1.2.2:
4137
  resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
4138
  engines: {node: '>=12.20'}
 
4295
  '@esbuild/linux-x64@0.27.3':
4296
  optional: true
4297
 
4298
+ '@firebase/ai@1.4.1(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)':
4299
+ dependencies:
4300
+ '@firebase/app': 0.13.2
4301
+ '@firebase/app-check-interop-types': 0.3.3
4302
+ '@firebase/app-types': 0.9.3
4303
+ '@firebase/component': 0.6.18
4304
+ '@firebase/logger': 0.4.4
4305
+ '@firebase/util': 1.12.1
4306
+ tslib: 2.8.1
4307
+
4308
+ '@firebase/ai@2.11.1(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)':
4309
+ dependencies:
4310
+ '@firebase/app': 0.14.11
4311
+ '@firebase/app-check-interop-types': 0.3.3
4312
+ '@firebase/app-types': 0.9.4
4313
+ '@firebase/component': 0.7.2
4314
+ '@firebase/logger': 0.5.0
4315
+ '@firebase/util': 1.15.0
4316
+ tslib: 2.8.1
4317
+
4318
+ '@firebase/analytics-compat@0.2.23(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4319
+ dependencies:
4320
+ '@firebase/analytics': 0.10.17(@firebase/app@0.13.2)
4321
+ '@firebase/analytics-types': 0.8.3
4322
+ '@firebase/app-compat': 0.4.2
4323
+ '@firebase/component': 0.6.18
4324
+ '@firebase/util': 1.12.1
4325
+ tslib: 2.8.1
4326
+ transitivePeerDependencies:
4327
+ - '@firebase/app'
4328
+
4329
+ '@firebase/analytics-compat@0.2.27(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4330
+ dependencies:
4331
+ '@firebase/analytics': 0.10.21(@firebase/app@0.14.11)
4332
+ '@firebase/analytics-types': 0.8.3
4333
+ '@firebase/app-compat': 0.5.11
4334
+ '@firebase/component': 0.7.2
4335
+ '@firebase/util': 1.15.0
4336
+ tslib: 2.8.1
4337
+ transitivePeerDependencies:
4338
+ - '@firebase/app'
4339
+
4340
+ '@firebase/analytics-types@0.8.3': {}
4341
+
4342
+ '@firebase/analytics@0.10.17(@firebase/app@0.13.2)':
4343
+ dependencies:
4344
+ '@firebase/app': 0.13.2
4345
+ '@firebase/component': 0.6.18
4346
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
4347
+ '@firebase/logger': 0.4.4
4348
+ '@firebase/util': 1.12.1
4349
+ tslib: 2.8.1
4350
+
4351
+ '@firebase/analytics@0.10.21(@firebase/app@0.14.11)':
4352
+ dependencies:
4353
+ '@firebase/app': 0.14.11
4354
+ '@firebase/component': 0.7.2
4355
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
4356
+ '@firebase/logger': 0.5.0
4357
+ '@firebase/util': 1.15.0
4358
+ tslib: 2.8.1
4359
+
4360
+ '@firebase/app-check-compat@0.3.26(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4361
+ dependencies:
4362
+ '@firebase/app-check': 0.10.1(@firebase/app@0.13.2)
4363
+ '@firebase/app-check-types': 0.5.3
4364
+ '@firebase/app-compat': 0.4.2
4365
+ '@firebase/component': 0.6.18
4366
+ '@firebase/logger': 0.4.4
4367
+ '@firebase/util': 1.12.1
4368
+ tslib: 2.8.1
4369
+ transitivePeerDependencies:
4370
+ - '@firebase/app'
4371
+
4372
+ '@firebase/app-check-compat@0.4.2(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4373
+ dependencies:
4374
+ '@firebase/app-check': 0.11.2(@firebase/app@0.14.11)
4375
+ '@firebase/app-check-types': 0.5.3
4376
+ '@firebase/app-compat': 0.5.11
4377
+ '@firebase/component': 0.7.2
4378
+ '@firebase/logger': 0.5.0
4379
+ '@firebase/util': 1.15.0
4380
+ tslib: 2.8.1
4381
+ transitivePeerDependencies:
4382
+ - '@firebase/app'
4383
+
4384
+ '@firebase/app-check-interop-types@0.3.3': {}
4385
+
4386
+ '@firebase/app-check-types@0.5.3': {}
4387
+
4388
+ '@firebase/app-check@0.10.1(@firebase/app@0.13.2)':
4389
+ dependencies:
4390
+ '@firebase/app': 0.13.2
4391
+ '@firebase/component': 0.6.18
4392
+ '@firebase/logger': 0.4.4
4393
+ '@firebase/util': 1.12.1
4394
+ tslib: 2.8.1
4395
+
4396
+ '@firebase/app-check@0.11.2(@firebase/app@0.14.11)':
4397
+ dependencies:
4398
+ '@firebase/app': 0.14.11
4399
+ '@firebase/component': 0.7.2
4400
+ '@firebase/logger': 0.5.0
4401
+ '@firebase/util': 1.15.0
4402
+ tslib: 2.8.1
4403
+
4404
+ '@firebase/app-compat@0.4.2':
4405
+ dependencies:
4406
+ '@firebase/app': 0.13.2
4407
+ '@firebase/component': 0.6.18
4408
+ '@firebase/logger': 0.4.4
4409
+ '@firebase/util': 1.12.1
4410
+ tslib: 2.8.1
4411
+
4412
+ '@firebase/app-compat@0.5.11':
4413
+ dependencies:
4414
+ '@firebase/app': 0.14.11
4415
+ '@firebase/component': 0.7.2
4416
+ '@firebase/logger': 0.5.0
4417
+ '@firebase/util': 1.15.0
4418
+ tslib: 2.8.1
4419
+
4420
+ '@firebase/app-types@0.9.3': {}
4421
+
4422
+ '@firebase/app-types@0.9.4':
4423
+ dependencies:
4424
+ '@firebase/logger': 0.5.0
4425
+
4426
+ '@firebase/app@0.13.2':
4427
+ dependencies:
4428
+ '@firebase/component': 0.6.18
4429
+ '@firebase/logger': 0.4.4
4430
+ '@firebase/util': 1.12.1
4431
+ idb: 7.1.1
4432
+ tslib: 2.8.1
4433
+
4434
+ '@firebase/app@0.14.11':
4435
+ dependencies:
4436
+ '@firebase/component': 0.7.2
4437
+ '@firebase/logger': 0.5.0
4438
+ '@firebase/util': 1.15.0
4439
+ idb: 7.1.1
4440
+ tslib: 2.8.1
4441
+
4442
+ '@firebase/auth-compat@0.5.28(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)':
4443
+ dependencies:
4444
+ '@firebase/app-compat': 0.4.2
4445
+ '@firebase/auth': 1.10.8(@firebase/app@0.13.2)
4446
+ '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)
4447
+ '@firebase/component': 0.6.18
4448
+ '@firebase/util': 1.12.1
4449
+ tslib: 2.8.1
4450
+ transitivePeerDependencies:
4451
+ - '@firebase/app'
4452
+ - '@firebase/app-types'
4453
+ - '@react-native-async-storage/async-storage'
4454
+
4455
+ '@firebase/auth-compat@0.6.5(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)':
4456
+ dependencies:
4457
+ '@firebase/app-compat': 0.5.11
4458
+ '@firebase/auth': 1.13.0(@firebase/app@0.14.11)
4459
+ '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)
4460
+ '@firebase/component': 0.7.2
4461
+ '@firebase/util': 1.15.0
4462
+ tslib: 2.8.1
4463
+ transitivePeerDependencies:
4464
+ - '@firebase/app'
4465
+ - '@firebase/app-types'
4466
+ - '@react-native-async-storage/async-storage'
4467
+
4468
+ '@firebase/auth-interop-types@0.2.4': {}
4469
+
4470
+ '@firebase/auth-types@0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)':
4471
+ dependencies:
4472
+ '@firebase/app-types': 0.9.3
4473
+ '@firebase/util': 1.12.1
4474
+
4475
+ '@firebase/auth-types@0.13.0(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)':
4476
+ dependencies:
4477
+ '@firebase/app-types': 0.9.4
4478
+ '@firebase/util': 1.15.0
4479
+
4480
+ '@firebase/auth@1.10.8(@firebase/app@0.13.2)':
4481
+ dependencies:
4482
+ '@firebase/app': 0.13.2
4483
+ '@firebase/component': 0.6.18
4484
+ '@firebase/logger': 0.4.4
4485
+ '@firebase/util': 1.12.1
4486
+ tslib: 2.8.1
4487
+
4488
+ '@firebase/auth@1.13.0(@firebase/app@0.14.11)':
4489
+ dependencies:
4490
+ '@firebase/app': 0.14.11
4491
+ '@firebase/component': 0.7.2
4492
+ '@firebase/logger': 0.5.0
4493
+ '@firebase/util': 1.15.0
4494
+ tslib: 2.8.1
4495
+
4496
+ '@firebase/component@0.6.18':
4497
+ dependencies:
4498
+ '@firebase/util': 1.12.1
4499
+ tslib: 2.8.1
4500
+
4501
+ '@firebase/component@0.7.2':
4502
+ dependencies:
4503
+ '@firebase/util': 1.15.0
4504
+ tslib: 2.8.1
4505
+
4506
+ '@firebase/data-connect@0.3.10(@firebase/app@0.13.2)':
4507
+ dependencies:
4508
+ '@firebase/app': 0.13.2
4509
+ '@firebase/auth-interop-types': 0.2.4
4510
+ '@firebase/component': 0.6.18
4511
+ '@firebase/logger': 0.4.4
4512
+ '@firebase/util': 1.12.1
4513
+ tslib: 2.8.1
4514
+
4515
+ '@firebase/data-connect@0.6.0(@firebase/app@0.14.11)':
4516
+ dependencies:
4517
+ '@firebase/app': 0.14.11
4518
+ '@firebase/auth-interop-types': 0.2.4
4519
+ '@firebase/component': 0.7.2
4520
+ '@firebase/logger': 0.5.0
4521
+ '@firebase/util': 1.15.0
4522
+ tslib: 2.8.1
4523
+
4524
+ '@firebase/database-compat@2.0.11':
4525
+ dependencies:
4526
+ '@firebase/component': 0.6.18
4527
+ '@firebase/database': 1.0.20
4528
+ '@firebase/database-types': 1.0.15
4529
+ '@firebase/logger': 0.4.4
4530
+ '@firebase/util': 1.12.1
4531
+ tslib: 2.8.1
4532
+
4533
+ '@firebase/database-compat@2.1.3':
4534
+ dependencies:
4535
+ '@firebase/component': 0.7.2
4536
+ '@firebase/database': 1.1.2
4537
+ '@firebase/database-types': 1.0.19
4538
+ '@firebase/logger': 0.5.0
4539
+ '@firebase/util': 1.15.0
4540
+ tslib: 2.8.1
4541
+
4542
+ '@firebase/database-types@1.0.15':
4543
+ dependencies:
4544
+ '@firebase/app-types': 0.9.3
4545
+ '@firebase/util': 1.12.1
4546
+
4547
+ '@firebase/database-types@1.0.19':
4548
+ dependencies:
4549
+ '@firebase/app-types': 0.9.4
4550
+ '@firebase/util': 1.15.0
4551
+
4552
+ '@firebase/database@1.0.20':
4553
+ dependencies:
4554
+ '@firebase/app-check-interop-types': 0.3.3
4555
+ '@firebase/auth-interop-types': 0.2.4
4556
+ '@firebase/component': 0.6.18
4557
+ '@firebase/logger': 0.4.4
4558
+ '@firebase/util': 1.12.1
4559
+ faye-websocket: 0.11.4
4560
+ tslib: 2.8.1
4561
+
4562
+ '@firebase/database@1.1.2':
4563
+ dependencies:
4564
+ '@firebase/app-check-interop-types': 0.3.3
4565
+ '@firebase/auth-interop-types': 0.2.4
4566
+ '@firebase/component': 0.7.2
4567
+ '@firebase/logger': 0.5.0
4568
+ '@firebase/util': 1.15.0
4569
+ faye-websocket: 0.11.4
4570
+ tslib: 2.8.1
4571
+
4572
+ '@firebase/firestore-compat@0.3.53(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)':
4573
+ dependencies:
4574
+ '@firebase/app-compat': 0.4.2
4575
+ '@firebase/component': 0.6.18
4576
+ '@firebase/firestore': 4.8.0(@firebase/app@0.13.2)
4577
+ '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)
4578
+ '@firebase/util': 1.12.1
4579
+ tslib: 2.8.1
4580
+ transitivePeerDependencies:
4581
+ - '@firebase/app'
4582
+ - '@firebase/app-types'
4583
+
4584
+ '@firebase/firestore-compat@0.4.8(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)':
4585
+ dependencies:
4586
+ '@firebase/app-compat': 0.5.11
4587
+ '@firebase/component': 0.7.2
4588
+ '@firebase/firestore': 4.14.0(@firebase/app@0.14.11)
4589
+ '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)
4590
+ '@firebase/util': 1.15.0
4591
+ tslib: 2.8.1
4592
+ transitivePeerDependencies:
4593
+ - '@firebase/app'
4594
+ - '@firebase/app-types'
4595
+
4596
+ '@firebase/firestore-types@3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)':
4597
+ dependencies:
4598
+ '@firebase/app-types': 0.9.3
4599
+ '@firebase/util': 1.12.1
4600
+
4601
+ '@firebase/firestore-types@3.0.3(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)':
4602
+ dependencies:
4603
+ '@firebase/app-types': 0.9.4
4604
+ '@firebase/util': 1.15.0
4605
+
4606
+ '@firebase/firestore@4.14.0(@firebase/app@0.14.11)':
4607
+ dependencies:
4608
+ '@firebase/app': 0.14.11
4609
+ '@firebase/component': 0.7.2
4610
+ '@firebase/logger': 0.5.0
4611
+ '@firebase/util': 1.15.0
4612
+ '@firebase/webchannel-wrapper': 1.0.5
4613
+ '@grpc/grpc-js': 1.9.15
4614
+ '@grpc/proto-loader': 0.7.15
4615
+ tslib: 2.8.1
4616
+
4617
+ '@firebase/firestore@4.8.0(@firebase/app@0.13.2)':
4618
+ dependencies:
4619
+ '@firebase/app': 0.13.2
4620
+ '@firebase/component': 0.6.18
4621
+ '@firebase/logger': 0.4.4
4622
+ '@firebase/util': 1.12.1
4623
+ '@firebase/webchannel-wrapper': 1.0.3
4624
+ '@grpc/grpc-js': 1.9.15
4625
+ '@grpc/proto-loader': 0.7.15
4626
+ tslib: 2.8.1
4627
+
4628
+ '@firebase/functions-compat@0.3.26(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4629
+ dependencies:
4630
+ '@firebase/app-compat': 0.4.2
4631
+ '@firebase/component': 0.6.18
4632
+ '@firebase/functions': 0.12.9(@firebase/app@0.13.2)
4633
+ '@firebase/functions-types': 0.6.3
4634
+ '@firebase/util': 1.12.1
4635
+ tslib: 2.8.1
4636
+ transitivePeerDependencies:
4637
+ - '@firebase/app'
4638
+
4639
+ '@firebase/functions-compat@0.4.3(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4640
+ dependencies:
4641
+ '@firebase/app-compat': 0.5.11
4642
+ '@firebase/component': 0.7.2
4643
+ '@firebase/functions': 0.13.3(@firebase/app@0.14.11)
4644
+ '@firebase/functions-types': 0.6.3
4645
+ '@firebase/util': 1.15.0
4646
+ tslib: 2.8.1
4647
+ transitivePeerDependencies:
4648
+ - '@firebase/app'
4649
+
4650
+ '@firebase/functions-types@0.6.3': {}
4651
+
4652
+ '@firebase/functions@0.12.9(@firebase/app@0.13.2)':
4653
+ dependencies:
4654
+ '@firebase/app': 0.13.2
4655
+ '@firebase/app-check-interop-types': 0.3.3
4656
+ '@firebase/auth-interop-types': 0.2.4
4657
+ '@firebase/component': 0.6.18
4658
+ '@firebase/messaging-interop-types': 0.2.3
4659
+ '@firebase/util': 1.12.1
4660
+ tslib: 2.8.1
4661
+
4662
+ '@firebase/functions@0.13.3(@firebase/app@0.14.11)':
4663
+ dependencies:
4664
+ '@firebase/app': 0.14.11
4665
+ '@firebase/app-check-interop-types': 0.3.3
4666
+ '@firebase/auth-interop-types': 0.2.4
4667
+ '@firebase/component': 0.7.2
4668
+ '@firebase/messaging-interop-types': 0.2.3
4669
+ '@firebase/util': 1.15.0
4670
+ tslib: 2.8.1
4671
+
4672
+ '@firebase/installations-compat@0.2.18(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)':
4673
+ dependencies:
4674
+ '@firebase/app-compat': 0.4.2
4675
+ '@firebase/component': 0.6.18
4676
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
4677
+ '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3)
4678
+ '@firebase/util': 1.12.1
4679
+ tslib: 2.8.1
4680
+ transitivePeerDependencies:
4681
+ - '@firebase/app'
4682
+ - '@firebase/app-types'
4683
+
4684
+ '@firebase/installations-compat@0.2.21(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)':
4685
+ dependencies:
4686
+ '@firebase/app-compat': 0.5.11
4687
+ '@firebase/component': 0.7.2
4688
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
4689
+ '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.4)
4690
+ '@firebase/util': 1.15.0
4691
+ tslib: 2.8.1
4692
+ transitivePeerDependencies:
4693
+ - '@firebase/app'
4694
+ - '@firebase/app-types'
4695
+
4696
+ '@firebase/installations-types@0.5.3(@firebase/app-types@0.9.3)':
4697
+ dependencies:
4698
+ '@firebase/app-types': 0.9.3
4699
+
4700
+ '@firebase/installations-types@0.5.3(@firebase/app-types@0.9.4)':
4701
+ dependencies:
4702
+ '@firebase/app-types': 0.9.4
4703
+
4704
+ '@firebase/installations@0.6.18(@firebase/app@0.13.2)':
4705
+ dependencies:
4706
+ '@firebase/app': 0.13.2
4707
+ '@firebase/component': 0.6.18
4708
+ '@firebase/util': 1.12.1
4709
+ idb: 7.1.1
4710
+ tslib: 2.8.1
4711
+
4712
+ '@firebase/installations@0.6.21(@firebase/app@0.14.11)':
4713
+ dependencies:
4714
+ '@firebase/app': 0.14.11
4715
+ '@firebase/component': 0.7.2
4716
+ '@firebase/util': 1.15.0
4717
+ idb: 7.1.1
4718
+ tslib: 2.8.1
4719
+
4720
+ '@firebase/logger@0.4.4':
4721
+ dependencies:
4722
+ tslib: 2.8.1
4723
+
4724
+ '@firebase/logger@0.5.0':
4725
+ dependencies:
4726
+ tslib: 2.8.1
4727
+
4728
+ '@firebase/messaging-compat@0.2.22(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4729
+ dependencies:
4730
+ '@firebase/app-compat': 0.4.2
4731
+ '@firebase/component': 0.6.18
4732
+ '@firebase/messaging': 0.12.22(@firebase/app@0.13.2)
4733
+ '@firebase/util': 1.12.1
4734
+ tslib: 2.8.1
4735
+ transitivePeerDependencies:
4736
+ - '@firebase/app'
4737
+
4738
+ '@firebase/messaging-compat@0.2.25(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4739
+ dependencies:
4740
+ '@firebase/app-compat': 0.5.11
4741
+ '@firebase/component': 0.7.2
4742
+ '@firebase/messaging': 0.12.25(@firebase/app@0.14.11)
4743
+ '@firebase/util': 1.15.0
4744
+ tslib: 2.8.1
4745
+ transitivePeerDependencies:
4746
+ - '@firebase/app'
4747
+
4748
+ '@firebase/messaging-interop-types@0.2.3': {}
4749
+
4750
+ '@firebase/messaging@0.12.22(@firebase/app@0.13.2)':
4751
+ dependencies:
4752
+ '@firebase/app': 0.13.2
4753
+ '@firebase/component': 0.6.18
4754
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
4755
+ '@firebase/messaging-interop-types': 0.2.3
4756
+ '@firebase/util': 1.12.1
4757
+ idb: 7.1.1
4758
+ tslib: 2.8.1
4759
+
4760
+ '@firebase/messaging@0.12.25(@firebase/app@0.14.11)':
4761
+ dependencies:
4762
+ '@firebase/app': 0.14.11
4763
+ '@firebase/component': 0.7.2
4764
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
4765
+ '@firebase/messaging-interop-types': 0.2.3
4766
+ '@firebase/util': 1.15.0
4767
+ idb: 7.1.1
4768
+ tslib: 2.8.1
4769
+
4770
+ '@firebase/performance-compat@0.2.20(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4771
+ dependencies:
4772
+ '@firebase/app-compat': 0.4.2
4773
+ '@firebase/component': 0.6.18
4774
+ '@firebase/logger': 0.4.4
4775
+ '@firebase/performance': 0.7.7(@firebase/app@0.13.2)
4776
+ '@firebase/performance-types': 0.2.3
4777
+ '@firebase/util': 1.12.1
4778
+ tslib: 2.8.1
4779
+ transitivePeerDependencies:
4780
+ - '@firebase/app'
4781
+
4782
+ '@firebase/performance-compat@0.2.24(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4783
+ dependencies:
4784
+ '@firebase/app-compat': 0.5.11
4785
+ '@firebase/component': 0.7.2
4786
+ '@firebase/logger': 0.5.0
4787
+ '@firebase/performance': 0.7.11(@firebase/app@0.14.11)
4788
+ '@firebase/performance-types': 0.2.3
4789
+ '@firebase/util': 1.15.0
4790
+ tslib: 2.8.1
4791
+ transitivePeerDependencies:
4792
+ - '@firebase/app'
4793
+
4794
+ '@firebase/performance-types@0.2.3': {}
4795
+
4796
+ '@firebase/performance@0.7.11(@firebase/app@0.14.11)':
4797
+ dependencies:
4798
+ '@firebase/app': 0.14.11
4799
+ '@firebase/component': 0.7.2
4800
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
4801
+ '@firebase/logger': 0.5.0
4802
+ '@firebase/util': 1.15.0
4803
+ tslib: 2.8.1
4804
+ web-vitals: 4.2.4
4805
+
4806
+ '@firebase/performance@0.7.7(@firebase/app@0.13.2)':
4807
+ dependencies:
4808
+ '@firebase/app': 0.13.2
4809
+ '@firebase/component': 0.6.18
4810
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
4811
+ '@firebase/logger': 0.4.4
4812
+ '@firebase/util': 1.12.1
4813
+ tslib: 2.8.1
4814
+ web-vitals: 4.2.4
4815
+
4816
+ '@firebase/remote-config-compat@0.2.18(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)':
4817
+ dependencies:
4818
+ '@firebase/app-compat': 0.4.2
4819
+ '@firebase/component': 0.6.18
4820
+ '@firebase/logger': 0.4.4
4821
+ '@firebase/remote-config': 0.6.5(@firebase/app@0.13.2)
4822
+ '@firebase/remote-config-types': 0.4.0
4823
+ '@firebase/util': 1.12.1
4824
+ tslib: 2.8.1
4825
+ transitivePeerDependencies:
4826
+ - '@firebase/app'
4827
+
4828
+ '@firebase/remote-config-compat@0.2.23(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)':
4829
+ dependencies:
4830
+ '@firebase/app-compat': 0.5.11
4831
+ '@firebase/component': 0.7.2
4832
+ '@firebase/logger': 0.5.0
4833
+ '@firebase/remote-config': 0.8.2(@firebase/app@0.14.11)
4834
+ '@firebase/remote-config-types': 0.5.0
4835
+ '@firebase/util': 1.15.0
4836
+ tslib: 2.8.1
4837
+ transitivePeerDependencies:
4838
+ - '@firebase/app'
4839
+
4840
+ '@firebase/remote-config-types@0.4.0': {}
4841
+
4842
+ '@firebase/remote-config-types@0.5.0': {}
4843
+
4844
+ '@firebase/remote-config@0.6.5(@firebase/app@0.13.2)':
4845
+ dependencies:
4846
+ '@firebase/app': 0.13.2
4847
+ '@firebase/component': 0.6.18
4848
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
4849
+ '@firebase/logger': 0.4.4
4850
+ '@firebase/util': 1.12.1
4851
+ tslib: 2.8.1
4852
+
4853
+ '@firebase/remote-config@0.8.2(@firebase/app@0.14.11)':
4854
+ dependencies:
4855
+ '@firebase/app': 0.14.11
4856
+ '@firebase/component': 0.7.2
4857
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
4858
+ '@firebase/logger': 0.5.0
4859
+ '@firebase/util': 1.15.0
4860
+ tslib: 2.8.1
4861
+
4862
+ '@firebase/storage-compat@0.3.24(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)':
4863
+ dependencies:
4864
+ '@firebase/app-compat': 0.4.2
4865
+ '@firebase/component': 0.6.18
4866
+ '@firebase/storage': 0.13.14(@firebase/app@0.13.2)
4867
+ '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)
4868
+ '@firebase/util': 1.12.1
4869
+ tslib: 2.8.1
4870
+ transitivePeerDependencies:
4871
+ - '@firebase/app'
4872
+ - '@firebase/app-types'
4873
+
4874
+ '@firebase/storage-compat@0.4.2(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)':
4875
+ dependencies:
4876
+ '@firebase/app-compat': 0.5.11
4877
+ '@firebase/component': 0.7.2
4878
+ '@firebase/storage': 0.14.2(@firebase/app@0.14.11)
4879
+ '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)
4880
+ '@firebase/util': 1.15.0
4881
+ tslib: 2.8.1
4882
+ transitivePeerDependencies:
4883
+ - '@firebase/app'
4884
+ - '@firebase/app-types'
4885
+
4886
+ '@firebase/storage-types@0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.12.1)':
4887
+ dependencies:
4888
+ '@firebase/app-types': 0.9.3
4889
+ '@firebase/util': 1.12.1
4890
+
4891
+ '@firebase/storage-types@0.8.3(@firebase/app-types@0.9.4)(@firebase/util@1.15.0)':
4892
+ dependencies:
4893
+ '@firebase/app-types': 0.9.4
4894
+ '@firebase/util': 1.15.0
4895
+
4896
+ '@firebase/storage@0.13.14(@firebase/app@0.13.2)':
4897
+ dependencies:
4898
+ '@firebase/app': 0.13.2
4899
+ '@firebase/component': 0.6.18
4900
+ '@firebase/util': 1.12.1
4901
+ tslib: 2.8.1
4902
+
4903
+ '@firebase/storage@0.14.2(@firebase/app@0.14.11)':
4904
+ dependencies:
4905
+ '@firebase/app': 0.14.11
4906
+ '@firebase/component': 0.7.2
4907
+ '@firebase/util': 1.15.0
4908
+ tslib: 2.8.1
4909
+
4910
+ '@firebase/util@1.12.1':
4911
+ dependencies:
4912
+ tslib: 2.8.1
4913
+
4914
+ '@firebase/util@1.15.0':
4915
+ dependencies:
4916
+ tslib: 2.8.1
4917
+
4918
+ '@firebase/webchannel-wrapper@1.0.3': {}
4919
+
4920
+ '@firebase/webchannel-wrapper@1.0.5': {}
4921
+
4922
  '@floating-ui/core@1.7.5':
4923
  dependencies:
4924
  '@floating-ui/utils': 0.2.11
 
4944
  '@shikijs/types': 3.23.0
4945
  '@shikijs/vscode-textmate': 10.0.2
4946
 
4947
+ '@grpc/grpc-js@1.9.15':
4948
+ dependencies:
4949
+ '@grpc/proto-loader': 0.7.15
4950
+ '@types/node': 25.3.5
4951
+
4952
+ '@grpc/proto-loader@0.7.15':
4953
+ dependencies:
4954
+ lodash.camelcase: 4.3.0
4955
+ long: 5.3.2
4956
+ protobufjs: 7.5.5
4957
+ yargs: 17.7.2
4958
+
4959
  '@hookform/resolvers@3.10.0(react-hook-form@7.71.2(react@19.1.0))':
4960
  dependencies:
4961
  react-hook-form: 7.71.2(react@19.1.0)
4962
 
4963
+ '@huggingface/hub@2.11.0':
4964
+ dependencies:
4965
+ '@huggingface/tasks': 0.19.90
4966
+ optionalDependencies:
4967
+ cli-progress: 3.12.0
4968
+
4969
+ '@huggingface/tasks@0.19.90': {}
4970
+
4971
  '@jridgewell/gen-mapping@0.3.13':
4972
  dependencies:
4973
  '@jridgewell/sourcemap-codec': 1.5.5
 
5117
 
5118
  '@pinojs/redact@0.4.0': {}
5119
 
5120
+ '@protobufjs/aspromise@1.1.2': {}
5121
+
5122
+ '@protobufjs/base64@1.1.2': {}
5123
+
5124
+ '@protobufjs/codegen@2.0.4': {}
5125
+
5126
+ '@protobufjs/eventemitter@1.1.0': {}
5127
+
5128
+ '@protobufjs/fetch@1.1.0':
5129
+ dependencies:
5130
+ '@protobufjs/aspromise': 1.1.2
5131
+ '@protobufjs/inquire': 1.1.0
5132
+
5133
+ '@protobufjs/float@1.0.2': {}
5134
+
5135
+ '@protobufjs/inquire@1.1.0': {}
5136
+
5137
+ '@protobufjs/path@1.1.2': {}
5138
+
5139
+ '@protobufjs/pool@1.1.0': {}
5140
+
5141
+ '@protobufjs/utf8@1.1.0': {}
5142
+
5143
  '@radix-ui/number@1.1.1': {}
5144
 
5145
  '@radix-ui/primitive@1.1.3': {}
 
6141
 
6142
  ansi-regex@5.0.1: {}
6143
 
6144
+ ansi-styles@4.3.0:
6145
+ dependencies:
6146
+ color-convert: 2.0.1
6147
+
6148
  argparse@2.0.1: {}
6149
 
6150
  aria-hidden@1.2.6:
 
6231
  dependencies:
6232
  clsx: 2.1.1
6233
 
6234
+ cli-progress@3.12.0:
6235
+ dependencies:
6236
+ string-width: 4.2.3
6237
+ optional: true
6238
+
6239
+ cliui@8.0.1:
6240
+ dependencies:
6241
+ string-width: 4.2.3
6242
+ strip-ansi: 6.0.1
6243
+ wrap-ansi: 7.0.0
6244
+
6245
  clsx@2.1.1: {}
6246
 
6247
  cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
 
6256
  - '@types/react'
6257
  - '@types/react-dom'
6258
 
6259
+ color-convert@2.0.1:
6260
+ dependencies:
6261
+ color-name: 1.1.4
6262
+
6263
+ color-name@1.1.4: {}
6264
+
6265
  colorette@2.0.20: {}
6266
 
6267
  comma-separated-tokens@1.0.8: {}
 
6420
 
6421
  embla-carousel@8.6.0: {}
6422
 
6423
+ emoji-regex@8.0.0: {}
6424
+
6425
  encodeurl@2.0.0: {}
6426
 
6427
  end-of-stream@1.4.5:
 
6557
  dependencies:
6558
  format: 0.2.2
6559
 
6560
+ faye-websocket@0.11.4:
6561
+ dependencies:
6562
+ websocket-driver: 0.7.4
6563
+
6564
  fdir@6.5.0(picomatch@4.0.3):
6565
  optionalDependencies:
6566
  picomatch: 4.0.3
 
6594
  locate-path: 8.0.0
6595
  unicorn-magic: 0.3.0
6596
 
6597
+ firebase@11.10.0:
6598
+ dependencies:
6599
+ '@firebase/ai': 1.4.1(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)
6600
+ '@firebase/analytics': 0.10.17(@firebase/app@0.13.2)
6601
+ '@firebase/analytics-compat': 0.2.23(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6602
+ '@firebase/app': 0.13.2
6603
+ '@firebase/app-check': 0.10.1(@firebase/app@0.13.2)
6604
+ '@firebase/app-check-compat': 0.3.26(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6605
+ '@firebase/app-compat': 0.4.2
6606
+ '@firebase/app-types': 0.9.3
6607
+ '@firebase/auth': 1.10.8(@firebase/app@0.13.2)
6608
+ '@firebase/auth-compat': 0.5.28(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)
6609
+ '@firebase/data-connect': 0.3.10(@firebase/app@0.13.2)
6610
+ '@firebase/database': 1.0.20
6611
+ '@firebase/database-compat': 2.0.11
6612
+ '@firebase/firestore': 4.8.0(@firebase/app@0.13.2)
6613
+ '@firebase/firestore-compat': 0.3.53(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)
6614
+ '@firebase/functions': 0.12.9(@firebase/app@0.13.2)
6615
+ '@firebase/functions-compat': 0.3.26(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6616
+ '@firebase/installations': 0.6.18(@firebase/app@0.13.2)
6617
+ '@firebase/installations-compat': 0.2.18(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)
6618
+ '@firebase/messaging': 0.12.22(@firebase/app@0.13.2)
6619
+ '@firebase/messaging-compat': 0.2.22(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6620
+ '@firebase/performance': 0.7.7(@firebase/app@0.13.2)
6621
+ '@firebase/performance-compat': 0.2.20(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6622
+ '@firebase/remote-config': 0.6.5(@firebase/app@0.13.2)
6623
+ '@firebase/remote-config-compat': 0.2.18(@firebase/app-compat@0.4.2)(@firebase/app@0.13.2)
6624
+ '@firebase/storage': 0.13.14(@firebase/app@0.13.2)
6625
+ '@firebase/storage-compat': 0.3.24(@firebase/app-compat@0.4.2)(@firebase/app-types@0.9.3)(@firebase/app@0.13.2)
6626
+ '@firebase/util': 1.12.1
6627
+ transitivePeerDependencies:
6628
+ - '@react-native-async-storage/async-storage'
6629
+
6630
+ firebase@12.12.1:
6631
+ dependencies:
6632
+ '@firebase/ai': 2.11.1(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)
6633
+ '@firebase/analytics': 0.10.21(@firebase/app@0.14.11)
6634
+ '@firebase/analytics-compat': 0.2.27(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6635
+ '@firebase/app': 0.14.11
6636
+ '@firebase/app-check': 0.11.2(@firebase/app@0.14.11)
6637
+ '@firebase/app-check-compat': 0.4.2(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6638
+ '@firebase/app-compat': 0.5.11
6639
+ '@firebase/app-types': 0.9.4
6640
+ '@firebase/auth': 1.13.0(@firebase/app@0.14.11)
6641
+ '@firebase/auth-compat': 0.6.5(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)
6642
+ '@firebase/data-connect': 0.6.0(@firebase/app@0.14.11)
6643
+ '@firebase/database': 1.1.2
6644
+ '@firebase/database-compat': 2.1.3
6645
+ '@firebase/firestore': 4.14.0(@firebase/app@0.14.11)
6646
+ '@firebase/firestore-compat': 0.4.8(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)
6647
+ '@firebase/functions': 0.13.3(@firebase/app@0.14.11)
6648
+ '@firebase/functions-compat': 0.4.3(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6649
+ '@firebase/installations': 0.6.21(@firebase/app@0.14.11)
6650
+ '@firebase/installations-compat': 0.2.21(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)
6651
+ '@firebase/messaging': 0.12.25(@firebase/app@0.14.11)
6652
+ '@firebase/messaging-compat': 0.2.25(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6653
+ '@firebase/performance': 0.7.11(@firebase/app@0.14.11)
6654
+ '@firebase/performance-compat': 0.2.24(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6655
+ '@firebase/remote-config': 0.8.2(@firebase/app@0.14.11)
6656
+ '@firebase/remote-config-compat': 0.2.23(@firebase/app-compat@0.5.11)(@firebase/app@0.14.11)
6657
+ '@firebase/storage': 0.14.2(@firebase/app@0.14.11)
6658
+ '@firebase/storage-compat': 0.4.2(@firebase/app-compat@0.5.11)(@firebase/app-types@0.9.4)(@firebase/app@0.14.11)
6659
+ '@firebase/util': 1.15.0
6660
+ transitivePeerDependencies:
6661
+ - '@react-native-async-storage/async-storage'
6662
+
6663
  format@0.2.2: {}
6664
 
6665
  formdata-polyfill@4.0.10:
 
6796
  statuses: 2.0.2
6797
  toidentifier: 1.0.1
6798
 
6799
+ http-parser-js@0.5.10: {}
6800
+
6801
  human-signals@8.0.1: {}
6802
 
6803
  iconv-lite@0.7.2:
6804
  dependencies:
6805
  safer-buffer: 2.1.2
6806
 
6807
+ idb@7.1.1: {}
6808
+
6809
  ignore@7.0.5: {}
6810
 
6811
  inherits@2.0.4: {}
 
6841
 
6842
  is-extglob@2.1.1: {}
6843
 
6844
+ is-fullwidth-code-point@3.0.0: {}
6845
+
6846
  is-glob@4.0.3:
6847
  dependencies:
6848
  is-extglob: 2.1.1
 
6910
  dependencies:
6911
  p-locate: 6.0.0
6912
 
6913
+ lodash.camelcase@4.3.0: {}
6914
+
6915
  lodash@4.17.23: {}
6916
 
6917
+ long@5.3.2: {}
6918
+
6919
  longest-streak@3.1.0: {}
6920
 
6921
  loose-envify@1.4.0:
 
7590
 
7591
  property-information@7.1.0: {}
7592
 
7593
+ protobufjs@7.5.5:
7594
+ dependencies:
7595
+ '@protobufjs/aspromise': 1.1.2
7596
+ '@protobufjs/base64': 1.1.2
7597
+ '@protobufjs/codegen': 2.0.4
7598
+ '@protobufjs/eventemitter': 1.1.0
7599
+ '@protobufjs/fetch': 1.1.0
7600
+ '@protobufjs/float': 1.0.2
7601
+ '@protobufjs/inquire': 1.1.0
7602
+ '@protobufjs/path': 1.1.2
7603
+ '@protobufjs/pool': 1.1.0
7604
+ '@protobufjs/utf8': 1.1.0
7605
+ '@types/node': 25.3.5
7606
+ long: 5.3.2
7607
+
7608
  proxy-addr@2.0.7:
7609
  dependencies:
7610
  forwarded: 0.2.0
 
7807
 
7808
  remeda@2.33.6: {}
7809
 
7810
+ require-directory@2.1.1: {}
7811
+
7812
  require-from-string@2.0.2: {}
7813
 
7814
  resolve-pkg-maps@1.0.0: {}
 
7836
  dependencies:
7837
  queue-microtask: 1.2.3
7838
 
7839
+ safe-buffer@5.2.1: {}
7840
+
7841
  safe-stable-stringify@2.5.0: {}
7842
 
7843
  safer-buffer@2.1.2: {}
 
7944
 
7945
  string-argv@0.3.2: {}
7946
 
7947
+ string-width@4.2.3:
7948
+ dependencies:
7949
+ emoji-regex: 8.0.0
7950
+ is-fullwidth-code-point: 3.0.0
7951
+ strip-ansi: 6.0.1
7952
+
7953
  stringify-entities@4.0.4:
7954
  dependencies:
7955
  character-entities-html4: 2.1.0
 
8170
 
8171
  web-streams-polyfill@3.3.3: {}
8172
 
8173
+ web-vitals@4.2.4: {}
8174
+
8175
+ websocket-driver@0.7.4:
8176
+ dependencies:
8177
+ http-parser-js: 0.5.10
8178
+ safe-buffer: 5.2.1
8179
+ websocket-extensions: 0.1.4
8180
+
8181
+ websocket-extensions@0.1.4: {}
8182
+
8183
  which@2.0.2:
8184
  dependencies:
8185
  isexe: 2.0.0
 
8191
  regexparam: 3.0.0
8192
  use-sync-external-store: 1.6.0(react@19.1.0)
8193
 
8194
+ wrap-ansi@7.0.0:
8195
+ dependencies:
8196
+ ansi-styles: 4.3.0
8197
+ string-width: 4.2.3
8198
+ strip-ansi: 6.0.1
8199
+
8200
  wrappy@1.0.2: {}
8201
 
8202
  xtend@4.0.2: {}
8203
 
8204
+ y18n@5.0.8: {}
8205
+
8206
  yallist@3.1.1: {}
8207
 
8208
  yaml@2.8.2: {}
8209
 
8210
+ yargs-parser@21.1.1: {}
8211
+
8212
+ yargs@17.7.2:
8213
+ dependencies:
8214
+ cliui: 8.0.1
8215
+ escalade: 3.2.0
8216
+ get-caller-file: 2.0.5
8217
+ require-directory: 2.1.1
8218
+ string-width: 4.2.3
8219
+ y18n: 5.0.8
8220
+ yargs-parser: 21.1.1
8221
+
8222
  yocto-queue@1.2.2: {}
8223
 
8224
  yoctocolors@2.1.2: {}
upload-hf.mjs ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { uploadFiles } from '@huggingface/hub';
2
+ import { readdirSync, statSync, openAsBlob } from 'node:fs';
3
+ import path from 'node:path';
4
+
5
+ const accessToken = process.env.HF_TOKEN;
6
+ if (!accessToken) { console.error('No HF_TOKEN'); process.exit(1); }
7
+
8
+ const ROOT = '/tmp/Alkabrain';
9
+
10
+ const ignoreDirs = new Set(['.git', 'node_modules', '.local', 'dist', 'build', '.cache', '.pnpm-store', '.replit-artifact']);
11
+
12
+ function walk(dir, base = '') {
13
+ const out = [];
14
+ for (const name of readdirSync(dir)) {
15
+ if (ignoreDirs.has(name)) continue;
16
+ const full = path.join(dir, name);
17
+ const rel = base ? `${base}/${name}` : name;
18
+ const st = statSync(full);
19
+ if (st.isDirectory()) out.push(...walk(full, rel));
20
+ else if (st.isFile()) out.push({ full, rel, size: st.size });
21
+ }
22
+ return out;
23
+ }
24
+
25
+ const all = walk(ROOT);
26
+ const totalBytes = all.reduce((s, f) => s + f.size, 0);
27
+ console.log(`Found ${all.length} files, ${(totalBytes/1024/1024).toFixed(2)} MB`);
28
+
29
+ const files = await Promise.all(all.map(async f => ({
30
+ path: f.rel,
31
+ content: await openAsBlob(f.full),
32
+ })));
33
+
34
+ console.log('Uploading...');
35
+ const start = Date.now();
36
+ const res = await uploadFiles({
37
+ repo: { type: 'space', name: 'shrey77777/Alkabrain' },
38
+ accessToken,
39
+ files,
40
+ commitTitle: 'Upload ALKABRAIN AI companion',
41
+ commitDescription: 'Warm Claude.ai-style AI companion routing to 20+ open-source HF models, with Replit Auth, Postgres, Razorpay billing, chat history, and strict help bot.',
42
+ });
43
+ console.log('DONE in', ((Date.now() - start)/1000).toFixed(1), 's');
44
+ console.log('commit:', res?.commit?.oid ?? res);