@ecopages/core 0.2.0-alpha.8 → 0.2.1
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/CHANGELOG.md +18 -11
- package/README.md +23 -26
- package/package.json +76 -58
- package/src/adapters/README.md +2 -2
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +4 -12
- package/src/adapters/bun/create-app.js +4 -5
- package/src/adapters/bun/hmr-manager.d.ts +4 -4
- package/src/adapters/bun/hmr-manager.js +8 -8
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -2
- package/src/adapters/bun/server-adapter.d.ts +5 -5
- package/src/adapters/bun/server-adapter.js +6 -5
- package/src/adapters/bun/server-lifecycle.d.ts +4 -4
- package/src/adapters/bun/server-lifecycle.js +2 -2
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +1 -5
- package/src/adapters/index.js +1 -7
- package/src/adapters/node/create-app.d.ts +6 -9
- package/src/adapters/node/create-app.js +12 -6
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +2 -2
- package/src/adapters/node/node-hmr-manager.js +3 -3
- package/src/adapters/node/server-adapter.d.ts +4 -4
- package/src/adapters/node/server-adapter.js +13 -12
- package/src/adapters/node/static-content-server.d.ts +1 -1
- package/src/adapters/node/static-content-server.js +1 -1
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/adapters/shared/define-api-handler.d.ts +1 -1
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +2 -2
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +1 -1
- package/src/adapters/shared/fs-server-response-factory.d.ts +2 -2
- package/src/adapters/shared/fs-server-response-factory.js +1 -1
- package/src/adapters/shared/fs-server-response-matcher.d.ts +1 -1
- package/src/adapters/shared/hmr-entrypoint-registrar.js +1 -1
- package/src/adapters/shared/hmr-html-response.d.ts +1 -1
- package/src/adapters/shared/render-context.d.ts +2 -1
- package/src/adapters/shared/render-context.js +3 -1
- package/src/adapters/shared/runtime-bootstrap.d.ts +1 -1
- package/src/adapters/shared/runtime-bootstrap.js +1 -1
- package/src/adapters/shared/server-adapter.d.ts +1 -1
- package/src/adapters/shared/server-adapter.js +5 -1
- package/src/adapters/shared/server-route-handler.d.ts +4 -4
- package/src/adapters/shared/server-route-handler.js +3 -3
- package/src/adapters/shared/server-static-builder.d.ts +5 -5
- package/src/adapters/shared/server-static-builder.js +5 -4
- package/src/build/README.md +19 -13
- package/src/build/build-adapter.d.ts +67 -20
- package/src/build/build-adapter.js +420 -19
- package/src/build/dev-build-coordinator.d.ts +10 -12
- package/src/build/dev-build-coordinator.js +8 -15
- package/src/build/esbuild-build-adapter.d.ts +6 -0
- package/src/build/esbuild-build-adapter.js +94 -11
- package/src/build/runtime-build-executor.d.ts +5 -4
- package/src/build/runtime-build-executor.js +5 -3
- package/src/build/runtime-specifier-alias-plugin.js +19 -15
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +5 -2
- package/src/config/config-builder.d.ts +25 -2
- package/src/config/config-builder.js +44 -7
- package/src/declarations.d.ts +1 -1
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +83 -0
- package/src/eco/eco.js +19 -48
- package/src/eco/eco.types.d.ts +1 -1
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +1 -1
- package/src/eco/lazy-injector-map.d.ts +1 -1
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/js-hmr-strategy.js +2 -2
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +3 -2
- package/src/index.js +15 -4
- package/src/integrations/ghtml/ghtml-renderer.d.ts +6 -1
- package/src/integrations/ghtml/ghtml-renderer.js +29 -28
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -2
- package/src/integrations/ghtml/ghtml.plugin.js +2 -2
- package/src/plugins/README.md +1 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
- package/src/plugins/eco-component-meta-plugin.js +26 -20
- package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
- package/src/plugins/foreign-jsx-override-plugin.js +35 -0
- package/src/plugins/integration-plugin.d.ts +99 -33
- package/src/plugins/integration-plugin.js +68 -21
- package/src/plugins/processor.d.ts +2 -2
- package/src/plugins/processor.js +2 -2
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +54 -84
- package/src/route-renderer/README.md +14 -20
- package/src/route-renderer/orchestration/component-render-context.d.ts +83 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +233 -76
- package/src/route-renderer/orchestration/integration-renderer.js +500 -143
- package/src/route-renderer/orchestration/queued-boundary-runtime.service.d.ts +93 -0
- package/src/route-renderer/orchestration/queued-boundary-runtime.service.js +155 -0
- package/src/route-renderer/orchestration/render-execution.service.d.ts +11 -71
- package/src/route-renderer/orchestration/render-execution.service.js +65 -80
- package/src/{eco/eco.utils.ts → route-renderer/orchestration/render-output.utils.d.ts} +10 -53
- package/src/route-renderer/orchestration/render-output.utils.js +65 -0
- package/src/route-renderer/orchestration/render-preparation.service.d.ts +2 -8
- package/src/route-renderer/orchestration/render-preparation.service.js +10 -17
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
- package/src/route-renderer/page-loading/dependency-resolver.js +10 -8
- package/src/route-renderer/page-loading/page-module-loader.d.ts +6 -4
- package/src/route-renderer/page-loading/page-module-loader.js +7 -5
- package/src/route-renderer/route-renderer.d.ts +5 -3
- package/src/route-renderer/route-renderer.js +13 -3
- package/src/router/README.md +79 -8
- package/src/router/client/navigation-coordinator.js +2 -2
- package/src/router/server/fs-router-scanner.d.ts +1 -1
- package/src/router/server/fs-router-scanner.js +6 -1
- package/src/router/server/fs-router.d.ts +1 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -3
- package/src/services/assets/asset-processing-service/asset-processing.service.js +6 -6
- package/src/services/assets/asset-processing-service/asset.factory.d.ts +1 -1
- package/src/services/assets/asset-processing-service/asset.factory.js +2 -2
- package/src/services/assets/asset-processing-service/index.d.ts +5 -5
- package/src/services/assets/asset-processing-service/index.js +5 -5
- package/src/services/assets/asset-processing-service/processor.interface.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processor.registry.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +1 -1
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +1 -1
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +3 -3
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +2 -2
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -5
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +1 -1
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +15 -3
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +3 -3
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +1 -1
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +1 -1
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +1 -1
- package/src/services/assets/browser-bundle.service.d.ts +1 -1
- package/src/services/assets/browser-bundle.service.js +2 -2
- package/src/services/html/html-rewriter-provider.service.js +4 -1
- package/src/services/html/html-transformer.service.d.ts +2 -2
- package/src/services/html/html-transformer.service.js +4 -10
- package/src/services/invalidation/development-invalidation.service.d.ts +1 -1
- package/src/services/invalidation/development-invalidation.service.js +1 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +25 -0
- package/src/services/module-loading/app-module-loader.service.js +31 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +9 -1
- package/src/services/module-loading/app-server-module-transpiler.service.js +77 -2
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/{adapters/node/bootstrap-dependency-resolver.d.ts → services/module-loading/node-bootstrap-plugin.d.ts} +2 -24
- package/src/{adapters/node/bootstrap-dependency-resolver.js → services/module-loading/node-bootstrap-plugin.js} +42 -22
- package/src/services/module-loading/page-module-import.service.d.ts +4 -0
- package/src/services/module-loading/page-module-import.service.js +38 -9
- package/src/services/module-loading/server-module-transpiler.service.d.ts +3 -0
- package/src/services/module-loading/server-module-transpiler.service.js +4 -1
- package/src/services/runtime-state/dev-graph.service.d.ts +6 -6
- package/src/services/runtime-state/dev-graph.service.js +10 -10
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +1 -1
- package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +1 -1
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +1 -1
- package/src/static-site-generator/static-site-generator.d.ts +2 -2
- package/src/static-site-generator/static-site-generator.js +1 -1
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +24 -14
- package/src/{public-types.d.ts → types/public-types.d.ts} +30 -14
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.js +1 -1
- package/src/watchers/project-watcher.d.ts +4 -4
- package/src/watchers/project-watcher.js +4 -10
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/hmr-manager.ts +0 -409
- package/src/adapters/bun/index.ts +0 -2
- package/src/adapters/bun/server-adapter.ts +0 -499
- package/src/adapters/bun/server-lifecycle.ts +0 -124
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/bootstrap-dependency-resolver.ts +0 -301
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -6
- package/src/adapters/node/index.js +0 -11
- package/src/adapters/node/index.ts +0 -16
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -381
- package/src/adapters/node/runtime-adapter.d.ts +0 -46
- package/src/adapters/node/runtime-adapter.js +0 -306
- package/src/adapters/node/runtime-adapter.ts +0 -439
- package/src/adapters/node/server-adapter.ts +0 -488
- package/src/adapters/node/static-content-server.ts +0 -239
- package/src/adapters/node/write-runtime-manifest.d.ts +0 -26
- package/src/adapters/node/write-runtime-manifest.js +0 -12
- package/src/adapters/node/write-runtime-manifest.ts +0 -38
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/define-api-handler.ts +0 -66
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -140
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -127
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -205
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
- package/src/adapters/shared/hmr-html-response.ts +0 -52
- package/src/adapters/shared/render-context.ts +0 -120
- package/src/adapters/shared/runtime-bootstrap.ts +0 -79
- package/src/adapters/shared/server-adapter.ts +0 -489
- package/src/adapters/shared/server-route-handler.ts +0 -153
- package/src/adapters/shared/server-static-builder.ts +0 -166
- package/src/build/build-adapter.ts +0 -361
- package/src/build/build-manifest.ts +0 -54
- package/src/build/build-types.ts +0 -83
- package/src/build/dev-build-coordinator.ts +0 -221
- package/src/build/esbuild-build-adapter.ts +0 -559
- package/src/build/runtime-build-executor.ts +0 -34
- package/src/build/runtime-specifier-alias-plugin.ts +0 -58
- package/src/config/config-builder.ts +0 -706
- package/src/constants.ts +0 -54
- package/src/create-app.ts +0 -87
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -87
- package/src/eco/component-render-context.ts +0 -224
- package/src/eco/eco.ts +0 -242
- package/src/eco/eco.types.ts +0 -221
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/hmr-runtime.ts +0 -152
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
- package/src/hmr/hmr.test.e2e.ts +0 -66
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -96
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -232
- package/src/plugins/alias-resolver-plugin.ts +0 -63
- package/src/plugins/eco-component-meta-plugin.ts +0 -481
- package/src/plugins/integration-plugin.ts +0 -226
- package/src/plugins/processor.ts +0 -240
- package/src/plugins/runtime-capability.ts +0 -14
- package/src/public-types.ts +0 -1317
- package/src/route-renderer/component-graph/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph/component-graph.js +0 -72
- package/src/route-renderer/component-graph/component-graph.ts +0 -159
- package/src/route-renderer/component-graph/component-marker.d.ts +0 -52
- package/src/route-renderer/component-graph/component-marker.js +0 -46
- package/src/route-renderer/component-graph/component-marker.ts +0 -117
- package/src/route-renderer/component-graph/component-reference.d.ts +0 -10
- package/src/route-renderer/component-graph/component-reference.js +0 -19
- package/src/route-renderer/component-graph/component-reference.ts +0 -29
- package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +0 -77
- package/src/route-renderer/component-graph/marker-graph-resolver.js +0 -95
- package/src/route-renderer/component-graph/marker-graph-resolver.ts +0 -155
- package/src/route-renderer/orchestration/integration-renderer.ts +0 -790
- package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
- package/src/route-renderer/orchestration/render-preparation.service.ts +0 -476
- package/src/route-renderer/page-loading/dependency-resolver.ts +0 -612
- package/src/route-renderer/page-loading/page-module-loader.ts +0 -181
- package/src/route-renderer/route-renderer.ts +0 -115
- package/src/router/client/link-intent.test.browser.ts +0 -51
- package/src/router/client/link-intent.ts +0 -92
- package/src/router/client/navigation-coordinator.ts +0 -433
- package/src/router/server/fs-router-scanner.ts +0 -219
- package/src/router/server/fs-router.ts +0 -122
- package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -401
- package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/assets/asset-processing-service/assets.types.ts +0 -113
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -95
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
- package/src/services/assets/asset-processing-service/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -82
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -95
- package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -85
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -80
- package/src/services/assets/browser-bundle.service.ts +0 -53
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
- package/src/services/html/html-rewriter-provider.service.ts +0 -103
- package/src/services/html/html-transformer.service.ts +0 -279
- package/src/services/invalidation/development-invalidation.service.ts +0 -261
- package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -52
- package/src/services/module-loading/page-module-import.service.ts +0 -200
- package/src/services/module-loading/server-loader.service.d.ts +0 -96
- package/src/services/module-loading/server-loader.service.js +0 -32
- package/src/services/module-loading/server-loader.service.ts +0 -130
- package/src/services/module-loading/server-module-transpiler.service.ts +0 -105
- package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +0 -35
- package/src/services/runtime-manifest/node-runtime-manifest.service.js +0 -60
- package/src/services/runtime-manifest/node-runtime-manifest.service.ts +0 -101
- package/src/services/runtime-state/dev-graph.service.ts +0 -217
- package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
- package/src/services/runtime-state/runtime-specifier-registry.service.ts +0 -96
- package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
- package/src/services/validation/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -462
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/resolve-work-dir.ts +0 -45
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -41
- package/src/watchers/project-watcher.ts +0 -363
- /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
- /package/src/{constants.js → config/constants.js} +0 -0
- /package/src/{internal-types.js → services/module-loading/module-loading-types.js} +0 -0
- /package/src/{public-types.js → types/internal-types.js} +0 -0
|
@@ -3,27 +3,21 @@
|
|
|
3
3
|
* Every integration renderer should extend this class
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import type { EcoPagesAppConfig, IHmrManager } from '../../internal-types.js';
|
|
7
|
-
import type { ComponentRenderInput, ComponentRenderResult, EcoComponent, EcoComponentDependencies, EcoPageComponent, EcoPageFile, EcoPagesElement, GetMetadata, GetMetadataContext, GetStaticProps, HtmlTemplateProps, IntegrationRendererRenderOptions, PageMetadataProps, RouteRendererBody, RouteRendererOptions, RouteRenderResult } from '../../public-types.js';
|
|
6
|
+
import type { EcoPagesAppConfig, IHmrManager } from '../../types/internal-types.js';
|
|
7
|
+
import type { ComponentRenderInput, ComponentRenderResult, EcoComponent, EcoComponentDependencies, EcoPageComponent, EcoPageFile, EcoPagesElement, GetMetadata, GetMetadataContext, GetStaticProps, HtmlTemplateProps, IntegrationRendererRenderOptions, PageMetadataProps, RouteRendererBody, RouteRendererOptions, RouteRenderResult } from '../../types/public-types.js';
|
|
8
8
|
import { type AssetProcessingService, type ProcessedAsset } from '../../services/assets/asset-processing-service/index.js';
|
|
9
9
|
import { HtmlTransformerService } from '../../services/html/html-transformer.service.js';
|
|
10
10
|
import { HttpError } from '../../errors/http-error.js';
|
|
11
11
|
import { DependencyResolverService } from '../page-loading/dependency-resolver.js';
|
|
12
12
|
import { PageModuleLoaderService } from '../page-loading/page-module-loader.js';
|
|
13
|
-
import {
|
|
14
|
-
import { RenderExecutionService, type RenderExecutionGraphContext } from './render-execution.service.js';
|
|
13
|
+
import { RenderExecutionService } from './render-execution.service.js';
|
|
15
14
|
import { RenderPreparationService } from './render-preparation.service.js';
|
|
16
|
-
import type {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
componentRootAttributes?: Record<string, string>;
|
|
23
|
-
documentAttributes?: Record<string, string>;
|
|
24
|
-
mergeAssets?: boolean;
|
|
25
|
-
transformHtml?: boolean;
|
|
26
|
-
}
|
|
15
|
+
import type { ComponentBoundaryRuntime } from './component-render-context.js';
|
|
16
|
+
import { QueuedBoundaryRuntimeService, type QueuedBoundaryResolution, type QueuedBoundaryRuntimeContext } from './queued-boundary-runtime.service.js';
|
|
17
|
+
type BoundaryRenderDecisionInput = {
|
|
18
|
+
currentIntegration: string;
|
|
19
|
+
targetIntegration?: string;
|
|
20
|
+
};
|
|
27
21
|
/**
|
|
28
22
|
* Context for renderToResponse method.
|
|
29
23
|
*/
|
|
@@ -44,14 +38,46 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
44
38
|
protected htmlTransformer: HtmlTransformerService;
|
|
45
39
|
protected hmrManager?: IHmrManager;
|
|
46
40
|
protected resolvedIntegrationDependencies: ProcessedAsset[];
|
|
41
|
+
protected rendererModules?: unknown;
|
|
47
42
|
protected options: Required<IntegrationRendererRenderOptions>;
|
|
48
43
|
protected runtimeOrigin: string;
|
|
49
44
|
protected dependencyResolverService: DependencyResolverService;
|
|
50
45
|
protected pageModuleLoaderService: PageModuleLoaderService;
|
|
51
|
-
protected markerGraphResolver: MarkerGraphResolver;
|
|
52
46
|
protected renderPreparationService: RenderPreparationService;
|
|
53
47
|
protected renderExecutionService: RenderExecutionService;
|
|
48
|
+
protected readonly queuedBoundaryRuntimeService: QueuedBoundaryRuntimeService;
|
|
54
49
|
protected DOC_TYPE: string;
|
|
50
|
+
/**
|
|
51
|
+
* Reads the execution-scoped foreign renderer cache from one boundary input.
|
|
52
|
+
*
|
|
53
|
+
* Shared page/layout/document shell helpers pass one cache through
|
|
54
|
+
* `integrationContext` so repeated delegation to the same foreign integration
|
|
55
|
+
* can reuse a single initialized renderer instance during one render flow.
|
|
56
|
+
* The cache is deliberately scoped to the current render execution rather than
|
|
57
|
+
* stored on the renderer, which avoids leaking mutable integration state across
|
|
58
|
+
* requests while still preventing redundant renderer initialization.
|
|
59
|
+
*
|
|
60
|
+
* @param integrationContext - Optional boundary context carried with one render input.
|
|
61
|
+
* @returns The current execution cache when present.
|
|
62
|
+
*/
|
|
63
|
+
private getBoundaryRendererCache;
|
|
64
|
+
private getRegisteredBoundaryOwner;
|
|
65
|
+
/**
|
|
66
|
+
* Attaches an execution-scoped foreign renderer cache to one boundary input.
|
|
67
|
+
*
|
|
68
|
+
* Foreign-owned page, layout, or document shells may delegate several times in
|
|
69
|
+
* the same render flow. Threading the cache through `integrationContext`
|
|
70
|
+
* preserves renderer reuse without changing the public boundary input contract.
|
|
71
|
+
* Existing integration-specific context is preserved and augmented.
|
|
72
|
+
*
|
|
73
|
+
* @param input - Original boundary render input.
|
|
74
|
+
* @param rendererCache - Execution-scoped renderer cache to propagate.
|
|
75
|
+
* @returns Boundary input augmented with the shared renderer cache.
|
|
76
|
+
*/
|
|
77
|
+
private withBoundaryRendererCache;
|
|
78
|
+
protected getRendererModuleValue(key: string): unknown;
|
|
79
|
+
protected getRendererModuleString(key: string): string | undefined;
|
|
80
|
+
protected getRendererBootstrapDependencies(partial?: boolean): ProcessedAsset[];
|
|
55
81
|
setHmrManager(hmrManager: IHmrManager): void;
|
|
56
82
|
/**
|
|
57
83
|
* Build response headers with optional custom headers.
|
|
@@ -82,10 +108,144 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
82
108
|
* @returns Resolved processed assets
|
|
83
109
|
*/
|
|
84
110
|
protected prepareViewDependencies(view: EcoComponent, layout?: EcoComponent): Promise<ProcessedAsset[]>;
|
|
85
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Merges component-scoped assets into the active HTML transformer state.
|
|
113
|
+
*
|
|
114
|
+
* Explicit page, layout, and document shell composition can produce assets at
|
|
115
|
+
* each boundary. This helper deduplicates those groups and folds them back into
|
|
116
|
+
* the transformer so downstream HTML finalization sees one canonical asset set.
|
|
117
|
+
*
|
|
118
|
+
* @param assetGroups - Optional groups of processed assets to merge.
|
|
119
|
+
* @returns The deduplicated asset subset contributed by this merge operation.
|
|
120
|
+
*/
|
|
121
|
+
protected appendProcessedDependencies(...assetGroups: Array<readonly ProcessedAsset[] | undefined>): ProcessedAsset[];
|
|
122
|
+
/**
|
|
123
|
+
* Resolves metadata for explicit view rendering.
|
|
124
|
+
*
|
|
125
|
+
* When a view declares a `metadata()` function, that contract owns the final
|
|
126
|
+
* metadata for the explicit render. Otherwise the app-level default metadata is
|
|
127
|
+
* reused so explicit routes and page-module routes share the same fallback.
|
|
128
|
+
*
|
|
129
|
+
* @param view - View component being rendered.
|
|
130
|
+
* @param props - Props passed to the view.
|
|
131
|
+
* @returns Resolved metadata for the final document shell.
|
|
132
|
+
*/
|
|
133
|
+
protected resolveViewMetadata<P>(view: EcoComponent<P>, props: P): Promise<PageMetadataProps>;
|
|
134
|
+
/**
|
|
135
|
+
* Renders one explicit view response in partial mode.
|
|
136
|
+
*
|
|
137
|
+
* Same-integration views can optionally stream or render inline via the caller's
|
|
138
|
+
* `renderInline()` hook. Once a view may cross integration boundaries, this
|
|
139
|
+
* helper routes the render through `renderComponentBoundary()` instead so mixed
|
|
140
|
+
* shells can reuse the execution-scoped renderer cache and resolve nested
|
|
141
|
+
* foreign ownership before the partial response is returned.
|
|
142
|
+
*
|
|
143
|
+
* @param input - View render options for the partial response.
|
|
144
|
+
* @returns HTML response for the partial render.
|
|
145
|
+
*/
|
|
146
|
+
protected renderPartialViewResponse<P>(input: {
|
|
147
|
+
view: EcoComponent<P>;
|
|
148
|
+
props: P;
|
|
149
|
+
ctx: RenderToResponseContext;
|
|
150
|
+
renderInline?: () => Promise<BodyInit>;
|
|
151
|
+
transformHtml?: (html: string) => string;
|
|
152
|
+
}): Promise<Response>;
|
|
153
|
+
/**
|
|
154
|
+
* Renders an explicit view through optional layout and document shells.
|
|
155
|
+
*
|
|
156
|
+
* This helper is the shared explicit-route path for string-oriented and mixed
|
|
157
|
+
* integrations. It prepares view dependencies, resolves metadata, and composes
|
|
158
|
+
* view, layout, and html template boundaries with one execution-scoped renderer
|
|
159
|
+
* cache so repeated foreign shell delegation can reuse initialized renderers
|
|
160
|
+
* during the same render flow.
|
|
161
|
+
*
|
|
162
|
+
* @param input - View, props, and optional layout metadata for the render.
|
|
163
|
+
* @returns HTML response for the explicit view render.
|
|
164
|
+
*/
|
|
165
|
+
protected renderViewWithDocumentShell<P>(input: {
|
|
166
|
+
view: EcoComponent<P>;
|
|
167
|
+
props: P;
|
|
168
|
+
ctx: RenderToResponseContext;
|
|
169
|
+
layout?: EcoComponent;
|
|
170
|
+
}): Promise<Response>;
|
|
171
|
+
/**
|
|
172
|
+
* Renders a route page through optional layout and document shells.
|
|
173
|
+
*
|
|
174
|
+
* Route rendering and explicit view rendering now share the same boundary-owned
|
|
175
|
+
* shell composition model. This helper composes page, layout, and html template
|
|
176
|
+
* boundaries while threading one execution-scoped renderer cache through every
|
|
177
|
+
* delegated boundary so foreign shell ownership remains stable and renderer
|
|
178
|
+
* initialization is reused inside the current request.
|
|
179
|
+
*
|
|
180
|
+
* @param input - Page, layout, document, and metadata inputs for the route render.
|
|
181
|
+
* @returns Final serialized document HTML including the doctype prefix.
|
|
182
|
+
*/
|
|
183
|
+
protected renderPageWithDocumentShell(input: {
|
|
184
|
+
page: {
|
|
185
|
+
component: EcoComponent;
|
|
186
|
+
props: Record<string, unknown>;
|
|
187
|
+
};
|
|
188
|
+
layout?: {
|
|
189
|
+
component: EcoComponent;
|
|
190
|
+
props?: Record<string, unknown>;
|
|
191
|
+
};
|
|
192
|
+
htmlTemplate: EcoComponent;
|
|
193
|
+
metadata: PageMetadataProps;
|
|
194
|
+
pageProps: Record<string, unknown>;
|
|
195
|
+
documentProps?: Record<string, unknown>;
|
|
196
|
+
transformDocumentHtml?: (html: string) => string;
|
|
197
|
+
}): Promise<string>;
|
|
198
|
+
/**
|
|
199
|
+
* Renders one string-first component boundary and collects its assets.
|
|
200
|
+
*
|
|
201
|
+
* String-oriented integrations frequently share the same boundary contract:
|
|
202
|
+
* pass serialized children through props, coerce the render result to HTML, and
|
|
203
|
+
* attach any component-scoped dependencies. This helper centralizes that flow
|
|
204
|
+
* so integrations can opt into shared orchestration without repeating the same
|
|
205
|
+
* boundary boilerplate.
|
|
206
|
+
*
|
|
207
|
+
* @param input - Boundary render input.
|
|
208
|
+
* @param component - String-oriented component implementation to execute.
|
|
209
|
+
* @returns Structured component render result for orchestration paths.
|
|
210
|
+
*/
|
|
211
|
+
protected renderStringComponentBoundary(input: ComponentRenderInput, component: (props: Record<string, unknown>) => Promise<EcoPagesElement> | EcoPagesElement): Promise<ComponentRenderResult>;
|
|
212
|
+
protected getBoundaryTokenPrefix(): string;
|
|
213
|
+
protected getBoundaryRuntimeContextKey(): string;
|
|
214
|
+
protected getQueuedBoundaryRuntime<TContext extends QueuedBoundaryRuntimeContext>(input: ComponentRenderInput, runtimeContextKey?: string): TContext | undefined;
|
|
215
|
+
protected resolveQueuedBoundaryTokens(html: string, queuedResolutionsByToken: Map<string, QueuedBoundaryResolution>, resolveToken: (token: string) => Promise<string>): Promise<string>;
|
|
216
|
+
protected createQueuedBoundaryRuntime<TContext extends QueuedBoundaryRuntimeContext>(options: {
|
|
217
|
+
boundaryInput: ComponentRenderInput;
|
|
218
|
+
rendererCache: Map<string, IntegrationRenderer<any>>;
|
|
219
|
+
runtimeContextKey?: string;
|
|
220
|
+
tokenPrefix?: string;
|
|
221
|
+
createRuntimeContext?: (integrationContext: {
|
|
222
|
+
rendererCache?: Map<string, unknown>;
|
|
223
|
+
componentInstanceId?: string;
|
|
224
|
+
[key: string]: unknown;
|
|
225
|
+
}, rendererCache: Map<string, unknown>) => TContext;
|
|
226
|
+
}): ComponentBoundaryRuntime;
|
|
227
|
+
protected resolveRendererOwnedQueuedBoundaryHtml<TContext extends QueuedBoundaryRuntimeContext>(options: {
|
|
228
|
+
html: string;
|
|
229
|
+
runtimeContext?: TContext;
|
|
230
|
+
queueLabel: string;
|
|
231
|
+
renderQueuedChildren: (children: unknown, runtimeContext: TContext, queuedResolutionsByToken: Map<string, QueuedBoundaryResolution>, resolveToken: (token: string) => Promise<string>) => Promise<{
|
|
232
|
+
assets: ProcessedAsset[];
|
|
233
|
+
html?: string;
|
|
234
|
+
}>;
|
|
235
|
+
}): Promise<{
|
|
236
|
+
assets: ProcessedAsset[];
|
|
237
|
+
html: string;
|
|
238
|
+
}>;
|
|
239
|
+
/**
|
|
240
|
+
* Renders a string-first component, then resolves any queued foreign
|
|
241
|
+
* boundaries before returning final component HTML.
|
|
242
|
+
*/
|
|
243
|
+
protected renderStringComponentBoundaryWithQueuedForeignBoundaries(input: ComponentRenderInput, component: (props: Record<string, unknown>) => Promise<EcoPagesElement> | EcoPagesElement): Promise<ComponentRenderResult>;
|
|
244
|
+
constructor({ appConfig, assetProcessingService, resolvedIntegrationDependencies, rendererModules, runtimeOrigin, }: {
|
|
86
245
|
appConfig: EcoPagesAppConfig;
|
|
87
246
|
assetProcessingService: AssetProcessingService;
|
|
88
247
|
resolvedIntegrationDependencies?: ProcessedAsset[];
|
|
248
|
+
rendererModules?: unknown;
|
|
89
249
|
runtimeOrigin: string;
|
|
90
250
|
});
|
|
91
251
|
/**
|
|
@@ -126,6 +286,9 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
126
286
|
* @returns The metadata properties.
|
|
127
287
|
*/
|
|
128
288
|
protected getMetadataProps(getMetadata: GetMetadata | undefined, { props, params, query }: GetMetadataContext): Promise<PageMetadataProps>;
|
|
289
|
+
protected usesIntegrationPageImporter(_file: string): boolean;
|
|
290
|
+
protected importIntegrationPageFile(_file: string): Promise<EcoPageFile>;
|
|
291
|
+
protected normalizeImportedPageFile<TPageModule extends EcoPageFile>(_file: string, pageModule: TPageModule): TPageModule;
|
|
129
292
|
/**
|
|
130
293
|
* Imports the page file from the specified path.
|
|
131
294
|
* It uses dynamic import to load the file and returns the imported module.
|
|
@@ -223,11 +386,10 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
223
386
|
*
|
|
224
387
|
* Execution flow:
|
|
225
388
|
* 1. Build normalized render options (`prepareRenderOptions`).
|
|
226
|
-
* 2. Render
|
|
227
|
-
* 3.
|
|
228
|
-
* 4.
|
|
229
|
-
* 5.
|
|
230
|
-
* 6. Run HTML transformer with final dependency set.
|
|
389
|
+
* 2. Render the route body once.
|
|
390
|
+
* 3. Reject unresolved route-level boundary artifacts.
|
|
391
|
+
* 4. Optionally apply root attributes for page/component root boundaries.
|
|
392
|
+
* 5. Run HTML transformer with final dependency set.
|
|
231
393
|
*
|
|
232
394
|
* Stream-safety note: the first render result is normalized to a string once,
|
|
233
395
|
* then the pipeline continues with that immutable HTML value to avoid disturbed
|
|
@@ -238,23 +400,19 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
238
400
|
*/
|
|
239
401
|
execute(options: RouteRendererOptions): Promise<RouteRenderResult>;
|
|
240
402
|
/**
|
|
241
|
-
*
|
|
242
|
-
* for deferred marker resolution.
|
|
403
|
+
* Finalizes already-resolved HTML for explicit renderer-owned paths.
|
|
243
404
|
*
|
|
244
|
-
* This
|
|
245
|
-
*
|
|
246
|
-
*
|
|
405
|
+
* This keeps document and root-attribute stamping plus HTML transformation
|
|
406
|
+
* available after a renderer has completed nested boundary resolution without
|
|
407
|
+
* routing back through shared route execution.
|
|
247
408
|
*/
|
|
248
|
-
protected
|
|
409
|
+
protected finalizeResolvedHtml(options: {
|
|
249
410
|
html: string;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
* HTML transformer for full-document flows.
|
|
256
|
-
*/
|
|
257
|
-
protected finalizeCapturedHtmlRender(options: FinalizeCapturedHtmlRenderOptions): Promise<string>;
|
|
411
|
+
partial?: boolean;
|
|
412
|
+
componentRootAttributes?: Record<string, string>;
|
|
413
|
+
documentAttributes?: Record<string, string>;
|
|
414
|
+
transformHtml?: boolean;
|
|
415
|
+
}): Promise<string>;
|
|
258
416
|
/**
|
|
259
417
|
* Returns document-level attributes to stamp onto the rendered `<html>` tag.
|
|
260
418
|
*
|
|
@@ -262,30 +420,6 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
262
420
|
* other runtime coordination markers without relying on script sniffing.
|
|
263
421
|
*/
|
|
264
422
|
protected getDocumentAttributes(_renderOptions: IntegrationRendererRenderOptions<C>): Record<string, string> | undefined;
|
|
265
|
-
/**
|
|
266
|
-
* Resolves all `eco-marker` placeholders in rendered HTML using integration
|
|
267
|
-
* dispatch and bottom-up graph execution.
|
|
268
|
-
*
|
|
269
|
-
* Responsibility split:
|
|
270
|
-
* - core decodes markers into component refs, props, slot children, and target
|
|
271
|
-
* integration dispatch
|
|
272
|
-
* - the selected integration renderer performs the actual component render via
|
|
273
|
-
* `renderComponent()`
|
|
274
|
-
*
|
|
275
|
-
* Resolver callback behavior per marker:
|
|
276
|
-
* - resolve component definition by `componentRef`
|
|
277
|
-
* - resolve serialized props by `propsRef`
|
|
278
|
-
* - stitch resolved child HTML when `slotRef` is present
|
|
279
|
-
* - dispatch to target integration `renderComponent`
|
|
280
|
-
* - collect produced assets and apply root attributes when attachable
|
|
281
|
-
*
|
|
282
|
-
* @param options.html HTML that may still contain marker tokens.
|
|
283
|
-
* @param options.componentsToResolve Component set used to build component ref registry.
|
|
284
|
-
* @param options.graphContext Props/slot linkage captured during render.
|
|
285
|
-
* @returns Resolved HTML plus any component-scoped assets produced while resolving nodes.
|
|
286
|
-
* @throws Error when marker component refs or props refs cannot be resolved.
|
|
287
|
-
*/
|
|
288
|
-
private resolveMarkerGraphHtml;
|
|
289
423
|
/**
|
|
290
424
|
* Returns a renderer instance for a given integration name.
|
|
291
425
|
*
|
|
@@ -305,6 +439,26 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
305
439
|
* @returns The rendered body.
|
|
306
440
|
*/
|
|
307
441
|
abstract render(options: IntegrationRendererRenderOptions<C>): Promise<RouteRendererBody>;
|
|
442
|
+
protected resolveBoundaryInOwningRenderer(input: ComponentRenderInput, rendererCache: Map<string, IntegrationRenderer<any>>): Promise<ComponentRenderResult | undefined>;
|
|
443
|
+
/**
|
|
444
|
+
* Renders one component under this integration's boundary runtime and resolves
|
|
445
|
+
* any nested foreign boundaries captured during that render.
|
|
446
|
+
*
|
|
447
|
+
* Without this wrapper, a component tree with foreign-owned descendants would
|
|
448
|
+
* render them with no active boundary runtime, which bypasses the owning
|
|
449
|
+
* renderer's nested-boundary handoff.
|
|
450
|
+
*/
|
|
451
|
+
renderComponentBoundary(input: ComponentRenderInput): Promise<ComponentRenderResult>;
|
|
452
|
+
private normalizeComponentBoundaryRender;
|
|
453
|
+
protected normalizeBoundaryArtifactHtml(html: string): string;
|
|
454
|
+
/**
|
|
455
|
+
* Returns whether the component dependency tree crosses into another
|
|
456
|
+
* integration.
|
|
457
|
+
*
|
|
458
|
+
* This keeps boundary-runtime setup narrow: same-integration trees can render
|
|
459
|
+
* directly without paying the queue orchestration cost.
|
|
460
|
+
*/
|
|
461
|
+
protected hasForeignBoundaryDescendants(component: EcoComponent): boolean;
|
|
308
462
|
/**
|
|
309
463
|
* Render a view directly to a Response object.
|
|
310
464
|
* Used for explicit routing where views are rendered from route handlers.
|
|
@@ -321,7 +475,7 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
321
475
|
* Default behavior delegates to `renderToResponse` in partial mode and wraps
|
|
322
476
|
* the resulting HTML into the `ComponentRenderResult` contract.
|
|
323
477
|
*
|
|
324
|
-
* In
|
|
478
|
+
* In boundary resolution, this method is the integration-owned step that turns an
|
|
325
479
|
* already-resolved deferred boundary into concrete HTML, assets, and optional
|
|
326
480
|
* root attributes.
|
|
327
481
|
*
|
|
@@ -329,7 +483,7 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
329
483
|
* root attributes, integration-specific hydration metadata).
|
|
330
484
|
*
|
|
331
485
|
* @param input Component render request.
|
|
332
|
-
* @returns Structured render result used by
|
|
486
|
+
* @returns Structured render result used by component/page orchestration.
|
|
333
487
|
*/
|
|
334
488
|
renderComponent(input: ComponentRenderInput): Promise<ComponentRenderResult>;
|
|
335
489
|
/**
|
|
@@ -348,25 +502,28 @@ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
|
|
|
348
502
|
*/
|
|
349
503
|
protected buildRouteRenderAssets(_file: string): Promise<ProcessedAsset[]> | undefined;
|
|
350
504
|
/**
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
* `eco.component()` consumes this facade without knowing about integration
|
|
355
|
-
* registries or plugin instances.
|
|
505
|
+
* Creates the per-render boundary runtime adopted by the shared component
|
|
506
|
+
* render context.
|
|
356
507
|
*
|
|
357
|
-
*
|
|
508
|
+
* Real mixed-integration renderers should override this and keep foreign
|
|
509
|
+
* boundary resolution inside their own renderer-owned queue. The base runtime
|
|
510
|
+
* fails fast when a renderer crosses into a foreign owner without providing its
|
|
511
|
+
* own handoff mechanism.
|
|
358
512
|
*/
|
|
359
|
-
protected
|
|
513
|
+
protected createComponentBoundaryRuntime(_options: {
|
|
514
|
+
boundaryInput: ComponentRenderInput;
|
|
515
|
+
rendererCache: Map<string, IntegrationRenderer<any>>;
|
|
516
|
+
}): ComponentBoundaryRuntime;
|
|
360
517
|
/**
|
|
361
|
-
* Resolves whether a
|
|
362
|
-
*
|
|
518
|
+
* Resolves whether a boundary should leave the current render pass and be
|
|
519
|
+
* resolved by its owning renderer.
|
|
363
520
|
*
|
|
364
|
-
* Boundaries
|
|
365
|
-
*
|
|
366
|
-
* `shouldDeferComponentBoundary()` policy.
|
|
521
|
+
* Boundaries owned by the current integration always render inline. Foreign-
|
|
522
|
+
* owned boundaries must be handed off by a renderer-owned runtime.
|
|
367
523
|
*
|
|
368
524
|
* @param input Boundary metadata for the active render pass.
|
|
369
|
-
* @returns `true` when the boundary should
|
|
525
|
+
* @returns `true` when the boundary should leave the current pass; otherwise `false`.
|
|
370
526
|
*/
|
|
371
|
-
protected
|
|
527
|
+
protected shouldResolveBoundaryInOwningRenderer(input: BoundaryRenderDecisionInput): boolean;
|
|
372
528
|
}
|
|
529
|
+
export {};
|