@ecopages/core 0.2.0-alpha.9 → 0.2.1-beta.0
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/README.md +79 -28
- package/package.json +94 -116
- 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 +12 -12
- package/src/adapters/bun/create-app.js +64 -41
- package/src/adapters/bun/hmr-manager.d.ts +19 -115
- package/src/adapters/bun/hmr-manager.js +25 -301
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -2
- package/src/adapters/bun/runtime-host.d.ts +52 -0
- package/src/adapters/bun/runtime-host.js +56 -0
- package/src/adapters/bun/server-adapter.d.ts +100 -32
- package/src/adapters/bun/server-adapter.js +142 -65
- package/src/adapters/bun/static-preview-host.d.ts +28 -0
- package/src/adapters/bun/static-preview-host.js +45 -0
- 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 +15 -12
- package/src/adapters/node/create-app.js +34 -85
- package/src/adapters/node/http-request-bridge.d.ts +57 -0
- package/src/adapters/node/http-request-bridge.js +118 -0
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +22 -103
- package/src/adapters/node/node-hmr-manager.js +26 -289
- package/src/adapters/node/runtime-host.d.ts +57 -0
- package/src/adapters/node/runtime-host.js +92 -0
- package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
- package/src/adapters/node/server-adapter-dependencies.js +18 -0
- package/src/adapters/node/server-adapter.d.ts +19 -42
- package/src/adapters/node/server-adapter.js +94 -139
- package/src/adapters/node/static-content-server.d.ts +1 -1
- package/src/adapters/node/static-content-server.js +1 -1
- package/src/adapters/node/static-preview-host.d.ts +55 -0
- package/src/adapters/node/static-preview-host.js +68 -0
- 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-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -16
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +2 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +18 -18
- package/src/adapters/shared/fs-server-response-matcher.js +72 -46
- 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/hmr-html-response.js +4 -3
- package/src/adapters/shared/render-context.d.ts +5 -3
- package/src/adapters/shared/render-context.js +24 -1
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
- package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
- package/src/adapters/shared/runtime-host.d.ts +12 -0
- package/src/adapters/shared/server-adapter.d.ts +22 -11
- package/src/adapters/shared/server-adapter.js +183 -133
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +4 -4
- package/src/adapters/shared/server-static-builder.d.ts +8 -7
- package/src/adapters/shared/server-static-builder.js +6 -5
- package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
- package/src/adapters/shared/shared-hmr-manager.js +241 -0
- package/src/adapters/shared/static-preview-host.d.ts +10 -0
- package/src/build/README.md +57 -67
- package/src/build/browser-runtime-manifest.d.ts +31 -0
- package/src/build/browser-runtime-manifest.js +61 -0
- package/src/build/browser-runtime-plugin-helpers.d.ts +26 -0
- package/src/build/browser-runtime-plugin-helpers.js +14 -0
- package/src/build/browser-runtime-plugin.d.ts +78 -0
- package/src/build/browser-runtime-plugin.js +173 -0
- package/src/build/build-adapter.d.ts +384 -63
- package/src/build/build-adapter.js +129 -54
- package/src/build/build-manifest.d.ts +6 -0
- package/src/build/build-manifest.js +21 -2
- package/src/build/build-types.d.ts +2 -2
- package/src/build/rolldown-adapter-helpers.d.ts +58 -0
- package/src/build/rolldown-adapter-helpers.js +265 -0
- package/src/build/rolldown-build-adapter.d.ts +28 -0
- package/src/build/rolldown-build-adapter.js +65 -0
- package/src/build/rolldown-dev-build-adapter.d.ts +82 -0
- package/src/build/rolldown-dev-build-adapter.js +166 -0
- package/src/build/rolldown-plugin-bridge.d.ts +59 -0
- package/src/build/rolldown-plugin-bridge.js +199 -0
- package/src/build/runtime-build-executor.d.ts +15 -7
- package/src/build/runtime-build-executor.js +8 -9
- package/src/build/runtime-build-output-normalizer.d.ts +3 -0
- package/src/build/runtime-build-output-normalizer.js +111 -0
- package/src/build/serialized-build-executor.d.ts +64 -0
- package/src/build/serialized-build-executor.js +63 -0
- package/src/build/server-side-css-shim-plugin.d.ts +41 -0
- package/src/build/server-side-css-shim-plugin.js +35 -0
- package/src/cache/index.d.ts +6 -0
- package/src/cache/index.js +6 -0
- package/src/cache/module-parse-cache.d.ts +65 -0
- package/src/cache/module-parse-cache.js +75 -0
- package/src/config/README.md +5 -2
- package/src/config/config-builder.d.ts +41 -13
- package/src/config/config-builder.js +62 -24
- package/src/declarations.d.ts +1 -1
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- 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 +88 -0
- package/src/eco/eco.js +50 -45
- package/src/eco/eco.types.d.ts +60 -8
- 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 +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/client/hmr-runtime.js +9 -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 +4 -9
- package/src/hmr/strategies/js-hmr-strategy.js +5 -10
- 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 +2 -1
- package/src/integrations/ghtml/ghtml-renderer.js +24 -29
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +1 -0
- package/src/plugins/alias-resolver-cache.d.ts +68 -0
- package/src/plugins/alias-resolver-cache.js +106 -0
- package/src/plugins/alias-resolver-plugin.d.ts +5 -1
- package/src/plugins/alias-resolver-plugin.js +19 -7
- package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
- package/src/plugins/eco-component-meta-plugin.js +43 -25
- package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
- package/src/plugins/foreign-jsx-override-plugin.js +41 -0
- package/src/plugins/integration-plugin.d.ts +136 -42
- package/src/plugins/integration-plugin.js +99 -31
- package/src/plugins/processor.d.ts +4 -2
- package/src/plugins/processor.js +8 -3
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +80 -318
- package/src/route-renderer/README.md +74 -78
- package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +290 -128
- package/src/route-renderer/orchestration/integration-renderer.js +660 -258
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
- 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/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
- package/src/route-renderer/page-loading/dependency-resolver.js +27 -354
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +7 -4
- package/src/route-renderer/page-loading/page-module-loader.js +8 -5
- package/src/route-renderer/route-renderer.d.ts +31 -23
- package/src/route-renderer/route-renderer.js +17 -24
- package/src/router/README.md +76 -8
- package/src/router/client/navigation-coordinator.d.ts +20 -0
- package/src/router/client/navigation-coordinator.js +2 -2
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +1 -2
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -20
- package/src/services/assets/asset-processing-service/asset-processing.service.js +52 -98
- 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/assets.types.d.ts +14 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +1 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -5
- package/src/services/assets/asset-processing-service/index.js +6 -5
- package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.js +80 -0
- 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 +3 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +10 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +69 -5
- 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 +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +66 -3
- 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 +27 -6
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +38 -3
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +57 -6
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +39 -5
- 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 +5 -2
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +44 -3
- package/src/services/assets/browser-bundle.service.js +15 -7
- package/src/services/html/html-rewriter-provider.service.d.ts +3 -0
- package/src/services/html/html-rewriter-provider.service.js +4 -1
- package/src/services/html/html-transformer.service.d.ts +22 -3
- package/src/services/html/html-transformer.service.js +101 -35
- 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 +7 -0
- package/src/services/module-loading/app-module-loader.service.js +0 -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 +102 -6
- 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/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/page-module-import.service.d.ts +32 -8
- package/src/services/module-loading/page-module-import.service.js +83 -22
- package/src/services/module-loading/server-module-transpiler.service.d.ts +8 -14
- package/src/services/module-loading/server-module-transpiler.service.js +5 -2
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- 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/server-invalidation-state.service.d.ts +1 -1
- package/src/static-site-generator/static-site-generator.d.ts +23 -28
- package/src/static-site-generator/static-site-generator.js +119 -156
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +34 -23
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +195 -37
- 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 +35 -41
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +5 -5
- package/CHANGELOG.md +0 -31
- 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.d.ts +0 -63
- package/src/adapters/bun/server-lifecycle.js +0 -92
- package/src/adapters/bun/server-lifecycle.ts +0 -124
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/bootstrap-dependency-resolver.d.ts +0 -44
- package/src/adapters/node/bootstrap-dependency-resolver.js +0 -172
- 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.d.ts +0 -38
- package/src/adapters/shared/runtime-bootstrap.js +0 -43
- 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.d.ts +0 -74
- package/src/build/dev-build-coordinator.js +0 -161
- package/src/build/dev-build-coordinator.ts +0 -221
- package/src/build/esbuild-build-adapter.d.ts +0 -72
- package/src/build/esbuild-build-adapter.js +0 -422
- 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.d.ts +0 -15
- package/src/build/runtime-specifier-alias-plugin.js +0 -31
- 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/eco.utils.ts +0 -89
- 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.d.ts +0 -103
- package/src/route-renderer/orchestration/render-execution.service.js +0 -121
- package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
- package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -121
- package/src/route-renderer/orchestration/render-preparation.service.js +0 -332
- 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.d.ts +0 -41
- package/src/router/server/fs-router-scanner.js +0 -156
- package/src/router/server/fs-router-scanner.ts +0 -219
- package/src/router/server/fs-router.d.ts +0 -26
- package/src/router/server/fs-router.js +0 -100
- 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.d.ts +0 -69
- package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
- 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/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
- /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
- /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
- /package/src/{constants.js → config/constants.js} +0 -0
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;
|
|
@@ -14,24 +14,37 @@ class BaseScriptProcessor extends BaseProcessor {
|
|
|
14
14
|
return dep.bundle !== false;
|
|
15
15
|
}
|
|
16
16
|
getBundlerOptions(dep) {
|
|
17
|
+
if (dep.packageRole === "page-script" && dep.bundleOptions?.splitting === void 0) {
|
|
18
|
+
return {
|
|
19
|
+
...dep.bundleOptions,
|
|
20
|
+
splitting: false
|
|
21
|
+
};
|
|
22
|
+
}
|
|
17
23
|
return dep.bundleOptions || {};
|
|
18
24
|
}
|
|
19
|
-
collectBuildPlugins() {
|
|
20
|
-
|
|
25
|
+
collectBuildPlugins(excludePluginNames) {
|
|
26
|
+
const buildPlugins = getAppBrowserBuildPlugins(this.appConfig);
|
|
27
|
+
if (!excludePluginNames || excludePluginNames.length === 0) {
|
|
28
|
+
return buildPlugins;
|
|
29
|
+
}
|
|
30
|
+
const excluded = new Set(excludePluginNames);
|
|
31
|
+
return buildPlugins.filter((plugin) => !excluded.has(plugin.name));
|
|
21
32
|
}
|
|
22
33
|
async bundleScript({
|
|
23
34
|
entrypoint,
|
|
24
35
|
outdir,
|
|
36
|
+
excludeAppBuildPlugins,
|
|
25
37
|
plugins: additionalPlugins,
|
|
26
38
|
...rest
|
|
27
39
|
}) {
|
|
28
|
-
const buildPlugins = this.collectBuildPlugins();
|
|
40
|
+
const buildPlugins = this.collectBuildPlugins(excludeAppBuildPlugins);
|
|
29
41
|
const allPlugins = additionalPlugins ? [...additionalPlugins, ...buildPlugins] : buildPlugins;
|
|
30
42
|
const buildResult = await this.browserBundleService.bundle({
|
|
31
43
|
profile: "browser-script",
|
|
32
44
|
entrypoints: [entrypoint],
|
|
33
45
|
outdir,
|
|
34
46
|
root: this.appConfig.rootDir,
|
|
47
|
+
excludeAppBuildPlugins,
|
|
35
48
|
splitting: true,
|
|
36
49
|
naming: "[name]-[hash].[ext]",
|
|
37
50
|
plugins: allPlugins,
|
|
@@ -66,6 +79,57 @@ class BaseScriptProcessor extends BaseProcessor {
|
|
|
66
79
|
const logMessage = buildResult.logs.map((log) => log.message).join(" | ");
|
|
67
80
|
throw new Error(`No build output generated for ${entrypoint}${logMessage ? `: ${logMessage}` : ""}`);
|
|
68
81
|
}
|
|
82
|
+
async bundleScripts({
|
|
83
|
+
entries,
|
|
84
|
+
outdir,
|
|
85
|
+
excludeAppBuildPlugins,
|
|
86
|
+
plugins: additionalPlugins,
|
|
87
|
+
...rest
|
|
88
|
+
}) {
|
|
89
|
+
const buildPlugins = this.collectBuildPlugins(excludeAppBuildPlugins);
|
|
90
|
+
const allPlugins = additionalPlugins ? [...additionalPlugins, ...buildPlugins] : buildPlugins;
|
|
91
|
+
const buildResult = await this.browserBundleService.bundleGroupedEntries(entries, {
|
|
92
|
+
profile: "browser-script",
|
|
93
|
+
outdir,
|
|
94
|
+
root: this.appConfig.rootDir,
|
|
95
|
+
excludeAppBuildPlugins,
|
|
96
|
+
...rest,
|
|
97
|
+
splitting: true,
|
|
98
|
+
naming: "[name]-[hash].[ext]",
|
|
99
|
+
plugins: allPlugins
|
|
100
|
+
});
|
|
101
|
+
if (!buildResult.success) {
|
|
102
|
+
for (const log of buildResult.logs) {
|
|
103
|
+
appLogger.debug(log.message, log);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const outputs = buildResult.outputs.map((output) => output.path);
|
|
107
|
+
const entryOutputs = /* @__PURE__ */ new Map();
|
|
108
|
+
for (const entry of entries) {
|
|
109
|
+
const exactOutput = outputs.find((outputPath) => path.basename(outputPath) === `${entry.entryName}.js`);
|
|
110
|
+
if (exactOutput) {
|
|
111
|
+
entryOutputs.set(entry.entryName, exactOutput);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const hashedOutput = outputs.find(
|
|
115
|
+
(outputPath) => path.basename(outputPath).startsWith(`${entry.entryName}-`)
|
|
116
|
+
);
|
|
117
|
+
if (hashedOutput) {
|
|
118
|
+
entryOutputs.set(entry.entryName, hashedOutput);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const fallbackOutput = path.join(outdir, `${entry.entryName}.js`);
|
|
122
|
+
if (fileSystem.exists(fallbackOutput)) {
|
|
123
|
+
entryOutputs.set(entry.entryName, fallbackOutput);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const logMessage = buildResult.logs.map((log) => log.message).join(" | ");
|
|
127
|
+
throw new Error(
|
|
128
|
+
`No build output generated for grouped entry ${entry.entryName}${logMessage ? `: ${logMessage}` : ""}`
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
return entryOutputs;
|
|
132
|
+
}
|
|
69
133
|
}
|
|
70
134
|
export {
|
|
71
135
|
BaseScriptProcessor
|
|
@@ -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,6 @@
|
|
|
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
|
+
processGrouped(deps: ContentScriptAsset[]): Promise<ProcessedAsset[]>;
|
|
4
5
|
process(dep: ContentScriptAsset): Promise<ProcessedAsset>;
|
|
5
6
|
}
|
package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js
CHANGED
|
@@ -1,7 +1,64 @@
|
|
|
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
|
+
async processGrouped(deps) {
|
|
6
|
+
if (deps.length === 0) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
const shouldBundle = deps.every((dep) => this.shouldBundle(dep));
|
|
10
|
+
if (!shouldBundle || deps.some((dep) => dep.inline)) {
|
|
11
|
+
return Promise.all(deps.map((dep) => this.process(dep)));
|
|
12
|
+
}
|
|
13
|
+
const tempDir = path.join(
|
|
14
|
+
this.appConfig.absolutePaths.distDir,
|
|
15
|
+
`grouped-script-entries-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`
|
|
16
|
+
);
|
|
17
|
+
fileSystem.ensureDir(tempDir);
|
|
18
|
+
try {
|
|
19
|
+
const tempEntries = deps.map((dep, index) => {
|
|
20
|
+
const entryName = dep.groupedBundle?.entryName ?? dep.name ?? `grouped-script-${index}`;
|
|
21
|
+
const tempFilepath = path.join(tempDir, `${entryName}.js`);
|
|
22
|
+
fileSystem.write(tempFilepath, dep.content);
|
|
23
|
+
return {
|
|
24
|
+
dep,
|
|
25
|
+
entryName,
|
|
26
|
+
tempFilepath
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
const primaryDep = deps[0];
|
|
30
|
+
const outputPaths = await this.bundleScripts({
|
|
31
|
+
...this.getBundlerOptions(primaryDep),
|
|
32
|
+
entries: tempEntries.map(({ entryName, tempFilepath }) => ({
|
|
33
|
+
entryName,
|
|
34
|
+
entrypoint: tempFilepath
|
|
35
|
+
})),
|
|
36
|
+
outdir: this.getAssetsDir(),
|
|
37
|
+
minify: this.isProduction,
|
|
38
|
+
naming: "[name]-[hash].[ext]"
|
|
39
|
+
});
|
|
40
|
+
return tempEntries.map(({ dep, entryName }) => {
|
|
41
|
+
const bundledFilePath = outputPaths.get(entryName);
|
|
42
|
+
if (!bundledFilePath) {
|
|
43
|
+
throw new Error(`Missing grouped bundle output for ${entryName}`);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
filepath: bundledFilePath,
|
|
47
|
+
content: dep.inline ? fileSystem.readFileSync(bundledFilePath).toString() : void 0,
|
|
48
|
+
kind: "script",
|
|
49
|
+
position: dep.position,
|
|
50
|
+
attributes: dep.attributes,
|
|
51
|
+
inline: dep.inline,
|
|
52
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
53
|
+
packageRole: dep.packageRole,
|
|
54
|
+
groupedBundle: dep.groupedBundle,
|
|
55
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
} finally {
|
|
59
|
+
fileSystem.remove(tempDir);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
5
62
|
async process(dep) {
|
|
6
63
|
const hash = this.generateHash(dep.content);
|
|
7
64
|
const filename = dep.name ? `${dep.name}.js` : `script-${hash}.js`;
|
|
@@ -16,7 +73,10 @@ class ContentScriptProcessor extends BaseScriptProcessor {
|
|
|
16
73
|
position: dep.position,
|
|
17
74
|
attributes: dep.attributes,
|
|
18
75
|
inline: dep.inline,
|
|
19
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
76
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
77
|
+
packageRole: dep.packageRole,
|
|
78
|
+
groupedBundle: dep.groupedBundle,
|
|
79
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
20
80
|
};
|
|
21
81
|
this.writeCacheFile(filename, unbundledProcessedAsset);
|
|
22
82
|
return unbundledProcessedAsset;
|
|
@@ -43,7 +103,10 @@ class ContentScriptProcessor extends BaseScriptProcessor {
|
|
|
43
103
|
position: dep.position,
|
|
44
104
|
attributes: dep.attributes,
|
|
45
105
|
inline: dep.inline,
|
|
46
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
106
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
107
|
+
packageRole: dep.packageRole,
|
|
108
|
+
groupedBundle: dep.groupedBundle,
|
|
109
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
47
110
|
};
|
|
48
111
|
fileSystem.remove(tempFileName);
|
|
49
112
|
this.writeCacheFile(filename, processedAsset);
|
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,23 +1,38 @@
|
|
|
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,
|
|
27
|
+
sourceFilepath: dep.filepath,
|
|
15
28
|
srcUrl: outputUrl,
|
|
16
29
|
kind: "script",
|
|
17
30
|
position: dep.position,
|
|
18
31
|
attributes: dep.attributes,
|
|
19
32
|
inline: false,
|
|
20
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
33
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
34
|
+
packageRole: dep.packageRole,
|
|
35
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
21
36
|
};
|
|
22
37
|
}
|
|
23
38
|
const content = fileSystem.readFileSync(dep.filepath);
|
|
@@ -40,12 +55,15 @@ class FileScriptProcessor extends BaseScriptProcessor {
|
|
|
40
55
|
}
|
|
41
56
|
return {
|
|
42
57
|
filepath,
|
|
58
|
+
sourceFilepath: dep.filepath,
|
|
43
59
|
content,
|
|
44
60
|
kind: "script",
|
|
45
61
|
position: dep.position,
|
|
46
62
|
attributes: dep.attributes,
|
|
47
63
|
inline: dep.inline,
|
|
48
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
64
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
65
|
+
packageRole: dep.packageRole,
|
|
66
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
49
67
|
};
|
|
50
68
|
}
|
|
51
69
|
const relativeFilepath = path.relative(this.appConfig.absolutePaths.srcDir, dep.filepath);
|
|
@@ -61,12 +79,15 @@ class FileScriptProcessor extends BaseScriptProcessor {
|
|
|
61
79
|
});
|
|
62
80
|
return {
|
|
63
81
|
filepath: bundledFilePath,
|
|
82
|
+
sourceFilepath: dep.filepath,
|
|
64
83
|
content: dep.inline ? fileSystem.readFileSync(bundledFilePath).toString() : void 0,
|
|
65
84
|
kind: "script",
|
|
66
85
|
position: dep.position,
|
|
67
86
|
attributes: dep.attributes,
|
|
68
87
|
inline: dep.inline,
|
|
69
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
88
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
89
|
+
packageRole: dep.packageRole,
|
|
90
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
70
91
|
};
|
|
71
92
|
});
|
|
72
93
|
}
|
|
@@ -1,7 +1,42 @@
|
|
|
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
|
+
/**
|
|
4
|
+
* Processes browser script assets whose entrypoint is referenced by package specifier.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Resolution stays app-boundary-first: prefer the active build adapter, then fall back
|
|
8
|
+
* to ESM export-map resolution, and only then probe a small set of literal file paths.
|
|
9
|
+
*/
|
|
3
10
|
export declare class NodeModuleScriptProcessor extends BaseScriptProcessor<NodeModuleScriptAsset> {
|
|
4
|
-
process(dep: NodeModuleScriptAsset): Promise<import("../../assets.types").ProcessedAsset>;
|
|
11
|
+
process(dep: NodeModuleScriptAsset): Promise<import("../../assets.types.js").ProcessedAsset>;
|
|
12
|
+
/**
|
|
13
|
+
* Resolves a node-module script entry from the current app boundary.
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* The build adapter remains the primary resolution surface because Bun/native
|
|
17
|
+
* host-owned builds may have a more accurate view of aliases and package
|
|
18
|
+
* ownership than core does. The local fallback only runs when that adapter
|
|
19
|
+
* resolution is unavailable.
|
|
20
|
+
*/
|
|
5
21
|
private resolveModulePath;
|
|
22
|
+
/**
|
|
23
|
+
* Resolves browser-owned script specifiers without relying on CommonJS resolution.
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* This path intentionally stays ESM-first because these assets are emitted as
|
|
27
|
+
* browser scripts. We first ask Node's ESM resolver to evaluate the package
|
|
28
|
+
* export map from the app boundary. If that still fails, we fall back to a
|
|
29
|
+
* bounded filesystem probe so direct file installs and package subpaths like
|
|
30
|
+
* `pkg/client/entry` still resolve when the export map does not cover them.
|
|
31
|
+
*/
|
|
6
32
|
private resolveModulePathFallback;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the file candidates we accept during the final literal filesystem probe.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* This is intentionally small and browser-entry-oriented: direct files, common
|
|
38
|
+
* JS extensions, and `index.*` entrypoints. If a package needs anything more
|
|
39
|
+
* exotic, it should resolve through the adapter or ESM export-map path above.
|
|
40
|
+
*/
|
|
41
|
+
private getFallbackCandidatePaths;
|
|
7
42
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
2
3
|
import { fileSystem } from "@ecopages/file-system";
|
|
3
4
|
import { getAppBuildAdapter } from "../../../../../build/build-adapter.js";
|
|
4
|
-
import { BaseScriptProcessor } from "../base/base-script-processor";
|
|
5
|
+
import { BaseScriptProcessor } from "../base/base-script-processor.js";
|
|
5
6
|
class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
6
7
|
async process(dep) {
|
|
7
8
|
const modulePath = this.resolveModulePath(dep.importPath, this.appConfig.rootDir);
|
|
@@ -20,7 +21,9 @@ class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
|
20
21
|
position: dep.position,
|
|
21
22
|
attributes: dep.attributes,
|
|
22
23
|
inline: true,
|
|
23
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
24
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
25
|
+
packageRole: dep.packageRole,
|
|
26
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
24
27
|
};
|
|
25
28
|
}
|
|
26
29
|
const outdir = path.join(this.getAssetsDir(), "vendors");
|
|
@@ -38,10 +41,21 @@ class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
|
38
41
|
position: dep.position,
|
|
39
42
|
attributes: dep.attributes,
|
|
40
43
|
inline: dep.inline,
|
|
41
|
-
excludeFromHtml: dep.excludeFromHtml
|
|
44
|
+
excludeFromHtml: dep.excludeFromHtml,
|
|
45
|
+
packageRole: dep.packageRole,
|
|
46
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
42
47
|
};
|
|
43
48
|
});
|
|
44
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolves a node-module script entry from the current app boundary.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* The build adapter remains the primary resolution surface because Bun/native
|
|
55
|
+
* host-owned builds may have a more accurate view of aliases and package
|
|
56
|
+
* ownership than core does. The local fallback only runs when that adapter
|
|
57
|
+
* resolution is unavailable.
|
|
58
|
+
*/
|
|
45
59
|
resolveModulePath(importPath, rootDir) {
|
|
46
60
|
if (path.isAbsolute(importPath) && fileSystem.exists(importPath)) {
|
|
47
61
|
return importPath;
|
|
@@ -52,13 +66,30 @@ class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
|
52
66
|
return this.resolveModulePathFallback(importPath, rootDir);
|
|
53
67
|
}
|
|
54
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolves browser-owned script specifiers without relying on CommonJS resolution.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* This path intentionally stays ESM-first because these assets are emitted as
|
|
74
|
+
* browser scripts. We first ask Node's ESM resolver to evaluate the package
|
|
75
|
+
* export map from the app boundary. If that still fails, we fall back to a
|
|
76
|
+
* bounded filesystem probe so direct file installs and package subpaths like
|
|
77
|
+
* `pkg/client/entry` still resolve when the export map does not cover them.
|
|
78
|
+
*/
|
|
55
79
|
resolveModulePathFallback(importPath, rootDir, maxDepth = 5) {
|
|
80
|
+
try {
|
|
81
|
+
return fileURLToPath(
|
|
82
|
+
import.meta.resolve(importPath, pathToFileURL(path.join(rootDir, "package.json")).href)
|
|
83
|
+
);
|
|
84
|
+
} catch {
|
|
85
|
+
}
|
|
56
86
|
let currentDir = rootDir;
|
|
57
87
|
let remainingDepth = maxDepth;
|
|
58
88
|
while (remainingDepth >= 0) {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
89
|
+
for (const candidatePath of this.getFallbackCandidatePaths(currentDir, importPath)) {
|
|
90
|
+
if (fileSystem.exists(candidatePath)) {
|
|
91
|
+
return candidatePath;
|
|
92
|
+
}
|
|
62
93
|
}
|
|
63
94
|
const parentDir = path.dirname(currentDir);
|
|
64
95
|
if (parentDir === currentDir) {
|
|
@@ -69,6 +100,26 @@ class NodeModuleScriptProcessor extends BaseScriptProcessor {
|
|
|
69
100
|
}
|
|
70
101
|
throw new Error(`Could not resolve module '${importPath}' from '${rootDir}'`);
|
|
71
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns the file candidates we accept during the final literal filesystem probe.
|
|
105
|
+
*
|
|
106
|
+
* @remarks
|
|
107
|
+
* This is intentionally small and browser-entry-oriented: direct files, common
|
|
108
|
+
* JS extensions, and `index.*` entrypoints. If a package needs anything more
|
|
109
|
+
* exotic, it should resolve through the adapter or ESM export-map path above.
|
|
110
|
+
*/
|
|
111
|
+
getFallbackCandidatePaths(rootDir, importPath) {
|
|
112
|
+
const moduleBasePath = path.join(rootDir, "node_modules", importPath);
|
|
113
|
+
return [
|
|
114
|
+
moduleBasePath,
|
|
115
|
+
`${moduleBasePath}.js`,
|
|
116
|
+
`${moduleBasePath}.mjs`,
|
|
117
|
+
`${moduleBasePath}.cjs`,
|
|
118
|
+
path.join(moduleBasePath, "index.js"),
|
|
119
|
+
path.join(moduleBasePath, "index.mjs"),
|
|
120
|
+
path.join(moduleBasePath, "index.cjs")
|
|
121
|
+
];
|
|
122
|
+
}
|
|
72
123
|
}
|
|
73
124
|
export {
|
|
74
125
|
NodeModuleScriptProcessor
|
|
@@ -1,5 +1,8 @@
|
|
|
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
|
+
private static readonly PROCESSABLE_STYLESHEET_EXTENSIONS;
|
|
5
|
+
private isProcessableStylesheet;
|
|
6
|
+
private applyStylesheetProcessors;
|
|
4
7
|
process(dep: ContentStylesheetAsset): Promise<ProcessedAsset>;
|
|
5
8
|
}
|
|
@@ -1,21 +1,55 @@
|
|
|
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
|
+
static PROCESSABLE_STYLESHEET_EXTENSIONS = /* @__PURE__ */ new Set([".css", ".scss", ".sass", ".less"]);
|
|
6
|
+
isProcessableStylesheet(filepath) {
|
|
7
|
+
return ContentStylesheetProcessor.PROCESSABLE_STYLESHEET_EXTENSIONS.has(path.extname(filepath));
|
|
8
|
+
}
|
|
9
|
+
async applyStylesheetProcessors(content, filepath) {
|
|
10
|
+
if (!this.isProcessableStylesheet(filepath)) {
|
|
11
|
+
return content;
|
|
12
|
+
}
|
|
13
|
+
let transformedContent = content;
|
|
14
|
+
const processors = this.appConfig.processors ? Array.from(this.appConfig.processors.values()) : [];
|
|
15
|
+
for (const processor of processors) {
|
|
16
|
+
const hasCapabilities = processor.getAssetCapabilities().length > 0;
|
|
17
|
+
const canProcessStylesheet = processor.canProcessAsset("stylesheet", filepath);
|
|
18
|
+
if (!canProcessStylesheet && (hasCapabilities || !processor.getName().includes("postcss"))) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (!processor.matchesFileFilter(filepath)) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const result = await processor.process(transformedContent, filepath);
|
|
25
|
+
if (typeof result === "string") {
|
|
26
|
+
transformedContent = result;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (result instanceof Buffer) {
|
|
30
|
+
transformedContent = result.toString();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return transformedContent;
|
|
34
|
+
}
|
|
5
35
|
async process(dep) {
|
|
6
|
-
const
|
|
36
|
+
const virtualFilepath = path.join(this.appConfig.absolutePaths.distDir, "styles", "page-bundle.css");
|
|
37
|
+
const processedContent = await this.applyStylesheetProcessors(dep.content, virtualFilepath);
|
|
38
|
+
const hash = this.generateHash(processedContent);
|
|
7
39
|
const filename = `style-${hash}.css`;
|
|
8
40
|
const cachekey = this.buildCacheKey(filename, hash, dep);
|
|
9
41
|
return this.getOrProcess(cachekey, () => {
|
|
10
42
|
const filepath = path.join(this.getAssetsDir(), "styles", filename);
|
|
11
|
-
if (!dep.inline) fileSystem.write(filepath,
|
|
43
|
+
if (!dep.inline) fileSystem.write(filepath, processedContent);
|
|
12
44
|
return {
|
|
13
45
|
filepath: dep.inline ? void 0 : filepath,
|
|
14
|
-
content: dep.inline ?
|
|
46
|
+
content: dep.inline ? processedContent : void 0,
|
|
15
47
|
kind: "stylesheet",
|
|
16
48
|
position: dep.position,
|
|
17
49
|
attributes: dep.attributes,
|
|
18
|
-
inline: dep.inline
|
|
50
|
+
inline: dep.inline,
|
|
51
|
+
packageRole: dep.packageRole,
|
|
52
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
19
53
|
};
|
|
20
54
|
});
|
|
21
55
|
}
|
|
@@ -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) => {
|
|
@@ -52,11 +52,14 @@ class FileStylesheetProcessor extends BaseProcessor {
|
|
|
52
52
|
}
|
|
53
53
|
return {
|
|
54
54
|
filepath,
|
|
55
|
+
sourceFilepath: dep.filepath,
|
|
55
56
|
content: dep.inline ? processedContent : void 0,
|
|
56
57
|
kind: "stylesheet",
|
|
57
58
|
position: dep.position,
|
|
58
59
|
attributes: dep.attributes,
|
|
59
|
-
inline: dep.inline
|
|
60
|
+
inline: dep.inline,
|
|
61
|
+
packageRole: dep.packageRole,
|
|
62
|
+
bundledSourceFilepaths: dep.bundledSourceFilepaths
|
|
60
63
|
};
|
|
61
64
|
});
|
|
62
65
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AssetProcessor } from './processor.interface.js';
|
|
2
|
+
import type { AssetDefinition, ProcessedAsset } from './assets.types.js';
|
|
3
|
+
type ProcessUngroupedDependencyOptions = {
|
|
4
|
+
dep: AssetDefinition;
|
|
5
|
+
key: string;
|
|
6
|
+
depKey: string;
|
|
7
|
+
getCachedAsset: (dep: AssetDefinition, depKey: string) => ProcessedAsset | null;
|
|
8
|
+
getProcessor: (dep: AssetDefinition) => AssetProcessor | undefined;
|
|
9
|
+
resolveProcessedAssetSrcUrl: (processed: ProcessedAsset) => string | undefined;
|
|
10
|
+
setCachedAsset: (dep: AssetDefinition, depKey: string, processed: ProcessedAsset) => void;
|
|
11
|
+
logMissingProcessor: (dep: AssetDefinition) => void;
|
|
12
|
+
logMissingFile: (dep: AssetDefinition & {
|
|
13
|
+
filepath: string;
|
|
14
|
+
}) => void;
|
|
15
|
+
logProcessingError: (dep: AssetDefinition, error: unknown) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare function processUngroupedDependency(options: ProcessUngroupedDependencyOptions): Promise<ProcessedAsset | null>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { fileSystem } from "@ecopages/file-system";
|
|
2
|
+
async function processUngroupedDependency(options) {
|
|
3
|
+
const {
|
|
4
|
+
dep,
|
|
5
|
+
key,
|
|
6
|
+
depKey,
|
|
7
|
+
getCachedAsset,
|
|
8
|
+
getProcessor,
|
|
9
|
+
resolveProcessedAssetSrcUrl,
|
|
10
|
+
setCachedAsset,
|
|
11
|
+
logMissingProcessor,
|
|
12
|
+
logMissingFile,
|
|
13
|
+
logProcessingError
|
|
14
|
+
} = options;
|
|
15
|
+
const cached = getCachedAsset(dep, depKey);
|
|
16
|
+
if (cached) {
|
|
17
|
+
return { key, ...cached };
|
|
18
|
+
}
|
|
19
|
+
const processor = getProcessor(dep);
|
|
20
|
+
if (!processor) {
|
|
21
|
+
logMissingProcessor(dep);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (dep.source === "file" && "filepath" in dep && !fileSystem.exists(dep.filepath)) {
|
|
25
|
+
logMissingFile(dep);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const processed = await processor.process(dep);
|
|
30
|
+
const srcUrl = resolveProcessedAssetSrcUrl(processed);
|
|
31
|
+
const processedWithKey = {
|
|
32
|
+
key,
|
|
33
|
+
...processed,
|
|
34
|
+
srcUrl
|
|
35
|
+
};
|
|
36
|
+
setCachedAsset(dep, depKey, processedWithKey);
|
|
37
|
+
return processedWithKey;
|
|
38
|
+
} catch (error) {
|
|
39
|
+
logProcessingError(dep, error);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
processUngroupedDependency
|
|
45
|
+
};
|