Krish-05 commited on
Commit
68b3818
·
unverified ·
1 Parent(s): 9f7a5a6

solve dependencies issues

Browse files
frontend/package-lock.json CHANGED
@@ -9,18 +9,20 @@
9
  "version": "0.0.0",
10
  "dependencies": {
11
  "autoprefixer": "^10.4.21",
 
12
  "firebase": "^12.0.0",
13
  "postcss": "^8.5.6",
14
- "react": "^19.1.0",
15
- "react-dom": "^19.1.0",
16
- "react-router-dom": "^7.7.1"
 
17
  },
18
  "devDependencies": {
19
  "@eslint/js": "^9.30.1",
20
  "@tailwindcss/container-queries": "^0.1.1",
21
  "@tailwindcss/forms": "^0.5.10",
22
- "@types/react": "^19.1.8",
23
- "@types/react-dom": "^19.1.6",
24
  "@vitejs/plugin-react": "^4.6.0",
25
  "eslint": "^9.30.1",
26
  "eslint-plugin-react-hooks": "^5.2.0",
@@ -1081,14 +1083,15 @@
1081
  "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==",
1082
  "license": "Apache-2.0"
1083
  },
1084
- "node_modules/@firebase/auth": {
1085
- "version": "1.11.0",
1086
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.11.0.tgz",
1087
- "integrity": "sha512-5j7+ua93X+IRcJ1oMDTClTo85l7Xe40WSkoJ+shzPrX7OISlVWLdE1mKC57PSD+/LfAbdhJmvKixINBw2ESK6w==",
1088
  "license": "Apache-2.0",
1089
  "dependencies": {
 
 
1090
  "@firebase/component": "0.7.0",
1091
- "@firebase/logger": "0.5.0",
1092
  "@firebase/util": "1.13.0",
1093
  "tslib": "^2.1.0"
1094
  },
@@ -1096,24 +1099,17 @@
1096
  "node": ">=20.0.0"
1097
  },
1098
  "peerDependencies": {
1099
- "@firebase/app": "0.x",
1100
- "@react-native-async-storage/async-storage": "^1.18.1"
1101
- },
1102
- "peerDependenciesMeta": {
1103
- "@react-native-async-storage/async-storage": {
1104
- "optional": true
1105
- }
1106
  }
1107
  },
1108
- "node_modules/@firebase/auth-compat": {
1109
- "version": "0.6.0",
1110
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.0.tgz",
1111
- "integrity": "sha512-J0lGSxXlG/lYVi45wbpPhcWiWUMXevY4fvLZsN1GHh+po7TZVng+figdHBVhFheaiipU8HZyc7ljw1jNojM2nw==",
1112
  "license": "Apache-2.0",
1113
  "dependencies": {
1114
- "@firebase/auth": "1.11.0",
1115
- "@firebase/auth-types": "0.13.0",
1116
  "@firebase/component": "0.7.0",
 
1117
  "@firebase/util": "1.13.0",
1118
  "tslib": "^2.1.0"
1119
  },
@@ -1121,7 +1117,13 @@
1121
  "node": ">=20.0.0"
1122
  },
1123
  "peerDependencies": {
1124
- "@firebase/app-compat": "0.x"
 
 
 
 
 
 
1125
  }
1126
  },
1127
  "node_modules/@firebase/auth-interop-types": {
@@ -1658,91 +1660,6 @@
1658
  "node": ">=12"
1659
  }
1660
  },
1661
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
1662
- "version": "6.1.0",
1663
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
1664
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
1665
- "dev": true,
1666
- "license": "MIT",
1667
- "engines": {
1668
- "node": ">=12"
1669
- },
1670
- "funding": {
1671
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
1672
- }
1673
- },
1674
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
1675
- "version": "6.2.1",
1676
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
1677
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
1678
- "dev": true,
1679
- "license": "MIT",
1680
- "engines": {
1681
- "node": ">=12"
1682
- },
1683
- "funding": {
1684
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1685
- }
1686
- },
1687
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
1688
- "version": "9.2.2",
1689
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1690
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1691
- "dev": true,
1692
- "license": "MIT"
1693
- },
1694
- "node_modules/@isaacs/cliui/node_modules/string-width": {
1695
- "version": "5.1.2",
1696
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1697
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1698
- "dev": true,
1699
- "license": "MIT",
1700
- "dependencies": {
1701
- "eastasianwidth": "^0.2.0",
1702
- "emoji-regex": "^9.2.2",
1703
- "strip-ansi": "^7.0.1"
1704
- },
1705
- "engines": {
1706
- "node": ">=12"
1707
- },
1708
- "funding": {
1709
- "url": "https://github.com/sponsors/sindresorhus"
1710
- }
1711
- },
1712
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
1713
- "version": "7.1.0",
1714
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1715
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1716
- "dev": true,
1717
- "license": "MIT",
1718
- "dependencies": {
1719
- "ansi-regex": "^6.0.1"
1720
- },
1721
- "engines": {
1722
- "node": ">=12"
1723
- },
1724
- "funding": {
1725
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1726
- }
1727
- },
1728
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
1729
- "version": "8.1.0",
1730
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
1731
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
1732
- "dev": true,
1733
- "license": "MIT",
1734
- "dependencies": {
1735
- "ansi-styles": "^6.1.0",
1736
- "string-width": "^5.0.1",
1737
- "strip-ansi": "^7.0.1"
1738
- },
1739
- "engines": {
1740
- "node": ">=12"
1741
- },
1742
- "funding": {
1743
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1744
- }
1745
- },
1746
  "node_modules/@jridgewell/gen-mapping": {
1747
  "version": "0.3.12",
1748
  "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
@@ -2273,24 +2190,32 @@
2273
  "undici-types": "~7.8.0"
2274
  }
2275
  },
 
 
 
 
 
 
 
2276
  "node_modules/@types/react": {
2277
- "version": "19.1.8",
2278
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
2279
- "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
2280
  "dev": true,
2281
  "license": "MIT",
2282
  "dependencies": {
 
2283
  "csstype": "^3.0.2"
2284
  }
2285
  },
2286
  "node_modules/@types/react-dom": {
2287
- "version": "19.1.6",
2288
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz",
2289
- "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==",
2290
  "dev": true,
2291
  "license": "MIT",
2292
  "peerDependencies": {
2293
- "@types/react": "^19.0.0"
2294
  }
2295
  },
2296
  "node_modules/@vitejs/plugin-react": {
@@ -2355,12 +2280,16 @@
2355
  }
2356
  },
2357
  "node_modules/ansi-regex": {
2358
- "version": "5.0.1",
2359
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2360
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
 
2361
  "license": "MIT",
2362
  "engines": {
2363
- "node": ">=8"
 
 
 
2364
  }
2365
  },
2366
  "node_modules/ansi-styles": {
@@ -2399,19 +2328,6 @@
2399
  "node": ">= 8"
2400
  }
2401
  },
2402
- "node_modules/anymatch/node_modules/picomatch": {
2403
- "version": "2.3.1",
2404
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2405
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2406
- "dev": true,
2407
- "license": "MIT",
2408
- "engines": {
2409
- "node": ">=8.6"
2410
- },
2411
- "funding": {
2412
- "url": "https://github.com/sponsors/jonschlinkert"
2413
- }
2414
- },
2415
  "node_modules/arg": {
2416
  "version": "5.0.2",
2417
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -2426,6 +2342,12 @@
2426
  "dev": true,
2427
  "license": "Python-2.0"
2428
  },
 
 
 
 
 
 
2429
  "node_modules/autoprefixer": {
2430
  "version": "10.4.21",
2431
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
@@ -2463,6 +2385,17 @@
2463
  "postcss": "^8.1.0"
2464
  }
2465
  },
 
 
 
 
 
 
 
 
 
 
 
2466
  "node_modules/balanced-match": {
2467
  "version": "1.0.2",
2468
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2539,6 +2472,19 @@
2539
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
2540
  }
2541
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2542
  "node_modules/callsites": {
2543
  "version": "3.1.0",
2544
  "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -2648,6 +2594,64 @@
2648
  "node": ">=12"
2649
  }
2650
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2651
  "node_modules/color-convert": {
2652
  "version": "2.0.1",
2653
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -2666,6 +2670,18 @@
2666
  "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2667
  "license": "MIT"
2668
  },
 
 
 
 
 
 
 
 
 
 
 
 
2669
  "node_modules/commander": {
2670
  "version": "4.1.1",
2671
  "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
@@ -2759,6 +2775,15 @@
2759
  "dev": true,
2760
  "license": "MIT"
2761
  },
 
 
 
 
 
 
 
 
 
2762
  "node_modules/didyoumean": {
2763
  "version": "1.2.2",
2764
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
@@ -2773,6 +2798,20 @@
2773
  "dev": true,
2774
  "license": "MIT"
2775
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2776
  "node_modules/eastasianwidth": {
2777
  "version": "0.2.0",
2778
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -2787,28 +2826,74 @@
2787
  "license": "ISC"
2788
  },
2789
  "node_modules/emoji-regex": {
2790
- "version": "8.0.0",
2791
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2792
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
 
2793
  "license": "MIT"
2794
  },
2795
- "node_modules/esbuild": {
2796
- "version": "0.25.8",
2797
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
2798
- "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
2799
- "dev": true,
2800
- "hasInstallScript": true,
2801
  "license": "MIT",
2802
- "bin": {
2803
- "esbuild": "bin/esbuild"
2804
- },
2805
  "engines": {
2806
- "node": ">=18"
2807
- },
2808
- "optionalDependencies": {
2809
- "@esbuild/aix-ppc64": "0.25.8",
2810
- "@esbuild/android-arm": "0.25.8",
2811
- "@esbuild/android-arm64": "0.25.8",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2812
  "@esbuild/android-x64": "0.25.8",
2813
  "@esbuild/darwin-arm64": "0.25.8",
2814
  "@esbuild/darwin-x64": "0.25.8",
@@ -3107,21 +3192,6 @@
3107
  "node": ">=0.8.0"
3108
  }
3109
  },
3110
- "node_modules/fdir": {
3111
- "version": "6.4.6",
3112
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
3113
- "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
3114
- "dev": true,
3115
- "license": "MIT",
3116
- "peerDependencies": {
3117
- "picomatch": "^3 || ^4"
3118
- },
3119
- "peerDependenciesMeta": {
3120
- "picomatch": {
3121
- "optional": true
3122
- }
3123
- }
3124
- },
3125
  "node_modules/file-entry-cache": {
3126
  "version": "8.0.0",
3127
  "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -3201,6 +3271,30 @@
3201
  "@firebase/util": "1.13.0"
3202
  }
3203
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3204
  "node_modules/flat-cache": {
3205
  "version": "4.0.1",
3206
  "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
@@ -3222,6 +3316,26 @@
3222
  "dev": true,
3223
  "license": "ISC"
3224
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3225
  "node_modules/foreground-child": {
3226
  "version": "3.3.1",
3227
  "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
@@ -3239,6 +3353,22 @@
3239
  "url": "https://github.com/sponsors/isaacs"
3240
  }
3241
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3242
  "node_modules/fraction.js": {
3243
  "version": "4.3.7",
3244
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -3271,7 +3401,6 @@
3271
  "version": "1.1.2",
3272
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
3273
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
3274
- "dev": true,
3275
  "license": "MIT",
3276
  "funding": {
3277
  "url": "https://github.com/sponsors/ljharb"
@@ -3296,6 +3425,43 @@
3296
  "node": "6.* || 8.* || >= 10.*"
3297
  }
3298
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3299
  "node_modules/glob": {
3300
  "version": "10.4.5",
3301
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
@@ -3369,6 +3535,18 @@
3369
  "url": "https://github.com/sponsors/sindresorhus"
3370
  }
3371
  },
 
 
 
 
 
 
 
 
 
 
 
 
3372
  "node_modules/has-flag": {
3373
  "version": "4.0.0",
3374
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -3379,11 +3557,37 @@
3379
  "node": ">=8"
3380
  }
3381
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3382
  "node_modules/hasown": {
3383
  "version": "2.0.2",
3384
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
3385
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
3386
- "dev": true,
3387
  "license": "MIT",
3388
  "dependencies": {
3389
  "function-bind": "^1.1.2"
@@ -3549,7 +3753,6 @@
3549
  "version": "4.0.0",
3550
  "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3551
  "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
3552
- "dev": true,
3553
  "license": "MIT"
3554
  },
3555
  "node_modules/js-yaml": {
@@ -3691,6 +3894,18 @@
3691
  "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
3692
  "license": "Apache-2.0"
3693
  },
 
 
 
 
 
 
 
 
 
 
 
 
3694
  "node_modules/lru-cache": {
3695
  "version": "5.1.1",
3696
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -3701,6 +3916,15 @@
3701
  "yallist": "^3.0.2"
3702
  }
3703
  },
 
 
 
 
 
 
 
 
 
3704
  "node_modules/merge2": {
3705
  "version": "1.4.1",
3706
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -3725,17 +3949,25 @@
3725
  "node": ">=8.6"
3726
  }
3727
  },
3728
- "node_modules/micromatch/node_modules/picomatch": {
3729
- "version": "2.3.1",
3730
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
3731
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
3732
- "dev": true,
3733
  "license": "MIT",
3734
  "engines": {
3735
- "node": ">=8.6"
 
 
 
 
 
 
 
 
 
3736
  },
3737
- "funding": {
3738
- "url": "https://github.com/sponsors/jonschlinkert"
3739
  }
3740
  },
3741
  "node_modules/mini-svg-data-uri": {
@@ -3988,13 +4220,13 @@
3988
  "license": "ISC"
3989
  },
3990
  "node_modules/picomatch": {
3991
- "version": "4.0.3",
3992
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
3993
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
3994
  "dev": true,
3995
  "license": "MIT",
3996
  "engines": {
3997
- "node": ">=12"
3998
  },
3999
  "funding": {
4000
  "url": "https://github.com/sponsors/jonschlinkert"
@@ -4202,6 +4434,12 @@
4202
  "node": ">=12.0.0"
4203
  }
4204
  },
 
 
 
 
 
 
4205
  "node_modules/punycode": {
4206
  "version": "2.3.1",
4207
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -4234,24 +4472,28 @@
4234
  "license": "MIT"
4235
  },
4236
  "node_modules/react": {
4237
- "version": "19.1.0",
4238
- "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
4239
- "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
4240
  "license": "MIT",
 
 
 
4241
  "engines": {
4242
  "node": ">=0.10.0"
4243
  }
4244
  },
4245
  "node_modules/react-dom": {
4246
- "version": "19.1.0",
4247
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
4248
- "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
4249
  "license": "MIT",
4250
  "dependencies": {
4251
- "scheduler": "^0.26.0"
 
4252
  },
4253
  "peerDependencies": {
4254
- "react": "^19.1.0"
4255
  }
4256
  },
4257
  "node_modules/react-refresh": {
@@ -4302,6 +4544,16 @@
4302
  "react-dom": ">=18"
4303
  }
4304
  },
 
 
 
 
 
 
 
 
 
 
4305
  "node_modules/read-cache": {
4306
  "version": "1.0.0",
4307
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -4325,19 +4577,6 @@
4325
  "node": ">=8.10.0"
4326
  }
4327
  },
4328
- "node_modules/readdirp/node_modules/picomatch": {
4329
- "version": "2.3.1",
4330
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
4331
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
4332
- "dev": true,
4333
- "license": "MIT",
4334
- "engines": {
4335
- "node": ">=8.6"
4336
- },
4337
- "funding": {
4338
- "url": "https://github.com/sponsors/jonschlinkert"
4339
- }
4340
- },
4341
  "node_modules/require-directory": {
4342
  "version": "2.1.1",
4343
  "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -4474,10 +4713,13 @@
4474
  "license": "MIT"
4475
  },
4476
  "node_modules/scheduler": {
4477
- "version": "0.26.0",
4478
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
4479
- "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
4480
- "license": "MIT"
 
 
 
4481
  },
4482
  "node_modules/semver": {
4483
  "version": "6.3.1",
@@ -4541,17 +4783,21 @@
4541
  }
4542
  },
4543
  "node_modules/string-width": {
4544
- "version": "4.2.3",
4545
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
4546
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
 
4547
  "license": "MIT",
4548
  "dependencies": {
4549
- "emoji-regex": "^8.0.0",
4550
- "is-fullwidth-code-point": "^3.0.0",
4551
- "strip-ansi": "^6.0.1"
4552
  },
4553
  "engines": {
4554
- "node": ">=8"
 
 
 
4555
  }
4556
  },
4557
  "node_modules/string-width-cjs": {
@@ -4570,10 +4816,28 @@
4570
  "node": ">=8"
4571
  }
4572
  },
4573
- "node_modules/strip-ansi": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4574
  "version": "6.0.1",
4575
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4576
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
 
4577
  "license": "MIT",
4578
  "dependencies": {
4579
  "ansi-regex": "^5.0.1"
@@ -4582,6 +4846,22 @@
4582
  "node": ">=8"
4583
  }
4584
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4585
  "node_modules/strip-ansi-cjs": {
4586
  "name": "strip-ansi",
4587
  "version": "6.0.1",
@@ -4596,6 +4876,16 @@
4596
  "node": ">=8"
4597
  }
4598
  },
 
 
 
 
 
 
 
 
 
 
4599
  "node_modules/strip-json-comments": {
4600
  "version": "3.1.1",
4601
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -4736,6 +5026,34 @@
4736
  "url": "https://github.com/sponsors/SuperchupuDev"
4737
  }
4738
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4739
  "node_modules/to-regex-range": {
4740
  "version": "5.0.1",
4741
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -4903,6 +5221,34 @@
4903
  }
4904
  }
4905
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4906
  "node_modules/web-vitals": {
4907
  "version": "4.2.4",
4908
  "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
@@ -4959,17 +5305,18 @@
4959
  }
4960
  },
4961
  "node_modules/wrap-ansi": {
4962
- "version": "7.0.0",
4963
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
4964
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
 
4965
  "license": "MIT",
4966
  "dependencies": {
4967
- "ansi-styles": "^4.0.0",
4968
- "string-width": "^4.1.0",
4969
- "strip-ansi": "^6.0.0"
4970
  },
4971
  "engines": {
4972
- "node": ">=10"
4973
  },
4974
  "funding": {
4975
  "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
@@ -4994,6 +5341,64 @@
4994
  "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
4995
  }
4996
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4997
  "node_modules/y18n": {
4998
  "version": "5.0.8",
4999
  "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -5050,6 +5455,47 @@
5050
  "node": ">=12"
5051
  }
5052
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5053
  "node_modules/yocto-queue": {
5054
  "version": "0.1.0",
5055
  "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
 
9
  "version": "0.0.0",
10
  "dependencies": {
11
  "autoprefixer": "^10.4.21",
12
+ "axios": "^1.6.2",
13
  "firebase": "^12.0.0",
14
  "postcss": "^8.5.6",
15
+ "react": "^18.2.0",
16
+ "react-dom": "^18.2.0",
17
+ "react-router-dom": "^7.7.1",
18
+ "react-voice-visualizer": "^2.0.8"
19
  },
20
  "devDependencies": {
21
  "@eslint/js": "^9.30.1",
22
  "@tailwindcss/container-queries": "^0.1.1",
23
  "@tailwindcss/forms": "^0.5.10",
24
+ "@types/react": "^18.2.0",
25
+ "@types/react-dom": "^18.2.0",
26
  "@vitejs/plugin-react": "^4.6.0",
27
  "eslint": "^9.30.1",
28
  "eslint-plugin-react-hooks": "^5.2.0",
 
1083
  "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==",
1084
  "license": "Apache-2.0"
1085
  },
1086
+ "node_modules/@firebase/auth-compat": {
1087
+ "version": "0.6.0",
1088
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.0.tgz",
1089
+ "integrity": "sha512-J0lGSxXlG/lYVi45wbpPhcWiWUMXevY4fvLZsN1GHh+po7TZVng+figdHBVhFheaiipU8HZyc7ljw1jNojM2nw==",
1090
  "license": "Apache-2.0",
1091
  "dependencies": {
1092
+ "@firebase/auth": "1.11.0",
1093
+ "@firebase/auth-types": "0.13.0",
1094
  "@firebase/component": "0.7.0",
 
1095
  "@firebase/util": "1.13.0",
1096
  "tslib": "^2.1.0"
1097
  },
 
1099
  "node": ">=20.0.0"
1100
  },
1101
  "peerDependencies": {
1102
+ "@firebase/app-compat": "0.x"
 
 
 
 
 
 
1103
  }
1104
  },
1105
+ "node_modules/@firebase/auth-compat/node_modules/@firebase/auth": {
1106
+ "version": "1.11.0",
1107
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.11.0.tgz",
1108
+ "integrity": "sha512-5j7+ua93X+IRcJ1oMDTClTo85l7Xe40WSkoJ+shzPrX7OISlVWLdE1mKC57PSD+/LfAbdhJmvKixINBw2ESK6w==",
1109
  "license": "Apache-2.0",
1110
  "dependencies": {
 
 
1111
  "@firebase/component": "0.7.0",
1112
+ "@firebase/logger": "0.5.0",
1113
  "@firebase/util": "1.13.0",
1114
  "tslib": "^2.1.0"
1115
  },
 
1117
  "node": ">=20.0.0"
1118
  },
1119
  "peerDependencies": {
1120
+ "@firebase/app": "0.x",
1121
+ "@react-native-async-storage/async-storage": "^1.18.1"
1122
+ },
1123
+ "peerDependenciesMeta": {
1124
+ "@react-native-async-storage/async-storage": {
1125
+ "optional": true
1126
+ }
1127
  }
1128
  },
1129
  "node_modules/@firebase/auth-interop-types": {
 
1660
  "node": ">=12"
1661
  }
1662
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1663
  "node_modules/@jridgewell/gen-mapping": {
1664
  "version": "0.3.12",
1665
  "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
 
2190
  "undici-types": "~7.8.0"
2191
  }
2192
  },
2193
+ "node_modules/@types/prop-types": {
2194
+ "version": "15.7.15",
2195
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
2196
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
2197
+ "dev": true,
2198
+ "license": "MIT"
2199
+ },
2200
  "node_modules/@types/react": {
2201
+ "version": "18.3.23",
2202
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz",
2203
+ "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==",
2204
  "dev": true,
2205
  "license": "MIT",
2206
  "dependencies": {
2207
+ "@types/prop-types": "*",
2208
  "csstype": "^3.0.2"
2209
  }
2210
  },
2211
  "node_modules/@types/react-dom": {
2212
+ "version": "18.3.7",
2213
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
2214
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
2215
  "dev": true,
2216
  "license": "MIT",
2217
  "peerDependencies": {
2218
+ "@types/react": "^18.0.0"
2219
  }
2220
  },
2221
  "node_modules/@vitejs/plugin-react": {
 
2280
  }
2281
  },
2282
  "node_modules/ansi-regex": {
2283
+ "version": "6.1.0",
2284
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
2285
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
2286
+ "dev": true,
2287
  "license": "MIT",
2288
  "engines": {
2289
+ "node": ">=12"
2290
+ },
2291
+ "funding": {
2292
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
2293
  }
2294
  },
2295
  "node_modules/ansi-styles": {
 
2328
  "node": ">= 8"
2329
  }
2330
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2331
  "node_modules/arg": {
2332
  "version": "5.0.2",
2333
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
 
2342
  "dev": true,
2343
  "license": "Python-2.0"
2344
  },
2345
+ "node_modules/asynckit": {
2346
+ "version": "0.4.0",
2347
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2348
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
2349
+ "license": "MIT"
2350
+ },
2351
  "node_modules/autoprefixer": {
2352
  "version": "10.4.21",
2353
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
 
2385
  "postcss": "^8.1.0"
2386
  }
2387
  },
2388
+ "node_modules/axios": {
2389
+ "version": "1.11.0",
2390
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
2391
+ "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
2392
+ "license": "MIT",
2393
+ "dependencies": {
2394
+ "follow-redirects": "^1.15.6",
2395
+ "form-data": "^4.0.4",
2396
+ "proxy-from-env": "^1.1.0"
2397
+ }
2398
+ },
2399
  "node_modules/balanced-match": {
2400
  "version": "1.0.2",
2401
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 
2472
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
2473
  }
2474
  },
2475
+ "node_modules/call-bind-apply-helpers": {
2476
+ "version": "1.0.2",
2477
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
2478
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
2479
+ "license": "MIT",
2480
+ "dependencies": {
2481
+ "es-errors": "^1.3.0",
2482
+ "function-bind": "^1.1.2"
2483
+ },
2484
+ "engines": {
2485
+ "node": ">= 0.4"
2486
+ }
2487
+ },
2488
  "node_modules/callsites": {
2489
  "version": "3.1.0",
2490
  "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 
2594
  "node": ">=12"
2595
  }
2596
  },
2597
+ "node_modules/cliui/node_modules/ansi-regex": {
2598
+ "version": "5.0.1",
2599
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2600
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2601
+ "license": "MIT",
2602
+ "engines": {
2603
+ "node": ">=8"
2604
+ }
2605
+ },
2606
+ "node_modules/cliui/node_modules/emoji-regex": {
2607
+ "version": "8.0.0",
2608
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2609
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2610
+ "license": "MIT"
2611
+ },
2612
+ "node_modules/cliui/node_modules/string-width": {
2613
+ "version": "4.2.3",
2614
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2615
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2616
+ "license": "MIT",
2617
+ "dependencies": {
2618
+ "emoji-regex": "^8.0.0",
2619
+ "is-fullwidth-code-point": "^3.0.0",
2620
+ "strip-ansi": "^6.0.1"
2621
+ },
2622
+ "engines": {
2623
+ "node": ">=8"
2624
+ }
2625
+ },
2626
+ "node_modules/cliui/node_modules/strip-ansi": {
2627
+ "version": "6.0.1",
2628
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2629
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2630
+ "license": "MIT",
2631
+ "dependencies": {
2632
+ "ansi-regex": "^5.0.1"
2633
+ },
2634
+ "engines": {
2635
+ "node": ">=8"
2636
+ }
2637
+ },
2638
+ "node_modules/cliui/node_modules/wrap-ansi": {
2639
+ "version": "7.0.0",
2640
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2641
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2642
+ "license": "MIT",
2643
+ "dependencies": {
2644
+ "ansi-styles": "^4.0.0",
2645
+ "string-width": "^4.1.0",
2646
+ "strip-ansi": "^6.0.0"
2647
+ },
2648
+ "engines": {
2649
+ "node": ">=10"
2650
+ },
2651
+ "funding": {
2652
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2653
+ }
2654
+ },
2655
  "node_modules/color-convert": {
2656
  "version": "2.0.1",
2657
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
 
2670
  "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2671
  "license": "MIT"
2672
  },
2673
+ "node_modules/combined-stream": {
2674
+ "version": "1.0.8",
2675
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2676
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2677
+ "license": "MIT",
2678
+ "dependencies": {
2679
+ "delayed-stream": "~1.0.0"
2680
+ },
2681
+ "engines": {
2682
+ "node": ">= 0.8"
2683
+ }
2684
+ },
2685
  "node_modules/commander": {
2686
  "version": "4.1.1",
2687
  "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
 
2775
  "dev": true,
2776
  "license": "MIT"
2777
  },
2778
+ "node_modules/delayed-stream": {
2779
+ "version": "1.0.0",
2780
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2781
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
2782
+ "license": "MIT",
2783
+ "engines": {
2784
+ "node": ">=0.4.0"
2785
+ }
2786
+ },
2787
  "node_modules/didyoumean": {
2788
  "version": "1.2.2",
2789
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
 
2798
  "dev": true,
2799
  "license": "MIT"
2800
  },
2801
+ "node_modules/dunder-proto": {
2802
+ "version": "1.0.1",
2803
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
2804
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
2805
+ "license": "MIT",
2806
+ "dependencies": {
2807
+ "call-bind-apply-helpers": "^1.0.1",
2808
+ "es-errors": "^1.3.0",
2809
+ "gopd": "^1.2.0"
2810
+ },
2811
+ "engines": {
2812
+ "node": ">= 0.4"
2813
+ }
2814
+ },
2815
  "node_modules/eastasianwidth": {
2816
  "version": "0.2.0",
2817
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
 
2826
  "license": "ISC"
2827
  },
2828
  "node_modules/emoji-regex": {
2829
+ "version": "9.2.2",
2830
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
2831
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
2832
+ "dev": true,
2833
  "license": "MIT"
2834
  },
2835
+ "node_modules/es-define-property": {
2836
+ "version": "1.0.1",
2837
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
2838
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
 
 
2839
  "license": "MIT",
 
 
 
2840
  "engines": {
2841
+ "node": ">= 0.4"
2842
+ }
2843
+ },
2844
+ "node_modules/es-errors": {
2845
+ "version": "1.3.0",
2846
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
2847
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
2848
+ "license": "MIT",
2849
+ "engines": {
2850
+ "node": ">= 0.4"
2851
+ }
2852
+ },
2853
+ "node_modules/es-object-atoms": {
2854
+ "version": "1.1.1",
2855
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
2856
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
2857
+ "license": "MIT",
2858
+ "dependencies": {
2859
+ "es-errors": "^1.3.0"
2860
+ },
2861
+ "engines": {
2862
+ "node": ">= 0.4"
2863
+ }
2864
+ },
2865
+ "node_modules/es-set-tostringtag": {
2866
+ "version": "2.1.0",
2867
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
2868
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
2869
+ "license": "MIT",
2870
+ "dependencies": {
2871
+ "es-errors": "^1.3.0",
2872
+ "get-intrinsic": "^1.2.6",
2873
+ "has-tostringtag": "^1.0.2",
2874
+ "hasown": "^2.0.2"
2875
+ },
2876
+ "engines": {
2877
+ "node": ">= 0.4"
2878
+ }
2879
+ },
2880
+ "node_modules/esbuild": {
2881
+ "version": "0.25.8",
2882
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
2883
+ "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
2884
+ "dev": true,
2885
+ "hasInstallScript": true,
2886
+ "license": "MIT",
2887
+ "bin": {
2888
+ "esbuild": "bin/esbuild"
2889
+ },
2890
+ "engines": {
2891
+ "node": ">=18"
2892
+ },
2893
+ "optionalDependencies": {
2894
+ "@esbuild/aix-ppc64": "0.25.8",
2895
+ "@esbuild/android-arm": "0.25.8",
2896
+ "@esbuild/android-arm64": "0.25.8",
2897
  "@esbuild/android-x64": "0.25.8",
2898
  "@esbuild/darwin-arm64": "0.25.8",
2899
  "@esbuild/darwin-x64": "0.25.8",
 
3192
  "node": ">=0.8.0"
3193
  }
3194
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3195
  "node_modules/file-entry-cache": {
3196
  "version": "8.0.0",
3197
  "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
 
3271
  "@firebase/util": "1.13.0"
3272
  }
3273
  },
3274
+ "node_modules/firebase/node_modules/@firebase/auth": {
3275
+ "version": "1.11.0",
3276
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.11.0.tgz",
3277
+ "integrity": "sha512-5j7+ua93X+IRcJ1oMDTClTo85l7Xe40WSkoJ+shzPrX7OISlVWLdE1mKC57PSD+/LfAbdhJmvKixINBw2ESK6w==",
3278
+ "license": "Apache-2.0",
3279
+ "dependencies": {
3280
+ "@firebase/component": "0.7.0",
3281
+ "@firebase/logger": "0.5.0",
3282
+ "@firebase/util": "1.13.0",
3283
+ "tslib": "^2.1.0"
3284
+ },
3285
+ "engines": {
3286
+ "node": ">=20.0.0"
3287
+ },
3288
+ "peerDependencies": {
3289
+ "@firebase/app": "0.x",
3290
+ "@react-native-async-storage/async-storage": "^1.18.1"
3291
+ },
3292
+ "peerDependenciesMeta": {
3293
+ "@react-native-async-storage/async-storage": {
3294
+ "optional": true
3295
+ }
3296
+ }
3297
+ },
3298
  "node_modules/flat-cache": {
3299
  "version": "4.0.1",
3300
  "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
 
3316
  "dev": true,
3317
  "license": "ISC"
3318
  },
3319
+ "node_modules/follow-redirects": {
3320
+ "version": "1.15.9",
3321
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
3322
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
3323
+ "funding": [
3324
+ {
3325
+ "type": "individual",
3326
+ "url": "https://github.com/sponsors/RubenVerborgh"
3327
+ }
3328
+ ],
3329
+ "license": "MIT",
3330
+ "engines": {
3331
+ "node": ">=4.0"
3332
+ },
3333
+ "peerDependenciesMeta": {
3334
+ "debug": {
3335
+ "optional": true
3336
+ }
3337
+ }
3338
+ },
3339
  "node_modules/foreground-child": {
3340
  "version": "3.3.1",
3341
  "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
 
3353
  "url": "https://github.com/sponsors/isaacs"
3354
  }
3355
  },
3356
+ "node_modules/form-data": {
3357
+ "version": "4.0.4",
3358
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
3359
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
3360
+ "license": "MIT",
3361
+ "dependencies": {
3362
+ "asynckit": "^0.4.0",
3363
+ "combined-stream": "^1.0.8",
3364
+ "es-set-tostringtag": "^2.1.0",
3365
+ "hasown": "^2.0.2",
3366
+ "mime-types": "^2.1.12"
3367
+ },
3368
+ "engines": {
3369
+ "node": ">= 6"
3370
+ }
3371
+ },
3372
  "node_modules/fraction.js": {
3373
  "version": "4.3.7",
3374
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
 
3401
  "version": "1.1.2",
3402
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
3403
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 
3404
  "license": "MIT",
3405
  "funding": {
3406
  "url": "https://github.com/sponsors/ljharb"
 
3425
  "node": "6.* || 8.* || >= 10.*"
3426
  }
3427
  },
3428
+ "node_modules/get-intrinsic": {
3429
+ "version": "1.3.0",
3430
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
3431
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
3432
+ "license": "MIT",
3433
+ "dependencies": {
3434
+ "call-bind-apply-helpers": "^1.0.2",
3435
+ "es-define-property": "^1.0.1",
3436
+ "es-errors": "^1.3.0",
3437
+ "es-object-atoms": "^1.1.1",
3438
+ "function-bind": "^1.1.2",
3439
+ "get-proto": "^1.0.1",
3440
+ "gopd": "^1.2.0",
3441
+ "has-symbols": "^1.1.0",
3442
+ "hasown": "^2.0.2",
3443
+ "math-intrinsics": "^1.1.0"
3444
+ },
3445
+ "engines": {
3446
+ "node": ">= 0.4"
3447
+ },
3448
+ "funding": {
3449
+ "url": "https://github.com/sponsors/ljharb"
3450
+ }
3451
+ },
3452
+ "node_modules/get-proto": {
3453
+ "version": "1.0.1",
3454
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
3455
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
3456
+ "license": "MIT",
3457
+ "dependencies": {
3458
+ "dunder-proto": "^1.0.1",
3459
+ "es-object-atoms": "^1.0.0"
3460
+ },
3461
+ "engines": {
3462
+ "node": ">= 0.4"
3463
+ }
3464
+ },
3465
  "node_modules/glob": {
3466
  "version": "10.4.5",
3467
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
 
3535
  "url": "https://github.com/sponsors/sindresorhus"
3536
  }
3537
  },
3538
+ "node_modules/gopd": {
3539
+ "version": "1.2.0",
3540
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
3541
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
3542
+ "license": "MIT",
3543
+ "engines": {
3544
+ "node": ">= 0.4"
3545
+ },
3546
+ "funding": {
3547
+ "url": "https://github.com/sponsors/ljharb"
3548
+ }
3549
+ },
3550
  "node_modules/has-flag": {
3551
  "version": "4.0.0",
3552
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
 
3557
  "node": ">=8"
3558
  }
3559
  },
3560
+ "node_modules/has-symbols": {
3561
+ "version": "1.1.0",
3562
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
3563
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
3564
+ "license": "MIT",
3565
+ "engines": {
3566
+ "node": ">= 0.4"
3567
+ },
3568
+ "funding": {
3569
+ "url": "https://github.com/sponsors/ljharb"
3570
+ }
3571
+ },
3572
+ "node_modules/has-tostringtag": {
3573
+ "version": "1.0.2",
3574
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
3575
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
3576
+ "license": "MIT",
3577
+ "dependencies": {
3578
+ "has-symbols": "^1.0.3"
3579
+ },
3580
+ "engines": {
3581
+ "node": ">= 0.4"
3582
+ },
3583
+ "funding": {
3584
+ "url": "https://github.com/sponsors/ljharb"
3585
+ }
3586
+ },
3587
  "node_modules/hasown": {
3588
  "version": "2.0.2",
3589
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
3590
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 
3591
  "license": "MIT",
3592
  "dependencies": {
3593
  "function-bind": "^1.1.2"
 
3753
  "version": "4.0.0",
3754
  "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3755
  "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
 
3756
  "license": "MIT"
3757
  },
3758
  "node_modules/js-yaml": {
 
3894
  "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
3895
  "license": "Apache-2.0"
3896
  },
3897
+ "node_modules/loose-envify": {
3898
+ "version": "1.4.0",
3899
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
3900
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
3901
+ "license": "MIT",
3902
+ "dependencies": {
3903
+ "js-tokens": "^3.0.0 || ^4.0.0"
3904
+ },
3905
+ "bin": {
3906
+ "loose-envify": "cli.js"
3907
+ }
3908
+ },
3909
  "node_modules/lru-cache": {
3910
  "version": "5.1.1",
3911
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
 
3916
  "yallist": "^3.0.2"
3917
  }
3918
  },
3919
+ "node_modules/math-intrinsics": {
3920
+ "version": "1.1.0",
3921
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
3922
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
3923
+ "license": "MIT",
3924
+ "engines": {
3925
+ "node": ">= 0.4"
3926
+ }
3927
+ },
3928
  "node_modules/merge2": {
3929
  "version": "1.4.1",
3930
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
 
3949
  "node": ">=8.6"
3950
  }
3951
  },
3952
+ "node_modules/mime-db": {
3953
+ "version": "1.52.0",
3954
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
3955
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
 
3956
  "license": "MIT",
3957
  "engines": {
3958
+ "node": ">= 0.6"
3959
+ }
3960
+ },
3961
+ "node_modules/mime-types": {
3962
+ "version": "2.1.35",
3963
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
3964
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3965
+ "license": "MIT",
3966
+ "dependencies": {
3967
+ "mime-db": "1.52.0"
3968
  },
3969
+ "engines": {
3970
+ "node": ">= 0.6"
3971
  }
3972
  },
3973
  "node_modules/mini-svg-data-uri": {
 
4220
  "license": "ISC"
4221
  },
4222
  "node_modules/picomatch": {
4223
+ "version": "2.3.1",
4224
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
4225
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
4226
  "dev": true,
4227
  "license": "MIT",
4228
  "engines": {
4229
+ "node": ">=8.6"
4230
  },
4231
  "funding": {
4232
  "url": "https://github.com/sponsors/jonschlinkert"
 
4434
  "node": ">=12.0.0"
4435
  }
4436
  },
4437
+ "node_modules/proxy-from-env": {
4438
+ "version": "1.1.0",
4439
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
4440
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
4441
+ "license": "MIT"
4442
+ },
4443
  "node_modules/punycode": {
4444
  "version": "2.3.1",
4445
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
 
4472
  "license": "MIT"
4473
  },
4474
  "node_modules/react": {
4475
+ "version": "18.3.1",
4476
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
4477
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
4478
  "license": "MIT",
4479
+ "dependencies": {
4480
+ "loose-envify": "^1.1.0"
4481
+ },
4482
  "engines": {
4483
  "node": ">=0.10.0"
4484
  }
4485
  },
4486
  "node_modules/react-dom": {
4487
+ "version": "18.3.1",
4488
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
4489
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
4490
  "license": "MIT",
4491
  "dependencies": {
4492
+ "loose-envify": "^1.1.0",
4493
+ "scheduler": "^0.23.2"
4494
  },
4495
  "peerDependencies": {
4496
+ "react": "^18.3.1"
4497
  }
4498
  },
4499
  "node_modules/react-refresh": {
 
4544
  "react-dom": ">=18"
4545
  }
4546
  },
4547
+ "node_modules/react-voice-visualizer": {
4548
+ "version": "2.0.8",
4549
+ "resolved": "https://registry.npmjs.org/react-voice-visualizer/-/react-voice-visualizer-2.0.8.tgz",
4550
+ "integrity": "sha512-oA/IyNeh15+mERgm2n33IAqQaMGBEFN1n3gs2V/0LbLyscqsbhNo8JOFXh2I9neIqYJ4q27TEzXzbO00Xq/aXg==",
4551
+ "license": "MIT",
4552
+ "peerDependencies": {
4553
+ "react": "^18.2.0",
4554
+ "react-dom": "^18.2.0"
4555
+ }
4556
+ },
4557
  "node_modules/read-cache": {
4558
  "version": "1.0.0",
4559
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
 
4577
  "node": ">=8.10.0"
4578
  }
4579
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
4580
  "node_modules/require-directory": {
4581
  "version": "2.1.1",
4582
  "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
 
4713
  "license": "MIT"
4714
  },
4715
  "node_modules/scheduler": {
4716
+ "version": "0.23.2",
4717
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
4718
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
4719
+ "license": "MIT",
4720
+ "dependencies": {
4721
+ "loose-envify": "^1.1.0"
4722
+ }
4723
  },
4724
  "node_modules/semver": {
4725
  "version": "6.3.1",
 
4783
  }
4784
  },
4785
  "node_modules/string-width": {
4786
+ "version": "5.1.2",
4787
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
4788
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
4789
+ "dev": true,
4790
  "license": "MIT",
4791
  "dependencies": {
4792
+ "eastasianwidth": "^0.2.0",
4793
+ "emoji-regex": "^9.2.2",
4794
+ "strip-ansi": "^7.0.1"
4795
  },
4796
  "engines": {
4797
+ "node": ">=12"
4798
+ },
4799
+ "funding": {
4800
+ "url": "https://github.com/sponsors/sindresorhus"
4801
  }
4802
  },
4803
  "node_modules/string-width-cjs": {
 
4816
  "node": ">=8"
4817
  }
4818
  },
4819
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
4820
+ "version": "5.0.1",
4821
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4822
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
4823
+ "dev": true,
4824
+ "license": "MIT",
4825
+ "engines": {
4826
+ "node": ">=8"
4827
+ }
4828
+ },
4829
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
4830
+ "version": "8.0.0",
4831
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
4832
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
4833
+ "dev": true,
4834
+ "license": "MIT"
4835
+ },
4836
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
4837
  "version": "6.0.1",
4838
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4839
  "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
4840
+ "dev": true,
4841
  "license": "MIT",
4842
  "dependencies": {
4843
  "ansi-regex": "^5.0.1"
 
4846
  "node": ">=8"
4847
  }
4848
  },
4849
+ "node_modules/strip-ansi": {
4850
+ "version": "7.1.0",
4851
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
4852
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
4853
+ "dev": true,
4854
+ "license": "MIT",
4855
+ "dependencies": {
4856
+ "ansi-regex": "^6.0.1"
4857
+ },
4858
+ "engines": {
4859
+ "node": ">=12"
4860
+ },
4861
+ "funding": {
4862
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
4863
+ }
4864
+ },
4865
  "node_modules/strip-ansi-cjs": {
4866
  "name": "strip-ansi",
4867
  "version": "6.0.1",
 
4876
  "node": ">=8"
4877
  }
4878
  },
4879
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
4880
+ "version": "5.0.1",
4881
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4882
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
4883
+ "dev": true,
4884
+ "license": "MIT",
4885
+ "engines": {
4886
+ "node": ">=8"
4887
+ }
4888
+ },
4889
  "node_modules/strip-json-comments": {
4890
  "version": "3.1.1",
4891
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
 
5026
  "url": "https://github.com/sponsors/SuperchupuDev"
5027
  }
5028
  },
5029
+ "node_modules/tinyglobby/node_modules/fdir": {
5030
+ "version": "6.4.6",
5031
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
5032
+ "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
5033
+ "dev": true,
5034
+ "license": "MIT",
5035
+ "peerDependencies": {
5036
+ "picomatch": "^3 || ^4"
5037
+ },
5038
+ "peerDependenciesMeta": {
5039
+ "picomatch": {
5040
+ "optional": true
5041
+ }
5042
+ }
5043
+ },
5044
+ "node_modules/tinyglobby/node_modules/picomatch": {
5045
+ "version": "4.0.3",
5046
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
5047
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
5048
+ "dev": true,
5049
+ "license": "MIT",
5050
+ "engines": {
5051
+ "node": ">=12"
5052
+ },
5053
+ "funding": {
5054
+ "url": "https://github.com/sponsors/jonschlinkert"
5055
+ }
5056
+ },
5057
  "node_modules/to-regex-range": {
5058
  "version": "5.0.1",
5059
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
 
5221
  }
5222
  }
5223
  },
5224
+ "node_modules/vite/node_modules/fdir": {
5225
+ "version": "6.4.6",
5226
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
5227
+ "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
5228
+ "dev": true,
5229
+ "license": "MIT",
5230
+ "peerDependencies": {
5231
+ "picomatch": "^3 || ^4"
5232
+ },
5233
+ "peerDependenciesMeta": {
5234
+ "picomatch": {
5235
+ "optional": true
5236
+ }
5237
+ }
5238
+ },
5239
+ "node_modules/vite/node_modules/picomatch": {
5240
+ "version": "4.0.3",
5241
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
5242
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
5243
+ "dev": true,
5244
+ "license": "MIT",
5245
+ "engines": {
5246
+ "node": ">=12"
5247
+ },
5248
+ "funding": {
5249
+ "url": "https://github.com/sponsors/jonschlinkert"
5250
+ }
5251
+ },
5252
  "node_modules/web-vitals": {
5253
  "version": "4.2.4",
5254
  "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
 
5305
  }
5306
  },
5307
  "node_modules/wrap-ansi": {
5308
+ "version": "8.1.0",
5309
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
5310
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
5311
+ "dev": true,
5312
  "license": "MIT",
5313
  "dependencies": {
5314
+ "ansi-styles": "^6.1.0",
5315
+ "string-width": "^5.0.1",
5316
+ "strip-ansi": "^7.0.1"
5317
  },
5318
  "engines": {
5319
+ "node": ">=12"
5320
  },
5321
  "funding": {
5322
  "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
 
5341
  "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5342
  }
5343
  },
5344
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
5345
+ "version": "5.0.1",
5346
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
5347
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
5348
+ "dev": true,
5349
+ "license": "MIT",
5350
+ "engines": {
5351
+ "node": ">=8"
5352
+ }
5353
+ },
5354
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
5355
+ "version": "8.0.0",
5356
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
5357
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
5358
+ "dev": true,
5359
+ "license": "MIT"
5360
+ },
5361
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
5362
+ "version": "4.2.3",
5363
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
5364
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
5365
+ "dev": true,
5366
+ "license": "MIT",
5367
+ "dependencies": {
5368
+ "emoji-regex": "^8.0.0",
5369
+ "is-fullwidth-code-point": "^3.0.0",
5370
+ "strip-ansi": "^6.0.1"
5371
+ },
5372
+ "engines": {
5373
+ "node": ">=8"
5374
+ }
5375
+ },
5376
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
5377
+ "version": "6.0.1",
5378
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5379
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5380
+ "dev": true,
5381
+ "license": "MIT",
5382
+ "dependencies": {
5383
+ "ansi-regex": "^5.0.1"
5384
+ },
5385
+ "engines": {
5386
+ "node": ">=8"
5387
+ }
5388
+ },
5389
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
5390
+ "version": "6.2.1",
5391
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
5392
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
5393
+ "dev": true,
5394
+ "license": "MIT",
5395
+ "engines": {
5396
+ "node": ">=12"
5397
+ },
5398
+ "funding": {
5399
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
5400
+ }
5401
+ },
5402
  "node_modules/y18n": {
5403
  "version": "5.0.8",
5404
  "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
 
5455
  "node": ">=12"
5456
  }
5457
  },
5458
+ "node_modules/yargs/node_modules/ansi-regex": {
5459
+ "version": "5.0.1",
5460
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
5461
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
5462
+ "license": "MIT",
5463
+ "engines": {
5464
+ "node": ">=8"
5465
+ }
5466
+ },
5467
+ "node_modules/yargs/node_modules/emoji-regex": {
5468
+ "version": "8.0.0",
5469
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
5470
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
5471
+ "license": "MIT"
5472
+ },
5473
+ "node_modules/yargs/node_modules/string-width": {
5474
+ "version": "4.2.3",
5475
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
5476
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
5477
+ "license": "MIT",
5478
+ "dependencies": {
5479
+ "emoji-regex": "^8.0.0",
5480
+ "is-fullwidth-code-point": "^3.0.0",
5481
+ "strip-ansi": "^6.0.1"
5482
+ },
5483
+ "engines": {
5484
+ "node": ">=8"
5485
+ }
5486
+ },
5487
+ "node_modules/yargs/node_modules/strip-ansi": {
5488
+ "version": "6.0.1",
5489
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5490
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5491
+ "license": "MIT",
5492
+ "dependencies": {
5493
+ "ansi-regex": "^5.0.1"
5494
+ },
5495
+ "engines": {
5496
+ "node": ">=8"
5497
+ }
5498
+ },
5499
  "node_modules/yocto-queue": {
5500
  "version": "0.1.0",
5501
  "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
frontend/package.json CHANGED
@@ -13,16 +13,18 @@
13
  "autoprefixer": "^10.4.21",
14
  "firebase": "^12.0.0",
15
  "postcss": "^8.5.6",
16
- "react": "^19.1.0",
17
- "react-dom": "^19.1.0",
18
- "react-router-dom": "^7.7.1"
 
 
19
  },
20
  "devDependencies": {
21
  "@eslint/js": "^9.30.1",
22
  "@tailwindcss/container-queries": "^0.1.1",
23
  "@tailwindcss/forms": "^0.5.10",
24
- "@types/react": "^19.1.8",
25
- "@types/react-dom": "^19.1.6",
26
  "@vitejs/plugin-react": "^4.6.0",
27
  "eslint": "^9.30.1",
28
  "eslint-plugin-react-hooks": "^5.2.0",
@@ -31,4 +33,4 @@
31
  "tailwindcss": "^3.4.17",
32
  "vite": "^7.0.4"
33
  }
34
- }
 
13
  "autoprefixer": "^10.4.21",
14
  "firebase": "^12.0.0",
15
  "postcss": "^8.5.6",
16
+ "react": "^18.2.0",
17
+ "react-dom": "^18.2.0",
18
+ "react-router-dom": "^7.7.1",
19
+ "react-voice-visualizer": "^2.0.8",
20
+ "axios": "^1.6.2"
21
  },
22
  "devDependencies": {
23
  "@eslint/js": "^9.30.1",
24
  "@tailwindcss/container-queries": "^0.1.1",
25
  "@tailwindcss/forms": "^0.5.10",
26
+ "@types/react": "^18.2.0",
27
+ "@types/react-dom": "^18.2.0",
28
  "@vitejs/plugin-react": "^4.6.0",
29
  "eslint": "^9.30.1",
30
  "eslint-plugin-react-hooks": "^5.2.0",
 
33
  "tailwindcss": "^3.4.17",
34
  "vite": "^7.0.4"
35
  }
36
+ }
frontend/src/components/chat/ChatInputArea.jsx CHANGED
@@ -1,17 +1,47 @@
1
  // frontend/src/components/chat/ChatInputArea.jsx
2
- import React, { useState, useRef } from 'react';
3
- import { ReactMic } from 'react-mic'; // For audio recording
4
- import axios from 'axios'; // For sending audio to backend
 
5
 
6
  const ChatInputArea = ({ onSendMessage, onSendVoiceMessage, isLoading }) => {
7
  const [message, setMessage] = useState('');
8
- const [isRecording, setIsRecording] = useState(false);
9
- const [recordedBlob, setRecordedBlob] = useState(null); // To hold the recorded audio blob
 
10
 
11
  // Correct BASE_URL to point to Nginx's /api endpoint
12
  // Nginx will then proxy /api/transcribe-audio to FastAPI's /transcribe-audio
13
  const BASE_URL = '/api';
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  const handleTextChange = (e) => {
16
  setMessage(e.target.value);
17
  };
@@ -25,29 +55,18 @@ const ChatInputArea = ({ onSendMessage, onSendVoiceMessage, isLoading }) => {
25
  };
26
 
27
  // --- Voice Recording Handlers ---
28
- const startRecording = () => {
29
- if (isLoading) return; // Prevent recording if already busy
30
- setIsRecording(true);
31
- setRecordedBlob(null); // Clear previous recording
32
  console.log("Recording started...");
33
  };
34
 
35
- const stopRecording = () => {
36
- setIsRecording(false);
37
  console.log("Recording stopped.");
38
  };
39
 
40
- const onStop = (recordedBlob) => {
41
- // This callback is triggered when recording stops
42
- console.log('recordedBlob is: ', recordedBlob);
43
- setRecordedBlob(recordedBlob); // Store the blob
44
- // Call the voice message handler from props, which will then send to backend
45
- onSendVoiceMessage(recordedBlob.blob);
46
- };
47
-
48
- // The actual sending to server logic is now moved to ChatInterface's onSendVoiceMessage
49
- // This component just passes the audio blob up.
50
-
51
  return (
52
  <div className="chat-input-area">
53
  <form onSubmit={handleSubmit} className="chat-form">
@@ -67,11 +86,11 @@ const ChatInputArea = ({ onSendMessage, onSendVoiceMessage, isLoading }) => {
67
  <button
68
  type="button"
69
  className={`voice-record-btn ${isRecording ? 'recording' : ''}`}
70
- onMouseDown={startRecording}
71
- onMouseUp={stopRecording}
72
  // For mobile touch events
73
- onTouchStart={startRecording}
74
- onTouchEnd={stopRecording}
75
  disabled={isLoading}
76
  title="Hold to record voice"
77
  >
@@ -87,13 +106,17 @@ const ChatInputArea = ({ onSendMessage, onSendVoiceMessage, isLoading }) => {
87
  </svg>
88
  )}
89
  </button>
90
- <ReactMic
91
- record={isRecording}
92
- className="sound-wave"
93
- onStop={onStop}
94
- strokeColor="#00000000" // Transparent stroke
95
- backgroundColor="#00000000" // Transparent background for wave
96
- mimeType="audio/webm" // Common format for browser recording
 
 
 
 
97
  />
98
  </div>
99
  </form>
 
1
  // frontend/src/components/chat/ChatInputArea.jsx
2
+ import React, { useState, useEffect } from 'react';
3
+ // Import the new library: VoiceVisualizer component and its hook
4
+ import { VoiceVisualizer, useVoiceVisualizer } from 'react-voice-visualizer';
5
+
6
 
7
  const ChatInputArea = ({ onSendMessage, onSendVoiceMessage, isLoading }) => {
8
  const [message, setMessage] = useState('');
9
+ // isRecording state can now be derived from the useVoiceVisualizer hook
10
+ // const [isRecording, setIsRecording] = useState(false); // No longer directly managed here
11
+ // const [recordedBlob, setRecordedBlob] = useState(null); // No longer directly managed here
12
 
13
  // Correct BASE_URL to point to Nginx's /api endpoint
14
  // Nginx will then proxy /api/transcribe-audio to FastAPI's /transcribe-audio
15
  const BASE_URL = '/api';
16
 
17
+ // Initialize the voice visualizer hook
18
+ const {
19
+ startRecording,
20
+ stopRecording,
21
+ recordingBlob, // This will hold the recorded audio blob
22
+ isRecording, // This state is managed by the hook
23
+ // Other properties like playbackState, audioLevel, etc., are available if needed
24
+ } = useVoiceVisualizer({
25
+ // Optional: Configure VoiceVisualizer properties here if desired
26
+ // E.g., fftSize: 1024,
27
+ // On recording end, the blob will be available in 'recordingBlob'
28
+ });
29
+
30
+ // Use useEffect to watch for when recordingBlob becomes available
31
+ // This replaces the onStop prop of ReactMic
32
+ useEffect(() => {
33
+ if (recordingBlob) {
34
+ console.log('Recorded blob is: ', recordingBlob);
35
+ // Pass the blob directly to the parent handler
36
+ onSendVoiceMessage(recordingBlob);
37
+ // You might want to clear recordingBlob here if you only want to send it once
38
+ // useVoiceVisualizer might have a reset function, or you might manage it
39
+ // if you need to re-record without refreshing. For now, we'll let it
40
+ // be handled by the next startRecording clearing it.
41
+ }
42
+ }, [recordingBlob, onSendVoiceMessage]);
43
+
44
+
45
  const handleTextChange = (e) => {
46
  setMessage(e.target.value);
47
  };
 
55
  };
56
 
57
  // --- Voice Recording Handlers ---
58
+ // These now simply call the functions provided by useVoiceVisualizer
59
+ const handleStartRecording = () => {
60
+ if (isLoading) return;
61
+ startRecording(); // Call the hook's startRecording function
62
  console.log("Recording started...");
63
  };
64
 
65
+ const handleStopRecording = () => {
66
+ stopRecording(); // Call the hook's stopRecording function
67
  console.log("Recording stopped.");
68
  };
69
 
 
 
 
 
 
 
 
 
 
 
 
70
  return (
71
  <div className="chat-input-area">
72
  <form onSubmit={handleSubmit} className="chat-form">
 
86
  <button
87
  type="button"
88
  className={`voice-record-btn ${isRecording ? 'recording' : ''}`}
89
+ onMouseDown={handleStartRecording}
90
+ onMouseUp={handleStopRecording}
91
  // For mobile touch events
92
+ onTouchStart={handleStartRecording}
93
+ onTouchEnd={handleStopRecording}
94
  disabled={isLoading}
95
  title="Hold to record voice"
96
  >
 
106
  </svg>
107
  )}
108
  </button>
109
+ {/* Render the VoiceVisualizer component */}
110
+ <VoiceVisualizer
111
+ ref={null} // VoiceVisualizer uses ref for direct DOM interaction, but not always needed for basic use.
112
+ className="sound-wave" // Apply your existing CSS class
113
+ mainBarColor="#4CAF50" // Example color
114
+ secondaryBarColor="#81C784" // Example color
115
+ // If you want it to be transparent like ReactMic was, you'd need to adjust your CSS
116
+ // or see if the component offers specific props for background/stroke.
117
+ // For now, these colors will show the visualization.
118
+ // The `hook` prop passes the state from `useVoiceVisualizer` to the component
119
+ hook={useVoiceVisualizer()} // Pass the hook directly to the component
120
  />
121
  </div>
122
  </form>