# Upload module Скопируйте каталог `upload/` в проект и подключите picker: - `initUploadTable(config)` из `frontend/table/init_upload_table.js`; - локальный `fflate` до загрузки picker-модуля. `config` должен содержать `allowedExt`, а также ссылки на DOM-элементы `fileInputEl`, `folderInputEl`, `tableBodyEl` и `countEl`. Публичный API таблицы: - `pickFiles()` и `pickFolder()` — открыть системный выбор; - `getFiles()` — получить leaf-файлы с `path`, `name`, `size` и `file`; - `addFiles(files)` — добавить файлы программно; - `remove(id)` и `clear()` — удалить узел или очистить дерево. Picker поддерживает разрешённые документы, папки и вложенные ZIP, хранит исходные browser `File` objects и выполняет дедупликацию по пути и размеру. Загрузка на VM, backend sessions и upload API не используются. ## Legacy Каталоги `backend/` и старые ссылки на `uploadViaVM`/VM-буфер относятся к предыдущей архитектуре и сохранены как legacy-остатки. Для текущей picker-only интеграции они не нужны. Для ZIP перед ES-модулями загрузите локальный `fflate` из `site/static/vendor/`. Подробная таблица функций, входов, выходов и побочных эффектов находится в [`../docs/CODE-REFERENCE.md`](../docs/CODE-REFERENCE.md).