Dev override seam: модель угроз и отключение
Механизм для разработки, который есть в каждой опубликованной сборке: как он работает, почему это безопасно и как убрать его из своего бандла.
Что это такое
Каждая опубликованная точка входа @bloklabs/core сначала проверяет globalThis.__BLOK_DEV_OVERRIDE__ и только потом откатывается на встроенную реализацию. Это механизм для собственных инструментов разработки Blok: он позволяет подставить локальную сборку в работающее приложение через расширение браузера.
Почему это безопасно
Это пассивное чтение в пределах текущего окружения — blok никогда не делает fetch, не вызывает eval и не разрешает URL, а сам механизм никогда не читает localStorage, мета-теги, параметры URL или атрибуты DOM, поэтому он ничего не даёт атакующему, который ещё не может выполнять код в вашем origin. Значения, являющиеся DOM-узлами, отклоняются, что закрывает DOM clobbering.
Как отключить
Если вы хотите полностью убрать эту ветку из своей сборки, задайте для каждой точки входа алиас на её файл реализации. Используйте алиас с точным совпадением (регулярное выражение) — обычный строковый ключ вида '@bloklabs/core' совпадает по префиксу и со всеми подпутями — например, для Vite/Rollup: resolve: { alias: [{ find: /^@bloklabs\/core$/, replacement: '@bloklabs/core/dist/blok-impl.mjs' }] }. Каждой точке входа с подпутём (/tools, /full, …) нужна своя пара, указывающая на её модуль -impl.