diff --git a/.changeset/scripts-modules.md b/.changeset/scripts-modules.md deleted file mode 100644 index 176bd02b..00000000 --- a/.changeset/scripts-modules.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -'@alfalab/scripts-modules': minor ---- - -Добавлены API для монтирования модулей в React Suspense и SSR: - -- `createLazyMounter` для клиентского монтирования модулей через `React.Suspense`; -- `createSsrMounter` из подпути `@alfalab/scripts-modules/ssr` для серверного рендеринга - mountable-модулей, передачи ресурсов через встроенный payload и последующей клиентской - гидрации без повторного запроса ресурсов; -- опциональные методы модулей `hydrate` и `update`, а также настройка доставки SSR-стилей: - inline по умолчанию или `` через `stylesMode: 'link'`. - -Стили module-federation модулей, отрисованные на сервере, переиспользуются на клиенте без -повторной загрузки и мигания интерфейса. - -`AruiAppManifest.css` и `createModuleFetcher` теперь принимают `string | string[]`. - -`createServerStateModuleFetcher` теперь использует стандартный `fetch` вместо -`XMLHttpRequest`, поэтому рантаймам без глобального `fetch` потребуется полифил. - -Подробнее: [документация `@alfalab/scripts-modules`](../packages/arui-scripts-modules/README.md#createssrmounter) -и [SSR-спецификация](../docs/specs/ssr-spec.md). diff --git a/.changeset/scripts-server.md b/.changeset/scripts-server.md deleted file mode 100644 index 2cb2731e..00000000 --- a/.changeset/scripts-server.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'@alfalab/scripts-server': minor ---- - -Добавлена поддержка серверного рендера модулей в `createGetModulesMethod`: - -- `ModuleDescriptor` теперь может принимать метод `renderToHtml`, который возвращает HTML - модуля для SSR-запросов; -- в ответ ресурсов модуля может попадать поле `html`, которое используется - `createSsrMounter` из `@alfalab/scripts-modules/ssr`; -- для SSR-запросов в ответ добавляются `styles` module-federation модулей, что позволяет - хост-серверу встроить стили при серверном рендере и избежать мигания интерфейса; для - обычных (не-SSR) запросов ответ остаётся прежним; -- экспортированы типы `RenderModuleToHtmlParams`, `SsrErrorMode` и - `CreateGetModulesMethodOptions`, включая настройку обработки ошибок SSR через - `ssrErrorMode`. - -Подробнее: [SSR-спецификация модулей](../docs/specs/ssr-spec.md). diff --git a/.changeset/scripts.md b/.changeset/scripts.md deleted file mode 100644 index 1fc790c3..00000000 --- a/.changeset/scripts.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'arui-scripts': minor ---- - -CSS module-federation модулей теперь попадает в манифест сборки на уровне каждого модуля. -Раньше стили модуля не были привязаны к его записи в манифесте, из-за чего хост-сервер не мог -отдать их при серверном рендере, и модуль отрисовывался без стилей до загрузки на клиенте. -Теперь стили доступны в записи модуля и могут быть встроены при SSR. Изменение аддитивно: для -сборок без модулей и для не-SSR потребления манифест остаётся прежним. - -Подробнее: [SSR-спецификация модулей, раздел 10](../docs/specs/ssr-spec.md#10-addendum-css-delivery-for-module-federation-modules).. diff --git a/.changeset/ssr-per-request-cache.md b/.changeset/ssr-per-request-cache.md deleted file mode 100644 index 51253456..00000000 --- a/.changeset/ssr-per-request-cache.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@alfalab/scripts-modules': minor ---- - -Серверный кэш ресурсов в `createSsrMounter` стал per-request: теперь он передаётся через -React-контекст провайдером `ModuleSsrRequestProvider` (`@alfalab/scripts-modules/ssr`), который -хост должен обернуть вокруг дерева на сервере с уникальным `requestId` на каждый HTTP-запрос. -Это исключает случайное переиспользование `moduleState` между одновременными запросами и утечку -записей кэша от прерванных рендеров. На клиенте провайдер не требуется. diff --git a/packages/arui-scripts-modules/CHANGELOG.md b/packages/arui-scripts-modules/CHANGELOG.md index d9fcbb46..6a9f5ca3 100644 --- a/packages/arui-scripts-modules/CHANGELOG.md +++ b/packages/arui-scripts-modules/CHANGELOG.md @@ -1,5 +1,35 @@ # @alfalab/scripts-modules +## 1.11.0 + +### Minor Changes + +- [#532](https://github.com/core-ds/arui-scripts/pull/532) [`b82a10c`](https://github.com/core-ds/arui-scripts/commit/b82a10c4e90e625ff538f47528de0869f798d6d4) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Добавлены API для монтирования модулей в React Suspense и SSR: + + - `createLazyMounter` для клиентского монтирования модулей через `React.Suspense`; + - `createSsrMounter` из подпути `@alfalab/scripts-modules/ssr` для серверного рендеринга + mountable-модулей, передачи ресурсов через встроенный payload и последующей клиентской + гидрации без повторного запроса ресурсов; + - опциональные методы модулей `hydrate` и `update`, а также настройка доставки SSR-стилей: + inline по умолчанию или `` через `stylesMode: 'link'`. + + Стили module-federation модулей, отрисованные на сервере, переиспользуются на клиенте без + повторной загрузки и мигания интерфейса. + + `AruiAppManifest.css` и `createModuleFetcher` теперь принимают `string | string[]`. + + `createServerStateModuleFetcher` теперь использует стандартный `fetch` вместо + `XMLHttpRequest`, поэтому рантаймам без глобального `fetch` потребуется полифил. + + Подробнее: [документация `@alfalab/scripts-modules`](../packages/arui-scripts-modules/README.md#createssrmounter) + и [SSR-спецификация](../docs/specs/ssr-spec.md). + +- [#532](https://github.com/core-ds/arui-scripts/pull/532) [`4fa8be2`](https://github.com/core-ds/arui-scripts/commit/4fa8be235a824df207b4209201d9ff792f925860) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Серверный кэш ресурсов в `createSsrMounter` стал per-request: теперь он передаётся через + React-контекст провайдером `ModuleSsrRequestProvider` (`@alfalab/scripts-modules/ssr`), который + хост должен обернуть вокруг дерева на сервере с уникальным `requestId` на каждый HTTP-запрос. + Это исключает случайное переиспользование `moduleState` между одновременными запросами и утечку + записей кэша от прерванных рендеров. На клиенте провайдер не требуется. + ## 1.10.3 ### Patch Changes diff --git a/packages/arui-scripts-modules/package.json b/packages/arui-scripts-modules/package.json index 02793789..07fae766 100644 --- a/packages/arui-scripts-modules/package.json +++ b/packages/arui-scripts-modules/package.json @@ -1,6 +1,6 @@ { "name": "@alfalab/scripts-modules", - "version": "1.10.3", + "version": "1.11.0", "main": "./build/index.js", "module": "./build/esm/index.js", "typings": "./build/index.d.ts", diff --git a/packages/arui-scripts-server/CHANGELOG.md b/packages/arui-scripts-server/CHANGELOG.md index 51f194ef..2fd6a62c 100644 --- a/packages/arui-scripts-server/CHANGELOG.md +++ b/packages/arui-scripts-server/CHANGELOG.md @@ -1,5 +1,24 @@ # @alfalab/scripts-server +## 1.4.0 + +### Minor Changes + +- [#532](https://github.com/core-ds/arui-scripts/pull/532) [`b82a10c`](https://github.com/core-ds/arui-scripts/commit/b82a10c4e90e625ff538f47528de0869f798d6d4) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Добавлена поддержка серверного рендера модулей в `createGetModulesMethod`: + + - `ModuleDescriptor` теперь может принимать метод `renderToHtml`, который возвращает HTML + модуля для SSR-запросов; + - в ответ ресурсов модуля может попадать поле `html`, которое используется + `createSsrMounter` из `@alfalab/scripts-modules/ssr`; + - для SSR-запросов в ответ добавляются `styles` module-federation модулей, что позволяет + хост-серверу встроить стили при серверном рендере и избежать мигания интерфейса; для + обычных (не-SSR) запросов ответ остаётся прежним; + - экспортированы типы `RenderModuleToHtmlParams`, `SsrErrorMode` и + `CreateGetModulesMethodOptions`, включая настройку обработки ошибок SSR через + `ssrErrorMode`. + + Подробнее: [SSR-спецификация модулей](../docs/specs/ssr-spec.md). + ## 1.3.1 ### Patch Changes diff --git a/packages/arui-scripts-server/package.json b/packages/arui-scripts-server/package.json index 01cf942a..0c99a2f3 100644 --- a/packages/arui-scripts-server/package.json +++ b/packages/arui-scripts-server/package.json @@ -1,6 +1,6 @@ { "name": "@alfalab/scripts-server", - "version": "1.3.1", + "version": "1.4.0", "main": "./build/index.js", "typings": "./build/index.d.ts", "license": "MPL-2.0", diff --git a/packages/arui-scripts/CHANGELOG.md b/packages/arui-scripts/CHANGELOG.md index e94a56cf..02d98396 100644 --- a/packages/arui-scripts/CHANGELOG.md +++ b/packages/arui-scripts/CHANGELOG.md @@ -1,5 +1,17 @@ # arui-scripts +## 23.6.0 + +### Minor Changes + +- [#532](https://github.com/core-ds/arui-scripts/pull/532) [`b82a10c`](https://github.com/core-ds/arui-scripts/commit/b82a10c4e90e625ff538f47528de0869f798d6d4) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - CSS module-federation модулей теперь попадает в манифест сборки на уровне каждого модуля. + Раньше стили модуля не были привязаны к его записи в манифесте, из-за чего хост-сервер не мог + отдать их при серверном рендере, и модуль отрисовывался без стилей до загрузки на клиенте. + Теперь стили доступны в записи модуля и могут быть встроены при SSR. Изменение аддитивно: для + сборок без модулей и для не-SSR потребления манифест остаётся прежним. + + Подробнее: [SSR-спецификация модулей, раздел 10](../docs/specs/ssr-spec.md#10-addendum-css-delivery-for-module-federation-modules).. + ## 23.5.1 ### Patch Changes diff --git a/packages/arui-scripts/package.json b/packages/arui-scripts/package.json index 29bfa26e..a9974868 100644 --- a/packages/arui-scripts/package.json +++ b/packages/arui-scripts/package.json @@ -1,6 +1,6 @@ { "name": "arui-scripts", - "version": "23.5.1", + "version": "23.6.0", "main": "./build/index.js", "typings": "./build/index.d.ts", "exports": {