# Заимствованные компоненты оболочки «Макетки» Всё, что входит в поставку — и в серверный образ, и в то, что отдаётся браузеру, — с версиями, правообладателями, лицензиями и ролью каждого компонента. Плюс инструменты, использованные при создании. Перечень **считается по фактическому составу поставки** (см. «Состав»), а не поддерживается вручную: список, который пишут руками, расходится с поставкой молча. ## Состав Перечень считается по ФАКТУ поставки, а не пишется руками: браузерная часть — по метафайлу esbuild (что реально попало в бандлы `/circuits/`), серверная — по `package.json` и `package-lock.json` (что реально приезжает в образ). Пересчитать: `npm run third-party`. Сверка идёт в сборке (`npm run check:third-party`) — новая зависимость без записи в перечне роняет сборку. Это и есть инвариант INV-008. Всего компонентов: 46. Пересчитывается командой `npm run third-party`. ### Компоненты вне npm | Компонент | Версия | Правообладатель | Лицензия | Где используется | Источник | |---|---|---|---|---|---| | Node.js | — | OpenJS Foundation | MIT (плюс лицензии компонентов рантайма) | Среда выполнения оболочки (базовый образ) | https://github.com/nodejs/node/blob/main/LICENSE | | PostgreSQL | — | The PostgreSQL Global Development Group | PostgreSQL License (BSD-подобная) | Хранение работ, групп и учётных записей | https://www.postgresql.org/about/licence/ | | nginx | — | Nginx, Inc. и участники проекта | BSD-2-Clause | Фронт домена (образ стека cad) | https://nginx.org/LICENSE | | Debian GNU/Linux | — | Software in the Public Interest, Inc. и участники проекта | Составная: DFSG-совместимые лицензии компонентов дистрибутива | Базовая операционная система контейнеров | https://www.debian.org/legal/licenses/ | | arduino-cli | — | Arduino SA | GPL-3.0 с исключением для скомпилированных скетчей | Компиляция программ учеников (отдельный стек circuits-builder, офлайн) | https://github.com/arduino/arduino-cli/blob/master/LICENSE.txt | | avr-gcc (пакет arduino:avr) | — | Free Software Foundation, Inc. | GPL-3.0 с исключением GCC Runtime Library Exception | Компилятор в составе сборщика скетчей (офлайн) | https://gcc.gnu.org/onlinedocs/gcc/Copying.html | | Russian Trusted Root CA + Sub CA | — | Минцифры России | Публикуется оператором для свободного применения | Доверие к сертификатам российской платёжной инфраструктуры (Модульбанк) | https://www.gosuslugi.ru/crt | | Яндекс.Метрика (счётчик 112319654) | — | ООО «ЯНДЕКС» | Пользовательское соглашение сервиса, безвозмездное использование | Счёт посещаемости всех страниц сервиса; код загружается в браузер с mc.yandex.ru. Российский сервис, данные обрабатываются в РФ | https://yandex.ru/legal/metrica_termsofuse/ | ### Пакеты npm | Компонент | Версия | Правообладатель | Лицензия | Где используется | Источник | |---|---|---|---|---|---| | @codemirror/autocomplete | 6.20.3 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/autocomplete | | @codemirror/commands | 6.11.0 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/commands | | @codemirror/lang-cpp | 6.0.3 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/codemirror/lang-cpp | | @codemirror/language | 6.12.4 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/language | | @codemirror/lint | 6.9.7 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/lint | | @codemirror/search | 6.7.1 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/search | | @codemirror/state | 6.7.1 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/state | | @codemirror/view | 6.43.9 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/codemirror/view | | @lezer/common | 1.5.2 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/lezer-parser/common | | @lezer/cpp | 1.1.6 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/lezer/cpp | | @lezer/highlight | 1.2.3 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/lezer-parser/highlight | | @lezer/lr | 1.4.10 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/lezer/lr | | @lit/reactive-element | 2.1.2 | Google LLC | BSD-3-Clause | В браузере (бандл схемотехники) | https://github.com/lit/lit | | @marijn/find-cluster-break | 1.0.4 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/marijn/find-cluster-break | | @wokwi/elements | 1.9.2 | Uri Shaked | MIT | В браузере (бандл схемотехники) | https://github.com/wokwi/wokwi-elements | | avr8js | 0.21.0 | Uri Shaked | MIT | В браузере (бандл схемотехники) | https://github.com/wokwi/avr8js | | codemirror | 6.0.2 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/codemirror/basic-setup | | crelt | 1.0.7 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://code.haverbeke.berlin/marijn/crelt | | lit | 3.3.3 | Google LLC | BSD-3-Clause | В браузере (бандл схемотехники) | https://github.com/lit/lit | | lit-element | 4.2.2 | Google LLC | BSD-3-Clause | В браузере (бандл схемотехники) | https://github.com/lit/lit | | lit-html | 3.3.3 | Google LLC | BSD-3-Clause | В браузере (бандл схемотехники) | https://github.com/lit/lit | | style-mod | 4.1.3 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/marijnh/style-mod | | w3c-keyname | 2.2.8 | Marijn Haverbeke | MIT | В браузере (бандл схемотехники) | https://github.com/marijnh/w3c-keyname | | nodemailer | — | Andris Reinman | MIT-0 | На сервере (образ оболочки) | https://github.com/nodemailer/nodemailer | | pg | — | Brian Carlson | MIT | На сервере (образ оболочки) | https://github.com/brianc/node-postgres | | pg-connection-string | — | Blaine Bublitz | MIT | На сервере (образ оболочки) | https://github.com/brianc/node-postgres | | pg-int8 | — | Charmander <~@charmander.me> | ISC | На сервере (образ оболочки) | https://github.com/charmander/pg-int8 | | pg-pool | — | Brian M. Carlson | MIT | На сервере (образ оболочки) | https://github.com/brianc/node-postgres | | pg-protocol | — | - 2021 Brian Carlson | MIT | На сервере (образ оболочки) | https://github.com/brianc/node-postgres | | pg-types | — | Brian M. Carlson | MIT | На сервере (образ оболочки) | https://github.com/brianc/node-pg-types | | pgpass | — | Hannes Hörl | MIT | На сервере (образ оболочки) | https://github.com/hoegaarden/pgpass | | postgres-array | — | Ben Drucker | MIT | На сервере (образ оболочки) | bendrucker/postgres-array | | postgres-bytea | — | Ben Drucker | MIT | На сервере (образ оболочки) | bendrucker/postgres-bytea | | postgres-date | — | Ben Drucker | MIT | На сервере (образ оболочки) | bendrucker/postgres-date | | postgres-interval | — | Ben Drucker | MIT | На сервере (образ оболочки) | bendrucker/postgres-interval | | split2 | — | Matteo Collina | ISC | На сервере (образ оболочки) | https://github.com/mcollina/split2 | | xtend | — | Raynos | MIT | На сервере (образ оболочки) | https://github.com/Raynos/xtend | | esbuild | — | Evan Wallace | MIT | Инструмент сборки (в поставку не входит) | https://github.com/evanw/esbuild | ## Обязательства по лицензиям Все перечисленные компоненты распространяются по разрешительным лицензиям (MIT, BSD, Apache-2.0, ISC) либо по лицензиям с исключением, снимающим требование к производному произведению (arduino-cli, avr-gcc). Обязательство у всех одно и то же: **сохранять уведомления об авторских правах и текст лицензии**. Тексты лежат в `node_modules/<пакет>/` и попадают в образ вместе с зависимостями; для компонентов вне npm — по ссылкам из таблицы. **Копилефт и граница лицензий.** В самой оболочке копилефт-компонентов нет: всё, что попадает в её образ и в браузер, распространяется по разрешительным лицензиям. Два копилефт-компонента живут в ОТДЕЛЬНЫХ образах и не связываются с кодом оболочки: - **редактор трёхмерных моделей** (форк Chili3D, AGPL-3.0) — стек `cad`, взаимодействие только по HTTP; исходный текст опубликован целиком, ссылка в подвале сервиса и на странице «О программе». Граница лицензий описана в ADR `2026-08-28-1300`, состав — в `THIRD-PARTY.md` репозитория `cmit-ru/chili3d`; - **сборщик программ учеников** (arduino-cli и avr-gcc, GPL-3.0) — стек `circuits-builder`, вызывается по внутренней сети. Обе программы содержат исключение, прямо разрешающее распространять результат компиляции без наследования лицензии: скетч ребёнка и наша оболочка производными произведениями не становятся.