Files
debian a80fdd9053
Deploy PROD / deploy (push) Successful in 4m32s
Rozmycie tla wlasnej kamery
Przycisk w sali, ktory kazdy z wlasna kamera wlacza i wylacza sam,
w trakcie spotkania. Pokazuje sie wylacznie osobie z wlaczona kamera,
wiec uczestnik bez prawa publikacji obrazu nigdy go nie zobaczy.

`@livekit/track-processors` wchodzi jako nowa zaleznosc, poza lista
z CLAUDE.md: uzgodnione. Ladowany leniwie, bo ciagnie za soba MediaPipe:
import statyczny doliczalby kilka MB do pakietu KAZDEGO wejscia na sale,
takze uczestnikom bez kamery. Sprawdzone na zbudowanym pakiecie: MediaPipe
siedzi w osobnym chunku, glowny pakiet nie urosl.

Pliki modelu ida z WLASNEJ domeny, nie z CDN: instancja w sieci zamknietej
ma miec rozmycie tak samo, a CSP nie musi dopuszczac obcych hostow.
Model (244 kB) lezy w repozytorium, a zestaw WASM kopiuje sie przy budowaniu
obrazu z `node_modules`: wazy kilkanascie MB i musi odpowiadac wersji
pakietu, wiec w repozytorium puchlby w historii i po cichu rozjezdzal sie
przy kazdej aktualizacji.

Podmiany tla na obraz swiadomie NIE ma. Segmentacja obcina wlosy i dlonie
przy slabym swietle, a kafelek wideo jest za maly, zeby cokolwiek na tle
bylo czytelne. Reklama ma wlasne miejsce w banerach, ktore sa przy tym
mierzone.

`VideoConference` zostaje nietkniety: przycisk jest obok, wiec aktualizacja
biblioteki nie wymaga odtwarzania niczego u nas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 09:45:07 +02:00

54 lines
1.7 KiB
JSON

{
"name": "webinar-frontend",
"private": true,
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"preview": "vite preview"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@jitsi/react-sdk": "^1.4.4",
"@livekit/components-react": "^2.9.24",
"@livekit/components-styles": "^1.2.0",
"@livekit/track-processors": "^0.7.2",
"@mui/x-charts": "^9.12.0",
"@stomp/stompjs": "^7.3.0",
"@tailwindcss/typography": "^0.5.20",
"@tanstack/react-query": "^5.62.11",
"@tiptap/extension-image": "^2.27.2",
"@tiptap/extension-link": "^2.27.2",
"@tiptap/extension-text-align": "^2.27.2",
"@tiptap/react": "^2.27.2",
"@tiptap/starter-kit": "^2.27.2",
"@zoom/meetingsdk": "^6.2.0",
"axios": "^1.7.9",
"livekit-client": "^2.22.1",
"lucide-react": "^1.35.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.28.1"
},
"//overrides": "@zoom/meetingsdk deklaruje sztywny peer react@18.2.0. Wymuszamy react z projektu (linia 18, w pelni zgodna), zeby npm ci nie przerywal bledem ERESOLVE. Celowane na react, wiec nie rozluznia rozwiazywania pozostalych peer deps (np. @mui/material dla @mui/x-charts).",
"overrides": {
"@zoom/meetingsdk": {
"react": "$react",
"react-dom": "$react-dom"
}
},
"devDependencies": {
"@types/dom-mediacapture-transform": "^0.1.9",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.17",
"typescript": "~5.6.3",
"vite": "^6.0.7"
}
}