diff --git a/docs/02-build-layer-and-package.md b/docs/02-build-layer-and-package.md index 513be77..cedfc39 100644 --- a/docs/02-build-layer-and-package.md +++ b/docs/02-build-layer-and-package.md @@ -111,6 +111,29 @@ Bun обновляется отдельно от остальных: оркес полного прохода `bun test → tsc → compile → приёмка на Debian`, а не строки в общем патче. +### Известное ограничение: проверка типов frontend почти ничего не проверяет + +`pnpm run build:prod` выполняет `vite build && vue-tsc --noEmit`, но `vue-tsc` +здесь версии `0.35.0` (2022 год) и шаблоны Vue практически не типизирует. +Проверка проходит зелёной, не давая гарантии, которую обещает. + +Замер сделан: на паре `typescript@5.9` + `vue-tsc@2.2` тот же исходный код даёт +**около 155 ошибок типов** в четырёх файлах — почти все одного вида +(`possibly 'undefined'` при обращении к необязательным полям модели конфига +Hysteria в шаблоне) плюс несовместимость `DefaultRow` с `PeerVo` в слотах +таблицы пиров. + +Это не дефект безопасности и не блокер релиза: ошибки существуют в коде уже +сейчас и ни на что в рантайме не влияют. Но обновление typechecker'а тянет за +собой обновление `vue` (3.2 → 3.5, иначе `vue-tsc` 2.x не разбирает +`JSX.IntrinsicElements`), а за ним — `element-plus`, `pinia` и `vue-router`. +То есть это отдельная работа с собственной проверкой на живой панели, а не +строка в security-патче. + +Ограничение на безопасность не влияет: уязвимые пакеты frontend обновляются +независимо от версии typechecker'а, движением lockfile внутри уже объявленных +диапазонов (см. `pnpm.overrides` в `apps/frontend/package.json`). + ### Проверка зависимостей на уязвимости `tools/build/lib/security.sh` — обязательный шаг сборки между тестами админки и