Antigravity AI commited on
Commit
b225792
·
1 Parent(s): 5fd5c53

Fix Firebase Auth for demo accounts to allow DB writes

Browse files
Files changed (5) hide show
  1. data.json +25 -0
  2. package-lock.json +933 -601
  3. package.json +1 -1
  4. seed.js +72 -0
  5. src/context/AuthContext.jsx +34 -14
data.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "menu": {
3
+ "item1": { "name": "Hamburgesa Clásica", "price": 12.50, "category": "Fuertes", "image": "/images/burger.png", "active": true },
4
+ "item2": { "name": "Pasta Pomodoro", "price": 10.00, "category": "Pasta", "image": "/images/pasta.png", "active": true },
5
+ "item3": { "name": "Tacos de Pollo", "price": 9.00, "category": "Entradas", "image": "/images/tacos.png", "active": true },
6
+ "item4": { "name": "Pizza Margherita", "price": 14.00, "category": "Pizzas", "image": "/images/pizza.png", "active": true },
7
+ "item5": { "name": "Ensalada César", "price": 8.50, "category": "Entradas", "image": "https://images.unsplash.com/photo-1550304943-4f24f54ddde9?auto=format&fit=crop&q=80&w=1000", "active": true },
8
+ "item6": { "name": "Sopa de Tomate", "price": 7.00, "category": "Entradas", "image": "https://images.unsplash.com/photo-1547592166-23ac45744acd?auto=format&fit=crop&q=80&w=1000", "active": true },
9
+ "item7": { "name": "Sandwich Gourmet", "price": 11.00, "category": "Fuertes", "image": "https://images.unsplash.com/photo-1528735602780-2552fd46c7af?auto=format&fit=crop&q=80&w=1000", "active": true },
10
+ "item8": { "name": "Chocolate Muffin", "price": 4.50, "category": "Postres", "image": "https://images.unsplash.com/photo-1582231222779-1adb0b322f84?auto=format&fit=crop&q=80&w=1000", "active": true },
11
+ "spec1": { "name": "Ribeye Premium", "price": 35.00, "category": "Especialidades", "image": "/images/steak.png", "active": true },
12
+ "spec2": { "name": "Risotto de Trufa", "price": 28.00, "category": "Especialidades", "image": "/images/risotto.png", "active": true },
13
+ "spec3": { "name": "Salmón Glaseado", "price": 26.00, "category": "Especialidades", "image": "https://images.unsplash.com/photo-1467003909585-2f8a72700288?auto=format&fit=crop&q=80&w=1000", "active": true },
14
+ "spec4": { "name": "Pato a la Naranja", "price": 32.00, "category": "Especialidades", "image": "https://images.unsplash.com/photo-1626082927389-6cd097cdc6ec?auto=format&fit=crop&q=80&w=1000", "active": true },
15
+ "spec5": { "name": "Langosta Thermidor", "price": 45.00, "category": "Especialidades", "image": "https://images.unsplash.com/photo-1553243599-c052f82958d2?auto=format&fit=crop&q=80&w=1000", "active": true }
16
+ },
17
+ "inventory": {
18
+ "inv1": { "name": "Pan de Burger", "quantity": 50, "unit": "Und", "minStock": 10 },
19
+ "inv2": { "name": "Carne Res", "quantity": 20, "unit": "Kg", "minStock": 5 },
20
+ "inv3": { "name": "Tomate", "quantity": 15, "unit": "Kg", "minStock": 3 }
21
+ },
22
+ "config": {
23
+ "menuTheme": "light"
24
+ }
25
+ }
package-lock.json CHANGED
@@ -9,7 +9,7 @@
9
  "version": "0.0.0",
10
  "dependencies": {
11
  "chart.js": "^4.5.1",
12
- "firebase": "^12.11.0",
13
  "lucide-react": "^0.577.0",
14
  "react": "^19.2.4",
15
  "react-chartjs-2": "^5.3.1",
@@ -20,12 +20,12 @@
20
  "@eslint/js": "^9.39.4",
21
  "@types/react": "^19.2.14",
22
  "@types/react-dom": "^19.2.3",
23
- "@vitejs/plugin-react": "^6.0.1",
24
  "eslint": "^9.39.4",
25
  "eslint-plugin-react-hooks": "^7.0.1",
26
  "eslint-plugin-react-refresh": "^0.5.2",
27
  "globals": "^17.4.0",
28
- "vite": "^8.0.1"
29
  }
30
  },
31
  "node_modules/@babel/code-frame": {
@@ -160,6 +160,16 @@
160
  "@babel/core": "^7.0.0"
161
  }
162
  },
 
 
 
 
 
 
 
 
 
 
163
  "node_modules/@babel/helper-string-parser": {
164
  "version": "7.27.1",
165
  "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
@@ -220,6 +230,38 @@
220
  "node": ">=6.0.0"
221
  }
222
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  "node_modules/@babel/template": {
224
  "version": "7.28.6",
225
  "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
@@ -268,38 +310,446 @@
268
  "node": ">=6.9.0"
269
  }
270
  },
271
- "node_modules/@emnapi/core": {
272
- "version": "1.9.1",
273
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz",
274
- "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==",
 
 
 
275
  "dev": true,
276
  "license": "MIT",
277
  "optional": true,
278
- "dependencies": {
279
- "@emnapi/wasi-threads": "1.2.0",
280
- "tslib": "^2.4.0"
 
 
281
  }
282
  },
283
- "node_modules/@emnapi/runtime": {
284
- "version": "1.9.1",
285
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz",
286
- "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==",
 
 
 
287
  "dev": true,
288
  "license": "MIT",
289
  "optional": true,
290
- "dependencies": {
291
- "tslib": "^2.4.0"
 
 
 
292
  }
293
  },
294
- "node_modules/@emnapi/wasi-threads": {
295
- "version": "1.2.0",
296
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz",
297
- "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==",
 
 
 
298
  "dev": true,
299
  "license": "MIT",
300
  "optional": true,
301
- "dependencies": {
302
- "tslib": "^2.4.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
303
  }
304
  },
305
  "node_modules/@eslint-community/eslint-utils": {
@@ -460,9 +910,9 @@
460
  }
461
  },
462
  "node_modules/@firebase/ai": {
463
- "version": "2.10.0",
464
- "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-2.10.0.tgz",
465
- "integrity": "sha512-1lI6HomyoO/8RSJb6ItyHLpHnB2z27m5F4aX/Vpi1nhwWoxdNjkq+6UQOykHyCE0KairojOE5qQ20i1tnF0nNA==",
466
  "license": "Apache-2.0",
467
  "dependencies": {
468
  "@firebase/app-check-interop-types": "0.3.3",
@@ -518,9 +968,9 @@
518
  "license": "Apache-2.0"
519
  },
520
  "node_modules/@firebase/app": {
521
- "version": "0.14.10",
522
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.10.tgz",
523
- "integrity": "sha512-PlPhdtjgWUra+LImQTnXOUqUa/jcufZhizdR93ZjlQSS3ahCtDTG6pJw7j0OwFal18DQjICXfeVNsUUrcNisfA==",
524
  "license": "Apache-2.0",
525
  "dependencies": {
526
  "@firebase/component": "0.7.2",
@@ -584,12 +1034,12 @@
584
  "license": "Apache-2.0"
585
  },
586
  "node_modules/@firebase/app-compat": {
587
- "version": "0.5.10",
588
- "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.10.tgz",
589
- "integrity": "sha512-tFmBuZL0/v1h6eyKRgWI58ucft6dEJmAi9nhPUXoAW4ZbPSTlnsh31AuEwUoRTz+wwRk9gmgss9GZV05ZM9Kug==",
590
  "license": "Apache-2.0",
591
  "dependencies": {
592
- "@firebase/app": "0.14.10",
593
  "@firebase/component": "0.7.2",
594
  "@firebase/logger": "0.5.0",
595
  "@firebase/util": "1.15.0",
@@ -600,15 +1050,18 @@
600
  }
601
  },
602
  "node_modules/@firebase/app-types": {
603
- "version": "0.9.3",
604
- "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz",
605
- "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==",
606
- "license": "Apache-2.0"
 
 
 
607
  },
608
  "node_modules/@firebase/auth": {
609
- "version": "1.12.2",
610
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.12.2.tgz",
611
- "integrity": "sha512-CZJL8V10Vzibs+pDTXdQF+hot1IigIoqF4a4lA/qr5Deo1srcefiyIfgg28B67Lk7IxZhwfJMuI+1bu2xBmV0A==",
612
  "license": "Apache-2.0",
613
  "dependencies": {
614
  "@firebase/component": "0.7.2",
@@ -621,7 +1074,7 @@
621
  },
622
  "peerDependencies": {
623
  "@firebase/app": "0.x",
624
- "@react-native-async-storage/async-storage": "^2.2.0"
625
  },
626
  "peerDependenciesMeta": {
627
  "@react-native-async-storage/async-storage": {
@@ -630,12 +1083,12 @@
630
  }
631
  },
632
  "node_modules/@firebase/auth-compat": {
633
- "version": "0.6.4",
634
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.4.tgz",
635
- "integrity": "sha512-2pj8m/hnqXvMLfC0Mk+fORVTM5DQPkS6l8JpMgtoAWGVgCmYnoWdFMaNWtKbmCxBEyvMA3FlnCJyzrUSMWTfuA==",
636
  "license": "Apache-2.0",
637
  "dependencies": {
638
- "@firebase/auth": "1.12.2",
639
  "@firebase/auth-types": "0.13.0",
640
  "@firebase/component": "0.7.2",
641
  "@firebase/util": "1.15.0",
@@ -678,9 +1131,9 @@
678
  }
679
  },
680
  "node_modules/@firebase/data-connect": {
681
- "version": "0.5.0",
682
- "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.5.0.tgz",
683
- "integrity": "sha512-G3GYHpWNJJ95502RQLApzw0jaG3pScHl+J/2MdxIuB51xtHnkRL6KvIAP3fFF1drUewWJHOnDA1U+q4Evf3KSw==",
684
  "license": "Apache-2.0",
685
  "dependencies": {
686
  "@firebase/auth-interop-types": "0.2.4",
@@ -712,14 +1165,14 @@
712
  }
713
  },
714
  "node_modules/@firebase/database-compat": {
715
- "version": "2.1.2",
716
- "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.2.tgz",
717
- "integrity": "sha512-j4A6IhVZbgxAzT6gJJC2PfOxYCK9SrDrUO7nTM4EscTYtKkAkzsbKoCnDdjFapQfnsncvPWjqVTr/0PffUwg3g==",
718
  "license": "Apache-2.0",
719
  "dependencies": {
720
  "@firebase/component": "0.7.2",
721
  "@firebase/database": "1.1.2",
722
- "@firebase/database-types": "1.0.18",
723
  "@firebase/logger": "0.5.0",
724
  "@firebase/util": "1.15.0",
725
  "tslib": "^2.1.0"
@@ -729,19 +1182,19 @@
729
  }
730
  },
731
  "node_modules/@firebase/database-types": {
732
- "version": "1.0.18",
733
- "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.18.tgz",
734
- "integrity": "sha512-yOY8IC2go9lfbVDMiy2ATun4EB2AFwocPaQADwMN/RHRUAZSM4rlAV7PGbWPSG/YhkJ2A9xQAiAENgSua9G5Fg==",
735
  "license": "Apache-2.0",
736
  "dependencies": {
737
- "@firebase/app-types": "0.9.3",
738
  "@firebase/util": "1.15.0"
739
  }
740
  },
741
  "node_modules/@firebase/firestore": {
742
- "version": "4.13.0",
743
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.13.0.tgz",
744
- "integrity": "sha512-7i4cVNJXTMim7/P7UsNim0DwyLPk4QQ3y1oSNzv4l0ykJOKYCiFMOuEeUxUYvrReXDJxWHrT/4XMeVQm+13rRw==",
745
  "license": "Apache-2.0",
746
  "dependencies": {
747
  "@firebase/component": "0.7.2",
@@ -760,13 +1213,13 @@
760
  }
761
  },
762
  "node_modules/@firebase/firestore-compat": {
763
- "version": "0.4.7",
764
- "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.4.7.tgz",
765
- "integrity": "sha512-Et4XxtGnjp0Q9tmaEMETnY5GHJ8gQ9+RN6sSTT4ETWKmym2d6gIjarw0rCQcx+7BrWVYLEIOAXSXysl0b3xnUA==",
766
  "license": "Apache-2.0",
767
  "dependencies": {
768
  "@firebase/component": "0.7.2",
769
- "@firebase/firestore": "4.13.0",
770
  "@firebase/firestore-types": "3.0.3",
771
  "@firebase/util": "1.15.0",
772
  "tslib": "^2.1.0"
@@ -1206,33 +1659,6 @@
1206
  "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
1207
  "license": "MIT"
1208
  },
1209
- "node_modules/@napi-rs/wasm-runtime": {
1210
- "version": "1.1.1",
1211
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz",
1212
- "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==",
1213
- "dev": true,
1214
- "license": "MIT",
1215
- "optional": true,
1216
- "dependencies": {
1217
- "@emnapi/core": "^1.7.1",
1218
- "@emnapi/runtime": "^1.7.1",
1219
- "@tybys/wasm-util": "^0.10.1"
1220
- },
1221
- "funding": {
1222
- "type": "github",
1223
- "url": "https://github.com/sponsors/Brooooooklyn"
1224
- }
1225
- },
1226
- "node_modules/@oxc-project/types": {
1227
- "version": "0.120.0",
1228
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.120.0.tgz",
1229
- "integrity": "sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==",
1230
- "dev": true,
1231
- "license": "MIT",
1232
- "funding": {
1233
- "url": "https://github.com/sponsors/Boshen"
1234
- }
1235
- },
1236
  "node_modules/@protobufjs/aspromise": {
1237
  "version": "1.1.2",
1238
  "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -1246,9 +1672,9 @@
1246
  "license": "BSD-3-Clause"
1247
  },
1248
  "node_modules/@protobufjs/codegen": {
1249
- "version": "2.0.4",
1250
- "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
1251
- "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
1252
  "license": "BSD-3-Clause"
1253
  },
1254
  "node_modules/@protobufjs/eventemitter": {
@@ -1274,9 +1700,9 @@
1274
  "license": "BSD-3-Clause"
1275
  },
1276
  "node_modules/@protobufjs/inquire": {
1277
- "version": "1.1.0",
1278
- "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
1279
- "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
1280
  "license": "BSD-3-Clause"
1281
  },
1282
  "node_modules/@protobufjs/path": {
@@ -1292,32 +1718,50 @@
1292
  "license": "BSD-3-Clause"
1293
  },
1294
  "node_modules/@protobufjs/utf8": {
1295
- "version": "1.1.0",
1296
- "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
1297
- "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
1298
  "license": "BSD-3-Clause"
1299
  },
1300
- "node_modules/@rolldown/binding-android-arm64": {
1301
- "version": "1.0.0-rc.10",
1302
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.10.tgz",
1303
- "integrity": "sha512-jOHxwXhxmFKuXztiu1ORieJeTbx5vrTkcOkkkn2d35726+iwhrY1w/+nYY/AGgF12thg33qC3R1LMBF5tHTZHg==",
 
 
 
 
 
 
 
1304
  "cpu": [
1305
- "arm64"
1306
  ],
1307
  "dev": true,
1308
  "license": "MIT",
1309
  "optional": true,
1310
  "os": [
1311
  "android"
 
 
 
 
 
 
 
 
1312
  ],
1313
- "engines": {
1314
- "node": "^20.19.0 || >=22.12.0"
1315
- }
 
 
 
1316
  },
1317
- "node_modules/@rolldown/binding-darwin-arm64": {
1318
- "version": "1.0.0-rc.10",
1319
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.10.tgz",
1320
- "integrity": "sha512-gED05Teg/vtTZbIJBc4VNMAxAFDUPkuO/rAIyyxZjTj1a1/s6z5TII/5yMGZ0uLRCifEtwUQn8OlYzuYc0m70w==",
1321
  "cpu": [
1322
  "arm64"
1323
  ],
@@ -1326,15 +1770,12 @@
1326
  "optional": true,
1327
  "os": [
1328
  "darwin"
1329
- ],
1330
- "engines": {
1331
- "node": "^20.19.0 || >=22.12.0"
1332
- }
1333
  },
1334
- "node_modules/@rolldown/binding-darwin-x64": {
1335
- "version": "1.0.0-rc.10",
1336
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.10.tgz",
1337
- "integrity": "sha512-rI15NcM1mA48lqrIxVkHfAqcyFLcQwyXWThy+BQ5+mkKKPvSO26ir+ZDp36AgYoYVkqvMcdS8zOE6SeBsR9e8A==",
1338
  "cpu": [
1339
  "x64"
1340
  ],
@@ -1343,15 +1784,26 @@
1343
  "optional": true,
1344
  "os": [
1345
  "darwin"
 
 
 
 
 
 
 
 
1346
  ],
1347
- "engines": {
1348
- "node": "^20.19.0 || >=22.12.0"
1349
- }
 
 
 
1350
  },
1351
- "node_modules/@rolldown/binding-freebsd-x64": {
1352
- "version": "1.0.0-rc.10",
1353
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.10.tgz",
1354
- "integrity": "sha512-XZRXHdTa+4ME1MuDVp021+doQ+z6Ei4CCFmNc5/sKbqb8YmkiJdj8QKlV3rCI0AJtAeSB5n0WGPuJWNL9p/L2w==",
1355
  "cpu": [
1356
  "x64"
1357
  ],
@@ -1360,15 +1812,26 @@
1360
  "optional": true,
1361
  "os": [
1362
  "freebsd"
 
 
 
 
 
 
 
 
1363
  ],
1364
- "engines": {
1365
- "node": "^20.19.0 || >=22.12.0"
1366
- }
 
 
 
1367
  },
1368
- "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
1369
- "version": "1.0.0-rc.10",
1370
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.10.tgz",
1371
- "integrity": "sha512-R0SQMRluISSLzFE20sPWYHVmJdDQnRyc/FzSCN72BqQmh2SOZUFG+N3/vBZpR4C6WpEUVYJLrYUXaj43sJsNLA==",
1372
  "cpu": [
1373
  "arm"
1374
  ],
@@ -1377,15 +1840,26 @@
1377
  "optional": true,
1378
  "os": [
1379
  "linux"
 
 
 
 
 
 
 
 
1380
  ],
1381
- "engines": {
1382
- "node": "^20.19.0 || >=22.12.0"
1383
- }
 
 
 
1384
  },
1385
- "node_modules/@rolldown/binding-linux-arm64-gnu": {
1386
- "version": "1.0.0-rc.10",
1387
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.10.tgz",
1388
- "integrity": "sha512-Y1reMrV/o+cwpduYhJuOE3OMKx32RMYCidf14y+HssARRmhDuWXJ4yVguDg2R/8SyyGNo+auzz64LnPK9Hq6jg==",
1389
  "cpu": [
1390
  "arm64"
1391
  ],
@@ -1394,32 +1868,54 @@
1394
  "optional": true,
1395
  "os": [
1396
  "linux"
 
 
 
 
 
 
 
 
1397
  ],
1398
- "engines": {
1399
- "node": "^20.19.0 || >=22.12.0"
1400
- }
 
 
 
1401
  },
1402
- "node_modules/@rolldown/binding-linux-arm64-musl": {
1403
- "version": "1.0.0-rc.10",
1404
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.10.tgz",
1405
- "integrity": "sha512-vELN+HNb2IzuzSBUOD4NHmP9yrGwl1DVM29wlQvx1OLSclL0NgVWnVDKl/8tEks79EFek/kebQKnNJkIAA4W2g==",
1406
  "cpu": [
1407
- "arm64"
1408
  ],
1409
  "dev": true,
1410
  "license": "MIT",
1411
  "optional": true,
1412
  "os": [
1413
  "linux"
 
 
 
 
 
 
 
 
1414
  ],
1415
- "engines": {
1416
- "node": "^20.19.0 || >=22.12.0"
1417
- }
 
 
 
1418
  },
1419
- "node_modules/@rolldown/binding-linux-ppc64-gnu": {
1420
- "version": "1.0.0-rc.10",
1421
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.10.tgz",
1422
- "integrity": "sha512-ZqrufYTgzxbHwpqOjzSsb0UV/aV2TFIY5rP8HdsiPTv/CuAgCRjM6s9cYFwQ4CNH+hf9Y4erHW1GjZuZ7WoI7w==",
1423
  "cpu": [
1424
  "ppc64"
1425
  ],
@@ -1428,32 +1924,68 @@
1428
  "optional": true,
1429
  "os": [
1430
  "linux"
 
 
 
 
 
 
 
 
1431
  ],
1432
- "engines": {
1433
- "node": "^20.19.0 || >=22.12.0"
1434
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1435
  },
1436
- "node_modules/@rolldown/binding-linux-s390x-gnu": {
1437
- "version": "1.0.0-rc.10",
1438
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.10.tgz",
1439
- "integrity": "sha512-gSlmVS1FZJSRicA6IyjoRoKAFK7IIHBs7xJuHRSmjImqk3mPPWbR7RhbnfH2G6bcmMEllCt2vQ/7u9e6bBnByg==",
1440
  "cpu": [
1441
- "s390x"
1442
  ],
1443
  "dev": true,
1444
  "license": "MIT",
1445
  "optional": true,
1446
  "os": [
1447
  "linux"
1448
- ],
1449
- "engines": {
1450
- "node": "^20.19.0 || >=22.12.0"
1451
- }
1452
  },
1453
- "node_modules/@rolldown/binding-linux-x64-gnu": {
1454
- "version": "1.0.0-rc.10",
1455
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.10.tgz",
1456
- "integrity": "sha512-eOCKUpluKgfObT2pHjztnaWEIbUabWzk3qPZ5PuacuPmr4+JtQG4k2vGTY0H15edaTnicgU428XW/IH6AimcQw==",
1457
  "cpu": [
1458
  "x64"
1459
  ],
@@ -1462,15 +1994,12 @@
1462
  "optional": true,
1463
  "os": [
1464
  "linux"
1465
- ],
1466
- "engines": {
1467
- "node": "^20.19.0 || >=22.12.0"
1468
- }
1469
  },
1470
- "node_modules/@rolldown/binding-linux-x64-musl": {
1471
- "version": "1.0.0-rc.10",
1472
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.10.tgz",
1473
- "integrity": "sha512-Xdf2jQbfQowJnLcgYfD/m0Uu0Qj5OdxKallD78/IPPfzaiaI4KRAwZzHcKQ4ig1gtg1SuzC7jovNiM2TzQsBXA==",
1474
  "cpu": [
1475
  "x64"
1476
  ],
@@ -1478,16 +2007,13 @@
1478
  "license": "MIT",
1479
  "optional": true,
1480
  "os": [
1481
- "linux"
1482
- ],
1483
- "engines": {
1484
- "node": "^20.19.0 || >=22.12.0"
1485
- }
1486
  },
1487
- "node_modules/@rolldown/binding-openharmony-arm64": {
1488
- "version": "1.0.0-rc.10",
1489
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.10.tgz",
1490
- "integrity": "sha512-o1hYe8hLi1EY6jgPFyxQgQ1wcycX+qz8eEbVmot2hFkgUzPxy9+kF0u0NIQBeDq+Mko47AkaFFaChcvZa9UX9Q==",
1491
  "cpu": [
1492
  "arm64"
1493
  ],
@@ -1496,49 +2022,40 @@
1496
  "optional": true,
1497
  "os": [
1498
  "openharmony"
1499
- ],
1500
- "engines": {
1501
- "node": "^20.19.0 || >=22.12.0"
1502
- }
1503
  },
1504
- "node_modules/@rolldown/binding-wasm32-wasi": {
1505
- "version": "1.0.0-rc.10",
1506
- "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.10.tgz",
1507
- "integrity": "sha512-Ugv9o7qYJudqQO5Y5y2N2SOo6S4WiqiNOpuQyoPInnhVzCY+wi/GHltcLHypG9DEUYMB0iTB/huJrpadiAcNcA==",
1508
  "cpu": [
1509
- "wasm32"
1510
  ],
1511
  "dev": true,
1512
  "license": "MIT",
1513
  "optional": true,
1514
- "dependencies": {
1515
- "@napi-rs/wasm-runtime": "^1.1.1"
1516
- },
1517
- "engines": {
1518
- "node": ">=14.0.0"
1519
- }
1520
  },
1521
- "node_modules/@rolldown/binding-win32-arm64-msvc": {
1522
- "version": "1.0.0-rc.10",
1523
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.10.tgz",
1524
- "integrity": "sha512-7UODQb4fQUNT/vmgDZBl3XOBAIOutP5R3O/rkxg0aLfEGQ4opbCgU5vOw/scPe4xOqBwL9fw7/RP1vAMZ6QlAQ==",
1525
  "cpu": [
1526
- "arm64"
1527
  ],
1528
  "dev": true,
1529
  "license": "MIT",
1530
  "optional": true,
1531
  "os": [
1532
  "win32"
1533
- ],
1534
- "engines": {
1535
- "node": "^20.19.0 || >=22.12.0"
1536
- }
1537
  },
1538
- "node_modules/@rolldown/binding-win32-x64-msvc": {
1539
- "version": "1.0.0-rc.10",
1540
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.10.tgz",
1541
- "integrity": "sha512-PYxKHMVHOb5NJuDL53vBUl1VwUjymDcYI6rzpIni0C9+9mTiJedvUxSk7/RPp7OOAm3v+EjgMu9bIy3N6b408w==",
1542
  "cpu": [
1543
  "x64"
1544
  ],
@@ -1547,27 +2064,65 @@
1547
  "optional": true,
1548
  "os": [
1549
  "win32"
 
 
 
 
 
 
 
 
1550
  ],
1551
- "engines": {
1552
- "node": "^20.19.0 || >=22.12.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1553
  }
1554
  },
1555
- "node_modules/@rolldown/pluginutils": {
1556
- "version": "1.0.0-rc.7",
1557
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz",
1558
- "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==",
1559
  "dev": true,
1560
- "license": "MIT"
 
 
 
1561
  },
1562
- "node_modules/@tybys/wasm-util": {
1563
- "version": "0.10.1",
1564
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
1565
- "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
 
 
 
 
 
 
 
 
 
 
 
1566
  "dev": true,
1567
  "license": "MIT",
1568
- "optional": true,
1569
  "dependencies": {
1570
- "tslib": "^2.4.0"
1571
  }
1572
  },
1573
  "node_modules/@types/estree": {
@@ -1614,29 +2169,24 @@
1614
  }
1615
  },
1616
  "node_modules/@vitejs/plugin-react": {
1617
- "version": "6.0.1",
1618
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
1619
- "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==",
1620
  "dev": true,
1621
  "license": "MIT",
1622
  "dependencies": {
1623
- "@rolldown/pluginutils": "1.0.0-rc.7"
 
 
 
 
 
1624
  },
1625
  "engines": {
1626
- "node": "^20.19.0 || >=22.12.0"
1627
  },
1628
  "peerDependencies": {
1629
- "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
1630
- "babel-plugin-react-compiler": "^1.0.0",
1631
- "vite": "^8.0.0"
1632
- },
1633
- "peerDependenciesMeta": {
1634
- "@rolldown/plugin-babel": {
1635
- "optional": true
1636
- },
1637
- "babel-plugin-react-compiler": {
1638
- "optional": true
1639
- }
1640
  }
1641
  },
1642
  "node_modules/acorn": {
@@ -1941,16 +2491,6 @@
1941
  "dev": true,
1942
  "license": "MIT"
1943
  },
1944
- "node_modules/detect-libc": {
1945
- "version": "2.1.2",
1946
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
1947
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
1948
- "dev": true,
1949
- "license": "Apache-2.0",
1950
- "engines": {
1951
- "node": ">=8"
1952
- }
1953
- },
1954
  "node_modules/electron-to-chromium": {
1955
  "version": "1.5.321",
1956
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
@@ -1964,6 +2504,48 @@
1964
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1965
  "license": "MIT"
1966
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1967
  "node_modules/escalade": {
1968
  "version": "3.2.0",
1969
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -2252,26 +2834,26 @@
2252
  }
2253
  },
2254
  "node_modules/firebase": {
2255
- "version": "12.11.0",
2256
- "resolved": "https://registry.npmjs.org/firebase/-/firebase-12.11.0.tgz",
2257
- "integrity": "sha512-W9f3Y+cgQYgF9gvCGxt0upec8zwAtiQVcHuU8MfzUIgVU/9fRQWtu48Geiv1lsigtBz9QHML++Km9xAKO5GB5Q==",
2258
  "license": "Apache-2.0",
2259
  "dependencies": {
2260
- "@firebase/ai": "2.10.0",
2261
  "@firebase/analytics": "0.10.21",
2262
  "@firebase/analytics-compat": "0.2.27",
2263
- "@firebase/app": "0.14.10",
2264
  "@firebase/app-check": "0.11.2",
2265
  "@firebase/app-check-compat": "0.4.2",
2266
- "@firebase/app-compat": "0.5.10",
2267
- "@firebase/app-types": "0.9.3",
2268
- "@firebase/auth": "1.12.2",
2269
- "@firebase/auth-compat": "0.6.4",
2270
- "@firebase/data-connect": "0.5.0",
2271
  "@firebase/database": "1.1.2",
2272
- "@firebase/database-compat": "2.1.2",
2273
- "@firebase/firestore": "4.13.0",
2274
- "@firebase/firestore-compat": "0.4.7",
2275
  "@firebase/functions": "0.13.3",
2276
  "@firebase/functions-compat": "0.4.3",
2277
  "@firebase/installations": "0.6.21",
@@ -2574,267 +3156,6 @@
2574
  "node": ">= 0.8.0"
2575
  }
2576
  },
2577
- "node_modules/lightningcss": {
2578
- "version": "1.32.0",
2579
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
2580
- "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
2581
- "dev": true,
2582
- "license": "MPL-2.0",
2583
- "dependencies": {
2584
- "detect-libc": "^2.0.3"
2585
- },
2586
- "engines": {
2587
- "node": ">= 12.0.0"
2588
- },
2589
- "funding": {
2590
- "type": "opencollective",
2591
- "url": "https://opencollective.com/parcel"
2592
- },
2593
- "optionalDependencies": {
2594
- "lightningcss-android-arm64": "1.32.0",
2595
- "lightningcss-darwin-arm64": "1.32.0",
2596
- "lightningcss-darwin-x64": "1.32.0",
2597
- "lightningcss-freebsd-x64": "1.32.0",
2598
- "lightningcss-linux-arm-gnueabihf": "1.32.0",
2599
- "lightningcss-linux-arm64-gnu": "1.32.0",
2600
- "lightningcss-linux-arm64-musl": "1.32.0",
2601
- "lightningcss-linux-x64-gnu": "1.32.0",
2602
- "lightningcss-linux-x64-musl": "1.32.0",
2603
- "lightningcss-win32-arm64-msvc": "1.32.0",
2604
- "lightningcss-win32-x64-msvc": "1.32.0"
2605
- }
2606
- },
2607
- "node_modules/lightningcss-android-arm64": {
2608
- "version": "1.32.0",
2609
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
2610
- "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
2611
- "cpu": [
2612
- "arm64"
2613
- ],
2614
- "dev": true,
2615
- "license": "MPL-2.0",
2616
- "optional": true,
2617
- "os": [
2618
- "android"
2619
- ],
2620
- "engines": {
2621
- "node": ">= 12.0.0"
2622
- },
2623
- "funding": {
2624
- "type": "opencollective",
2625
- "url": "https://opencollective.com/parcel"
2626
- }
2627
- },
2628
- "node_modules/lightningcss-darwin-arm64": {
2629
- "version": "1.32.0",
2630
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
2631
- "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
2632
- "cpu": [
2633
- "arm64"
2634
- ],
2635
- "dev": true,
2636
- "license": "MPL-2.0",
2637
- "optional": true,
2638
- "os": [
2639
- "darwin"
2640
- ],
2641
- "engines": {
2642
- "node": ">= 12.0.0"
2643
- },
2644
- "funding": {
2645
- "type": "opencollective",
2646
- "url": "https://opencollective.com/parcel"
2647
- }
2648
- },
2649
- "node_modules/lightningcss-darwin-x64": {
2650
- "version": "1.32.0",
2651
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
2652
- "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
2653
- "cpu": [
2654
- "x64"
2655
- ],
2656
- "dev": true,
2657
- "license": "MPL-2.0",
2658
- "optional": true,
2659
- "os": [
2660
- "darwin"
2661
- ],
2662
- "engines": {
2663
- "node": ">= 12.0.0"
2664
- },
2665
- "funding": {
2666
- "type": "opencollective",
2667
- "url": "https://opencollective.com/parcel"
2668
- }
2669
- },
2670
- "node_modules/lightningcss-freebsd-x64": {
2671
- "version": "1.32.0",
2672
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
2673
- "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
2674
- "cpu": [
2675
- "x64"
2676
- ],
2677
- "dev": true,
2678
- "license": "MPL-2.0",
2679
- "optional": true,
2680
- "os": [
2681
- "freebsd"
2682
- ],
2683
- "engines": {
2684
- "node": ">= 12.0.0"
2685
- },
2686
- "funding": {
2687
- "type": "opencollective",
2688
- "url": "https://opencollective.com/parcel"
2689
- }
2690
- },
2691
- "node_modules/lightningcss-linux-arm-gnueabihf": {
2692
- "version": "1.32.0",
2693
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
2694
- "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
2695
- "cpu": [
2696
- "arm"
2697
- ],
2698
- "dev": true,
2699
- "license": "MPL-2.0",
2700
- "optional": true,
2701
- "os": [
2702
- "linux"
2703
- ],
2704
- "engines": {
2705
- "node": ">= 12.0.0"
2706
- },
2707
- "funding": {
2708
- "type": "opencollective",
2709
- "url": "https://opencollective.com/parcel"
2710
- }
2711
- },
2712
- "node_modules/lightningcss-linux-arm64-gnu": {
2713
- "version": "1.32.0",
2714
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
2715
- "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
2716
- "cpu": [
2717
- "arm64"
2718
- ],
2719
- "dev": true,
2720
- "license": "MPL-2.0",
2721
- "optional": true,
2722
- "os": [
2723
- "linux"
2724
- ],
2725
- "engines": {
2726
- "node": ">= 12.0.0"
2727
- },
2728
- "funding": {
2729
- "type": "opencollective",
2730
- "url": "https://opencollective.com/parcel"
2731
- }
2732
- },
2733
- "node_modules/lightningcss-linux-arm64-musl": {
2734
- "version": "1.32.0",
2735
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
2736
- "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
2737
- "cpu": [
2738
- "arm64"
2739
- ],
2740
- "dev": true,
2741
- "license": "MPL-2.0",
2742
- "optional": true,
2743
- "os": [
2744
- "linux"
2745
- ],
2746
- "engines": {
2747
- "node": ">= 12.0.0"
2748
- },
2749
- "funding": {
2750
- "type": "opencollective",
2751
- "url": "https://opencollective.com/parcel"
2752
- }
2753
- },
2754
- "node_modules/lightningcss-linux-x64-gnu": {
2755
- "version": "1.32.0",
2756
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
2757
- "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
2758
- "cpu": [
2759
- "x64"
2760
- ],
2761
- "dev": true,
2762
- "license": "MPL-2.0",
2763
- "optional": true,
2764
- "os": [
2765
- "linux"
2766
- ],
2767
- "engines": {
2768
- "node": ">= 12.0.0"
2769
- },
2770
- "funding": {
2771
- "type": "opencollective",
2772
- "url": "https://opencollective.com/parcel"
2773
- }
2774
- },
2775
- "node_modules/lightningcss-linux-x64-musl": {
2776
- "version": "1.32.0",
2777
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
2778
- "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
2779
- "cpu": [
2780
- "x64"
2781
- ],
2782
- "dev": true,
2783
- "license": "MPL-2.0",
2784
- "optional": true,
2785
- "os": [
2786
- "linux"
2787
- ],
2788
- "engines": {
2789
- "node": ">= 12.0.0"
2790
- },
2791
- "funding": {
2792
- "type": "opencollective",
2793
- "url": "https://opencollective.com/parcel"
2794
- }
2795
- },
2796
- "node_modules/lightningcss-win32-arm64-msvc": {
2797
- "version": "1.32.0",
2798
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
2799
- "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
2800
- "cpu": [
2801
- "arm64"
2802
- ],
2803
- "dev": true,
2804
- "license": "MPL-2.0",
2805
- "optional": true,
2806
- "os": [
2807
- "win32"
2808
- ],
2809
- "engines": {
2810
- "node": ">= 12.0.0"
2811
- },
2812
- "funding": {
2813
- "type": "opencollective",
2814
- "url": "https://opencollective.com/parcel"
2815
- }
2816
- },
2817
- "node_modules/lightningcss-win32-x64-msvc": {
2818
- "version": "1.32.0",
2819
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
2820
- "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
2821
- "cpu": [
2822
- "x64"
2823
- ],
2824
- "dev": true,
2825
- "license": "MPL-2.0",
2826
- "optional": true,
2827
- "os": [
2828
- "win32"
2829
- ],
2830
- "engines": {
2831
- "node": ">= 12.0.0"
2832
- },
2833
- "funding": {
2834
- "type": "opencollective",
2835
- "url": "https://opencollective.com/parcel"
2836
- }
2837
- },
2838
  "node_modules/locate-path": {
2839
  "version": "6.0.0",
2840
  "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -2910,9 +3231,9 @@
2910
  "license": "MIT"
2911
  },
2912
  "node_modules/nanoid": {
2913
- "version": "3.3.11",
2914
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
2915
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
2916
  "dev": true,
2917
  "funding": [
2918
  {
@@ -3033,9 +3354,9 @@
3033
  "license": "ISC"
3034
  },
3035
  "node_modules/picomatch": {
3036
- "version": "4.0.3",
3037
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
3038
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
3039
  "dev": true,
3040
  "license": "MIT",
3041
  "engines": {
@@ -3046,9 +3367,9 @@
3046
  }
3047
  },
3048
  "node_modules/postcss": {
3049
- "version": "8.5.8",
3050
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
3051
- "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
3052
  "dev": true,
3053
  "funding": [
3054
  {
@@ -3085,22 +3406,22 @@
3085
  }
3086
  },
3087
  "node_modules/protobufjs": {
3088
- "version": "7.5.4",
3089
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
3090
- "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
3091
  "hasInstallScript": true,
3092
  "license": "BSD-3-Clause",
3093
  "dependencies": {
3094
  "@protobufjs/aspromise": "^1.1.2",
3095
  "@protobufjs/base64": "^1.1.2",
3096
- "@protobufjs/codegen": "^2.0.4",
3097
  "@protobufjs/eventemitter": "^1.1.0",
3098
  "@protobufjs/fetch": "^1.1.0",
3099
  "@protobufjs/float": "^1.0.2",
3100
- "@protobufjs/inquire": "^1.1.0",
3101
  "@protobufjs/path": "^1.1.2",
3102
  "@protobufjs/pool": "^1.1.0",
3103
- "@protobufjs/utf8": "^1.1.0",
3104
  "@types/node": ">=13.7.0",
3105
  "long": "^5.0.0"
3106
  },
@@ -3149,6 +3470,16 @@
3149
  "react": "^19.2.4"
3150
  }
3151
  },
 
 
 
 
 
 
 
 
 
 
3152
  "node_modules/react-router": {
3153
  "version": "7.13.1",
3154
  "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.1.tgz",
@@ -3206,46 +3537,50 @@
3206
  "node": ">=4"
3207
  }
3208
  },
3209
- "node_modules/rolldown": {
3210
- "version": "1.0.0-rc.10",
3211
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.10.tgz",
3212
- "integrity": "sha512-q7j6vvarRFmKpgJUT8HCAUljkgzEp4LAhPlJUvQhA5LA1SUL36s5QCysMutErzL3EbNOZOkoziSx9iZC4FddKA==",
3213
  "dev": true,
3214
  "license": "MIT",
3215
  "dependencies": {
3216
- "@oxc-project/types": "=0.120.0",
3217
- "@rolldown/pluginutils": "1.0.0-rc.10"
3218
  },
3219
  "bin": {
3220
- "rolldown": "bin/cli.mjs"
3221
  },
3222
  "engines": {
3223
- "node": "^20.19.0 || >=22.12.0"
 
3224
  },
3225
  "optionalDependencies": {
3226
- "@rolldown/binding-android-arm64": "1.0.0-rc.10",
3227
- "@rolldown/binding-darwin-arm64": "1.0.0-rc.10",
3228
- "@rolldown/binding-darwin-x64": "1.0.0-rc.10",
3229
- "@rolldown/binding-freebsd-x64": "1.0.0-rc.10",
3230
- "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.10",
3231
- "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.10",
3232
- "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.10",
3233
- "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.10",
3234
- "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.10",
3235
- "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.10",
3236
- "@rolldown/binding-linux-x64-musl": "1.0.0-rc.10",
3237
- "@rolldown/binding-openharmony-arm64": "1.0.0-rc.10",
3238
- "@rolldown/binding-wasm32-wasi": "1.0.0-rc.10",
3239
- "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.10",
3240
- "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.10"
3241
- }
3242
- },
3243
- "node_modules/rolldown/node_modules/@rolldown/pluginutils": {
3244
- "version": "1.0.0-rc.10",
3245
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.10.tgz",
3246
- "integrity": "sha512-UkVDEFk1w3mveXeKgaTuYfKWtPbvgck1dT8TUG3bnccrH0XtLTuAyfCoks4Q/M5ZGToSVJTIQYCzy2g/atAOeg==",
3247
- "dev": true,
3248
- "license": "MIT"
 
 
 
 
3249
  },
3250
  "node_modules/safe-buffer": {
3251
  "version": "5.2.1",
@@ -3375,14 +3710,14 @@
3375
  }
3376
  },
3377
  "node_modules/tinyglobby": {
3378
- "version": "0.2.15",
3379
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
3380
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
3381
  "dev": true,
3382
  "license": "MIT",
3383
  "dependencies": {
3384
  "fdir": "^6.5.0",
3385
- "picomatch": "^4.0.3"
3386
  },
3387
  "engines": {
3388
  "node": ">=12.0.0"
@@ -3458,23 +3793,24 @@
3458
  }
3459
  },
3460
  "node_modules/vite": {
3461
- "version": "8.0.1",
3462
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.1.tgz",
3463
- "integrity": "sha512-wt+Z2qIhfFt85uiyRt5LPU4oVEJBXj8hZNWKeqFG4gRG/0RaRGJ7njQCwzFVjO+v4+Ipmf5CY7VdmZRAYYBPHw==",
3464
  "dev": true,
3465
  "license": "MIT",
3466
  "dependencies": {
3467
- "lightningcss": "^1.32.0",
3468
- "picomatch": "^4.0.3",
3469
- "postcss": "^8.5.8",
3470
- "rolldown": "1.0.0-rc.10",
3471
- "tinyglobby": "^0.2.15"
 
3472
  },
3473
  "bin": {
3474
  "vite": "bin/vite.js"
3475
  },
3476
  "engines": {
3477
- "node": "^20.19.0 || >=22.12.0"
3478
  },
3479
  "funding": {
3480
  "url": "https://github.com/vitejs/vite?sponsor=1"
@@ -3483,15 +3819,14 @@
3483
  "fsevents": "~2.3.3"
3484
  },
3485
  "peerDependencies": {
3486
- "@types/node": "^20.19.0 || >=22.12.0",
3487
- "@vitejs/devtools": "^0.1.0",
3488
- "esbuild": "^0.27.0",
3489
  "jiti": ">=1.21.0",
3490
- "less": "^4.0.0",
3491
- "sass": "^1.70.0",
3492
- "sass-embedded": "^1.70.0",
3493
- "stylus": ">=0.54.8",
3494
- "sugarss": "^5.0.0",
 
3495
  "terser": "^5.16.0",
3496
  "tsx": "^4.8.1",
3497
  "yaml": "^2.4.2"
@@ -3500,18 +3835,15 @@
3500
  "@types/node": {
3501
  "optional": true
3502
  },
3503
- "@vitejs/devtools": {
3504
- "optional": true
3505
- },
3506
- "esbuild": {
3507
- "optional": true
3508
- },
3509
  "jiti": {
3510
  "optional": true
3511
  },
3512
  "less": {
3513
  "optional": true
3514
  },
 
 
 
3515
  "sass": {
3516
  "optional": true
3517
  },
 
9
  "version": "0.0.0",
10
  "dependencies": {
11
  "chart.js": "^4.5.1",
12
+ "firebase": "^12.12.1",
13
  "lucide-react": "^0.577.0",
14
  "react": "^19.2.4",
15
  "react-chartjs-2": "^5.3.1",
 
20
  "@eslint/js": "^9.39.4",
21
  "@types/react": "^19.2.14",
22
  "@types/react-dom": "^19.2.3",
23
+ "@vitejs/plugin-react": "^4.3.4",
24
  "eslint": "^9.39.4",
25
  "eslint-plugin-react-hooks": "^7.0.1",
26
  "eslint-plugin-react-refresh": "^0.5.2",
27
  "globals": "^17.4.0",
28
+ "vite": "^6.0.0"
29
  }
30
  },
31
  "node_modules/@babel/code-frame": {
 
160
  "@babel/core": "^7.0.0"
161
  }
162
  },
163
+ "node_modules/@babel/helper-plugin-utils": {
164
+ "version": "7.28.6",
165
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
166
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
167
+ "dev": true,
168
+ "license": "MIT",
169
+ "engines": {
170
+ "node": ">=6.9.0"
171
+ }
172
+ },
173
  "node_modules/@babel/helper-string-parser": {
174
  "version": "7.27.1",
175
  "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
 
230
  "node": ">=6.0.0"
231
  }
232
  },
233
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
234
+ "version": "7.27.1",
235
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
236
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
237
+ "dev": true,
238
+ "license": "MIT",
239
+ "dependencies": {
240
+ "@babel/helper-plugin-utils": "^7.27.1"
241
+ },
242
+ "engines": {
243
+ "node": ">=6.9.0"
244
+ },
245
+ "peerDependencies": {
246
+ "@babel/core": "^7.0.0-0"
247
+ }
248
+ },
249
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
250
+ "version": "7.27.1",
251
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
252
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
253
+ "dev": true,
254
+ "license": "MIT",
255
+ "dependencies": {
256
+ "@babel/helper-plugin-utils": "^7.27.1"
257
+ },
258
+ "engines": {
259
+ "node": ">=6.9.0"
260
+ },
261
+ "peerDependencies": {
262
+ "@babel/core": "^7.0.0-0"
263
+ }
264
+ },
265
  "node_modules/@babel/template": {
266
  "version": "7.28.6",
267
  "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
 
310
  "node": ">=6.9.0"
311
  }
312
  },
313
+ "node_modules/@esbuild/aix-ppc64": {
314
+ "version": "0.25.12",
315
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
316
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
317
+ "cpu": [
318
+ "ppc64"
319
+ ],
320
  "dev": true,
321
  "license": "MIT",
322
  "optional": true,
323
+ "os": [
324
+ "aix"
325
+ ],
326
+ "engines": {
327
+ "node": ">=18"
328
  }
329
  },
330
+ "node_modules/@esbuild/android-arm": {
331
+ "version": "0.25.12",
332
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
333
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
334
+ "cpu": [
335
+ "arm"
336
+ ],
337
  "dev": true,
338
  "license": "MIT",
339
  "optional": true,
340
+ "os": [
341
+ "android"
342
+ ],
343
+ "engines": {
344
+ "node": ">=18"
345
  }
346
  },
347
+ "node_modules/@esbuild/android-arm64": {
348
+ "version": "0.25.12",
349
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
350
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
351
+ "cpu": [
352
+ "arm64"
353
+ ],
354
  "dev": true,
355
  "license": "MIT",
356
  "optional": true,
357
+ "os": [
358
+ "android"
359
+ ],
360
+ "engines": {
361
+ "node": ">=18"
362
+ }
363
+ },
364
+ "node_modules/@esbuild/android-x64": {
365
+ "version": "0.25.12",
366
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
367
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
368
+ "cpu": [
369
+ "x64"
370
+ ],
371
+ "dev": true,
372
+ "license": "MIT",
373
+ "optional": true,
374
+ "os": [
375
+ "android"
376
+ ],
377
+ "engines": {
378
+ "node": ">=18"
379
+ }
380
+ },
381
+ "node_modules/@esbuild/darwin-arm64": {
382
+ "version": "0.25.12",
383
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
384
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
385
+ "cpu": [
386
+ "arm64"
387
+ ],
388
+ "dev": true,
389
+ "license": "MIT",
390
+ "optional": true,
391
+ "os": [
392
+ "darwin"
393
+ ],
394
+ "engines": {
395
+ "node": ">=18"
396
+ }
397
+ },
398
+ "node_modules/@esbuild/darwin-x64": {
399
+ "version": "0.25.12",
400
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
401
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
402
+ "cpu": [
403
+ "x64"
404
+ ],
405
+ "dev": true,
406
+ "license": "MIT",
407
+ "optional": true,
408
+ "os": [
409
+ "darwin"
410
+ ],
411
+ "engines": {
412
+ "node": ">=18"
413
+ }
414
+ },
415
+ "node_modules/@esbuild/freebsd-arm64": {
416
+ "version": "0.25.12",
417
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
418
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
419
+ "cpu": [
420
+ "arm64"
421
+ ],
422
+ "dev": true,
423
+ "license": "MIT",
424
+ "optional": true,
425
+ "os": [
426
+ "freebsd"
427
+ ],
428
+ "engines": {
429
+ "node": ">=18"
430
+ }
431
+ },
432
+ "node_modules/@esbuild/freebsd-x64": {
433
+ "version": "0.25.12",
434
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
435
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
436
+ "cpu": [
437
+ "x64"
438
+ ],
439
+ "dev": true,
440
+ "license": "MIT",
441
+ "optional": true,
442
+ "os": [
443
+ "freebsd"
444
+ ],
445
+ "engines": {
446
+ "node": ">=18"
447
+ }
448
+ },
449
+ "node_modules/@esbuild/linux-arm": {
450
+ "version": "0.25.12",
451
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
452
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
453
+ "cpu": [
454
+ "arm"
455
+ ],
456
+ "dev": true,
457
+ "license": "MIT",
458
+ "optional": true,
459
+ "os": [
460
+ "linux"
461
+ ],
462
+ "engines": {
463
+ "node": ">=18"
464
+ }
465
+ },
466
+ "node_modules/@esbuild/linux-arm64": {
467
+ "version": "0.25.12",
468
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
469
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
470
+ "cpu": [
471
+ "arm64"
472
+ ],
473
+ "dev": true,
474
+ "license": "MIT",
475
+ "optional": true,
476
+ "os": [
477
+ "linux"
478
+ ],
479
+ "engines": {
480
+ "node": ">=18"
481
+ }
482
+ },
483
+ "node_modules/@esbuild/linux-ia32": {
484
+ "version": "0.25.12",
485
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
486
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
487
+ "cpu": [
488
+ "ia32"
489
+ ],
490
+ "dev": true,
491
+ "license": "MIT",
492
+ "optional": true,
493
+ "os": [
494
+ "linux"
495
+ ],
496
+ "engines": {
497
+ "node": ">=18"
498
+ }
499
+ },
500
+ "node_modules/@esbuild/linux-loong64": {
501
+ "version": "0.25.12",
502
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
503
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
504
+ "cpu": [
505
+ "loong64"
506
+ ],
507
+ "dev": true,
508
+ "license": "MIT",
509
+ "optional": true,
510
+ "os": [
511
+ "linux"
512
+ ],
513
+ "engines": {
514
+ "node": ">=18"
515
+ }
516
+ },
517
+ "node_modules/@esbuild/linux-mips64el": {
518
+ "version": "0.25.12",
519
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
520
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
521
+ "cpu": [
522
+ "mips64el"
523
+ ],
524
+ "dev": true,
525
+ "license": "MIT",
526
+ "optional": true,
527
+ "os": [
528
+ "linux"
529
+ ],
530
+ "engines": {
531
+ "node": ">=18"
532
+ }
533
+ },
534
+ "node_modules/@esbuild/linux-ppc64": {
535
+ "version": "0.25.12",
536
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
537
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
538
+ "cpu": [
539
+ "ppc64"
540
+ ],
541
+ "dev": true,
542
+ "license": "MIT",
543
+ "optional": true,
544
+ "os": [
545
+ "linux"
546
+ ],
547
+ "engines": {
548
+ "node": ">=18"
549
+ }
550
+ },
551
+ "node_modules/@esbuild/linux-riscv64": {
552
+ "version": "0.25.12",
553
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
554
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
555
+ "cpu": [
556
+ "riscv64"
557
+ ],
558
+ "dev": true,
559
+ "license": "MIT",
560
+ "optional": true,
561
+ "os": [
562
+ "linux"
563
+ ],
564
+ "engines": {
565
+ "node": ">=18"
566
+ }
567
+ },
568
+ "node_modules/@esbuild/linux-s390x": {
569
+ "version": "0.25.12",
570
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
571
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
572
+ "cpu": [
573
+ "s390x"
574
+ ],
575
+ "dev": true,
576
+ "license": "MIT",
577
+ "optional": true,
578
+ "os": [
579
+ "linux"
580
+ ],
581
+ "engines": {
582
+ "node": ">=18"
583
+ }
584
+ },
585
+ "node_modules/@esbuild/linux-x64": {
586
+ "version": "0.25.12",
587
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
588
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
589
+ "cpu": [
590
+ "x64"
591
+ ],
592
+ "dev": true,
593
+ "license": "MIT",
594
+ "optional": true,
595
+ "os": [
596
+ "linux"
597
+ ],
598
+ "engines": {
599
+ "node": ">=18"
600
+ }
601
+ },
602
+ "node_modules/@esbuild/netbsd-arm64": {
603
+ "version": "0.25.12",
604
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
605
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
606
+ "cpu": [
607
+ "arm64"
608
+ ],
609
+ "dev": true,
610
+ "license": "MIT",
611
+ "optional": true,
612
+ "os": [
613
+ "netbsd"
614
+ ],
615
+ "engines": {
616
+ "node": ">=18"
617
+ }
618
+ },
619
+ "node_modules/@esbuild/netbsd-x64": {
620
+ "version": "0.25.12",
621
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
622
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
623
+ "cpu": [
624
+ "x64"
625
+ ],
626
+ "dev": true,
627
+ "license": "MIT",
628
+ "optional": true,
629
+ "os": [
630
+ "netbsd"
631
+ ],
632
+ "engines": {
633
+ "node": ">=18"
634
+ }
635
+ },
636
+ "node_modules/@esbuild/openbsd-arm64": {
637
+ "version": "0.25.12",
638
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
639
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
640
+ "cpu": [
641
+ "arm64"
642
+ ],
643
+ "dev": true,
644
+ "license": "MIT",
645
+ "optional": true,
646
+ "os": [
647
+ "openbsd"
648
+ ],
649
+ "engines": {
650
+ "node": ">=18"
651
+ }
652
+ },
653
+ "node_modules/@esbuild/openbsd-x64": {
654
+ "version": "0.25.12",
655
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
656
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
657
+ "cpu": [
658
+ "x64"
659
+ ],
660
+ "dev": true,
661
+ "license": "MIT",
662
+ "optional": true,
663
+ "os": [
664
+ "openbsd"
665
+ ],
666
+ "engines": {
667
+ "node": ">=18"
668
+ }
669
+ },
670
+ "node_modules/@esbuild/openharmony-arm64": {
671
+ "version": "0.25.12",
672
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
673
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
674
+ "cpu": [
675
+ "arm64"
676
+ ],
677
+ "dev": true,
678
+ "license": "MIT",
679
+ "optional": true,
680
+ "os": [
681
+ "openharmony"
682
+ ],
683
+ "engines": {
684
+ "node": ">=18"
685
+ }
686
+ },
687
+ "node_modules/@esbuild/sunos-x64": {
688
+ "version": "0.25.12",
689
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
690
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
691
+ "cpu": [
692
+ "x64"
693
+ ],
694
+ "dev": true,
695
+ "license": "MIT",
696
+ "optional": true,
697
+ "os": [
698
+ "sunos"
699
+ ],
700
+ "engines": {
701
+ "node": ">=18"
702
+ }
703
+ },
704
+ "node_modules/@esbuild/win32-arm64": {
705
+ "version": "0.25.12",
706
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
707
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
708
+ "cpu": [
709
+ "arm64"
710
+ ],
711
+ "dev": true,
712
+ "license": "MIT",
713
+ "optional": true,
714
+ "os": [
715
+ "win32"
716
+ ],
717
+ "engines": {
718
+ "node": ">=18"
719
+ }
720
+ },
721
+ "node_modules/@esbuild/win32-ia32": {
722
+ "version": "0.25.12",
723
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
724
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
725
+ "cpu": [
726
+ "ia32"
727
+ ],
728
+ "dev": true,
729
+ "license": "MIT",
730
+ "optional": true,
731
+ "os": [
732
+ "win32"
733
+ ],
734
+ "engines": {
735
+ "node": ">=18"
736
+ }
737
+ },
738
+ "node_modules/@esbuild/win32-x64": {
739
+ "version": "0.25.12",
740
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
741
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
742
+ "cpu": [
743
+ "x64"
744
+ ],
745
+ "dev": true,
746
+ "license": "MIT",
747
+ "optional": true,
748
+ "os": [
749
+ "win32"
750
+ ],
751
+ "engines": {
752
+ "node": ">=18"
753
  }
754
  },
755
  "node_modules/@eslint-community/eslint-utils": {
 
910
  }
911
  },
912
  "node_modules/@firebase/ai": {
913
+ "version": "2.11.1",
914
+ "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-2.11.1.tgz",
915
+ "integrity": "sha512-WGTF81W3WBKJY+c7xqTzO15OGAkCAs8cpADqflAI0skhTZjIkhF0qyf55rq4Ctt6jKygkv99rPfMrjAHTgXaVQ==",
916
  "license": "Apache-2.0",
917
  "dependencies": {
918
  "@firebase/app-check-interop-types": "0.3.3",
 
968
  "license": "Apache-2.0"
969
  },
970
  "node_modules/@firebase/app": {
971
+ "version": "0.14.11",
972
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.11.tgz",
973
+ "integrity": "sha512-yxADFW35LYkP8oSGobGsYIrI42I+GPCvKTNHx4meT9Yq3C950IVz1eANoBk822I9tbKv1wyv9P4Bv1G5TpucFw==",
974
  "license": "Apache-2.0",
975
  "dependencies": {
976
  "@firebase/component": "0.7.2",
 
1034
  "license": "Apache-2.0"
1035
  },
1036
  "node_modules/@firebase/app-compat": {
1037
+ "version": "0.5.11",
1038
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.11.tgz",
1039
+ "integrity": "sha512-KaACDjXkK5VLpI01vEs592R7/8s5DjFdIXfKoR385ly1SmK3Tu+jMHCIB4MsiY5jsez6v7VlEX/3rJ90dVkHyA==",
1040
  "license": "Apache-2.0",
1041
  "dependencies": {
1042
+ "@firebase/app": "0.14.11",
1043
  "@firebase/component": "0.7.2",
1044
  "@firebase/logger": "0.5.0",
1045
  "@firebase/util": "1.15.0",
 
1050
  }
1051
  },
1052
  "node_modules/@firebase/app-types": {
1053
+ "version": "0.9.4",
1054
+ "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.4.tgz",
1055
+ "integrity": "sha512-crX9TA5SVYZwLPG7/R16IsH8FLlgkPXjJUVhsVpHVDSqJiq3D/NuFTM5ctxGTExXAOeIn//69tQw47CPerM8MQ==",
1056
+ "license": "Apache-2.0",
1057
+ "dependencies": {
1058
+ "@firebase/logger": "0.5.0"
1059
+ }
1060
  },
1061
  "node_modules/@firebase/auth": {
1062
+ "version": "1.13.0",
1063
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.13.0.tgz",
1064
+ "integrity": "sha512-mKkSLNym3UbnnZ06dAmtqzp5EpPGCANGCZDJbkoR135aoUdKG6Aizwcnp29RzsQpwH0nmy5nay17Sfbsh9oY8A==",
1065
  "license": "Apache-2.0",
1066
  "dependencies": {
1067
  "@firebase/component": "0.7.2",
 
1074
  },
1075
  "peerDependencies": {
1076
  "@firebase/app": "0.x",
1077
+ "@react-native-async-storage/async-storage": "^2.2.0 || ^3.0.0"
1078
  },
1079
  "peerDependenciesMeta": {
1080
  "@react-native-async-storage/async-storage": {
 
1083
  }
1084
  },
1085
  "node_modules/@firebase/auth-compat": {
1086
+ "version": "0.6.5",
1087
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.5.tgz",
1088
+ "integrity": "sha512-IfVsafZ3QiXbsydXTP/XMI0wVYbJLI1rkb8Qqf03/h5FnL+upbbPOb+6Yj3RpcX+Y1iP5Uh18lxTHlXfbiyAow==",
1089
  "license": "Apache-2.0",
1090
  "dependencies": {
1091
+ "@firebase/auth": "1.13.0",
1092
  "@firebase/auth-types": "0.13.0",
1093
  "@firebase/component": "0.7.2",
1094
  "@firebase/util": "1.15.0",
 
1131
  }
1132
  },
1133
  "node_modules/@firebase/data-connect": {
1134
+ "version": "0.6.0",
1135
+ "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.6.0.tgz",
1136
+ "integrity": "sha512-OiugPRcdlhqXF97oR9CjVObILmsWU0dFUS0gXNYEe4bDfpW8pZmQ5GqhIPPtLWbT/0W2lMJJD7VILFMk+xuHPg==",
1137
  "license": "Apache-2.0",
1138
  "dependencies": {
1139
  "@firebase/auth-interop-types": "0.2.4",
 
1165
  }
1166
  },
1167
  "node_modules/@firebase/database-compat": {
1168
+ "version": "2.1.3",
1169
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.3.tgz",
1170
+ "integrity": "sha512-GMyfWjD8mehjg/QpNkY/tl9G/MoeugPeg91n9D0atggxbWuKF/2KhVPHZDH+XmoP0EKYqMWYTtKxBsaBaNKLYQ==",
1171
  "license": "Apache-2.0",
1172
  "dependencies": {
1173
  "@firebase/component": "0.7.2",
1174
  "@firebase/database": "1.1.2",
1175
+ "@firebase/database-types": "1.0.19",
1176
  "@firebase/logger": "0.5.0",
1177
  "@firebase/util": "1.15.0",
1178
  "tslib": "^2.1.0"
 
1182
  }
1183
  },
1184
  "node_modules/@firebase/database-types": {
1185
+ "version": "1.0.19",
1186
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.19.tgz",
1187
+ "integrity": "sha512-FqewjUZmV9LqFfuEnmgdcUpiOUz7qwLXxnm/H8BcMFEzQXtd1yyUDm8ex5VRad2nuTE+ahOuCjUAM/cyDncO+g==",
1188
  "license": "Apache-2.0",
1189
  "dependencies": {
1190
+ "@firebase/app-types": "0.9.4",
1191
  "@firebase/util": "1.15.0"
1192
  }
1193
  },
1194
  "node_modules/@firebase/firestore": {
1195
+ "version": "4.14.0",
1196
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.14.0.tgz",
1197
+ "integrity": "sha512-bZc6YOjRkMBVA16527tgzi6iN9n//xRB3Mmx/R+Gr6UAP/+xrIKOejQIcn1hh+tCzNT8jO0jI+kWox5J4tB/qQ==",
1198
  "license": "Apache-2.0",
1199
  "dependencies": {
1200
  "@firebase/component": "0.7.2",
 
1213
  }
1214
  },
1215
  "node_modules/@firebase/firestore-compat": {
1216
+ "version": "0.4.8",
1217
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.4.8.tgz",
1218
+ "integrity": "sha512-WK9NJRpnosGD2nuyjdr7K+Ht7AxRYJlTF62myI4rRA7ibJOosbecvjacR5oirJ7s1BgNS6qzcBw7n4fD3a5w1w==",
1219
  "license": "Apache-2.0",
1220
  "dependencies": {
1221
  "@firebase/component": "0.7.2",
1222
+ "@firebase/firestore": "4.14.0",
1223
  "@firebase/firestore-types": "3.0.3",
1224
  "@firebase/util": "1.15.0",
1225
  "tslib": "^2.1.0"
 
1659
  "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
1660
  "license": "MIT"
1661
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1662
  "node_modules/@protobufjs/aspromise": {
1663
  "version": "1.1.2",
1664
  "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
 
1672
  "license": "BSD-3-Clause"
1673
  },
1674
  "node_modules/@protobufjs/codegen": {
1675
+ "version": "2.0.5",
1676
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz",
1677
+ "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==",
1678
  "license": "BSD-3-Clause"
1679
  },
1680
  "node_modules/@protobufjs/eventemitter": {
 
1700
  "license": "BSD-3-Clause"
1701
  },
1702
  "node_modules/@protobufjs/inquire": {
1703
+ "version": "1.1.1",
1704
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.1.tgz",
1705
+ "integrity": "sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==",
1706
  "license": "BSD-3-Clause"
1707
  },
1708
  "node_modules/@protobufjs/path": {
 
1718
  "license": "BSD-3-Clause"
1719
  },
1720
  "node_modules/@protobufjs/utf8": {
1721
+ "version": "1.1.1",
1722
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz",
1723
+ "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==",
1724
  "license": "BSD-3-Clause"
1725
  },
1726
+ "node_modules/@rolldown/pluginutils": {
1727
+ "version": "1.0.0-beta.27",
1728
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
1729
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
1730
+ "dev": true,
1731
+ "license": "MIT"
1732
+ },
1733
+ "node_modules/@rollup/rollup-android-arm-eabi": {
1734
+ "version": "4.60.3",
1735
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz",
1736
+ "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==",
1737
  "cpu": [
1738
+ "arm"
1739
  ],
1740
  "dev": true,
1741
  "license": "MIT",
1742
  "optional": true,
1743
  "os": [
1744
  "android"
1745
+ ]
1746
+ },
1747
+ "node_modules/@rollup/rollup-android-arm64": {
1748
+ "version": "4.60.3",
1749
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz",
1750
+ "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==",
1751
+ "cpu": [
1752
+ "arm64"
1753
  ],
1754
+ "dev": true,
1755
+ "license": "MIT",
1756
+ "optional": true,
1757
+ "os": [
1758
+ "android"
1759
+ ]
1760
  },
1761
+ "node_modules/@rollup/rollup-darwin-arm64": {
1762
+ "version": "4.60.3",
1763
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz",
1764
+ "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==",
1765
  "cpu": [
1766
  "arm64"
1767
  ],
 
1770
  "optional": true,
1771
  "os": [
1772
  "darwin"
1773
+ ]
 
 
 
1774
  },
1775
+ "node_modules/@rollup/rollup-darwin-x64": {
1776
+ "version": "4.60.3",
1777
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz",
1778
+ "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==",
1779
  "cpu": [
1780
  "x64"
1781
  ],
 
1784
  "optional": true,
1785
  "os": [
1786
  "darwin"
1787
+ ]
1788
+ },
1789
+ "node_modules/@rollup/rollup-freebsd-arm64": {
1790
+ "version": "4.60.3",
1791
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz",
1792
+ "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==",
1793
+ "cpu": [
1794
+ "arm64"
1795
  ],
1796
+ "dev": true,
1797
+ "license": "MIT",
1798
+ "optional": true,
1799
+ "os": [
1800
+ "freebsd"
1801
+ ]
1802
  },
1803
+ "node_modules/@rollup/rollup-freebsd-x64": {
1804
+ "version": "4.60.3",
1805
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz",
1806
+ "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==",
1807
  "cpu": [
1808
  "x64"
1809
  ],
 
1812
  "optional": true,
1813
  "os": [
1814
  "freebsd"
1815
+ ]
1816
+ },
1817
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1818
+ "version": "4.60.3",
1819
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz",
1820
+ "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==",
1821
+ "cpu": [
1822
+ "arm"
1823
  ],
1824
+ "dev": true,
1825
+ "license": "MIT",
1826
+ "optional": true,
1827
+ "os": [
1828
+ "linux"
1829
+ ]
1830
  },
1831
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
1832
+ "version": "4.60.3",
1833
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz",
1834
+ "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==",
1835
  "cpu": [
1836
  "arm"
1837
  ],
 
1840
  "optional": true,
1841
  "os": [
1842
  "linux"
1843
+ ]
1844
+ },
1845
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
1846
+ "version": "4.60.3",
1847
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz",
1848
+ "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==",
1849
+ "cpu": [
1850
+ "arm64"
1851
  ],
1852
+ "dev": true,
1853
+ "license": "MIT",
1854
+ "optional": true,
1855
+ "os": [
1856
+ "linux"
1857
+ ]
1858
  },
1859
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
1860
+ "version": "4.60.3",
1861
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz",
1862
+ "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==",
1863
  "cpu": [
1864
  "arm64"
1865
  ],
 
1868
  "optional": true,
1869
  "os": [
1870
  "linux"
1871
+ ]
1872
+ },
1873
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
1874
+ "version": "4.60.3",
1875
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz",
1876
+ "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==",
1877
+ "cpu": [
1878
+ "loong64"
1879
  ],
1880
+ "dev": true,
1881
+ "license": "MIT",
1882
+ "optional": true,
1883
+ "os": [
1884
+ "linux"
1885
+ ]
1886
  },
1887
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
1888
+ "version": "4.60.3",
1889
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz",
1890
+ "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==",
1891
  "cpu": [
1892
+ "loong64"
1893
  ],
1894
  "dev": true,
1895
  "license": "MIT",
1896
  "optional": true,
1897
  "os": [
1898
  "linux"
1899
+ ]
1900
+ },
1901
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
1902
+ "version": "4.60.3",
1903
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz",
1904
+ "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==",
1905
+ "cpu": [
1906
+ "ppc64"
1907
  ],
1908
+ "dev": true,
1909
+ "license": "MIT",
1910
+ "optional": true,
1911
+ "os": [
1912
+ "linux"
1913
+ ]
1914
  },
1915
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
1916
+ "version": "4.60.3",
1917
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz",
1918
+ "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==",
1919
  "cpu": [
1920
  "ppc64"
1921
  ],
 
1924
  "optional": true,
1925
  "os": [
1926
  "linux"
1927
+ ]
1928
+ },
1929
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1930
+ "version": "4.60.3",
1931
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz",
1932
+ "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==",
1933
+ "cpu": [
1934
+ "riscv64"
1935
  ],
1936
+ "dev": true,
1937
+ "license": "MIT",
1938
+ "optional": true,
1939
+ "os": [
1940
+ "linux"
1941
+ ]
1942
+ },
1943
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
1944
+ "version": "4.60.3",
1945
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz",
1946
+ "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==",
1947
+ "cpu": [
1948
+ "riscv64"
1949
+ ],
1950
+ "dev": true,
1951
+ "license": "MIT",
1952
+ "optional": true,
1953
+ "os": [
1954
+ "linux"
1955
+ ]
1956
+ },
1957
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
1958
+ "version": "4.60.3",
1959
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz",
1960
+ "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==",
1961
+ "cpu": [
1962
+ "s390x"
1963
+ ],
1964
+ "dev": true,
1965
+ "license": "MIT",
1966
+ "optional": true,
1967
+ "os": [
1968
+ "linux"
1969
+ ]
1970
  },
1971
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
1972
+ "version": "4.60.3",
1973
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz",
1974
+ "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==",
1975
  "cpu": [
1976
+ "x64"
1977
  ],
1978
  "dev": true,
1979
  "license": "MIT",
1980
  "optional": true,
1981
  "os": [
1982
  "linux"
1983
+ ]
 
 
 
1984
  },
1985
+ "node_modules/@rollup/rollup-linux-x64-musl": {
1986
+ "version": "4.60.3",
1987
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz",
1988
+ "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==",
1989
  "cpu": [
1990
  "x64"
1991
  ],
 
1994
  "optional": true,
1995
  "os": [
1996
  "linux"
1997
+ ]
 
 
 
1998
  },
1999
+ "node_modules/@rollup/rollup-openbsd-x64": {
2000
+ "version": "4.60.3",
2001
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz",
2002
+ "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==",
2003
  "cpu": [
2004
  "x64"
2005
  ],
 
2007
  "license": "MIT",
2008
  "optional": true,
2009
  "os": [
2010
+ "openbsd"
2011
+ ]
 
 
 
2012
  },
2013
+ "node_modules/@rollup/rollup-openharmony-arm64": {
2014
+ "version": "4.60.3",
2015
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz",
2016
+ "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==",
2017
  "cpu": [
2018
  "arm64"
2019
  ],
 
2022
  "optional": true,
2023
  "os": [
2024
  "openharmony"
2025
+ ]
 
 
 
2026
  },
2027
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
2028
+ "version": "4.60.3",
2029
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz",
2030
+ "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==",
2031
  "cpu": [
2032
+ "arm64"
2033
  ],
2034
  "dev": true,
2035
  "license": "MIT",
2036
  "optional": true,
2037
+ "os": [
2038
+ "win32"
2039
+ ]
 
 
 
2040
  },
2041
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
2042
+ "version": "4.60.3",
2043
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz",
2044
+ "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==",
2045
  "cpu": [
2046
+ "ia32"
2047
  ],
2048
  "dev": true,
2049
  "license": "MIT",
2050
  "optional": true,
2051
  "os": [
2052
  "win32"
2053
+ ]
 
 
 
2054
  },
2055
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
2056
+ "version": "4.60.3",
2057
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz",
2058
+ "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==",
2059
  "cpu": [
2060
  "x64"
2061
  ],
 
2064
  "optional": true,
2065
  "os": [
2066
  "win32"
2067
+ ]
2068
+ },
2069
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
2070
+ "version": "4.60.3",
2071
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz",
2072
+ "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==",
2073
+ "cpu": [
2074
+ "x64"
2075
  ],
2076
+ "dev": true,
2077
+ "license": "MIT",
2078
+ "optional": true,
2079
+ "os": [
2080
+ "win32"
2081
+ ]
2082
+ },
2083
+ "node_modules/@types/babel__core": {
2084
+ "version": "7.20.5",
2085
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
2086
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
2087
+ "dev": true,
2088
+ "license": "MIT",
2089
+ "dependencies": {
2090
+ "@babel/parser": "^7.20.7",
2091
+ "@babel/types": "^7.20.7",
2092
+ "@types/babel__generator": "*",
2093
+ "@types/babel__template": "*",
2094
+ "@types/babel__traverse": "*"
2095
  }
2096
  },
2097
+ "node_modules/@types/babel__generator": {
2098
+ "version": "7.27.0",
2099
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
2100
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
2101
  "dev": true,
2102
+ "license": "MIT",
2103
+ "dependencies": {
2104
+ "@babel/types": "^7.0.0"
2105
+ }
2106
  },
2107
+ "node_modules/@types/babel__template": {
2108
+ "version": "7.4.4",
2109
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
2110
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
2111
+ "dev": true,
2112
+ "license": "MIT",
2113
+ "dependencies": {
2114
+ "@babel/parser": "^7.1.0",
2115
+ "@babel/types": "^7.0.0"
2116
+ }
2117
+ },
2118
+ "node_modules/@types/babel__traverse": {
2119
+ "version": "7.28.0",
2120
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
2121
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
2122
  "dev": true,
2123
  "license": "MIT",
 
2124
  "dependencies": {
2125
+ "@babel/types": "^7.28.2"
2126
  }
2127
  },
2128
  "node_modules/@types/estree": {
 
2169
  }
2170
  },
2171
  "node_modules/@vitejs/plugin-react": {
2172
+ "version": "4.7.0",
2173
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
2174
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
2175
  "dev": true,
2176
  "license": "MIT",
2177
  "dependencies": {
2178
+ "@babel/core": "^7.28.0",
2179
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
2180
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
2181
+ "@rolldown/pluginutils": "1.0.0-beta.27",
2182
+ "@types/babel__core": "^7.20.5",
2183
+ "react-refresh": "^0.17.0"
2184
  },
2185
  "engines": {
2186
+ "node": "^14.18.0 || >=16.0.0"
2187
  },
2188
  "peerDependencies": {
2189
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
 
 
 
 
 
 
 
 
 
 
2190
  }
2191
  },
2192
  "node_modules/acorn": {
 
2491
  "dev": true,
2492
  "license": "MIT"
2493
  },
 
 
 
 
 
 
 
 
 
 
2494
  "node_modules/electron-to-chromium": {
2495
  "version": "1.5.321",
2496
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
 
2504
  "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2505
  "license": "MIT"
2506
  },
2507
+ "node_modules/esbuild": {
2508
+ "version": "0.25.12",
2509
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
2510
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
2511
+ "dev": true,
2512
+ "hasInstallScript": true,
2513
+ "license": "MIT",
2514
+ "bin": {
2515
+ "esbuild": "bin/esbuild"
2516
+ },
2517
+ "engines": {
2518
+ "node": ">=18"
2519
+ },
2520
+ "optionalDependencies": {
2521
+ "@esbuild/aix-ppc64": "0.25.12",
2522
+ "@esbuild/android-arm": "0.25.12",
2523
+ "@esbuild/android-arm64": "0.25.12",
2524
+ "@esbuild/android-x64": "0.25.12",
2525
+ "@esbuild/darwin-arm64": "0.25.12",
2526
+ "@esbuild/darwin-x64": "0.25.12",
2527
+ "@esbuild/freebsd-arm64": "0.25.12",
2528
+ "@esbuild/freebsd-x64": "0.25.12",
2529
+ "@esbuild/linux-arm": "0.25.12",
2530
+ "@esbuild/linux-arm64": "0.25.12",
2531
+ "@esbuild/linux-ia32": "0.25.12",
2532
+ "@esbuild/linux-loong64": "0.25.12",
2533
+ "@esbuild/linux-mips64el": "0.25.12",
2534
+ "@esbuild/linux-ppc64": "0.25.12",
2535
+ "@esbuild/linux-riscv64": "0.25.12",
2536
+ "@esbuild/linux-s390x": "0.25.12",
2537
+ "@esbuild/linux-x64": "0.25.12",
2538
+ "@esbuild/netbsd-arm64": "0.25.12",
2539
+ "@esbuild/netbsd-x64": "0.25.12",
2540
+ "@esbuild/openbsd-arm64": "0.25.12",
2541
+ "@esbuild/openbsd-x64": "0.25.12",
2542
+ "@esbuild/openharmony-arm64": "0.25.12",
2543
+ "@esbuild/sunos-x64": "0.25.12",
2544
+ "@esbuild/win32-arm64": "0.25.12",
2545
+ "@esbuild/win32-ia32": "0.25.12",
2546
+ "@esbuild/win32-x64": "0.25.12"
2547
+ }
2548
+ },
2549
  "node_modules/escalade": {
2550
  "version": "3.2.0",
2551
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
 
2834
  }
2835
  },
2836
  "node_modules/firebase": {
2837
+ "version": "12.12.1",
2838
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-12.12.1.tgz",
2839
+ "integrity": "sha512-ee7xA+bTJLfjB9BP/8FQr3EkxmpAAGc1lNc5QkWgTDpUw24HYXFPm7FEWRdLtGnygxIdYpFmepSc5VjkI6NHhw==",
2840
  "license": "Apache-2.0",
2841
  "dependencies": {
2842
+ "@firebase/ai": "2.11.1",
2843
  "@firebase/analytics": "0.10.21",
2844
  "@firebase/analytics-compat": "0.2.27",
2845
+ "@firebase/app": "0.14.11",
2846
  "@firebase/app-check": "0.11.2",
2847
  "@firebase/app-check-compat": "0.4.2",
2848
+ "@firebase/app-compat": "0.5.11",
2849
+ "@firebase/app-types": "0.9.4",
2850
+ "@firebase/auth": "1.13.0",
2851
+ "@firebase/auth-compat": "0.6.5",
2852
+ "@firebase/data-connect": "0.6.0",
2853
  "@firebase/database": "1.1.2",
2854
+ "@firebase/database-compat": "2.1.3",
2855
+ "@firebase/firestore": "4.14.0",
2856
+ "@firebase/firestore-compat": "0.4.8",
2857
  "@firebase/functions": "0.13.3",
2858
  "@firebase/functions-compat": "0.4.3",
2859
  "@firebase/installations": "0.6.21",
 
3156
  "node": ">= 0.8.0"
3157
  }
3158
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3159
  "node_modules/locate-path": {
3160
  "version": "6.0.0",
3161
  "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
 
3231
  "license": "MIT"
3232
  },
3233
  "node_modules/nanoid": {
3234
+ "version": "3.3.12",
3235
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
3236
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
3237
  "dev": true,
3238
  "funding": [
3239
  {
 
3354
  "license": "ISC"
3355
  },
3356
  "node_modules/picomatch": {
3357
+ "version": "4.0.4",
3358
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
3359
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
3360
  "dev": true,
3361
  "license": "MIT",
3362
  "engines": {
 
3367
  }
3368
  },
3369
  "node_modules/postcss": {
3370
+ "version": "8.5.14",
3371
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
3372
+ "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
3373
  "dev": true,
3374
  "funding": [
3375
  {
 
3406
  }
3407
  },
3408
  "node_modules/protobufjs": {
3409
+ "version": "7.5.6",
3410
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.6.tgz",
3411
+ "integrity": "sha512-M71sTMB146U3u0di3yup8iM+zv8yPRNQVr1KK4tyBitl3qFvEGucq/rGDRShD2rsJhtN02RJaJ7j5X5hmy8SJg==",
3412
  "hasInstallScript": true,
3413
  "license": "BSD-3-Clause",
3414
  "dependencies": {
3415
  "@protobufjs/aspromise": "^1.1.2",
3416
  "@protobufjs/base64": "^1.1.2",
3417
+ "@protobufjs/codegen": "^2.0.5",
3418
  "@protobufjs/eventemitter": "^1.1.0",
3419
  "@protobufjs/fetch": "^1.1.0",
3420
  "@protobufjs/float": "^1.0.2",
3421
+ "@protobufjs/inquire": "^1.1.1",
3422
  "@protobufjs/path": "^1.1.2",
3423
  "@protobufjs/pool": "^1.1.0",
3424
+ "@protobufjs/utf8": "^1.1.1",
3425
  "@types/node": ">=13.7.0",
3426
  "long": "^5.0.0"
3427
  },
 
3470
  "react": "^19.2.4"
3471
  }
3472
  },
3473
+ "node_modules/react-refresh": {
3474
+ "version": "0.17.0",
3475
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
3476
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
3477
+ "dev": true,
3478
+ "license": "MIT",
3479
+ "engines": {
3480
+ "node": ">=0.10.0"
3481
+ }
3482
+ },
3483
  "node_modules/react-router": {
3484
  "version": "7.13.1",
3485
  "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.1.tgz",
 
3537
  "node": ">=4"
3538
  }
3539
  },
3540
+ "node_modules/rollup": {
3541
+ "version": "4.60.3",
3542
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz",
3543
+ "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==",
3544
  "dev": true,
3545
  "license": "MIT",
3546
  "dependencies": {
3547
+ "@types/estree": "1.0.8"
 
3548
  },
3549
  "bin": {
3550
+ "rollup": "dist/bin/rollup"
3551
  },
3552
  "engines": {
3553
+ "node": ">=18.0.0",
3554
+ "npm": ">=8.0.0"
3555
  },
3556
  "optionalDependencies": {
3557
+ "@rollup/rollup-android-arm-eabi": "4.60.3",
3558
+ "@rollup/rollup-android-arm64": "4.60.3",
3559
+ "@rollup/rollup-darwin-arm64": "4.60.3",
3560
+ "@rollup/rollup-darwin-x64": "4.60.3",
3561
+ "@rollup/rollup-freebsd-arm64": "4.60.3",
3562
+ "@rollup/rollup-freebsd-x64": "4.60.3",
3563
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.3",
3564
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.3",
3565
+ "@rollup/rollup-linux-arm64-gnu": "4.60.3",
3566
+ "@rollup/rollup-linux-arm64-musl": "4.60.3",
3567
+ "@rollup/rollup-linux-loong64-gnu": "4.60.3",
3568
+ "@rollup/rollup-linux-loong64-musl": "4.60.3",
3569
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.3",
3570
+ "@rollup/rollup-linux-ppc64-musl": "4.60.3",
3571
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.3",
3572
+ "@rollup/rollup-linux-riscv64-musl": "4.60.3",
3573
+ "@rollup/rollup-linux-s390x-gnu": "4.60.3",
3574
+ "@rollup/rollup-linux-x64-gnu": "4.60.3",
3575
+ "@rollup/rollup-linux-x64-musl": "4.60.3",
3576
+ "@rollup/rollup-openbsd-x64": "4.60.3",
3577
+ "@rollup/rollup-openharmony-arm64": "4.60.3",
3578
+ "@rollup/rollup-win32-arm64-msvc": "4.60.3",
3579
+ "@rollup/rollup-win32-ia32-msvc": "4.60.3",
3580
+ "@rollup/rollup-win32-x64-gnu": "4.60.3",
3581
+ "@rollup/rollup-win32-x64-msvc": "4.60.3",
3582
+ "fsevents": "~2.3.2"
3583
+ }
3584
  },
3585
  "node_modules/safe-buffer": {
3586
  "version": "5.2.1",
 
3710
  }
3711
  },
3712
  "node_modules/tinyglobby": {
3713
+ "version": "0.2.16",
3714
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
3715
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
3716
  "dev": true,
3717
  "license": "MIT",
3718
  "dependencies": {
3719
  "fdir": "^6.5.0",
3720
+ "picomatch": "^4.0.4"
3721
  },
3722
  "engines": {
3723
  "node": ">=12.0.0"
 
3793
  }
3794
  },
3795
  "node_modules/vite": {
3796
+ "version": "6.4.2",
3797
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
3798
+ "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==",
3799
  "dev": true,
3800
  "license": "MIT",
3801
  "dependencies": {
3802
+ "esbuild": "^0.25.0",
3803
+ "fdir": "^6.4.4",
3804
+ "picomatch": "^4.0.2",
3805
+ "postcss": "^8.5.3",
3806
+ "rollup": "^4.34.9",
3807
+ "tinyglobby": "^0.2.13"
3808
  },
3809
  "bin": {
3810
  "vite": "bin/vite.js"
3811
  },
3812
  "engines": {
3813
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
3814
  },
3815
  "funding": {
3816
  "url": "https://github.com/vitejs/vite?sponsor=1"
 
3819
  "fsevents": "~2.3.3"
3820
  },
3821
  "peerDependencies": {
3822
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
 
 
3823
  "jiti": ">=1.21.0",
3824
+ "less": "*",
3825
+ "lightningcss": "^1.21.0",
3826
+ "sass": "*",
3827
+ "sass-embedded": "*",
3828
+ "stylus": "*",
3829
+ "sugarss": "*",
3830
  "terser": "^5.16.0",
3831
  "tsx": "^4.8.1",
3832
  "yaml": "^2.4.2"
 
3835
  "@types/node": {
3836
  "optional": true
3837
  },
 
 
 
 
 
 
3838
  "jiti": {
3839
  "optional": true
3840
  },
3841
  "less": {
3842
  "optional": true
3843
  },
3844
+ "lightningcss": {
3845
+ "optional": true
3846
+ },
3847
  "sass": {
3848
  "optional": true
3849
  },
package.json CHANGED
@@ -11,7 +11,7 @@
11
  },
12
  "dependencies": {
13
  "chart.js": "^4.5.1",
14
- "firebase": "^12.11.0",
15
  "lucide-react": "^0.577.0",
16
  "react": "^19.2.4",
17
  "react-chartjs-2": "^5.3.1",
 
11
  },
12
  "dependencies": {
13
  "chart.js": "^4.5.1",
14
+ "firebase": "^12.12.1",
15
  "lucide-react": "^0.577.0",
16
  "react": "^19.2.4",
17
  "react-chartjs-2": "^5.3.1",
seed.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { initializeApp } from "firebase/app";
2
+ import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
3
+ import { getDatabase, ref, set, push } from "firebase/database";
4
+
5
+ const firebaseConfig = {
6
+ apiKey: "AIzaSyBm2Tvsz7SHtWEWO-97p3gvqC76iqt05VM",
7
+ authDomain: "rest-fc379.firebaseapp.com",
8
+ databaseURL: "https://rest-fc379-default-rtdb.firebaseio.com",
9
+ projectId: "rest-fc379",
10
+ storageBucket: "rest-fc379.firebasestorage.app",
11
+ messagingSenderId: "119970678093",
12
+ appId: "1:119970678093:web:16fb097882249fdce0e304"
13
+ };
14
+
15
+ const app = initializeApp(firebaseConfig);
16
+ const auth = getAuth(app);
17
+ const db = getDatabase(app);
18
+
19
+ const run = async () => {
20
+ const email = "admin@rest-os.com";
21
+ const password = "admin-password123";
22
+
23
+ console.log("Intentando crear/autenticar usuario...");
24
+
25
+ let user;
26
+ try {
27
+ const res = await createUserWithEmailAndPassword(auth, email, password);
28
+ user = res.user;
29
+ console.log("Usuario creado con éxito.");
30
+ } catch (e) {
31
+ if (e.code === 'auth/email-already-in-use') {
32
+ console.log("El usuario ya existe, intentando login...");
33
+ const res = await signInWithEmailAndPassword(auth, email, password);
34
+ user = res.user;
35
+ console.log("Login exitoso.");
36
+ } else {
37
+ throw e;
38
+ }
39
+ }
40
+
41
+ if (user) {
42
+ console.log("Autenticado. Iniciando sembrado...");
43
+ const menuRef = ref(db, 'menu');
44
+
45
+ const menuExamples = [
46
+ { name: 'Hamburgesa Clásica', price: 12.50, category: 'Fuertes', image: '/images/burger.png', active: true },
47
+ { name: 'Pasta Pomodoro', price: 10.00, category: 'Pasta', image: '/images/pasta.png', active: true },
48
+ { name: 'Tacos de Pollo', price: 9.00, category: 'Entradas', image: '/images/tacos.png', active: true },
49
+ { name: 'Pizza Margherita', price: 14.00, category: 'Pizzas', image: '/images/pizza.png', active: true },
50
+ { name: 'Ensalada César', price: 8.50, category: 'Entradas', image: 'https://images.unsplash.com/photo-1550304943-4f24f54ddde9?auto=format&fit=crop&q=80&w=1000', active: true },
51
+ { name: 'Sopa de Tomate', price: 7.00, category: 'Entradas', image: 'https://images.unsplash.com/photo-1547592166-23ac45744acd?auto=format&fit=crop&q=80&w=1000', active: true },
52
+ { name: 'Sandwich Gourmet', price: 11.00, category: 'Fuertes', image: 'https://images.unsplash.com/photo-1528735602780-2552fd46c7af?auto=format&fit=crop&q=80&w=1000', active: true },
53
+ { name: 'Chocolate Muffin', price: 4.50, category: 'Postres', image: 'https://images.unsplash.com/photo-1582231222779-1adb0b322f84?auto=format&fit=crop&q=80&w=1000', active: true },
54
+ { name: 'Ribeye Premium', price: 35.00, category: 'Especialidades', image: '/images/steak.png', active: true },
55
+ { name: 'Risotto de Trufa', price: 28.00, category: 'Especialidades', image: '/images/risotto.png', active: true },
56
+ { name: 'Salmón Glaseado', price: 26.00, category: 'Especialidades', image: 'https://images.unsplash.com/photo-1467003909585-2f8a72700288?auto=format&fit=crop&q=80&w=1000', active: true },
57
+ { name: 'Pato a la Naranja', price: 32.00, category: 'Especialidades', image: 'https://images.unsplash.com/photo-1626082927389-6cd097cdc6ec?auto=format&fit=crop&q=80&w=1000', active: true },
58
+ { name: 'Langosta Thermidor', price: 45.00, category: 'Especialidades', image: 'https://images.unsplash.com/photo-1553243599-c052f82958d2?auto=format&fit=crop&q=80&w=1000', active: true }
59
+ ];
60
+
61
+ for (const item of menuExamples) {
62
+ await set(push(menuRef), item);
63
+ console.log(`Agregado: ${item.name}`);
64
+ }
65
+
66
+ await set(ref(db, 'config/menuTheme'), 'light');
67
+ console.log("Sembrado finalizado.");
68
+ }
69
+ process.exit(0);
70
+ };
71
+
72
+ run().catch(console.error);
src/context/AuthContext.jsx CHANGED
@@ -15,20 +15,40 @@ export const AuthProvider = ({ children }) => {
15
  const [loading, setLoading] = useState(true);
16
 
17
  const login = async (email, password) => {
18
- // Demo mode fallback
19
- if ((email === 'admin@rest-os.com' && password === 'admin-password123') ||
20
- (email === 'mesero@rest-os.com' && password === 'mesero-password123')) {
21
-
22
- // Simular un objeto de usuario de Firebase
23
- const mockUser = {
24
- uid: email === 'admin@rest-os.com' ? 'demo-admin-uid' : 'demo-mesero-uid',
25
- email: email,
26
- isDemo: true
27
- };
28
-
29
- setCurrentUser(mockUser);
30
- setUserRole(email.includes('admin') ? 'admin' : 'mesero');
31
- return mockUser;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
  return signInWithEmailAndPassword(auth, email, password);
 
15
  const [loading, setLoading] = useState(true);
16
 
17
  const login = async (email, password) => {
18
+ // Manejo de cuentas Demo para facilitar el acceso
19
+ const isDemoAdmin = email === 'admin@rest-os.com' && password === 'admin-password123';
20
+ const isDemoWaiter = (email === 'mesero@rest-os.com' && password === 'mesero-password123') || (email === 'mesero@rest-os.com' && password === 'waiter-password123');
21
+
22
+ if (isDemoAdmin || isDemoWaiter) {
23
+ const { signInWithEmailAndPassword, createUserWithEmailAndPassword } = await import('firebase/auth');
24
+ try {
25
+ // Intentar login real para obtener token de Firebase
26
+ const res = await signInWithEmailAndPassword(auth, email, password);
27
+ return res.user;
28
+ } catch (error) {
29
+ if (error.code === 'auth/user-not-found' || error.code === 'auth/invalid-credential' || error.code === 'auth/invalid-email') {
30
+ try {
31
+ // Si no existe, crear el usuario en Firebase automáticamente
32
+ const res = await createUserWithEmailAndPassword(auth, email, password);
33
+ // Registrar rol en DB para que el sistema lo reconozca
34
+ const { set, ref: dbRef } = await import('firebase/database');
35
+ await set(dbRef(db, `users/${res.user.uid}`), {
36
+ name: isDemoAdmin ? 'Admin Demo' : 'Mesero Demo',
37
+ email: email,
38
+ role: isDemoAdmin ? 'admin' : 'mesero'
39
+ });
40
+ return res.user;
41
+ } catch (createError) {
42
+ console.error("Error creando usuario demo en Firebase", createError);
43
+ // Fallback a objeto mock si falla la creación (ej. reglas de seguridad de Auth)
44
+ const mockUser = { uid: isDemoAdmin ? 'demo-admin-uid' : 'demo-mesero-uid', email, isDemo: true };
45
+ setCurrentUser(mockUser);
46
+ setUserRole(isDemoAdmin ? 'admin' : 'mesero');
47
+ return mockUser;
48
+ }
49
+ }
50
+ throw error;
51
+ }
52
  }
53
 
54
  return signInWithEmailAndPassword(auth, email, password);