Про сайт

Сторонні бібліотеки та vendoring

Як цей навчальний workspace використовує сторонні бібліотеки, локальні vendor-файли та CDN-залежності.

## Сторонні бібліотеки Ця платформа використовує невелику кількість сторонніх open-source бібліотек для роботи браузерних навчальних інструментів. Частина файлів зберігається локально і віддається як статичні файли цього сайту. Інші залежності залишаються завантаженими з зафіксованих CDN URL, якщо vendoring створив би зайве навантаження на підтримку або якщо сам runtime навмисно працює через мережеві пакети. ## Локальні vendor-файли Деякі легкі або важливі runtime-залежності віддаються локально: підсвічування коду, assets терміналу, браузерна підтримка SQLite та runtimes для регулярних виразів. Такий підхід зменшує залежність звичайного завантаження сторінок від зовнішніх CDN і дозволяє оновлювати критичні UI/runtime частини разом з основним деплоєм сайту. ## CDN-залежності runtime Великі або чутливі до власного loader-а runtimes, зокрема Monaco Editor і Pyodide, можуть і надалі завантажуватися з зафіксованих CDN URL. Окремі JavaScript-бібліотеки в онлайн IDE, наприклад бібліотеки для графіків або візуалізації, є sandbox-залежностями, які користувач обирає самостійно. Вони виконуються в ізольованому sandbox origin, а не в основному origin сайту з авторизацією. Там, де браузерний API завантаження це підтримує, CDN-скрипти використовують Subresource Integrity. Деякі worker API не мають native SRI; для таких випадків використовуються зафіксовані версії, CSP allowlist, ізоляція sandbox, обробка runtime-помилок і smoke-тести. ## Ліцензії та власність Сторонні бібліотеки, фреймворки, торговельні марки та логотипи залишаються власністю їхніх авторів і maintainers. Vendor-файли ліцензій і notices зберігаються поруч із відповідними статичними assets там, де це потрібно. Ця сторінка є зрозумілим коротким описом, але не замінює оригінальні тексти ліцензій. ## Основні сторонні бібліотеки Платформа використовує сторонні open-source проєкти, зокрема: - Monaco Editor — браузерний редактор коду. - Pyodide — Python runtime для WebAssembly. - Xterm.js — компонент UI терміналу. - Prism — підсвічування синтаксису. - sql.js — SQLite, скомпільований у WebAssembly. - XRegExp, PCRE2 WASM та Oniguruma — рушії регулярних виразів. - D3, Chart.js, p5.js, Three.js, Lodash, Papa Parse, Marked, js-yaml та подібні бібліотеки — необов'язкові sandbox/runtime залежності, які обирає користувач. Файли ліцензій і notices для vendored бібліотек надаються поруч із відповідними статичними assets там, де це потрібно.