@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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "./asset.factory";
|
|
2
|
-
export * from "./asset-processing.service";
|
|
3
|
-
export * from "./assets.types";
|
|
4
|
-
export * from "./browser-runtime-asset.factory";
|
|
5
|
-
export * from "./browser-runtime-entry.factory";
|
|
1
|
+
export * from "./asset.factory.js";
|
|
2
|
+
export * from "./asset-processing.service.js";
|
|
3
|
+
export * from "./assets.types.js";
|
|
4
|
+
export * from "./browser-runtime-asset.factory.js";
|
|
5
|
+
export * from "./browser-runtime-entry.factory.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IHmrManager } from '../../../internal-types';
|
|
2
|
-
import type { AssetDefinition, ProcessedAsset } from './assets.types';
|
|
1
|
+
import type { IHmrManager } from '../../../types/internal-types.js';
|
|
2
|
+
import type { AssetDefinition, ProcessedAsset } from './assets.types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Base interface for asset processors.
|
|
5
5
|
* Processors transform asset definitions into processed assets.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AssetKind, AssetSource } from './assets.types';
|
|
2
|
-
import type { BaseProcessor } from './processors/base/base-processor';
|
|
1
|
+
import type { AssetKind, AssetSource } from './assets.types.js';
|
|
2
|
+
import type { BaseProcessor } from './processors/base/base-processor.js';
|
|
3
3
|
export declare class ProcessorRegistry {
|
|
4
4
|
private processors;
|
|
5
5
|
register(kind: AssetKind, variant: AssetSource, processor: BaseProcessor<any>): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../../../../internal-types.js';
|
|
1
|
+
import type { EcoPagesAppConfig } from '../../../../../types/internal-types.js';
|
|
2
2
|
import type { BaseAsset, ProcessedAsset } from '../../assets.types.js';
|
|
3
3
|
export declare abstract class BaseProcessor<T extends BaseAsset> {
|
|
4
4
|
protected appConfig: EcoPagesAppConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { RESOLVED_ASSETS_DIR } from "../../../../../constants.js";
|
|
2
|
+
import { RESOLVED_ASSETS_DIR } from "../../../../../config/constants.js";
|
|
3
3
|
import { rapidhash } from "../../../../../utils/hash.js";
|
|
4
4
|
import { isDevelopmentRuntime, isProductionRuntime } from "../../../../../utils/runtime.js";
|
|
5
5
|
import { fileSystem } from "@ecopages/file-system";
|
package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../../../../internal-types';
|
|
1
|
+
import type { EcoPagesAppConfig } from '../../../../../types/internal-types.js';
|
|
2
2
|
import type { EcoBuildPlugin } from '../../../../../build/build-types.js';
|
|
3
|
-
import type { ScriptAsset } from '../../assets.types';
|
|
4
|
-
import { BaseProcessor } from './base-processor';
|
|
3
|
+
import type { ScriptAsset } from '../../assets.types.js';
|
|
4
|
+
import { BaseProcessor } from './base-processor.js';
|
|
5
5
|
export declare abstract class BaseScriptProcessor<T extends ScriptAsset> extends BaseProcessor<T> {
|
|
6
6
|
private readonly browserBundleService;
|
|
7
7
|
constructor({ appConfig }: {
|
package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { appLogger } from "../../../../../global/app-logger";
|
|
1
|
+
import { appLogger } from "../../../../../global/app-logger.js";
|
|
2
2
|
import { getAppBrowserBuildPlugins } from "../../../../../build/build-adapter.js";
|
|
3
3
|
import { fileSystem } from "@ecopages/file-system";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { BaseProcessor } from "./base-processor";
|
|
5
|
+
import { BaseProcessor } from "./base-processor.js";
|
|
6
6
|
import { BrowserBundleService } from "../../../browser-bundle.service.js";
|
|
7
7
|
class BaseScriptProcessor extends BaseProcessor {
|
|
8
8
|
browserBundleService;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './script/content-script.processor';
|
|
2
|
-
export * from './script/file-script.processor';
|
|
3
|
-
export * from './script/node-module-script.processor';
|
|
4
|
-
export * from './stylesheet/content-stylesheet.processor';
|
|
5
|
-
export * from './stylesheet/file-stylesheet.processor';
|
|
1
|
+
export * from './script/content-script.processor.js';
|
|
2
|
+
export * from './script/file-script.processor.js';
|
|
3
|
+
export * from './script/node-module-script.processor.js';
|
|
4
|
+
export * from './stylesheet/content-stylesheet.processor.js';
|
|
5
|
+
export * from './stylesheet/file-stylesheet.processor.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "./script/content-script.processor";
|
|
2
|
-
export * from "./script/file-script.processor";
|
|
3
|
-
export * from "./script/node-module-script.processor";
|
|
4
|
-
export * from "./stylesheet/content-stylesheet.processor";
|
|
5
|
-
export * from "./stylesheet/file-stylesheet.processor";
|
|
1
|
+
export * from "./script/content-script.processor.js";
|
|
2
|
+
export * from "./script/file-script.processor.js";
|
|
3
|
+
export * from "./script/node-module-script.processor.js";
|
|
4
|
+
export * from "./stylesheet/content-stylesheet.processor.js";
|
|
5
|
+
export * from "./stylesheet/file-stylesheet.processor.js";
|
package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ContentScriptAsset, ProcessedAsset } from '../../assets.types';
|
|
2
|
-
import { BaseScriptProcessor } from '../base/base-script-processor';
|
|
1
|
+
import type { ContentScriptAsset, ProcessedAsset } from '../../assets.types.js';
|
|
2
|
+
import { BaseScriptProcessor } from '../base/base-script-processor.js';
|
|
3
3
|
export declare class ContentScriptProcessor extends BaseScriptProcessor<ContentScriptAsset> {
|
|
4
4
|
process(dep: ContentScriptAsset): Promise<ProcessedAsset>;
|
|
5
5
|
}
|
package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileSystem } from "@ecopages/file-system";
|
|
3
|
-
import { BaseScriptProcessor } from "../base/base-script-processor";
|
|
3
|
+
import { BaseScriptProcessor } from "../base/base-script-processor.js";
|
|
4
4
|
class ContentScriptProcessor extends BaseScriptProcessor {
|
|
5
5
|
async process(dep) {
|
|
6
6
|
const hash = this.generateHash(dep.content);
|
package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { IHmrManager } from '../../../../../internal-types';
|
|
2
|
-
import type { FileScriptAsset, ProcessedAsset } from '../../assets.types';
|
|
3
|
-
import { BaseScriptProcessor } from '../base/base-script-processor';
|
|
1
|
+
import type { IHmrManager } from '../../../../../types/internal-types.js';
|
|
2
|
+
import type { FileScriptAsset, ProcessedAsset } from '../../assets.types.js';
|
|
3
|
+
import { BaseScriptProcessor } from '../base/base-script-processor.js';
|
|
4
4
|
export declare class FileScriptProcessor extends BaseScriptProcessor<FileScriptAsset> {
|
|
5
5
|
private hmrManager?;
|
|
6
|
+
private resolveHmrOutputFilepath;
|
|
6
7
|
setHmrManager(hmrManager: IHmrManager): void;
|
|
7
8
|
process(dep: FileScriptAsset): Promise<ProcessedAsset>;
|
|
8
9
|
}
|
package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { RESOLVED_ASSETS_DIR } from "../../../../../constants";
|
|
2
|
+
import { RESOLVED_ASSETS_DIR } from "../../../../../config/constants.js";
|
|
3
3
|
import { fileSystem } from "@ecopages/file-system";
|
|
4
|
-
import { BaseScriptProcessor } from "../base/base-script-processor";
|
|
4
|
+
import { BaseScriptProcessor } from "../base/base-script-processor.js";
|
|
5
5
|
class FileScriptProcessor extends BaseScriptProcessor {
|
|
6
6
|
hmrManager;
|
|
7
|
+
resolveHmrOutputFilepath(entrypointPath) {
|
|
8
|
+
if (!this.hmrManager || !("getDistDir" in this.hmrManager)) {
|
|
9
|
+
return void 0;
|
|
10
|
+
}
|
|
11
|
+
const getDistDir = this.hmrManager.getDistDir;
|
|
12
|
+
if (typeof getDistDir !== "function") {
|
|
13
|
+
return void 0;
|
|
14
|
+
}
|
|
15
|
+
const relativePathJs = path.relative(this.appConfig.absolutePaths.srcDir, entrypointPath).replace(/\.(tsx?|jsx?|mdx?)$/, ".js").replace(/\[([^\]]+)\]/g, "_$1_");
|
|
16
|
+
return path.join(getDistDir.call(this.hmrManager), relativePathJs);
|
|
17
|
+
}
|
|
7
18
|
setHmrManager(hmrManager) {
|
|
8
19
|
this.hmrManager = hmrManager;
|
|
9
20
|
}
|
|
10
21
|
async process(dep) {
|
|
11
22
|
if (this.hmrManager?.isEnabled() && !dep.inline) {
|
|
12
23
|
const outputUrl = await this.hmrManager.registerScriptEntrypoint(dep.filepath);
|
|
24
|
+
const outputFilepath = this.resolveHmrOutputFilepath(dep.filepath);
|
|
13
25
|
return {
|
|
14
|
-
filepath: dep.filepath,
|
|
26
|
+
filepath: outputFilepath ?? dep.filepath,
|
|
15
27
|
srcUrl: outputUrl,
|
|
16
28
|
kind: "script",
|
|
17
29
|
position: dep.position,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { NodeModuleScriptAsset } from '../../assets.types';
|
|
2
|
-
import { BaseScriptProcessor } from '../base/base-script-processor';
|
|
1
|
+
import type { NodeModuleScriptAsset } from '../../assets.types.js';
|
|
2
|
+
import { BaseScriptProcessor } from '../base/base-script-processor.js';
|
|
3
3
|
export declare class NodeModuleScriptProcessor extends BaseScriptProcessor<NodeModuleScriptAsset> {
|
|
4
|
-
process(dep: NodeModuleScriptAsset): Promise<import("../../assets.types").ProcessedAsset>;
|
|
4
|
+
process(dep: NodeModuleScriptAsset): Promise<import("../../assets.types.js").ProcessedAsset>;
|
|
5
5
|
private resolveModulePath;
|
|
6
6
|
private resolveModulePathFallback;
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileSystem } from "@ecopages/file-system";
|
|
3
3
|
import { getAppBuildAdapter } from "../../../../../build/build-adapter.js";
|
|
4
|
-
import { BaseScriptProcessor } from "../base/base-script-processor";
|
|
4
|
+
import { BaseScriptProcessor } from "../base/base-script-processor.js";
|
|
5
5
|
class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
6
6
|
async process(dep) {
|
|
7
7
|
const modulePath = this.resolveModulePath(dep.importPath, this.appConfig.rootDir);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ContentStylesheetAsset, ProcessedAsset } from '../../assets.types';
|
|
2
|
-
import { BaseProcessor } from '../base/base-processor';
|
|
1
|
+
import type { ContentStylesheetAsset, ProcessedAsset } from '../../assets.types.js';
|
|
2
|
+
import { BaseProcessor } from '../base/base-processor.js';
|
|
3
3
|
export declare class ContentStylesheetProcessor extends BaseProcessor<ContentStylesheetAsset> {
|
|
4
4
|
process(dep: ContentStylesheetAsset): Promise<ProcessedAsset>;
|
|
5
5
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileSystem } from "@ecopages/file-system";
|
|
3
|
-
import { BaseProcessor } from "../base/base-processor";
|
|
3
|
+
import { BaseProcessor } from "../base/base-processor.js";
|
|
4
4
|
class ContentStylesheetProcessor extends BaseProcessor {
|
|
5
5
|
async process(dep) {
|
|
6
6
|
const hash = this.generateHash(dep.content);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FileStylesheetAsset, ProcessedAsset } from '../../assets.types';
|
|
2
|
-
import { BaseProcessor } from '../base/base-processor';
|
|
1
|
+
import type { FileStylesheetAsset, ProcessedAsset } from '../../assets.types.js';
|
|
2
|
+
import { BaseProcessor } from '../base/base-processor.js';
|
|
3
3
|
export declare class FileStylesheetProcessor extends BaseProcessor<FileStylesheetAsset> {
|
|
4
4
|
private static readonly PROCESSABLE_STYLESHEET_EXTENSIONS;
|
|
5
5
|
getStyleContent: (srcUrl: string) => Buffer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileSystem } from "@ecopages/file-system";
|
|
3
|
-
import { BaseProcessor } from "../base/base-processor";
|
|
3
|
+
import { BaseProcessor } from "../base/base-processor.js";
|
|
4
4
|
class FileStylesheetProcessor extends BaseProcessor {
|
|
5
5
|
static PROCESSABLE_STYLESHEET_EXTENSIONS = /* @__PURE__ */ new Set([".css", ".scss", ".sass", ".less"]);
|
|
6
6
|
getStyleContent = (srcUrl) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BuildOptions, BuildResult, BuildTranspileProfile } from '../../build/build-adapter.js';
|
|
2
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
2
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
3
3
|
export type BrowserBundleOptions = Omit<BuildOptions, 'target' | 'format' | 'sourcemap'> & {
|
|
4
4
|
profile: BuildTranspileProfile;
|
|
5
5
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAppBrowserBuildPlugins, getAppBuildExecutor,
|
|
1
|
+
import { getAppBrowserBuildPlugins, getAppBuildExecutor, getAppTranspileOptions } from "../../build/build-adapter.js";
|
|
2
2
|
import { mergeEcoBuildPlugins } from "../../build/build-manifest.js";
|
|
3
3
|
class BrowserBundleService {
|
|
4
4
|
appConfig;
|
|
@@ -22,7 +22,7 @@ class BrowserBundleService {
|
|
|
22
22
|
const plugins = buildOptions.plugins;
|
|
23
23
|
const request = {
|
|
24
24
|
...buildOptions,
|
|
25
|
-
...
|
|
25
|
+
...getAppTranspileOptions(this.appConfig, profile),
|
|
26
26
|
plugins: mergeEcoBuildPlugins(plugins, getAppBrowserBuildPlugins(this.appConfig))
|
|
27
27
|
};
|
|
28
28
|
return await getAppBuildExecutor(this.appConfig).build(request);
|
|
@@ -49,7 +49,10 @@ async function loadWorkerToolsHtmlRewriter() {
|
|
|
49
49
|
return module.HTMLRewriter;
|
|
50
50
|
} catch (primaryError) {
|
|
51
51
|
try {
|
|
52
|
-
const runtimeLocalModule = await import(
|
|
52
|
+
const runtimeLocalModule = await import(
|
|
53
|
+
/* @vite-ignore */
|
|
54
|
+
new URL("../node_modules/@worker-tools/html-rewriter/base64.js", import.meta.url).href
|
|
55
|
+
);
|
|
53
56
|
return runtimeLocalModule.HTMLRewriter;
|
|
54
57
|
} catch {
|
|
55
58
|
const message = primaryError instanceof Error ? primaryError.message : String(primaryError);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ProcessedAsset } from '../assets/asset-processing-service/assets.types';
|
|
2
|
-
import { type HtmlRewriterMode, type HtmlRewriterProvider } from './html-rewriter-provider.service';
|
|
1
|
+
import type { ProcessedAsset } from '../assets/asset-processing-service/assets.types.js';
|
|
2
|
+
import { type HtmlRewriterMode, type HtmlRewriterProvider } from './html-rewriter-provider.service.js';
|
|
3
3
|
export interface HtmlTransformerServiceOptions {
|
|
4
4
|
htmlRewriterMode?: HtmlRewriterMode;
|
|
5
5
|
htmlRewriterProvider?: HtmlRewriterProvider;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DefaultHtmlRewriterProvider
|
|
3
|
-
} from "./html-rewriter-provider.service";
|
|
3
|
+
} from "./html-rewriter-provider.service.js";
|
|
4
4
|
class HtmlTransformerService {
|
|
5
5
|
processedDependencies = [];
|
|
6
6
|
htmlRewriterProvider;
|
|
@@ -163,22 +163,16 @@ class HtmlTransformerService {
|
|
|
163
163
|
async transform(res) {
|
|
164
164
|
const { head, body } = this.groupDependenciesByPosition();
|
|
165
165
|
const htmlRewriter = await this.htmlRewriterProvider.createHtmlRewriter();
|
|
166
|
-
const html = await res.text();
|
|
167
|
-
const headers = new Headers(res.headers);
|
|
168
166
|
if (htmlRewriter) {
|
|
169
167
|
htmlRewriter.on("head", {
|
|
170
168
|
element: (element) => this.appendDependencies(element, head)
|
|
171
169
|
}).on("body", {
|
|
172
170
|
element: (element) => this.appendDependencies(element, body)
|
|
173
171
|
});
|
|
174
|
-
return htmlRewriter.transform(
|
|
175
|
-
new Response(html, {
|
|
176
|
-
headers,
|
|
177
|
-
status: res.status,
|
|
178
|
-
statusText: res.statusText
|
|
179
|
-
})
|
|
180
|
-
);
|
|
172
|
+
return htmlRewriter.transform(res);
|
|
181
173
|
}
|
|
174
|
+
const html = await res.text();
|
|
175
|
+
const headers = new Headers(res.headers);
|
|
182
176
|
const withHeadDependencies = this.injectBeforeClosingTag(html, "head", this.buildDependencyTags(head));
|
|
183
177
|
const transformedHtml = this.injectBeforeClosingTag(
|
|
184
178
|
withHeadDependencies,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
1
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
2
|
export type DevelopmentInvalidationCategory = 'public-asset' | 'additional-watch' | 'include-source' | 'route-source' | 'processor-owned-asset' | 'server-source' | 'other';
|
|
3
3
|
/**
|
|
4
4
|
* Framework-owned invalidation plan for one changed file.
|
|
@@ -16,6 +16,7 @@ class DevelopmentInvalidationService {
|
|
|
16
16
|
*/
|
|
17
17
|
invalidateServerModules(changedFiles) {
|
|
18
18
|
getAppServerInvalidationState(this.appConfig).invalidateServerModules(changedFiles);
|
|
19
|
+
this.appConfig.runtime?.appModuleLoader?.invalidateDevelopmentGraph();
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Resets runtime-owned graph state and invalidates server modules.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PageModuleImportService, type PageModuleImportDependencies, type PageModuleImportOptions } from './page-module-import.service.js';
|
|
2
|
+
import type { BuildExecutor } from '../../build/build-adapter.js';
|
|
3
|
+
export type AppModuleLoaderOwner = 'bun' | 'host';
|
|
4
|
+
export interface AppModuleLoader {
|
|
5
|
+
readonly owner: AppModuleLoaderOwner;
|
|
6
|
+
importModule<T = unknown>(options: PageModuleImportOptions): Promise<T>;
|
|
7
|
+
invalidateDevelopmentGraph(): void;
|
|
8
|
+
}
|
|
9
|
+
export type AppModuleLoaderOptions = {
|
|
10
|
+
dependencies?: Partial<PageModuleImportDependencies>;
|
|
11
|
+
getBuildExecutor?: () => BuildExecutor | undefined;
|
|
12
|
+
getOwner?: () => AppModuleLoaderOwner;
|
|
13
|
+
getInvalidationVersion?: () => number | undefined;
|
|
14
|
+
pageModuleImportService?: PageModuleImportService;
|
|
15
|
+
};
|
|
16
|
+
export declare class RuntimeAppModuleLoader implements AppModuleLoader {
|
|
17
|
+
private readonly pageModuleImportService;
|
|
18
|
+
private readonly getBuildExecutorValue;
|
|
19
|
+
private readonly getOwnerValue;
|
|
20
|
+
private readonly getInvalidationVersionValue;
|
|
21
|
+
constructor(options?: AppModuleLoaderOptions);
|
|
22
|
+
get owner(): AppModuleLoaderOwner;
|
|
23
|
+
importModule<T = unknown>(options: PageModuleImportOptions): Promise<T>;
|
|
24
|
+
invalidateDevelopmentGraph(): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PageModuleImportService
|
|
3
|
+
} from "./page-module-import.service.js";
|
|
4
|
+
class RuntimeAppModuleLoader {
|
|
5
|
+
pageModuleImportService;
|
|
6
|
+
getBuildExecutorValue;
|
|
7
|
+
getOwnerValue;
|
|
8
|
+
getInvalidationVersionValue;
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.pageModuleImportService = options.pageModuleImportService ?? new PageModuleImportService(options.dependencies);
|
|
11
|
+
this.getBuildExecutorValue = options.getBuildExecutor ?? (() => void 0);
|
|
12
|
+
this.getOwnerValue = options.getOwner ?? (() => "bun");
|
|
13
|
+
this.getInvalidationVersionValue = options.getInvalidationVersion ?? (() => void 0);
|
|
14
|
+
}
|
|
15
|
+
get owner() {
|
|
16
|
+
return this.getOwnerValue();
|
|
17
|
+
}
|
|
18
|
+
async importModule(options) {
|
|
19
|
+
return await this.pageModuleImportService.importModule({
|
|
20
|
+
...options,
|
|
21
|
+
buildExecutor: options.buildExecutor ?? this.getBuildExecutorValue(),
|
|
22
|
+
invalidationVersion: options.invalidationVersion ?? this.getInvalidationVersionValue()
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
invalidateDevelopmentGraph() {
|
|
26
|
+
this.pageModuleImportService.invalidateDevelopmentGraph();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
RuntimeAppModuleLoader
|
|
31
|
+
};
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
1
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
|
+
import { type AppModuleLoader } from './app-module-loader.service.js';
|
|
3
|
+
import type { SourceModuleLoader } from './module-loading-types.js';
|
|
2
4
|
import { ServerModuleTranspiler } from './server-module-transpiler.service.js';
|
|
5
|
+
export declare function shouldAppUseHostModuleLoader(appConfig: EcoPagesAppConfig, filePath: string): boolean;
|
|
6
|
+
export declare function getAppHostModuleLoader(appConfig: EcoPagesAppConfig): SourceModuleLoader | undefined;
|
|
7
|
+
export declare function setAppHostModuleLoader(appConfig: EcoPagesAppConfig, hostModuleLoader?: SourceModuleLoader): void;
|
|
8
|
+
export declare function createAppModuleLoader(appConfig: EcoPagesAppConfig): AppModuleLoader;
|
|
9
|
+
export declare function getAppModuleLoader(appConfig: EcoPagesAppConfig): AppModuleLoader;
|
|
10
|
+
export declare function setAppModuleLoader(appConfig: EcoPagesAppConfig, appModuleLoader: AppModuleLoader): void;
|
|
3
11
|
/**
|
|
4
12
|
* Creates the shared app-scoped server-module transpiler for one runtime
|
|
5
13
|
* instance.
|
|
@@ -1,14 +1,83 @@
|
|
|
1
1
|
import { getAppBuildExecutor } from "../../build/build-adapter.js";
|
|
2
|
-
import
|
|
2
|
+
import path from "node:path";
|
|
3
3
|
import { DevelopmentInvalidationService } from "../invalidation/development-invalidation.service.js";
|
|
4
|
+
import {
|
|
5
|
+
RuntimeAppModuleLoader
|
|
6
|
+
} from "./app-module-loader.service.js";
|
|
7
|
+
import { createAppNodeBootstrapPlugin } from "./node-bootstrap-plugin.js";
|
|
4
8
|
import { ServerModuleTranspiler } from "./server-module-transpiler.service.js";
|
|
9
|
+
function supportsHostSourceModuleLoading(filePath) {
|
|
10
|
+
const extension = path.extname(filePath);
|
|
11
|
+
return extension === ".js" || extension === ".jsx" || extension === ".ts" || extension === ".tsx" || extension === ".mjs" || extension === ".mts" || extension === ".cjs" || extension === ".cts";
|
|
12
|
+
}
|
|
13
|
+
function shouldAppUseHostModuleLoader(appConfig, filePath) {
|
|
14
|
+
if (appConfig.runtime?.hostModuleLoader) {
|
|
15
|
+
return supportsHostSourceModuleLoading(filePath);
|
|
16
|
+
}
|
|
17
|
+
const normalizedFilePath = path.normalize(filePath);
|
|
18
|
+
const frameworkOwnedDirectories = [
|
|
19
|
+
appConfig.absolutePaths.pagesDir,
|
|
20
|
+
appConfig.absolutePaths.includesDir,
|
|
21
|
+
appConfig.absolutePaths.layoutsDir,
|
|
22
|
+
appConfig.absolutePaths.componentsDir
|
|
23
|
+
].map((directoryPath) => path.normalize(directoryPath));
|
|
24
|
+
const isFrameworkOwnedModule = frameworkOwnedDirectories.some((directoryPath) => {
|
|
25
|
+
return normalizedFilePath === directoryPath || normalizedFilePath.startsWith(`${directoryPath}${path.sep}`);
|
|
26
|
+
});
|
|
27
|
+
const isConfiguredTemplateModule = appConfig.templatesExt.some(
|
|
28
|
+
(extension) => normalizedFilePath.endsWith(extension)
|
|
29
|
+
);
|
|
30
|
+
return !(isFrameworkOwnedModule && isConfiguredTemplateModule);
|
|
31
|
+
}
|
|
32
|
+
function getAppHostModuleLoader(appConfig) {
|
|
33
|
+
return appConfig.runtime?.hostModuleLoader;
|
|
34
|
+
}
|
|
35
|
+
function getAppModuleLoaderOwner(appConfig) {
|
|
36
|
+
return getAppHostModuleLoader(appConfig) ? "host" : "bun";
|
|
37
|
+
}
|
|
38
|
+
function setAppHostModuleLoader(appConfig, hostModuleLoader) {
|
|
39
|
+
appConfig.runtime = {
|
|
40
|
+
...appConfig.runtime ?? {},
|
|
41
|
+
hostModuleLoader
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function createAppModuleLoader(appConfig) {
|
|
45
|
+
const invalidationService = new DevelopmentInvalidationService(appConfig);
|
|
46
|
+
return new RuntimeAppModuleLoader({
|
|
47
|
+
dependencies: {
|
|
48
|
+
canLoadSourceModuleFromHost: (filePath) => shouldAppUseHostModuleLoader(appConfig, filePath),
|
|
49
|
+
getHostModuleLoader: () => getAppHostModuleLoader(appConfig)
|
|
50
|
+
},
|
|
51
|
+
getBuildExecutor: () => getAppBuildExecutor(appConfig),
|
|
52
|
+
getOwner: () => getAppModuleLoaderOwner(appConfig),
|
|
53
|
+
getInvalidationVersion: () => invalidationService.getServerModuleInvalidationVersion()
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function getAppModuleLoader(appConfig) {
|
|
57
|
+
const existingModuleLoader = appConfig.runtime?.appModuleLoader;
|
|
58
|
+
if (existingModuleLoader) {
|
|
59
|
+
return existingModuleLoader;
|
|
60
|
+
}
|
|
61
|
+
const appModuleLoader = createAppModuleLoader(appConfig);
|
|
62
|
+
setAppModuleLoader(appConfig, appModuleLoader);
|
|
63
|
+
return appModuleLoader;
|
|
64
|
+
}
|
|
65
|
+
function setAppModuleLoader(appConfig, appModuleLoader) {
|
|
66
|
+
appConfig.runtime = {
|
|
67
|
+
...appConfig.runtime ?? {},
|
|
68
|
+
appModuleLoader
|
|
69
|
+
};
|
|
70
|
+
}
|
|
5
71
|
function createAppServerModuleTranspiler(appConfig) {
|
|
6
72
|
const invalidationService = new DevelopmentInvalidationService(appConfig);
|
|
7
73
|
return new ServerModuleTranspiler({
|
|
8
74
|
rootDir: appConfig.rootDir,
|
|
9
75
|
getBuildExecutor: () => getAppBuildExecutor(appConfig),
|
|
76
|
+
getHostModuleLoader: () => getAppHostModuleLoader(appConfig),
|
|
77
|
+
canLoadSourceModuleFromHost: (filePath) => shouldAppUseHostModuleLoader(appConfig, filePath),
|
|
10
78
|
getInvalidationVersion: () => invalidationService.getServerModuleInvalidationVersion(),
|
|
11
79
|
invalidateModules: (changedFiles) => invalidationService.invalidateServerModules(changedFiles),
|
|
80
|
+
pageModuleImportService: getAppModuleLoader(appConfig),
|
|
12
81
|
getDefaultPlugins: typeof Bun === "undefined" && appConfig.rootDir ? () => [createAppNodeBootstrapPlugin(appConfig)] : void 0
|
|
13
82
|
});
|
|
14
83
|
}
|
|
@@ -28,7 +97,13 @@ function setAppServerModuleTranspiler(appConfig, serverModuleTranspiler) {
|
|
|
28
97
|
};
|
|
29
98
|
}
|
|
30
99
|
export {
|
|
100
|
+
createAppModuleLoader,
|
|
31
101
|
createAppServerModuleTranspiler,
|
|
102
|
+
getAppHostModuleLoader,
|
|
103
|
+
getAppModuleLoader,
|
|
32
104
|
getAppServerModuleTranspiler,
|
|
33
|
-
|
|
105
|
+
setAppHostModuleLoader,
|
|
106
|
+
setAppModuleLoader,
|
|
107
|
+
setAppServerModuleTranspiler,
|
|
108
|
+
shouldAppUseHostModuleLoader
|
|
34
109
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SourceModuleLoader } from './module-loading-types.js';
|
|
2
|
+
export declare function setHostModuleLoader(loader: SourceModuleLoader): void;
|
|
3
|
+
export declare function getHostModuleLoader(): SourceModuleLoader | undefined;
|
|
4
|
+
export declare function clearHostModuleLoader(): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
let hostModuleLoader;
|
|
2
|
+
function setHostModuleLoader(loader) {
|
|
3
|
+
hostModuleLoader = loader;
|
|
4
|
+
}
|
|
5
|
+
function getHostModuleLoader() {
|
|
6
|
+
return hostModuleLoader;
|
|
7
|
+
}
|
|
8
|
+
function clearHostModuleLoader() {
|
|
9
|
+
hostModuleLoader = void 0;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
clearHostModuleLoader,
|
|
13
|
+
getHostModuleLoader,
|
|
14
|
+
setHostModuleLoader
|
|
15
|
+
};
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import type { EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin } from '../../build/build-types.js';
|
|
2
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
3
|
-
import type { NodeRuntimeManifest } from '../../services/runtime-manifest/node-runtime-manifest.service.js';
|
|
4
|
-
/**
|
|
5
|
-
* Returns the runtime-local node_modules directory used by the Node thin-host
|
|
6
|
-
* bootstrap output.
|
|
7
|
-
*/
|
|
8
|
-
export declare function getNodeRuntimeNodeModulesDir(manifest: NodeRuntimeManifest): string;
|
|
2
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
9
3
|
/**
|
|
10
4
|
* Returns the app-local node_modules directory used by framework-owned Node
|
|
11
5
|
* bootstrap loads outside the thin-host manifest path.
|
|
@@ -18,27 +12,11 @@ export interface NodeBootstrapResolutionOptions {
|
|
|
18
12
|
}
|
|
19
13
|
/**
|
|
20
14
|
* Builds the user-facing error for Bun-native imports that cannot run on the
|
|
21
|
-
* Node
|
|
15
|
+
* Node bootstrap transpile path.
|
|
22
16
|
*/
|
|
23
17
|
export declare function getNodeUnsupportedBuiltinError(specifier: string, importer?: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* Resolves one bare specifier encountered while bundling Node thin-host
|
|
26
|
-
* bootstrap modules.
|
|
27
|
-
*
|
|
28
|
-
* Workspace-owned `@ecopages/*` packages stay in the bundle graph so Node does
|
|
29
|
-
* not execute their source files directly. Third-party packages stay external,
|
|
30
|
-
* but are linked into the runtime-local `node_modules` tree so the generated
|
|
31
|
-
* bootstrap output resolves them from a deterministic location.
|
|
32
|
-
*/
|
|
33
18
|
export declare function resolveNodeBootstrapDependency(args: Pick<EcoBuildOnResolveArgs, 'path' | 'importer'>, options: NodeBootstrapResolutionOptions): EcoBuildOnResolveResult | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* Creates the bootstrap-time resolver plugin used by the Node thin-host
|
|
36
|
-
* adapter for config and entry module loading.
|
|
37
|
-
*/
|
|
38
19
|
export declare function createNodeBootstrapPlugin(options: NodeBootstrapResolutionOptions): EcoBuildPlugin;
|
|
39
|
-
/**
|
|
40
|
-
* Creates the standard Node bootstrap plugin for one finalized app config.
|
|
41
|
-
*/
|
|
42
20
|
export declare function createAppNodeBootstrapPlugin(appConfig: Pick<EcoPagesAppConfig, 'rootDir' | 'workDir' | 'absolutePaths'>, options?: {
|
|
43
21
|
preserveImportMetaPaths?: string[];
|
|
44
22
|
}): EcoBuildPlugin;
|