@ecopages/ecopages-jsx 0.2.0-beta.27 → 0.2.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecopages/ecopages-jsx",
3
- "version": "0.2.0-beta.27",
3
+ "version": "0.2.0-beta.29",
4
4
  "description": "JSX integration plugin for Ecopages",
5
5
  "keywords": [
6
6
  "ecopages",
@@ -31,12 +31,12 @@
31
31
  "directory": "packages/integrations/ecopages-jsx"
32
32
  },
33
33
  "dependencies": {
34
- "@ecopages/mdx": "0.2.0-beta.27",
34
+ "@ecopages/mdx": "0.2.0-beta.29",
35
35
  "@mdx-js/mdx": "^3.1.1",
36
36
  "vfile": "^6.0.3"
37
37
  },
38
38
  "peerDependencies": {
39
- "@ecopages/core": "0.2.0-beta.27",
39
+ "@ecopages/core": "0.2.0-beta.29",
40
40
  "@ecopages/jsx": "0.3.0-beta.2",
41
41
  "@ecopages/radiant": "0.3.0-beta.2"
42
42
  }
@@ -1,6 +1,6 @@
1
1
  import type { ComponentRenderInput, ComponentRenderResult, EcoComponent, IntegrationRendererRenderOptions, RouteRendererBody } from '@ecopages/core';
2
- import { IntegrationRenderer, type RenderToResponseContext, type RouteModuleLoadOptions } from '@ecopages/core/route-renderer/integration-renderer';
3
- import type { ForeignChildRuntime } from '@ecopages/core/route-renderer/component-render-context';
2
+ import { IntegrationRenderer, type RenderToResponseContext, type RouteModuleLoadOptions } from '@ecopages/core/route-renderer/orchestration/integration-renderer';
3
+ import type { ForeignChildRuntime } from '@ecopages/core/route-renderer/orchestration/foreign-child/component-render-context';
4
4
  import { type JsxRenderable } from '@ecopages/jsx';
5
5
  import { type EcopagesJsxMdxPageModule } from './ecopages-jsx-mdx.js';
6
6
  import type { EcopagesJsxRendererOptions } from './ecopages-jsx.types.js';
@@ -1,6 +1,10 @@
1
1
  import {
2
2
  IntegrationRenderer
3
- } from "@ecopages/core/route-renderer/integration-renderer";
3
+ } from "@ecopages/core/route-renderer/orchestration/integration-renderer";
4
+ import {
5
+ getForeignSubtreeResolutionContextKey,
6
+ resolveOwningIntegrationRenderer
7
+ } from "@ecopages/core/route-renderer/orchestration/foreign-child/owning-renderer-resolution";
4
8
  import { createMarkupNodeLike } from "@ecopages/jsx";
5
9
  import { renderToString, withServerCustomElementRenderHook } from "@ecopages/jsx/server";
6
10
  import { ECOPAGES_JSX_PLUGIN_NAME } from "./ecopages-jsx.constants.js";
@@ -178,12 +182,26 @@ class EcopagesJsxRenderer extends IntegrationRenderer {
178
182
  };
179
183
  const content = await this.withCustomElementRenderHook(() => component(componentProps));
180
184
  const rendered = await this.renderJsx(content);
181
- const queuedForeignSubtreeResolution = await this.resolveQueuedForeignSubtreeHtml(
182
- rendered.html,
183
- this.getQueuedForeignSubtreeResolutionContext(input),
184
- (children, _runtimeContext, queuedResolutionsByToken, resolveToken) => this.renderQueuedForeignSubtreeChildren(children, queuedResolutionsByToken, resolveToken),
185
- "Ecopages JSX"
186
- );
185
+ const queuedForeignSubtreeResolution = await this.foreignSubtreeExecutionService.resolveQueuedHtml({
186
+ currentIntegrationName: this.name,
187
+ html: rendered.html,
188
+ runtimeContext: this.foreignSubtreeExecutionService.getQueuedRuntimeContext(
189
+ input,
190
+ getForeignSubtreeResolutionContextKey(this.name)
191
+ ),
192
+ queueLabel: "Ecopages JSX",
193
+ getOwningRenderer: (integrationName, rendererCache) => resolveOwningIntegrationRenderer({
194
+ appConfig: this.appConfig,
195
+ runtimeOrigin: this.runtimeOrigin,
196
+ currentIntegrationName: this.name,
197
+ currentRenderer: this,
198
+ integrationName,
199
+ cache: rendererCache
200
+ }),
201
+ applyAttributesToFirstElement: (resolvedHtml, attributes) => this.htmlTransformer.applyAttributesToFirstElement(resolvedHtml, attributes),
202
+ dedupeProcessedAssets: (assets2) => this.htmlTransformer.dedupeProcessedAssets(assets2),
203
+ renderQueuedChildren: (children, _runtimeContext, queuedResolutionsByToken, resolveToken) => this.renderQueuedForeignSubtreeChildren(children, queuedResolutionsByToken, resolveToken)
204
+ });
187
205
  const componentAssets = input.component.config?.dependencies && typeof this.assetProcessingService?.processDependencies === "function" ? await this.processComponentDependencies([input.component]) : [];
188
206
  const assets = this.htmlTransformer.dedupeProcessedAssets([
189
207
  ...this.renderSession.endCollectedAssetFrame(assetFrame),