Skip to content

v1.13.1

Choose a tag to compare

@vovkabelov vovkabelov released this 14 May 13:34
· 12 commits to main since this release
  • build: реэкспорты из внешних расширений теперь компилируются в прямые присваивания (exports.Foo = dep.Foo) вместо live-binding геттеров через Object.defineProperty — фикс runtime-рекурсии «Maximum call stack size exceeded», когда два расширения делят один namespace
  • diag: новая команда chef diag re-exports — находит расширения, реэкспортирующие символы из других расширений, помечает критичные случаи (общий namespace, self-reference) и wildcard-реэкспорты
  • build: предупреждения при сборке о реэкспортах с общим namespace (CF1015) и циклических зависимостях между расширениями (CF1006) — оба с code frame на конкретной строке import в исходниках и подсказками по исправлению, включая Runtime.loadExtension() для отложенной загрузки
  • build: циклические импорты файлов внутри бандла теперь фильтруются — отчёт только по прямым (A → B → A), длинные цепочки оставлены команде chef diag circular-imports; добавлены подробные details про TDZ и способы починки
  • build: автоиндекс директорий в импортах TypeScript — import './lib' и import './lib/' корректно резолвятся в ./lib/index.{ts,tsx,mts,cts} (поведение как в Vite)

  • build: re-exports from external extensions now compile to plain assignments (exports.Foo = dep.Foo) instead of live-binding getters via Object.defineProperty — fixes the runtime "Maximum call stack size exceeded" crash when two extensions share a namespace
  • diag: new chef diag re-exports command — finds extensions that re-export symbols from other extensions, flags critical cases (shared namespace, self-reference) and wildcard re-exports
  • build: warnings during build for same-namespace re-exports (CF1015) and inter-extension circular dependencies (CF1006) — both with a code frame on the actual import line and concrete fix hints, including Runtime.loadExtension() for deferred loading
  • build: in-bundle file circular imports are now filtered — only direct cycles (A → B → A) are reported, longer chains are left to chef diag circular-imports; rich details explain the TDZ failure mode and how to fix
  • build: TypeScript directory imports auto-index — import './lib' and import './lib/' correctly resolve to ./lib/index.{ts,tsx,mts,cts} (Vite-like behaviour)