Spaces:
Running
Running
Ryan Christian D. Deniega Claude Sonnet 4.6 commited on
Commit ·
a0f748d
1
Parent(s): 28ffef1
refactor: remove Firebase dependency — use REST API for history
Browse filesFirestore was only used in HistoryPage for real-time updates.
Replaced with simple 30s polling via existing REST /history endpoint.
Removes firebase SDK (-256KB bundle), firebase.js, and all Firestore
references. Stack is now just Vercel (frontend) + HuggingFace (backend).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- frontend/package-lock.json +6 -1000
- frontend/package.json +0 -1
- frontend/src/firebase.js +0 -40
- frontend/src/pages/HistoryPage.jsx +8 -50
frontend/package-lock.json
CHANGED
|
@@ -10,7 +10,6 @@
|
|
| 10 |
"dependencies": {
|
| 11 |
"@tailwindcss/vite": "^4.2.1",
|
| 12 |
"clsx": "^2.1.1",
|
| 13 |
-
"firebase": "^12.9.0",
|
| 14 |
"lucide-react": "^0.575.0",
|
| 15 |
"react": "^19.2.0",
|
| 16 |
"react-dom": "^19.2.0",
|
|
@@ -886,645 +885,6 @@
|
|
| 886 |
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 887 |
}
|
| 888 |
},
|
| 889 |
-
"node_modules/@firebase/ai": {
|
| 890 |
-
"version": "2.8.0",
|
| 891 |
-
"resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-2.8.0.tgz",
|
| 892 |
-
"integrity": "sha512-grWYGFPsSo+pt+6CYeKR0kWnUfoLLS3xgWPvNrhAS5EPxl6xWq7+HjDZqX24yLneETyl45AVgDsTbVgxeWeRfg==",
|
| 893 |
-
"license": "Apache-2.0",
|
| 894 |
-
"dependencies": {
|
| 895 |
-
"@firebase/app-check-interop-types": "0.3.3",
|
| 896 |
-
"@firebase/component": "0.7.0",
|
| 897 |
-
"@firebase/logger": "0.5.0",
|
| 898 |
-
"@firebase/util": "1.13.0",
|
| 899 |
-
"tslib": "^2.1.0"
|
| 900 |
-
},
|
| 901 |
-
"engines": {
|
| 902 |
-
"node": ">=20.0.0"
|
| 903 |
-
},
|
| 904 |
-
"peerDependencies": {
|
| 905 |
-
"@firebase/app": "0.x",
|
| 906 |
-
"@firebase/app-types": "0.x"
|
| 907 |
-
}
|
| 908 |
-
},
|
| 909 |
-
"node_modules/@firebase/analytics": {
|
| 910 |
-
"version": "0.10.19",
|
| 911 |
-
"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.19.tgz",
|
| 912 |
-
"integrity": "sha512-3wU676fh60gaiVYQEEXsbGS4HbF2XsiBphyvvqDbtC1U4/dO4coshbYktcCHq+HFaGIK07iHOh4pME0hEq1fcg==",
|
| 913 |
-
"license": "Apache-2.0",
|
| 914 |
-
"dependencies": {
|
| 915 |
-
"@firebase/component": "0.7.0",
|
| 916 |
-
"@firebase/installations": "0.6.19",
|
| 917 |
-
"@firebase/logger": "0.5.0",
|
| 918 |
-
"@firebase/util": "1.13.0",
|
| 919 |
-
"tslib": "^2.1.0"
|
| 920 |
-
},
|
| 921 |
-
"peerDependencies": {
|
| 922 |
-
"@firebase/app": "0.x"
|
| 923 |
-
}
|
| 924 |
-
},
|
| 925 |
-
"node_modules/@firebase/analytics-compat": {
|
| 926 |
-
"version": "0.2.25",
|
| 927 |
-
"resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.25.tgz",
|
| 928 |
-
"integrity": "sha512-fdzoaG0BEKbqksRDhmf4JoyZf16Wosrl0Y7tbZtJyVDOOwziE0vrFjmZuTdviL0yhak+Nco6rMsUUbkbD+qb6Q==",
|
| 929 |
-
"license": "Apache-2.0",
|
| 930 |
-
"dependencies": {
|
| 931 |
-
"@firebase/analytics": "0.10.19",
|
| 932 |
-
"@firebase/analytics-types": "0.8.3",
|
| 933 |
-
"@firebase/component": "0.7.0",
|
| 934 |
-
"@firebase/util": "1.13.0",
|
| 935 |
-
"tslib": "^2.1.0"
|
| 936 |
-
},
|
| 937 |
-
"peerDependencies": {
|
| 938 |
-
"@firebase/app-compat": "0.x"
|
| 939 |
-
}
|
| 940 |
-
},
|
| 941 |
-
"node_modules/@firebase/analytics-types": {
|
| 942 |
-
"version": "0.8.3",
|
| 943 |
-
"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.3.tgz",
|
| 944 |
-
"integrity": "sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==",
|
| 945 |
-
"license": "Apache-2.0"
|
| 946 |
-
},
|
| 947 |
-
"node_modules/@firebase/app": {
|
| 948 |
-
"version": "0.14.8",
|
| 949 |
-
"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.8.tgz",
|
| 950 |
-
"integrity": "sha512-WiE9uCGRLUnShdjb9iP20sA3ToWrBbNXr14/N5mow7Nls9dmKgfGaGX5cynLvrltxq2OrDLh1VDNaUgsnS/k/g==",
|
| 951 |
-
"license": "Apache-2.0",
|
| 952 |
-
"dependencies": {
|
| 953 |
-
"@firebase/component": "0.7.0",
|
| 954 |
-
"@firebase/logger": "0.5.0",
|
| 955 |
-
"@firebase/util": "1.13.0",
|
| 956 |
-
"idb": "7.1.1",
|
| 957 |
-
"tslib": "^2.1.0"
|
| 958 |
-
},
|
| 959 |
-
"engines": {
|
| 960 |
-
"node": ">=20.0.0"
|
| 961 |
-
}
|
| 962 |
-
},
|
| 963 |
-
"node_modules/@firebase/app-check": {
|
| 964 |
-
"version": "0.11.0",
|
| 965 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.11.0.tgz",
|
| 966 |
-
"integrity": "sha512-XAvALQayUMBJo58U/rxW02IhsesaxxfWVmVkauZvGEz3vOAjMEQnzFlyblqkc2iAaO82uJ2ZVyZv9XzPfxjJ6w==",
|
| 967 |
-
"license": "Apache-2.0",
|
| 968 |
-
"dependencies": {
|
| 969 |
-
"@firebase/component": "0.7.0",
|
| 970 |
-
"@firebase/logger": "0.5.0",
|
| 971 |
-
"@firebase/util": "1.13.0",
|
| 972 |
-
"tslib": "^2.1.0"
|
| 973 |
-
},
|
| 974 |
-
"engines": {
|
| 975 |
-
"node": ">=20.0.0"
|
| 976 |
-
},
|
| 977 |
-
"peerDependencies": {
|
| 978 |
-
"@firebase/app": "0.x"
|
| 979 |
-
}
|
| 980 |
-
},
|
| 981 |
-
"node_modules/@firebase/app-check-compat": {
|
| 982 |
-
"version": "0.4.0",
|
| 983 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.4.0.tgz",
|
| 984 |
-
"integrity": "sha512-UfK2Q8RJNjYM/8MFORltZRG9lJj11k0nW84rrffiKvcJxLf1jf6IEjCIkCamykHE73C6BwqhVfhIBs69GXQV0g==",
|
| 985 |
-
"license": "Apache-2.0",
|
| 986 |
-
"dependencies": {
|
| 987 |
-
"@firebase/app-check": "0.11.0",
|
| 988 |
-
"@firebase/app-check-types": "0.5.3",
|
| 989 |
-
"@firebase/component": "0.7.0",
|
| 990 |
-
"@firebase/logger": "0.5.0",
|
| 991 |
-
"@firebase/util": "1.13.0",
|
| 992 |
-
"tslib": "^2.1.0"
|
| 993 |
-
},
|
| 994 |
-
"engines": {
|
| 995 |
-
"node": ">=20.0.0"
|
| 996 |
-
},
|
| 997 |
-
"peerDependencies": {
|
| 998 |
-
"@firebase/app-compat": "0.x"
|
| 999 |
-
}
|
| 1000 |
-
},
|
| 1001 |
-
"node_modules/@firebase/app-check-interop-types": {
|
| 1002 |
-
"version": "0.3.3",
|
| 1003 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz",
|
| 1004 |
-
"integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==",
|
| 1005 |
-
"license": "Apache-2.0"
|
| 1006 |
-
},
|
| 1007 |
-
"node_modules/@firebase/app-check-types": {
|
| 1008 |
-
"version": "0.5.3",
|
| 1009 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.3.tgz",
|
| 1010 |
-
"integrity": "sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==",
|
| 1011 |
-
"license": "Apache-2.0"
|
| 1012 |
-
},
|
| 1013 |
-
"node_modules/@firebase/app-compat": {
|
| 1014 |
-
"version": "0.5.8",
|
| 1015 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.5.8.tgz",
|
| 1016 |
-
"integrity": "sha512-4De6SUZ36zozl9kh5rZSxKWULpgty27rMzZ6x+xkoo7+NWyhWyFdsdvhFsWhTw/9GGj0wXIcbTjwHYCUIUuHyg==",
|
| 1017 |
-
"license": "Apache-2.0",
|
| 1018 |
-
"dependencies": {
|
| 1019 |
-
"@firebase/app": "0.14.8",
|
| 1020 |
-
"@firebase/component": "0.7.0",
|
| 1021 |
-
"@firebase/logger": "0.5.0",
|
| 1022 |
-
"@firebase/util": "1.13.0",
|
| 1023 |
-
"tslib": "^2.1.0"
|
| 1024 |
-
},
|
| 1025 |
-
"engines": {
|
| 1026 |
-
"node": ">=20.0.0"
|
| 1027 |
-
}
|
| 1028 |
-
},
|
| 1029 |
-
"node_modules/@firebase/app-types": {
|
| 1030 |
-
"version": "0.9.3",
|
| 1031 |
-
"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz",
|
| 1032 |
-
"integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==",
|
| 1033 |
-
"license": "Apache-2.0"
|
| 1034 |
-
},
|
| 1035 |
-
"node_modules/@firebase/auth": {
|
| 1036 |
-
"version": "1.12.0",
|
| 1037 |
-
"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.12.0.tgz",
|
| 1038 |
-
"integrity": "sha512-zkvLpsrxynWHk07qGrUDfCSqKf4AvfZGEqJ7mVCtYGjNNDbGE71k0Yn84rg8QEZu4hQw1BC0qDEHzpNVBcSVmA==",
|
| 1039 |
-
"license": "Apache-2.0",
|
| 1040 |
-
"dependencies": {
|
| 1041 |
-
"@firebase/component": "0.7.0",
|
| 1042 |
-
"@firebase/logger": "0.5.0",
|
| 1043 |
-
"@firebase/util": "1.13.0",
|
| 1044 |
-
"tslib": "^2.1.0"
|
| 1045 |
-
},
|
| 1046 |
-
"engines": {
|
| 1047 |
-
"node": ">=20.0.0"
|
| 1048 |
-
},
|
| 1049 |
-
"peerDependencies": {
|
| 1050 |
-
"@firebase/app": "0.x",
|
| 1051 |
-
"@react-native-async-storage/async-storage": "^2.2.0"
|
| 1052 |
-
},
|
| 1053 |
-
"peerDependenciesMeta": {
|
| 1054 |
-
"@react-native-async-storage/async-storage": {
|
| 1055 |
-
"optional": true
|
| 1056 |
-
}
|
| 1057 |
-
}
|
| 1058 |
-
},
|
| 1059 |
-
"node_modules/@firebase/auth-compat": {
|
| 1060 |
-
"version": "0.6.2",
|
| 1061 |
-
"resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.6.2.tgz",
|
| 1062 |
-
"integrity": "sha512-8UhCzF6pav9bw/eXA8Zy1QAKssPRYEYXaWagie1ewLTwHkXv6bKp/j6/IwzSYQP67sy/BMFXIFaCCsoXzFLr7A==",
|
| 1063 |
-
"license": "Apache-2.0",
|
| 1064 |
-
"dependencies": {
|
| 1065 |
-
"@firebase/auth": "1.12.0",
|
| 1066 |
-
"@firebase/auth-types": "0.13.0",
|
| 1067 |
-
"@firebase/component": "0.7.0",
|
| 1068 |
-
"@firebase/util": "1.13.0",
|
| 1069 |
-
"tslib": "^2.1.0"
|
| 1070 |
-
},
|
| 1071 |
-
"engines": {
|
| 1072 |
-
"node": ">=20.0.0"
|
| 1073 |
-
},
|
| 1074 |
-
"peerDependencies": {
|
| 1075 |
-
"@firebase/app-compat": "0.x"
|
| 1076 |
-
}
|
| 1077 |
-
},
|
| 1078 |
-
"node_modules/@firebase/auth-interop-types": {
|
| 1079 |
-
"version": "0.2.4",
|
| 1080 |
-
"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz",
|
| 1081 |
-
"integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==",
|
| 1082 |
-
"license": "Apache-2.0"
|
| 1083 |
-
},
|
| 1084 |
-
"node_modules/@firebase/auth-types": {
|
| 1085 |
-
"version": "0.13.0",
|
| 1086 |
-
"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.13.0.tgz",
|
| 1087 |
-
"integrity": "sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==",
|
| 1088 |
-
"license": "Apache-2.0",
|
| 1089 |
-
"peerDependencies": {
|
| 1090 |
-
"@firebase/app-types": "0.x",
|
| 1091 |
-
"@firebase/util": "1.x"
|
| 1092 |
-
}
|
| 1093 |
-
},
|
| 1094 |
-
"node_modules/@firebase/component": {
|
| 1095 |
-
"version": "0.7.0",
|
| 1096 |
-
"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.0.tgz",
|
| 1097 |
-
"integrity": "sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==",
|
| 1098 |
-
"license": "Apache-2.0",
|
| 1099 |
-
"dependencies": {
|
| 1100 |
-
"@firebase/util": "1.13.0",
|
| 1101 |
-
"tslib": "^2.1.0"
|
| 1102 |
-
},
|
| 1103 |
-
"engines": {
|
| 1104 |
-
"node": ">=20.0.0"
|
| 1105 |
-
}
|
| 1106 |
-
},
|
| 1107 |
-
"node_modules/@firebase/data-connect": {
|
| 1108 |
-
"version": "0.3.12",
|
| 1109 |
-
"resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.12.tgz",
|
| 1110 |
-
"integrity": "sha512-baPddcoNLj/+vYo+HSJidJUdr5W4OkhT109c5qhR8T1dJoZcyJpkv/dFpYlw/VJ3dV66vI8GHQFrmAZw/xUS4g==",
|
| 1111 |
-
"license": "Apache-2.0",
|
| 1112 |
-
"dependencies": {
|
| 1113 |
-
"@firebase/auth-interop-types": "0.2.4",
|
| 1114 |
-
"@firebase/component": "0.7.0",
|
| 1115 |
-
"@firebase/logger": "0.5.0",
|
| 1116 |
-
"@firebase/util": "1.13.0",
|
| 1117 |
-
"tslib": "^2.1.0"
|
| 1118 |
-
},
|
| 1119 |
-
"peerDependencies": {
|
| 1120 |
-
"@firebase/app": "0.x"
|
| 1121 |
-
}
|
| 1122 |
-
},
|
| 1123 |
-
"node_modules/@firebase/database": {
|
| 1124 |
-
"version": "1.1.0",
|
| 1125 |
-
"resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.0.tgz",
|
| 1126 |
-
"integrity": "sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==",
|
| 1127 |
-
"license": "Apache-2.0",
|
| 1128 |
-
"dependencies": {
|
| 1129 |
-
"@firebase/app-check-interop-types": "0.3.3",
|
| 1130 |
-
"@firebase/auth-interop-types": "0.2.4",
|
| 1131 |
-
"@firebase/component": "0.7.0",
|
| 1132 |
-
"@firebase/logger": "0.5.0",
|
| 1133 |
-
"@firebase/util": "1.13.0",
|
| 1134 |
-
"faye-websocket": "0.11.4",
|
| 1135 |
-
"tslib": "^2.1.0"
|
| 1136 |
-
},
|
| 1137 |
-
"engines": {
|
| 1138 |
-
"node": ">=20.0.0"
|
| 1139 |
-
}
|
| 1140 |
-
},
|
| 1141 |
-
"node_modules/@firebase/database-compat": {
|
| 1142 |
-
"version": "2.1.0",
|
| 1143 |
-
"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.0.tgz",
|
| 1144 |
-
"integrity": "sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==",
|
| 1145 |
-
"license": "Apache-2.0",
|
| 1146 |
-
"dependencies": {
|
| 1147 |
-
"@firebase/component": "0.7.0",
|
| 1148 |
-
"@firebase/database": "1.1.0",
|
| 1149 |
-
"@firebase/database-types": "1.0.16",
|
| 1150 |
-
"@firebase/logger": "0.5.0",
|
| 1151 |
-
"@firebase/util": "1.13.0",
|
| 1152 |
-
"tslib": "^2.1.0"
|
| 1153 |
-
},
|
| 1154 |
-
"engines": {
|
| 1155 |
-
"node": ">=20.0.0"
|
| 1156 |
-
}
|
| 1157 |
-
},
|
| 1158 |
-
"node_modules/@firebase/database-types": {
|
| 1159 |
-
"version": "1.0.16",
|
| 1160 |
-
"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz",
|
| 1161 |
-
"integrity": "sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==",
|
| 1162 |
-
"license": "Apache-2.0",
|
| 1163 |
-
"dependencies": {
|
| 1164 |
-
"@firebase/app-types": "0.9.3",
|
| 1165 |
-
"@firebase/util": "1.13.0"
|
| 1166 |
-
}
|
| 1167 |
-
},
|
| 1168 |
-
"node_modules/@firebase/firestore": {
|
| 1169 |
-
"version": "4.11.0",
|
| 1170 |
-
"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.11.0.tgz",
|
| 1171 |
-
"integrity": "sha512-Zb88s8rssBd0J2Tt+NUXMPt2sf+Dq7meatKiJf5t9oto1kZ8w9gK59Koe1uPVbaKfdgBp++N/z0I4G/HamyEhg==",
|
| 1172 |
-
"license": "Apache-2.0",
|
| 1173 |
-
"dependencies": {
|
| 1174 |
-
"@firebase/component": "0.7.0",
|
| 1175 |
-
"@firebase/logger": "0.5.0",
|
| 1176 |
-
"@firebase/util": "1.13.0",
|
| 1177 |
-
"@firebase/webchannel-wrapper": "1.0.5",
|
| 1178 |
-
"@grpc/grpc-js": "~1.9.0",
|
| 1179 |
-
"@grpc/proto-loader": "^0.7.8",
|
| 1180 |
-
"tslib": "^2.1.0"
|
| 1181 |
-
},
|
| 1182 |
-
"engines": {
|
| 1183 |
-
"node": ">=20.0.0"
|
| 1184 |
-
},
|
| 1185 |
-
"peerDependencies": {
|
| 1186 |
-
"@firebase/app": "0.x"
|
| 1187 |
-
}
|
| 1188 |
-
},
|
| 1189 |
-
"node_modules/@firebase/firestore-compat": {
|
| 1190 |
-
"version": "0.4.5",
|
| 1191 |
-
"resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.4.5.tgz",
|
| 1192 |
-
"integrity": "sha512-yVX1CkVvqBI4qbA56uZo42xFA4TNU0ICQ+9AFDvYq9U9Xu6iAx9lFDAk/tN+NGereQQXXCSnpISwc/oxsQqPLA==",
|
| 1193 |
-
"license": "Apache-2.0",
|
| 1194 |
-
"dependencies": {
|
| 1195 |
-
"@firebase/component": "0.7.0",
|
| 1196 |
-
"@firebase/firestore": "4.11.0",
|
| 1197 |
-
"@firebase/firestore-types": "3.0.3",
|
| 1198 |
-
"@firebase/util": "1.13.0",
|
| 1199 |
-
"tslib": "^2.1.0"
|
| 1200 |
-
},
|
| 1201 |
-
"engines": {
|
| 1202 |
-
"node": ">=20.0.0"
|
| 1203 |
-
},
|
| 1204 |
-
"peerDependencies": {
|
| 1205 |
-
"@firebase/app-compat": "0.x"
|
| 1206 |
-
}
|
| 1207 |
-
},
|
| 1208 |
-
"node_modules/@firebase/firestore-types": {
|
| 1209 |
-
"version": "3.0.3",
|
| 1210 |
-
"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.3.tgz",
|
| 1211 |
-
"integrity": "sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==",
|
| 1212 |
-
"license": "Apache-2.0",
|
| 1213 |
-
"peerDependencies": {
|
| 1214 |
-
"@firebase/app-types": "0.x",
|
| 1215 |
-
"@firebase/util": "1.x"
|
| 1216 |
-
}
|
| 1217 |
-
},
|
| 1218 |
-
"node_modules/@firebase/functions": {
|
| 1219 |
-
"version": "0.13.1",
|
| 1220 |
-
"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.13.1.tgz",
|
| 1221 |
-
"integrity": "sha512-sUeWSb0rw5T+6wuV2o9XNmh9yHxjFI9zVGFnjFi+n7drTEWpl7ZTz1nROgGrSu472r+LAaj+2YaSicD4R8wfbw==",
|
| 1222 |
-
"license": "Apache-2.0",
|
| 1223 |
-
"dependencies": {
|
| 1224 |
-
"@firebase/app-check-interop-types": "0.3.3",
|
| 1225 |
-
"@firebase/auth-interop-types": "0.2.4",
|
| 1226 |
-
"@firebase/component": "0.7.0",
|
| 1227 |
-
"@firebase/messaging-interop-types": "0.2.3",
|
| 1228 |
-
"@firebase/util": "1.13.0",
|
| 1229 |
-
"tslib": "^2.1.0"
|
| 1230 |
-
},
|
| 1231 |
-
"engines": {
|
| 1232 |
-
"node": ">=20.0.0"
|
| 1233 |
-
},
|
| 1234 |
-
"peerDependencies": {
|
| 1235 |
-
"@firebase/app": "0.x"
|
| 1236 |
-
}
|
| 1237 |
-
},
|
| 1238 |
-
"node_modules/@firebase/functions-compat": {
|
| 1239 |
-
"version": "0.4.1",
|
| 1240 |
-
"resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.4.1.tgz",
|
| 1241 |
-
"integrity": "sha512-AxxUBXKuPrWaVNQ8o1cG1GaCAtXT8a0eaTDfqgS5VsRYLAR0ALcfqDLwo/QyijZj1w8Qf8n3Qrfy/+Im245hOQ==",
|
| 1242 |
-
"license": "Apache-2.0",
|
| 1243 |
-
"dependencies": {
|
| 1244 |
-
"@firebase/component": "0.7.0",
|
| 1245 |
-
"@firebase/functions": "0.13.1",
|
| 1246 |
-
"@firebase/functions-types": "0.6.3",
|
| 1247 |
-
"@firebase/util": "1.13.0",
|
| 1248 |
-
"tslib": "^2.1.0"
|
| 1249 |
-
},
|
| 1250 |
-
"engines": {
|
| 1251 |
-
"node": ">=20.0.0"
|
| 1252 |
-
},
|
| 1253 |
-
"peerDependencies": {
|
| 1254 |
-
"@firebase/app-compat": "0.x"
|
| 1255 |
-
}
|
| 1256 |
-
},
|
| 1257 |
-
"node_modules/@firebase/functions-types": {
|
| 1258 |
-
"version": "0.6.3",
|
| 1259 |
-
"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.3.tgz",
|
| 1260 |
-
"integrity": "sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==",
|
| 1261 |
-
"license": "Apache-2.0"
|
| 1262 |
-
},
|
| 1263 |
-
"node_modules/@firebase/installations": {
|
| 1264 |
-
"version": "0.6.19",
|
| 1265 |
-
"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.19.tgz",
|
| 1266 |
-
"integrity": "sha512-nGDmiwKLI1lerhwfwSHvMR9RZuIH5/8E3kgUWnVRqqL7kGVSktjLTWEMva7oh5yxQ3zXfIlIwJwMcaM5bK5j8Q==",
|
| 1267 |
-
"license": "Apache-2.0",
|
| 1268 |
-
"dependencies": {
|
| 1269 |
-
"@firebase/component": "0.7.0",
|
| 1270 |
-
"@firebase/util": "1.13.0",
|
| 1271 |
-
"idb": "7.1.1",
|
| 1272 |
-
"tslib": "^2.1.0"
|
| 1273 |
-
},
|
| 1274 |
-
"peerDependencies": {
|
| 1275 |
-
"@firebase/app": "0.x"
|
| 1276 |
-
}
|
| 1277 |
-
},
|
| 1278 |
-
"node_modules/@firebase/installations-compat": {
|
| 1279 |
-
"version": "0.2.19",
|
| 1280 |
-
"resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.19.tgz",
|
| 1281 |
-
"integrity": "sha512-khfzIY3EI5LePePo7vT19/VEIH1E3iYsHknI/6ek9T8QCozAZshWT9CjlwOzZrKvTHMeNcbpo/VSOSIWDSjWdQ==",
|
| 1282 |
-
"license": "Apache-2.0",
|
| 1283 |
-
"dependencies": {
|
| 1284 |
-
"@firebase/component": "0.7.0",
|
| 1285 |
-
"@firebase/installations": "0.6.19",
|
| 1286 |
-
"@firebase/installations-types": "0.5.3",
|
| 1287 |
-
"@firebase/util": "1.13.0",
|
| 1288 |
-
"tslib": "^2.1.0"
|
| 1289 |
-
},
|
| 1290 |
-
"peerDependencies": {
|
| 1291 |
-
"@firebase/app-compat": "0.x"
|
| 1292 |
-
}
|
| 1293 |
-
},
|
| 1294 |
-
"node_modules/@firebase/installations-types": {
|
| 1295 |
-
"version": "0.5.3",
|
| 1296 |
-
"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.3.tgz",
|
| 1297 |
-
"integrity": "sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==",
|
| 1298 |
-
"license": "Apache-2.0",
|
| 1299 |
-
"peerDependencies": {
|
| 1300 |
-
"@firebase/app-types": "0.x"
|
| 1301 |
-
}
|
| 1302 |
-
},
|
| 1303 |
-
"node_modules/@firebase/logger": {
|
| 1304 |
-
"version": "0.5.0",
|
| 1305 |
-
"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.0.tgz",
|
| 1306 |
-
"integrity": "sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==",
|
| 1307 |
-
"license": "Apache-2.0",
|
| 1308 |
-
"dependencies": {
|
| 1309 |
-
"tslib": "^2.1.0"
|
| 1310 |
-
},
|
| 1311 |
-
"engines": {
|
| 1312 |
-
"node": ">=20.0.0"
|
| 1313 |
-
}
|
| 1314 |
-
},
|
| 1315 |
-
"node_modules/@firebase/messaging": {
|
| 1316 |
-
"version": "0.12.23",
|
| 1317 |
-
"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.23.tgz",
|
| 1318 |
-
"integrity": "sha512-cfuzv47XxqW4HH/OcR5rM+AlQd1xL/VhuaeW/wzMW1LFrsFcTn0GND/hak1vkQc2th8UisBcrkVcQAnOnKwYxg==",
|
| 1319 |
-
"license": "Apache-2.0",
|
| 1320 |
-
"dependencies": {
|
| 1321 |
-
"@firebase/component": "0.7.0",
|
| 1322 |
-
"@firebase/installations": "0.6.19",
|
| 1323 |
-
"@firebase/messaging-interop-types": "0.2.3",
|
| 1324 |
-
"@firebase/util": "1.13.0",
|
| 1325 |
-
"idb": "7.1.1",
|
| 1326 |
-
"tslib": "^2.1.0"
|
| 1327 |
-
},
|
| 1328 |
-
"peerDependencies": {
|
| 1329 |
-
"@firebase/app": "0.x"
|
| 1330 |
-
}
|
| 1331 |
-
},
|
| 1332 |
-
"node_modules/@firebase/messaging-compat": {
|
| 1333 |
-
"version": "0.2.23",
|
| 1334 |
-
"resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.23.tgz",
|
| 1335 |
-
"integrity": "sha512-SN857v/kBUvlQ9X/UjAqBoQ2FEaL1ZozpnmL1ByTe57iXkmnVVFm9KqAsTfmf+OEwWI4kJJe9NObtN/w22lUgg==",
|
| 1336 |
-
"license": "Apache-2.0",
|
| 1337 |
-
"dependencies": {
|
| 1338 |
-
"@firebase/component": "0.7.0",
|
| 1339 |
-
"@firebase/messaging": "0.12.23",
|
| 1340 |
-
"@firebase/util": "1.13.0",
|
| 1341 |
-
"tslib": "^2.1.0"
|
| 1342 |
-
},
|
| 1343 |
-
"peerDependencies": {
|
| 1344 |
-
"@firebase/app-compat": "0.x"
|
| 1345 |
-
}
|
| 1346 |
-
},
|
| 1347 |
-
"node_modules/@firebase/messaging-interop-types": {
|
| 1348 |
-
"version": "0.2.3",
|
| 1349 |
-
"resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz",
|
| 1350 |
-
"integrity": "sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==",
|
| 1351 |
-
"license": "Apache-2.0"
|
| 1352 |
-
},
|
| 1353 |
-
"node_modules/@firebase/performance": {
|
| 1354 |
-
"version": "0.7.9",
|
| 1355 |
-
"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.9.tgz",
|
| 1356 |
-
"integrity": "sha512-UzybENl1EdM2I1sjYm74xGt/0JzRnU/0VmfMAKo2LSpHJzaj77FCLZXmYQ4oOuE+Pxtt8Wy2BVJEENiZkaZAzQ==",
|
| 1357 |
-
"license": "Apache-2.0",
|
| 1358 |
-
"dependencies": {
|
| 1359 |
-
"@firebase/component": "0.7.0",
|
| 1360 |
-
"@firebase/installations": "0.6.19",
|
| 1361 |
-
"@firebase/logger": "0.5.0",
|
| 1362 |
-
"@firebase/util": "1.13.0",
|
| 1363 |
-
"tslib": "^2.1.0",
|
| 1364 |
-
"web-vitals": "^4.2.4"
|
| 1365 |
-
},
|
| 1366 |
-
"peerDependencies": {
|
| 1367 |
-
"@firebase/app": "0.x"
|
| 1368 |
-
}
|
| 1369 |
-
},
|
| 1370 |
-
"node_modules/@firebase/performance-compat": {
|
| 1371 |
-
"version": "0.2.22",
|
| 1372 |
-
"resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.22.tgz",
|
| 1373 |
-
"integrity": "sha512-xLKxaSAl/FVi10wDX/CHIYEUP13jXUjinL+UaNXT9ByIvxII5Ne5150mx6IgM8G6Q3V+sPiw9C8/kygkyHUVxg==",
|
| 1374 |
-
"license": "Apache-2.0",
|
| 1375 |
-
"dependencies": {
|
| 1376 |
-
"@firebase/component": "0.7.0",
|
| 1377 |
-
"@firebase/logger": "0.5.0",
|
| 1378 |
-
"@firebase/performance": "0.7.9",
|
| 1379 |
-
"@firebase/performance-types": "0.2.3",
|
| 1380 |
-
"@firebase/util": "1.13.0",
|
| 1381 |
-
"tslib": "^2.1.0"
|
| 1382 |
-
},
|
| 1383 |
-
"peerDependencies": {
|
| 1384 |
-
"@firebase/app-compat": "0.x"
|
| 1385 |
-
}
|
| 1386 |
-
},
|
| 1387 |
-
"node_modules/@firebase/performance-types": {
|
| 1388 |
-
"version": "0.2.3",
|
| 1389 |
-
"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.3.tgz",
|
| 1390 |
-
"integrity": "sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==",
|
| 1391 |
-
"license": "Apache-2.0"
|
| 1392 |
-
},
|
| 1393 |
-
"node_modules/@firebase/remote-config": {
|
| 1394 |
-
"version": "0.8.0",
|
| 1395 |
-
"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.8.0.tgz",
|
| 1396 |
-
"integrity": "sha512-sJz7C2VACeE257Z/3kY9Ap2WXbFsgsDLfaGfZmmToKAK39ipXxFan+vzB9CSbF6mP7bzjyzEnqPcMXhAnYE6fQ==",
|
| 1397 |
-
"license": "Apache-2.0",
|
| 1398 |
-
"dependencies": {
|
| 1399 |
-
"@firebase/component": "0.7.0",
|
| 1400 |
-
"@firebase/installations": "0.6.19",
|
| 1401 |
-
"@firebase/logger": "0.5.0",
|
| 1402 |
-
"@firebase/util": "1.13.0",
|
| 1403 |
-
"tslib": "^2.1.0"
|
| 1404 |
-
},
|
| 1405 |
-
"peerDependencies": {
|
| 1406 |
-
"@firebase/app": "0.x"
|
| 1407 |
-
}
|
| 1408 |
-
},
|
| 1409 |
-
"node_modules/@firebase/remote-config-compat": {
|
| 1410 |
-
"version": "0.2.21",
|
| 1411 |
-
"resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.21.tgz",
|
| 1412 |
-
"integrity": "sha512-9+lm0eUycxbu8GO25JfJe4s6R2xlDqlVt0CR6CvN9E6B4AFArEV4qfLoDVRgIEB7nHKwvH2nYRocPWfmjRQTnw==",
|
| 1413 |
-
"license": "Apache-2.0",
|
| 1414 |
-
"dependencies": {
|
| 1415 |
-
"@firebase/component": "0.7.0",
|
| 1416 |
-
"@firebase/logger": "0.5.0",
|
| 1417 |
-
"@firebase/remote-config": "0.8.0",
|
| 1418 |
-
"@firebase/remote-config-types": "0.5.0",
|
| 1419 |
-
"@firebase/util": "1.13.0",
|
| 1420 |
-
"tslib": "^2.1.0"
|
| 1421 |
-
},
|
| 1422 |
-
"peerDependencies": {
|
| 1423 |
-
"@firebase/app-compat": "0.x"
|
| 1424 |
-
}
|
| 1425 |
-
},
|
| 1426 |
-
"node_modules/@firebase/remote-config-types": {
|
| 1427 |
-
"version": "0.5.0",
|
| 1428 |
-
"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.5.0.tgz",
|
| 1429 |
-
"integrity": "sha512-vI3bqLoF14L/GchtgayMiFpZJF+Ao3uR8WCde0XpYNkSokDpAKca2DxvcfeZv7lZUqkUwQPL2wD83d3vQ4vvrg==",
|
| 1430 |
-
"license": "Apache-2.0"
|
| 1431 |
-
},
|
| 1432 |
-
"node_modules/@firebase/storage": {
|
| 1433 |
-
"version": "0.14.0",
|
| 1434 |
-
"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.14.0.tgz",
|
| 1435 |
-
"integrity": "sha512-xWWbb15o6/pWEw8H01UQ1dC5U3rf8QTAzOChYyCpafV6Xki7KVp3Yaw2nSklUwHEziSWE9KoZJS7iYeyqWnYFA==",
|
| 1436 |
-
"license": "Apache-2.0",
|
| 1437 |
-
"dependencies": {
|
| 1438 |
-
"@firebase/component": "0.7.0",
|
| 1439 |
-
"@firebase/util": "1.13.0",
|
| 1440 |
-
"tslib": "^2.1.0"
|
| 1441 |
-
},
|
| 1442 |
-
"engines": {
|
| 1443 |
-
"node": ">=20.0.0"
|
| 1444 |
-
},
|
| 1445 |
-
"peerDependencies": {
|
| 1446 |
-
"@firebase/app": "0.x"
|
| 1447 |
-
}
|
| 1448 |
-
},
|
| 1449 |
-
"node_modules/@firebase/storage-compat": {
|
| 1450 |
-
"version": "0.4.0",
|
| 1451 |
-
"resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.4.0.tgz",
|
| 1452 |
-
"integrity": "sha512-vDzhgGczr1OfcOy285YAPur5pWDEvD67w4thyeCUh6Ys0izN9fNYtA1MJERmNBfqjqu0lg0FM5GLbw0Il21M+g==",
|
| 1453 |
-
"license": "Apache-2.0",
|
| 1454 |
-
"dependencies": {
|
| 1455 |
-
"@firebase/component": "0.7.0",
|
| 1456 |
-
"@firebase/storage": "0.14.0",
|
| 1457 |
-
"@firebase/storage-types": "0.8.3",
|
| 1458 |
-
"@firebase/util": "1.13.0",
|
| 1459 |
-
"tslib": "^2.1.0"
|
| 1460 |
-
},
|
| 1461 |
-
"engines": {
|
| 1462 |
-
"node": ">=20.0.0"
|
| 1463 |
-
},
|
| 1464 |
-
"peerDependencies": {
|
| 1465 |
-
"@firebase/app-compat": "0.x"
|
| 1466 |
-
}
|
| 1467 |
-
},
|
| 1468 |
-
"node_modules/@firebase/storage-types": {
|
| 1469 |
-
"version": "0.8.3",
|
| 1470 |
-
"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.3.tgz",
|
| 1471 |
-
"integrity": "sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==",
|
| 1472 |
-
"license": "Apache-2.0",
|
| 1473 |
-
"peerDependencies": {
|
| 1474 |
-
"@firebase/app-types": "0.x",
|
| 1475 |
-
"@firebase/util": "1.x"
|
| 1476 |
-
}
|
| 1477 |
-
},
|
| 1478 |
-
"node_modules/@firebase/util": {
|
| 1479 |
-
"version": "1.13.0",
|
| 1480 |
-
"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz",
|
| 1481 |
-
"integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==",
|
| 1482 |
-
"hasInstallScript": true,
|
| 1483 |
-
"license": "Apache-2.0",
|
| 1484 |
-
"dependencies": {
|
| 1485 |
-
"tslib": "^2.1.0"
|
| 1486 |
-
},
|
| 1487 |
-
"engines": {
|
| 1488 |
-
"node": ">=20.0.0"
|
| 1489 |
-
}
|
| 1490 |
-
},
|
| 1491 |
-
"node_modules/@firebase/webchannel-wrapper": {
|
| 1492 |
-
"version": "1.0.5",
|
| 1493 |
-
"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.5.tgz",
|
| 1494 |
-
"integrity": "sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==",
|
| 1495 |
-
"license": "Apache-2.0"
|
| 1496 |
-
},
|
| 1497 |
-
"node_modules/@grpc/grpc-js": {
|
| 1498 |
-
"version": "1.9.15",
|
| 1499 |
-
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz",
|
| 1500 |
-
"integrity": "sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==",
|
| 1501 |
-
"license": "Apache-2.0",
|
| 1502 |
-
"dependencies": {
|
| 1503 |
-
"@grpc/proto-loader": "^0.7.8",
|
| 1504 |
-
"@types/node": ">=12.12.47"
|
| 1505 |
-
},
|
| 1506 |
-
"engines": {
|
| 1507 |
-
"node": "^8.13.0 || >=10.10.0"
|
| 1508 |
-
}
|
| 1509 |
-
},
|
| 1510 |
-
"node_modules/@grpc/proto-loader": {
|
| 1511 |
-
"version": "0.7.15",
|
| 1512 |
-
"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz",
|
| 1513 |
-
"integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==",
|
| 1514 |
-
"license": "Apache-2.0",
|
| 1515 |
-
"dependencies": {
|
| 1516 |
-
"lodash.camelcase": "^4.3.0",
|
| 1517 |
-
"long": "^5.0.0",
|
| 1518 |
-
"protobufjs": "^7.2.5",
|
| 1519 |
-
"yargs": "^17.7.2"
|
| 1520 |
-
},
|
| 1521 |
-
"bin": {
|
| 1522 |
-
"proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
|
| 1523 |
-
},
|
| 1524 |
-
"engines": {
|
| 1525 |
-
"node": ">=6"
|
| 1526 |
-
}
|
| 1527 |
-
},
|
| 1528 |
"node_modules/@humanfs/core": {
|
| 1529 |
"version": "0.19.1",
|
| 1530 |
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
|
|
@@ -1622,70 +982,6 @@
|
|
| 1622 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 1623 |
}
|
| 1624 |
},
|
| 1625 |
-
"node_modules/@protobufjs/aspromise": {
|
| 1626 |
-
"version": "1.1.2",
|
| 1627 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
|
| 1628 |
-
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
|
| 1629 |
-
"license": "BSD-3-Clause"
|
| 1630 |
-
},
|
| 1631 |
-
"node_modules/@protobufjs/base64": {
|
| 1632 |
-
"version": "1.1.2",
|
| 1633 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
|
| 1634 |
-
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
|
| 1635 |
-
"license": "BSD-3-Clause"
|
| 1636 |
-
},
|
| 1637 |
-
"node_modules/@protobufjs/codegen": {
|
| 1638 |
-
"version": "2.0.4",
|
| 1639 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
|
| 1640 |
-
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
|
| 1641 |
-
"license": "BSD-3-Clause"
|
| 1642 |
-
},
|
| 1643 |
-
"node_modules/@protobufjs/eventemitter": {
|
| 1644 |
-
"version": "1.1.0",
|
| 1645 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
|
| 1646 |
-
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
|
| 1647 |
-
"license": "BSD-3-Clause"
|
| 1648 |
-
},
|
| 1649 |
-
"node_modules/@protobufjs/fetch": {
|
| 1650 |
-
"version": "1.1.0",
|
| 1651 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
|
| 1652 |
-
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
|
| 1653 |
-
"license": "BSD-3-Clause",
|
| 1654 |
-
"dependencies": {
|
| 1655 |
-
"@protobufjs/aspromise": "^1.1.1",
|
| 1656 |
-
"@protobufjs/inquire": "^1.1.0"
|
| 1657 |
-
}
|
| 1658 |
-
},
|
| 1659 |
-
"node_modules/@protobufjs/float": {
|
| 1660 |
-
"version": "1.0.2",
|
| 1661 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
|
| 1662 |
-
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
|
| 1663 |
-
"license": "BSD-3-Clause"
|
| 1664 |
-
},
|
| 1665 |
-
"node_modules/@protobufjs/inquire": {
|
| 1666 |
-
"version": "1.1.0",
|
| 1667 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
|
| 1668 |
-
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
|
| 1669 |
-
"license": "BSD-3-Clause"
|
| 1670 |
-
},
|
| 1671 |
-
"node_modules/@protobufjs/path": {
|
| 1672 |
-
"version": "1.1.2",
|
| 1673 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
|
| 1674 |
-
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
|
| 1675 |
-
"license": "BSD-3-Clause"
|
| 1676 |
-
},
|
| 1677 |
-
"node_modules/@protobufjs/pool": {
|
| 1678 |
-
"version": "1.1.0",
|
| 1679 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
|
| 1680 |
-
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
|
| 1681 |
-
"license": "BSD-3-Clause"
|
| 1682 |
-
},
|
| 1683 |
-
"node_modules/@protobufjs/utf8": {
|
| 1684 |
-
"version": "1.1.0",
|
| 1685 |
-
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
| 1686 |
-
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
|
| 1687 |
-
"license": "BSD-3-Clause"
|
| 1688 |
-
},
|
| 1689 |
"node_modules/@reduxjs/toolkit": {
|
| 1690 |
"version": "2.11.2",
|
| 1691 |
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
|
|
@@ -2444,15 +1740,6 @@
|
|
| 2444 |
"dev": true,
|
| 2445 |
"license": "MIT"
|
| 2446 |
},
|
| 2447 |
-
"node_modules/@types/node": {
|
| 2448 |
-
"version": "25.3.0",
|
| 2449 |
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz",
|
| 2450 |
-
"integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==",
|
| 2451 |
-
"license": "MIT",
|
| 2452 |
-
"dependencies": {
|
| 2453 |
-
"undici-types": "~7.18.0"
|
| 2454 |
-
}
|
| 2455 |
-
},
|
| 2456 |
"node_modules/@types/react": {
|
| 2457 |
"version": "19.2.14",
|
| 2458 |
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
|
|
@@ -2540,19 +1827,11 @@
|
|
| 2540 |
"url": "https://github.com/sponsors/epoberezkin"
|
| 2541 |
}
|
| 2542 |
},
|
| 2543 |
-
"node_modules/ansi-regex": {
|
| 2544 |
-
"version": "5.0.1",
|
| 2545 |
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2546 |
-
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
| 2547 |
-
"license": "MIT",
|
| 2548 |
-
"engines": {
|
| 2549 |
-
"node": ">=8"
|
| 2550 |
-
}
|
| 2551 |
-
},
|
| 2552 |
"node_modules/ansi-styles": {
|
| 2553 |
"version": "4.3.0",
|
| 2554 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
| 2555 |
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
|
|
|
| 2556 |
"license": "MIT",
|
| 2557 |
"dependencies": {
|
| 2558 |
"color-convert": "^2.0.1"
|
|
@@ -2684,20 +1963,6 @@
|
|
| 2684 |
"url": "https://github.com/chalk/chalk?sponsor=1"
|
| 2685 |
}
|
| 2686 |
},
|
| 2687 |
-
"node_modules/cliui": {
|
| 2688 |
-
"version": "8.0.1",
|
| 2689 |
-
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
|
| 2690 |
-
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
|
| 2691 |
-
"license": "ISC",
|
| 2692 |
-
"dependencies": {
|
| 2693 |
-
"string-width": "^4.2.0",
|
| 2694 |
-
"strip-ansi": "^6.0.1",
|
| 2695 |
-
"wrap-ansi": "^7.0.0"
|
| 2696 |
-
},
|
| 2697 |
-
"engines": {
|
| 2698 |
-
"node": ">=12"
|
| 2699 |
-
}
|
| 2700 |
-
},
|
| 2701 |
"node_modules/clsx": {
|
| 2702 |
"version": "2.1.1",
|
| 2703 |
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
|
@@ -2711,6 +1976,7 @@
|
|
| 2711 |
"version": "2.0.1",
|
| 2712 |
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 2713 |
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
|
|
|
| 2714 |
"license": "MIT",
|
| 2715 |
"dependencies": {
|
| 2716 |
"color-name": "~1.1.4"
|
|
@@ -2723,6 +1989,7 @@
|
|
| 2723 |
"version": "1.1.4",
|
| 2724 |
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 2725 |
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
|
|
|
| 2726 |
"license": "MIT"
|
| 2727 |
},
|
| 2728 |
"node_modules/concat-map": {
|
|
@@ -2942,12 +2209,6 @@
|
|
| 2942 |
"dev": true,
|
| 2943 |
"license": "ISC"
|
| 2944 |
},
|
| 2945 |
-
"node_modules/emoji-regex": {
|
| 2946 |
-
"version": "8.0.0",
|
| 2947 |
-
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 2948 |
-
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
| 2949 |
-
"license": "MIT"
|
| 2950 |
-
},
|
| 2951 |
"node_modules/enhanced-resolve": {
|
| 2952 |
"version": "5.19.0",
|
| 2953 |
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz",
|
|
@@ -3016,6 +2277,7 @@
|
|
| 3016 |
"version": "3.2.0",
|
| 3017 |
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
| 3018 |
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
|
|
|
| 3019 |
"license": "MIT",
|
| 3020 |
"engines": {
|
| 3021 |
"node": ">=6"
|
|
@@ -3245,18 +2507,6 @@
|
|
| 3245 |
"dev": true,
|
| 3246 |
"license": "MIT"
|
| 3247 |
},
|
| 3248 |
-
"node_modules/faye-websocket": {
|
| 3249 |
-
"version": "0.11.4",
|
| 3250 |
-
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
|
| 3251 |
-
"integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
|
| 3252 |
-
"license": "Apache-2.0",
|
| 3253 |
-
"dependencies": {
|
| 3254 |
-
"websocket-driver": ">=0.5.1"
|
| 3255 |
-
},
|
| 3256 |
-
"engines": {
|
| 3257 |
-
"node": ">=0.8.0"
|
| 3258 |
-
}
|
| 3259 |
-
},
|
| 3260 |
"node_modules/fdir": {
|
| 3261 |
"version": "6.5.0",
|
| 3262 |
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
|
@@ -3304,42 +2554,6 @@
|
|
| 3304 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 3305 |
}
|
| 3306 |
},
|
| 3307 |
-
"node_modules/firebase": {
|
| 3308 |
-
"version": "12.9.0",
|
| 3309 |
-
"resolved": "https://registry.npmjs.org/firebase/-/firebase-12.9.0.tgz",
|
| 3310 |
-
"integrity": "sha512-CwwTYoqZg6KxygPOaaJqIc4aoLvo0RCRrXoln9GoxLE8QyAwTydBaSLGVlR4WPcuOgN3OEL0tJLT1H4IU/dv7w==",
|
| 3311 |
-
"license": "Apache-2.0",
|
| 3312 |
-
"dependencies": {
|
| 3313 |
-
"@firebase/ai": "2.8.0",
|
| 3314 |
-
"@firebase/analytics": "0.10.19",
|
| 3315 |
-
"@firebase/analytics-compat": "0.2.25",
|
| 3316 |
-
"@firebase/app": "0.14.8",
|
| 3317 |
-
"@firebase/app-check": "0.11.0",
|
| 3318 |
-
"@firebase/app-check-compat": "0.4.0",
|
| 3319 |
-
"@firebase/app-compat": "0.5.8",
|
| 3320 |
-
"@firebase/app-types": "0.9.3",
|
| 3321 |
-
"@firebase/auth": "1.12.0",
|
| 3322 |
-
"@firebase/auth-compat": "0.6.2",
|
| 3323 |
-
"@firebase/data-connect": "0.3.12",
|
| 3324 |
-
"@firebase/database": "1.1.0",
|
| 3325 |
-
"@firebase/database-compat": "2.1.0",
|
| 3326 |
-
"@firebase/firestore": "4.11.0",
|
| 3327 |
-
"@firebase/firestore-compat": "0.4.5",
|
| 3328 |
-
"@firebase/functions": "0.13.1",
|
| 3329 |
-
"@firebase/functions-compat": "0.4.1",
|
| 3330 |
-
"@firebase/installations": "0.6.19",
|
| 3331 |
-
"@firebase/installations-compat": "0.2.19",
|
| 3332 |
-
"@firebase/messaging": "0.12.23",
|
| 3333 |
-
"@firebase/messaging-compat": "0.2.23",
|
| 3334 |
-
"@firebase/performance": "0.7.9",
|
| 3335 |
-
"@firebase/performance-compat": "0.2.22",
|
| 3336 |
-
"@firebase/remote-config": "0.8.0",
|
| 3337 |
-
"@firebase/remote-config-compat": "0.2.21",
|
| 3338 |
-
"@firebase/storage": "0.14.0",
|
| 3339 |
-
"@firebase/storage-compat": "0.4.0",
|
| 3340 |
-
"@firebase/util": "1.13.0"
|
| 3341 |
-
}
|
| 3342 |
-
},
|
| 3343 |
"node_modules/flat-cache": {
|
| 3344 |
"version": "4.0.1",
|
| 3345 |
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
|
|
@@ -3385,15 +2599,6 @@
|
|
| 3385 |
"node": ">=6.9.0"
|
| 3386 |
}
|
| 3387 |
},
|
| 3388 |
-
"node_modules/get-caller-file": {
|
| 3389 |
-
"version": "2.0.5",
|
| 3390 |
-
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
| 3391 |
-
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
| 3392 |
-
"license": "ISC",
|
| 3393 |
-
"engines": {
|
| 3394 |
-
"node": "6.* || 8.* || >= 10.*"
|
| 3395 |
-
}
|
| 3396 |
-
},
|
| 3397 |
"node_modules/glob-parent": {
|
| 3398 |
"version": "6.0.2",
|
| 3399 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
|
@@ -3453,18 +2658,6 @@
|
|
| 3453 |
"hermes-estree": "0.25.1"
|
| 3454 |
}
|
| 3455 |
},
|
| 3456 |
-
"node_modules/http-parser-js": {
|
| 3457 |
-
"version": "0.5.10",
|
| 3458 |
-
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
|
| 3459 |
-
"integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
|
| 3460 |
-
"license": "MIT"
|
| 3461 |
-
},
|
| 3462 |
-
"node_modules/idb": {
|
| 3463 |
-
"version": "7.1.1",
|
| 3464 |
-
"resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
|
| 3465 |
-
"integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==",
|
| 3466 |
-
"license": "ISC"
|
| 3467 |
-
},
|
| 3468 |
"node_modules/ignore": {
|
| 3469 |
"version": "5.3.2",
|
| 3470 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
|
@@ -3531,15 +2724,6 @@
|
|
| 3531 |
"node": ">=0.10.0"
|
| 3532 |
}
|
| 3533 |
},
|
| 3534 |
-
"node_modules/is-fullwidth-code-point": {
|
| 3535 |
-
"version": "3.0.0",
|
| 3536 |
-
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
| 3537 |
-
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
| 3538 |
-
"license": "MIT",
|
| 3539 |
-
"engines": {
|
| 3540 |
-
"node": ">=8"
|
| 3541 |
-
}
|
| 3542 |
-
},
|
| 3543 |
"node_modules/is-glob": {
|
| 3544 |
"version": "4.0.3",
|
| 3545 |
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
|
@@ -3925,12 +3109,6 @@
|
|
| 3925 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 3926 |
}
|
| 3927 |
},
|
| 3928 |
-
"node_modules/lodash.camelcase": {
|
| 3929 |
-
"version": "4.3.0",
|
| 3930 |
-
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
| 3931 |
-
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
|
| 3932 |
-
"license": "MIT"
|
| 3933 |
-
},
|
| 3934 |
"node_modules/lodash.merge": {
|
| 3935 |
"version": "4.6.2",
|
| 3936 |
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
@@ -3938,12 +3116,6 @@
|
|
| 3938 |
"dev": true,
|
| 3939 |
"license": "MIT"
|
| 3940 |
},
|
| 3941 |
-
"node_modules/long": {
|
| 3942 |
-
"version": "5.3.2",
|
| 3943 |
-
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
|
| 3944 |
-
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
|
| 3945 |
-
"license": "Apache-2.0"
|
| 3946 |
-
},
|
| 3947 |
"node_modules/lru-cache": {
|
| 3948 |
"version": "5.1.1",
|
| 3949 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
@@ -4163,30 +3335,6 @@
|
|
| 4163 |
"node": ">= 0.8.0"
|
| 4164 |
}
|
| 4165 |
},
|
| 4166 |
-
"node_modules/protobufjs": {
|
| 4167 |
-
"version": "7.5.4",
|
| 4168 |
-
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
|
| 4169 |
-
"integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
|
| 4170 |
-
"hasInstallScript": true,
|
| 4171 |
-
"license": "BSD-3-Clause",
|
| 4172 |
-
"dependencies": {
|
| 4173 |
-
"@protobufjs/aspromise": "^1.1.2",
|
| 4174 |
-
"@protobufjs/base64": "^1.1.2",
|
| 4175 |
-
"@protobufjs/codegen": "^2.0.4",
|
| 4176 |
-
"@protobufjs/eventemitter": "^1.1.0",
|
| 4177 |
-
"@protobufjs/fetch": "^1.1.0",
|
| 4178 |
-
"@protobufjs/float": "^1.0.2",
|
| 4179 |
-
"@protobufjs/inquire": "^1.1.0",
|
| 4180 |
-
"@protobufjs/path": "^1.1.2",
|
| 4181 |
-
"@protobufjs/pool": "^1.1.0",
|
| 4182 |
-
"@protobufjs/utf8": "^1.1.0",
|
| 4183 |
-
"@types/node": ">=13.7.0",
|
| 4184 |
-
"long": "^5.0.0"
|
| 4185 |
-
},
|
| 4186 |
-
"engines": {
|
| 4187 |
-
"node": ">=12.0.0"
|
| 4188 |
-
}
|
| 4189 |
-
},
|
| 4190 |
"node_modules/punycode": {
|
| 4191 |
"version": "2.3.1",
|
| 4192 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
|
@@ -4341,15 +3489,6 @@
|
|
| 4341 |
"redux": "^5.0.0"
|
| 4342 |
}
|
| 4343 |
},
|
| 4344 |
-
"node_modules/require-directory": {
|
| 4345 |
-
"version": "2.1.1",
|
| 4346 |
-
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
| 4347 |
-
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
|
| 4348 |
-
"license": "MIT",
|
| 4349 |
-
"engines": {
|
| 4350 |
-
"node": ">=0.10.0"
|
| 4351 |
-
}
|
| 4352 |
-
},
|
| 4353 |
"node_modules/reselect": {
|
| 4354 |
"version": "5.1.1",
|
| 4355 |
"resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
|
|
@@ -4410,26 +3549,6 @@
|
|
| 4410 |
"fsevents": "~2.3.2"
|
| 4411 |
}
|
| 4412 |
},
|
| 4413 |
-
"node_modules/safe-buffer": {
|
| 4414 |
-
"version": "5.2.1",
|
| 4415 |
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
| 4416 |
-
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
| 4417 |
-
"funding": [
|
| 4418 |
-
{
|
| 4419 |
-
"type": "github",
|
| 4420 |
-
"url": "https://github.com/sponsors/feross"
|
| 4421 |
-
},
|
| 4422 |
-
{
|
| 4423 |
-
"type": "patreon",
|
| 4424 |
-
"url": "https://www.patreon.com/feross"
|
| 4425 |
-
},
|
| 4426 |
-
{
|
| 4427 |
-
"type": "consulting",
|
| 4428 |
-
"url": "https://feross.org/support"
|
| 4429 |
-
}
|
| 4430 |
-
],
|
| 4431 |
-
"license": "MIT"
|
| 4432 |
-
},
|
| 4433 |
"node_modules/scheduler": {
|
| 4434 |
"version": "0.27.0",
|
| 4435 |
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
|
|
@@ -4484,32 +3603,6 @@
|
|
| 4484 |
"node": ">=0.10.0"
|
| 4485 |
}
|
| 4486 |
},
|
| 4487 |
-
"node_modules/string-width": {
|
| 4488 |
-
"version": "4.2.3",
|
| 4489 |
-
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 4490 |
-
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 4491 |
-
"license": "MIT",
|
| 4492 |
-
"dependencies": {
|
| 4493 |
-
"emoji-regex": "^8.0.0",
|
| 4494 |
-
"is-fullwidth-code-point": "^3.0.0",
|
| 4495 |
-
"strip-ansi": "^6.0.1"
|
| 4496 |
-
},
|
| 4497 |
-
"engines": {
|
| 4498 |
-
"node": ">=8"
|
| 4499 |
-
}
|
| 4500 |
-
},
|
| 4501 |
-
"node_modules/strip-ansi": {
|
| 4502 |
-
"version": "6.0.1",
|
| 4503 |
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 4504 |
-
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 4505 |
-
"license": "MIT",
|
| 4506 |
-
"dependencies": {
|
| 4507 |
-
"ansi-regex": "^5.0.1"
|
| 4508 |
-
},
|
| 4509 |
-
"engines": {
|
| 4510 |
-
"node": ">=8"
|
| 4511 |
-
}
|
| 4512 |
-
},
|
| 4513 |
"node_modules/strip-json-comments": {
|
| 4514 |
"version": "3.1.1",
|
| 4515 |
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
|
@@ -4581,7 +3674,8 @@
|
|
| 4581 |
"version": "2.8.1",
|
| 4582 |
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
| 4583 |
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
| 4584 |
-
"license": "0BSD"
|
|
|
|
| 4585 |
},
|
| 4586 |
"node_modules/type-check": {
|
| 4587 |
"version": "0.4.0",
|
|
@@ -4610,12 +3704,6 @@
|
|
| 4610 |
"node": ">=14.17"
|
| 4611 |
}
|
| 4612 |
},
|
| 4613 |
-
"node_modules/undici-types": {
|
| 4614 |
-
"version": "7.18.2",
|
| 4615 |
-
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
|
| 4616 |
-
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
|
| 4617 |
-
"license": "MIT"
|
| 4618 |
-
},
|
| 4619 |
"node_modules/update-browserslist-db": {
|
| 4620 |
"version": "1.2.3",
|
| 4621 |
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
|
|
@@ -4762,35 +3850,6 @@
|
|
| 4762 |
}
|
| 4763 |
}
|
| 4764 |
},
|
| 4765 |
-
"node_modules/web-vitals": {
|
| 4766 |
-
"version": "4.2.4",
|
| 4767 |
-
"resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
|
| 4768 |
-
"integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==",
|
| 4769 |
-
"license": "Apache-2.0"
|
| 4770 |
-
},
|
| 4771 |
-
"node_modules/websocket-driver": {
|
| 4772 |
-
"version": "0.7.4",
|
| 4773 |
-
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
| 4774 |
-
"integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
|
| 4775 |
-
"license": "Apache-2.0",
|
| 4776 |
-
"dependencies": {
|
| 4777 |
-
"http-parser-js": ">=0.5.1",
|
| 4778 |
-
"safe-buffer": ">=5.1.0",
|
| 4779 |
-
"websocket-extensions": ">=0.1.1"
|
| 4780 |
-
},
|
| 4781 |
-
"engines": {
|
| 4782 |
-
"node": ">=0.8.0"
|
| 4783 |
-
}
|
| 4784 |
-
},
|
| 4785 |
-
"node_modules/websocket-extensions": {
|
| 4786 |
-
"version": "0.1.4",
|
| 4787 |
-
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
|
| 4788 |
-
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
|
| 4789 |
-
"license": "Apache-2.0",
|
| 4790 |
-
"engines": {
|
| 4791 |
-
"node": ">=0.8.0"
|
| 4792 |
-
}
|
| 4793 |
-
},
|
| 4794 |
"node_modules/which": {
|
| 4795 |
"version": "2.0.2",
|
| 4796 |
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
|
@@ -4817,32 +3876,6 @@
|
|
| 4817 |
"node": ">=0.10.0"
|
| 4818 |
}
|
| 4819 |
},
|
| 4820 |
-
"node_modules/wrap-ansi": {
|
| 4821 |
-
"version": "7.0.0",
|
| 4822 |
-
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
| 4823 |
-
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
| 4824 |
-
"license": "MIT",
|
| 4825 |
-
"dependencies": {
|
| 4826 |
-
"ansi-styles": "^4.0.0",
|
| 4827 |
-
"string-width": "^4.1.0",
|
| 4828 |
-
"strip-ansi": "^6.0.0"
|
| 4829 |
-
},
|
| 4830 |
-
"engines": {
|
| 4831 |
-
"node": ">=10"
|
| 4832 |
-
},
|
| 4833 |
-
"funding": {
|
| 4834 |
-
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 4835 |
-
}
|
| 4836 |
-
},
|
| 4837 |
-
"node_modules/y18n": {
|
| 4838 |
-
"version": "5.0.8",
|
| 4839 |
-
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
| 4840 |
-
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
| 4841 |
-
"license": "ISC",
|
| 4842 |
-
"engines": {
|
| 4843 |
-
"node": ">=10"
|
| 4844 |
-
}
|
| 4845 |
-
},
|
| 4846 |
"node_modules/yallist": {
|
| 4847 |
"version": "3.1.1",
|
| 4848 |
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
|
@@ -4850,33 +3883,6 @@
|
|
| 4850 |
"dev": true,
|
| 4851 |
"license": "ISC"
|
| 4852 |
},
|
| 4853 |
-
"node_modules/yargs": {
|
| 4854 |
-
"version": "17.7.2",
|
| 4855 |
-
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
| 4856 |
-
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
|
| 4857 |
-
"license": "MIT",
|
| 4858 |
-
"dependencies": {
|
| 4859 |
-
"cliui": "^8.0.1",
|
| 4860 |
-
"escalade": "^3.1.1",
|
| 4861 |
-
"get-caller-file": "^2.0.5",
|
| 4862 |
-
"require-directory": "^2.1.1",
|
| 4863 |
-
"string-width": "^4.2.3",
|
| 4864 |
-
"y18n": "^5.0.5",
|
| 4865 |
-
"yargs-parser": "^21.1.1"
|
| 4866 |
-
},
|
| 4867 |
-
"engines": {
|
| 4868 |
-
"node": ">=12"
|
| 4869 |
-
}
|
| 4870 |
-
},
|
| 4871 |
-
"node_modules/yargs-parser": {
|
| 4872 |
-
"version": "21.1.1",
|
| 4873 |
-
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
| 4874 |
-
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
|
| 4875 |
-
"license": "ISC",
|
| 4876 |
-
"engines": {
|
| 4877 |
-
"node": ">=12"
|
| 4878 |
-
}
|
| 4879 |
-
},
|
| 4880 |
"node_modules/yocto-queue": {
|
| 4881 |
"version": "0.1.0",
|
| 4882 |
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
|
|
|
| 10 |
"dependencies": {
|
| 11 |
"@tailwindcss/vite": "^4.2.1",
|
| 12 |
"clsx": "^2.1.1",
|
|
|
|
| 13 |
"lucide-react": "^0.575.0",
|
| 14 |
"react": "^19.2.0",
|
| 15 |
"react-dom": "^19.2.0",
|
|
|
|
| 885 |
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 886 |
}
|
| 887 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 888 |
"node_modules/@humanfs/core": {
|
| 889 |
"version": "0.19.1",
|
| 890 |
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
|
|
|
|
| 982 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 983 |
}
|
| 984 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 985 |
"node_modules/@reduxjs/toolkit": {
|
| 986 |
"version": "2.11.2",
|
| 987 |
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
|
|
|
|
| 1740 |
"dev": true,
|
| 1741 |
"license": "MIT"
|
| 1742 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1743 |
"node_modules/@types/react": {
|
| 1744 |
"version": "19.2.14",
|
| 1745 |
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
|
|
|
|
| 1827 |
"url": "https://github.com/sponsors/epoberezkin"
|
| 1828 |
}
|
| 1829 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1830 |
"node_modules/ansi-styles": {
|
| 1831 |
"version": "4.3.0",
|
| 1832 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
| 1833 |
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
| 1834 |
+
"dev": true,
|
| 1835 |
"license": "MIT",
|
| 1836 |
"dependencies": {
|
| 1837 |
"color-convert": "^2.0.1"
|
|
|
|
| 1963 |
"url": "https://github.com/chalk/chalk?sponsor=1"
|
| 1964 |
}
|
| 1965 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1966 |
"node_modules/clsx": {
|
| 1967 |
"version": "2.1.1",
|
| 1968 |
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
|
|
|
| 1976 |
"version": "2.0.1",
|
| 1977 |
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 1978 |
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
| 1979 |
+
"dev": true,
|
| 1980 |
"license": "MIT",
|
| 1981 |
"dependencies": {
|
| 1982 |
"color-name": "~1.1.4"
|
|
|
|
| 1989 |
"version": "1.1.4",
|
| 1990 |
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 1991 |
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
| 1992 |
+
"dev": true,
|
| 1993 |
"license": "MIT"
|
| 1994 |
},
|
| 1995 |
"node_modules/concat-map": {
|
|
|
|
| 2209 |
"dev": true,
|
| 2210 |
"license": "ISC"
|
| 2211 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2212 |
"node_modules/enhanced-resolve": {
|
| 2213 |
"version": "5.19.0",
|
| 2214 |
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz",
|
|
|
|
| 2277 |
"version": "3.2.0",
|
| 2278 |
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
| 2279 |
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
| 2280 |
+
"dev": true,
|
| 2281 |
"license": "MIT",
|
| 2282 |
"engines": {
|
| 2283 |
"node": ">=6"
|
|
|
|
| 2507 |
"dev": true,
|
| 2508 |
"license": "MIT"
|
| 2509 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2510 |
"node_modules/fdir": {
|
| 2511 |
"version": "6.5.0",
|
| 2512 |
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
|
|
|
| 2554 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 2555 |
}
|
| 2556 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2557 |
"node_modules/flat-cache": {
|
| 2558 |
"version": "4.0.1",
|
| 2559 |
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
|
|
|
|
| 2599 |
"node": ">=6.9.0"
|
| 2600 |
}
|
| 2601 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2602 |
"node_modules/glob-parent": {
|
| 2603 |
"version": "6.0.2",
|
| 2604 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
|
|
|
| 2658 |
"hermes-estree": "0.25.1"
|
| 2659 |
}
|
| 2660 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2661 |
"node_modules/ignore": {
|
| 2662 |
"version": "5.3.2",
|
| 2663 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
|
|
|
| 2724 |
"node": ">=0.10.0"
|
| 2725 |
}
|
| 2726 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2727 |
"node_modules/is-glob": {
|
| 2728 |
"version": "4.0.3",
|
| 2729 |
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
|
|
|
| 3109 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 3110 |
}
|
| 3111 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3112 |
"node_modules/lodash.merge": {
|
| 3113 |
"version": "4.6.2",
|
| 3114 |
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
|
|
| 3116 |
"dev": true,
|
| 3117 |
"license": "MIT"
|
| 3118 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3119 |
"node_modules/lru-cache": {
|
| 3120 |
"version": "5.1.1",
|
| 3121 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
|
|
| 3335 |
"node": ">= 0.8.0"
|
| 3336 |
}
|
| 3337 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3338 |
"node_modules/punycode": {
|
| 3339 |
"version": "2.3.1",
|
| 3340 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
|
|
|
| 3489 |
"redux": "^5.0.0"
|
| 3490 |
}
|
| 3491 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3492 |
"node_modules/reselect": {
|
| 3493 |
"version": "5.1.1",
|
| 3494 |
"resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
|
|
|
|
| 3549 |
"fsevents": "~2.3.2"
|
| 3550 |
}
|
| 3551 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3552 |
"node_modules/scheduler": {
|
| 3553 |
"version": "0.27.0",
|
| 3554 |
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
|
|
|
|
| 3603 |
"node": ">=0.10.0"
|
| 3604 |
}
|
| 3605 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3606 |
"node_modules/strip-json-comments": {
|
| 3607 |
"version": "3.1.1",
|
| 3608 |
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
|
|
|
| 3674 |
"version": "2.8.1",
|
| 3675 |
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
| 3676 |
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
| 3677 |
+
"license": "0BSD",
|
| 3678 |
+
"optional": true
|
| 3679 |
},
|
| 3680 |
"node_modules/type-check": {
|
| 3681 |
"version": "0.4.0",
|
|
|
|
| 3704 |
"node": ">=14.17"
|
| 3705 |
}
|
| 3706 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3707 |
"node_modules/update-browserslist-db": {
|
| 3708 |
"version": "1.2.3",
|
| 3709 |
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
|
|
|
|
| 3850 |
}
|
| 3851 |
}
|
| 3852 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3853 |
"node_modules/which": {
|
| 3854 |
"version": "2.0.2",
|
| 3855 |
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
|
|
|
| 3876 |
"node": ">=0.10.0"
|
| 3877 |
}
|
| 3878 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3879 |
"node_modules/yallist": {
|
| 3880 |
"version": "3.1.1",
|
| 3881 |
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
|
|
|
| 3883 |
"dev": true,
|
| 3884 |
"license": "ISC"
|
| 3885 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3886 |
"node_modules/yocto-queue": {
|
| 3887 |
"version": "0.1.0",
|
| 3888 |
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
frontend/package.json
CHANGED
|
@@ -13,7 +13,6 @@
|
|
| 13 |
"dependencies": {
|
| 14 |
"@tailwindcss/vite": "^4.2.1",
|
| 15 |
"clsx": "^2.1.1",
|
| 16 |
-
"firebase": "^12.9.0",
|
| 17 |
"lucide-react": "^0.575.0",
|
| 18 |
"react": "^19.2.0",
|
| 19 |
"react-dom": "^19.2.0",
|
|
|
|
| 13 |
"dependencies": {
|
| 14 |
"@tailwindcss/vite": "^4.2.1",
|
| 15 |
"clsx": "^2.1.1",
|
|
|
|
| 16 |
"lucide-react": "^0.575.0",
|
| 17 |
"react": "^19.2.0",
|
| 18 |
"react-dom": "^19.2.0",
|
frontend/src/firebase.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
| 1 |
-
import { initializeApp } from 'firebase/app'
|
| 2 |
-
import { getFirestore, collection, query, orderBy, limit, onSnapshot } from 'firebase/firestore'
|
| 3 |
-
|
| 4 |
-
const firebaseConfig = {
|
| 5 |
-
apiKey: "AIzaSyBmPeo9UfEkPhtBN9pq7xyzFNI2Bw4yue4",
|
| 6 |
-
authDomain: "philverify.firebaseapp.com",
|
| 7 |
-
projectId: "philverify",
|
| 8 |
-
storageBucket: "philverify.firebasestorage.app",
|
| 9 |
-
messagingSenderId: "148970785140",
|
| 10 |
-
appId: "1:978563490222:web:eea2551e0938ff2efaa83f",
|
| 11 |
-
}
|
| 12 |
-
|
| 13 |
-
const app = initializeApp(firebaseConfig)
|
| 14 |
-
export const db = getFirestore(app)
|
| 15 |
-
|
| 16 |
-
/**
|
| 17 |
-
* Subscribe to the 20 most recent verifications in real-time.
|
| 18 |
-
* @param {Function} callback - called with array of docs on each update
|
| 19 |
-
* @param {Function} [onError] - called with Error when Firestore is unreachable (e.g. ad blocker)
|
| 20 |
-
* @returns unsubscribe function
|
| 21 |
-
*/
|
| 22 |
-
export function subscribeToHistory(callback, onError) {
|
| 23 |
-
const q = query(
|
| 24 |
-
collection(db, 'verifications'),
|
| 25 |
-
orderBy('timestamp', 'desc'),
|
| 26 |
-
limit(20)
|
| 27 |
-
)
|
| 28 |
-
return onSnapshot(
|
| 29 |
-
q,
|
| 30 |
-
(snap) => {
|
| 31 |
-
callback(snap.docs.map(d => ({ id: d.id, ...d.data() })))
|
| 32 |
-
},
|
| 33 |
-
(error) => {
|
| 34 |
-
// Firestore blocked (ERR_BLOCKED_BY_CLIENT from ad blockers) or
|
| 35 |
-
// permission denied — fail fast and let caller fall back to REST.
|
| 36 |
-
console.warn('[PhilVerify] Firestore unavailable:', error.code || error.message)
|
| 37 |
-
if (onError) onError(error)
|
| 38 |
-
}
|
| 39 |
-
)
|
| 40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/src/pages/HistoryPage.jsx
CHANGED
|
@@ -1,11 +1,10 @@
|
|
| 1 |
import { useEffect, useState, useCallback, useMemo } from 'react'
|
| 2 |
-
import {
|
| 3 |
-
import { timeAgo, VERDICT_MAP, scoreColor } from '../utils/format.js'
|
| 4 |
import { PAGE_STYLE } from '../App.jsx'
|
| 5 |
import { api } from '../api'
|
| 6 |
import VerdictBadge from '../components/VerdictBadge.jsx'
|
| 7 |
import SkeletonCard from '../components/SkeletonCard.jsx'
|
| 8 |
-
import { Clock, RefreshCw,
|
| 9 |
|
| 10 |
|
| 11 |
/* ── Sort icon helper ─────────────────────────────────── */
|
|
@@ -311,7 +310,6 @@ function DetailModal({ id, onClose }) {
|
|
| 311 |
export default function HistoryPage() {
|
| 312 |
const [entries, setEntries] = useState([])
|
| 313 |
const [loading, setLoading] = useState(true)
|
| 314 |
-
const [source, setSource] = useState('firestore')
|
| 315 |
const [sort, setSort] = useState('timestamp')
|
| 316 |
const [dir, setDir] = useState('desc')
|
| 317 |
const [filter, setFilter] = useState('all') // 'all' | 'Credible' | 'Unverified' | 'Likely Fake'
|
|
@@ -328,38 +326,9 @@ export default function HistoryPage() {
|
|
| 328 |
}, [])
|
| 329 |
|
| 330 |
useEffect(() => {
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
function goRest() {
|
| 336 |
-
if (resolved) return
|
| 337 |
-
resolved = true
|
| 338 |
-
// Immediately kill the Firestore listener so the SDK stops retrying
|
| 339 |
-
// (prevents the ERR_BLOCKED_BY_CLIENT console flood from auto-retries)
|
| 340 |
-
unsubRef?.()
|
| 341 |
-
setSource('rest')
|
| 342 |
-
fetchRest()
|
| 343 |
-
restInterval = setInterval(fetchRest, 30_000)
|
| 344 |
-
}
|
| 345 |
-
|
| 346 |
-
// Fallback to REST after 1.5 s if Firestore hasn't connected
|
| 347 |
-
const fallbackTimer = setTimeout(goRest, 1500)
|
| 348 |
-
|
| 349 |
-
unsubRef = subscribeToHistory(
|
| 350 |
-
(docs) => {
|
| 351 |
-
if (!resolved) { resolved = true; clearTimeout(fallbackTimer) }
|
| 352 |
-
setEntries(docs)
|
| 353 |
-
setLoading(false)
|
| 354 |
-
},
|
| 355 |
-
// onError: Firestore blocked by ad-blocker → instant REST fallback
|
| 356 |
-
() => {
|
| 357 |
-
clearTimeout(fallbackTimer)
|
| 358 |
-
goRest()
|
| 359 |
-
}
|
| 360 |
-
)
|
| 361 |
-
|
| 362 |
-
return () => { unsubRef?.(); clearTimeout(fallbackTimer); if (restInterval) clearInterval(restInterval) }
|
| 363 |
}, [fetchRest])
|
| 364 |
|
| 365 |
function handleSort(field) {
|
|
@@ -402,7 +371,7 @@ export default function HistoryPage() {
|
|
| 402 |
<div>
|
| 403 |
<h1 style={{ fontSize: 28, fontFamily: 'var(--font-display)' }}>History</h1>
|
| 404 |
<p className="mt-1 text-sm" style={{ color: 'var(--text-secondary)', fontFamily: 'var(--font-body)' }}>
|
| 405 |
-
{
|
| 406 |
{' — '}<span className="tabular" style={{ fontFamily: 'var(--font-mono)' }}>{entries.length}</span> records
|
| 407 |
</p>
|
| 408 |
</div>
|
|
@@ -412,23 +381,12 @@ export default function HistoryPage() {
|
|
| 412 |
fontFamily: 'var(--font-display)',
|
| 413 |
letterSpacing: '0.1em',
|
| 414 |
}}
|
| 415 |
-
aria-label=
|
| 416 |
<span className="w-1.5 h-1.5 rounded-full" style={{ background: 'currentColor' }} />
|
| 417 |
-
|
| 418 |
</div>
|
| 419 |
</header>
|
| 420 |
|
| 421 |
-
{/* ── Firestore blocked notice ───────────────── */}
|
| 422 |
-
{source === 'rest' && !loading && (
|
| 423 |
-
<div className="card p-3 flex items-center gap-2"
|
| 424 |
-
style={{ borderColor: 'rgba(217,119,6,0.3)', background: 'rgba(217,119,6,0.05)' }}>
|
| 425 |
-
<WifiOff size={13} style={{ color: 'var(--accent-gold)', flexShrink: 0 }} aria-hidden="true" />
|
| 426 |
-
<p className="text-xs" style={{ color: 'var(--accent-gold)', fontFamily: 'var(--font-body)' }}>
|
| 427 |
-
Firestore may be blocked by an ad blocker — using REST fallback. Whitelist <code>firestore.googleapis.com</code> to restore live updates.
|
| 428 |
-
</p>
|
| 429 |
-
</div>
|
| 430 |
-
)}
|
| 431 |
-
|
| 432 |
{/* ── Filter tabs ───────────────────────��────── */}
|
| 433 |
{!loading && entries.length > 0 && (
|
| 434 |
<div role="tablist" aria-label="Filter by verdict" className="flex gap-1 flex-wrap fade-up-2">
|
|
|
|
| 1 |
import { useEffect, useState, useCallback, useMemo } from 'react'
|
| 2 |
+
import { timeAgo, scoreColor } from '../utils/format.js'
|
|
|
|
| 3 |
import { PAGE_STYLE } from '../App.jsx'
|
| 4 |
import { api } from '../api'
|
| 5 |
import VerdictBadge from '../components/VerdictBadge.jsx'
|
| 6 |
import SkeletonCard from '../components/SkeletonCard.jsx'
|
| 7 |
+
import { Clock, RefreshCw, ChevronUp, ChevronDown, ChevronsUpDown, X, Loader2, FileText, Globe, ImageIcon, Video } from 'lucide-react'
|
| 8 |
|
| 9 |
|
| 10 |
/* ── Sort icon helper ─────────────────────────────────── */
|
|
|
|
| 310 |
export default function HistoryPage() {
|
| 311 |
const [entries, setEntries] = useState([])
|
| 312 |
const [loading, setLoading] = useState(true)
|
|
|
|
| 313 |
const [sort, setSort] = useState('timestamp')
|
| 314 |
const [dir, setDir] = useState('desc')
|
| 315 |
const [filter, setFilter] = useState('all') // 'all' | 'Credible' | 'Unverified' | 'Likely Fake'
|
|
|
|
| 326 |
}, [])
|
| 327 |
|
| 328 |
useEffect(() => {
|
| 329 |
+
fetchRest()
|
| 330 |
+
const interval = setInterval(fetchRest, 30_000)
|
| 331 |
+
return () => clearInterval(interval)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 332 |
}, [fetchRest])
|
| 333 |
|
| 334 |
function handleSort(field) {
|
|
|
|
| 371 |
<div>
|
| 372 |
<h1 style={{ fontSize: 28, fontFamily: 'var(--font-display)' }}>History</h1>
|
| 373 |
<p className="mt-1 text-sm" style={{ color: 'var(--text-secondary)', fontFamily: 'var(--font-body)' }}>
|
| 374 |
+
{'Polling via REST API'}
|
| 375 |
{' — '}<span className="tabular" style={{ fontFamily: 'var(--font-mono)' }}>{entries.length}</span> records
|
| 376 |
</p>
|
| 377 |
</div>
|
|
|
|
| 381 |
fontFamily: 'var(--font-display)',
|
| 382 |
letterSpacing: '0.1em',
|
| 383 |
}}
|
| 384 |
+
aria-label="Polling REST API">
|
| 385 |
<span className="w-1.5 h-1.5 rounded-full" style={{ background: 'currentColor' }} />
|
| 386 |
+
<RefreshCw size={11} aria-hidden="true" /> POLLING
|
| 387 |
</div>
|
| 388 |
</header>
|
| 389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 390 |
{/* ── Filter tabs ───────────────────────��────── */}
|
| 391 |
{!loading && entries.length > 0 && (
|
| 392 |
<div role="tablist" aria-label="Filter by verdict" className="flex gap-1 flex-wrap fade-up-2">
|