@ecopages/core 0.2.0-alpha.27 → 0.2.0-alpha.28
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 +91 -0
- package/package.json +162 -72
- package/src/adapters/abstract/application-adapter.d.ts +194 -0
- package/src/adapters/abstract/application-adapter.js +121 -0
- package/src/adapters/abstract/router-adapter.d.ts +26 -0
- package/src/adapters/abstract/router-adapter.js +5 -0
- package/src/adapters/abstract/server-adapter.d.ts +69 -0
- package/src/adapters/abstract/server-adapter.js +15 -0
- package/src/adapters/bun/client-bridge.d.ts +34 -0
- package/src/adapters/bun/client-bridge.js +48 -0
- package/src/adapters/bun/create-app.d.ts +53 -0
- package/src/adapters/bun/create-app.js +153 -0
- package/src/adapters/bun/hmr-manager.d.ts +131 -0
- package/src/adapters/bun/hmr-manager.js +312 -0
- package/src/adapters/bun/index.d.ts +2 -0
- package/src/adapters/bun/index.js +8 -0
- package/src/adapters/bun/server-adapter.d.ts +155 -0
- package/src/adapters/bun/server-adapter.js +393 -0
- package/src/adapters/bun/server-lifecycle.d.ts +63 -0
- package/src/adapters/bun/server-lifecycle.js +92 -0
- package/src/adapters/create-app.d.ts +20 -0
- package/src/adapters/create-app.js +66 -0
- package/src/adapters/index.d.ts +2 -0
- package/src/adapters/index.js +8 -0
- package/src/adapters/node/create-app.d.ts +18 -0
- package/src/adapters/node/create-app.js +149 -0
- package/src/adapters/node/node-client-bridge.d.ts +26 -0
- package/src/adapters/node/node-client-bridge.js +66 -0
- package/src/adapters/node/node-hmr-manager.d.ts +121 -0
- package/src/adapters/node/node-hmr-manager.js +290 -0
- package/src/adapters/node/server-adapter.d.ts +162 -0
- package/src/adapters/node/server-adapter.js +368 -0
- package/src/adapters/node/static-content-server.d.ts +60 -0
- package/src/adapters/node/static-content-server.js +194 -0
- package/src/adapters/shared/api-response.d.ts +52 -0
- package/src/adapters/shared/api-response.js +96 -0
- package/src/adapters/shared/application-adapter.d.ts +18 -0
- package/src/adapters/shared/application-adapter.js +90 -0
- package/src/adapters/shared/define-api-handler.d.ts +25 -0
- package/src/adapters/shared/define-api-handler.js +15 -0
- 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 +41 -0
- package/src/adapters/shared/explicit-static-route-matcher.js +101 -0
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +62 -0
- package/src/adapters/shared/file-route-middleware-pipeline.js +90 -0
- package/src/adapters/shared/fs-server-response-factory.d.ts +23 -0
- package/src/adapters/shared/fs-server-response-factory.js +81 -0
- package/src/adapters/shared/fs-server-response-matcher.d.ts +75 -0
- package/src/adapters/shared/fs-server-response-matcher.js +186 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +32 -0
- package/src/adapters/shared/render-context.d.ts +15 -0
- package/src/adapters/shared/render-context.js +72 -0
- package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
- package/src/adapters/shared/runtime-bootstrap.js +43 -0
- package/src/adapters/shared/server-adapter.d.ts +108 -0
- package/src/adapters/shared/server-adapter.js +429 -0
- package/src/adapters/shared/server-route-handler.d.ts +89 -0
- package/src/adapters/shared/server-route-handler.js +111 -0
- package/src/adapters/shared/server-static-builder.d.ts +71 -0
- package/src/adapters/shared/server-static-builder.js +100 -0
- package/src/build/build-adapter.d.ts +239 -0
- package/src/build/build-adapter.js +642 -0
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -0
- package/src/build/build-types.d.ts +57 -0
- package/src/build/build-types.js +0 -0
- package/src/build/dev-build-coordinator.d.ts +72 -0
- package/src/build/dev-build-coordinator.js +154 -0
- package/src/build/esbuild-build-adapter.d.ts +78 -0
- package/src/build/esbuild-build-adapter.js +505 -0
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/config-builder.d.ts +252 -0
- package/src/config/config-builder.js +598 -0
- package/src/config/{constants.ts → constants.d.ts} +13 -22
- package/src/config/constants.js +25 -0
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +30 -0
- package/src/dev/sc-server.js +111 -0
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +83 -0
- package/src/eco/eco.d.ts +9 -0
- package/src/eco/eco.js +85 -0
- package/src/eco/eco.types.d.ts +178 -0
- package/src/eco/eco.types.js +0 -0
- package/src/eco/eco.utils.d.ts +1 -0
- package/src/eco/eco.utils.js +10 -0
- package/src/eco/global-injector-map.d.ts +16 -0
- package/src/eco/global-injector-map.js +80 -0
- package/src/eco/lazy-injector-map.d.ts +8 -0
- package/src/eco/lazy-injector-map.js +70 -0
- package/src/eco/module-dependencies.d.ts +18 -0
- package/src/eco/module-dependencies.js +49 -0
- package/src/errors/http-error.d.ts +31 -0
- package/src/errors/http-error.js +50 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.js +6 -0
- package/src/errors/locals-access-error.d.ts +4 -0
- package/src/errors/locals-access-error.js +9 -0
- package/src/global/app-logger.d.ts +2 -0
- package/src/global/app-logger.js +6 -0
- package/src/hmr/client/hmr-runtime.d.ts +5 -0
- package/src/hmr/client/hmr-runtime.js +117 -0
- package/src/hmr/hmr-strategy.d.ts +162 -0
- package/src/hmr/hmr-strategy.js +44 -0
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.test.e2e.js +43 -0
- package/src/hmr/strategies/default-hmr-strategy.d.ts +43 -0
- package/src/hmr/strategies/default-hmr-strategy.js +34 -0
- package/src/hmr/strategies/js-hmr-strategy.d.ts +134 -0
- package/src/hmr/strategies/js-hmr-strategy.js +178 -0
- package/src/index.browser.d.ts +3 -0
- package/src/index.browser.js +4 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +21 -0
- package/src/integrations/ghtml/ghtml-renderer.d.ts +16 -0
- package/src/integrations/ghtml/ghtml-renderer.js +57 -0
- 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 +16 -0
- package/src/integrations/ghtml/ghtml.plugin.js +20 -0
- package/src/plugins/alias-resolver-plugin.d.ts +2 -0
- package/src/plugins/alias-resolver-plugin.js +53 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +108 -0
- package/src/plugins/eco-component-meta-plugin.js +162 -0
- 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 +215 -0
- package/src/plugins/integration-plugin.js +189 -0
- package/src/plugins/processor.d.ts +97 -0
- package/src/plugins/processor.js +141 -0
- package/src/plugins/{runtime-capability.ts → runtime-capability.d.ts} +3 -8
- package/src/plugins/runtime-capability.js +0 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/orchestration/component-render-context.d.ts +89 -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 +108 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +206 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +516 -0
- package/src/route-renderer/orchestration/integration-renderer.js +909 -0
- 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 +2 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +90 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +158 -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 +120 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +388 -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 +35 -0
- package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
- 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 +90 -0
- package/src/route-renderer/page-loading/page-module-loader.js +127 -0
- package/src/route-renderer/route-renderer.d.ts +69 -0
- package/src/route-renderer/route-renderer.js +80 -0
- package/src/router/client/link-intent.js +34 -0
- package/src/router/client/link-intent.test.browser.d.ts +1 -0
- package/src/router/client/link-intent.test.browser.js +43 -0
- package/src/router/client/navigation-coordinator.d.ts +169 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- 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 +103 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.js +285 -0
- package/src/services/assets/asset-processing-service/asset.factory.d.ts +17 -0
- package/src/services/assets/asset-processing-service/asset.factory.js +82 -0
- package/src/services/assets/asset-processing-service/assets.types.d.ts +103 -0
- package/src/services/assets/asset-processing-service/assets.types.js +0 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -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 -0
- package/src/services/assets/asset-processing-service/index.js +6 -0
- package/src/services/assets/asset-processing-service/page-package.d.ts +3 -0
- package/src/services/assets/asset-processing-service/page-package.js +74 -0
- package/src/services/assets/asset-processing-service/{processor.interface.ts → processor.interface.d.ts} +5 -10
- package/src/services/assets/asset-processing-service/processor.interface.js +6 -0
- package/src/services/assets/asset-processing-service/processor.registry.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processor.registry.js +15 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +24 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +65 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +6 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +9 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +97 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +7 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +79 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +9 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +69 -0
- 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 +73 -0
- package/src/services/assets/browser-bundle.service.js +41 -0
- package/src/services/cache/cache.types.d.ts +107 -0
- package/src/services/cache/cache.types.js +0 -0
- package/src/services/cache/index.d.ts +7 -0
- package/src/services/cache/index.js +7 -0
- package/src/services/cache/memory-cache-store.d.ts +42 -0
- package/src/services/cache/memory-cache-store.js +98 -0
- package/src/services/cache/page-cache-service.d.ts +70 -0
- package/src/services/cache/page-cache-service.js +152 -0
- package/src/services/cache/page-request-cache-coordinator.service.d.ts +75 -0
- package/src/services/cache/page-request-cache-coordinator.service.js +109 -0
- package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +87 -0
- package/src/services/html/html-transformer.service.js +216 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -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 +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +115 -0
- 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.ts → module-loading-types.d.ts} +0 -1
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +216 -0
- package/src/services/module-loading/page-module-import.service.d.ts +76 -0
- package/src/services/module-loading/page-module-import.service.js +170 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- 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 +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/validation/schema-validation-service.d.ts +122 -0
- package/src/services/validation/schema-validation-service.js +101 -0
- package/src/services/validation/{standard-schema.types.ts → standard-schema.types.d.ts} +17 -20
- package/src/services/validation/standard-schema.types.js +0 -0
- package/src/static-site-generator/static-site-generator.d.ts +104 -0
- package/src/static-site-generator/static-site-generator.js +316 -0
- package/src/types/internal-types.d.ts +232 -0
- package/src/types/internal-types.js +0 -0
- package/src/types/public-types.d.ts +1267 -0
- package/src/types/public-types.js +0 -0
- package/src/utils/deep-merge.d.ts +14 -0
- package/src/utils/deep-merge.js +32 -0
- package/src/utils/hash.d.ts +1 -0
- package/src/utils/hash.js +7 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/html.js +4 -0
- package/src/utils/invariant.d.ts +5 -0
- package/src/utils/invariant.js +11 -0
- package/src/utils/locals-utils.d.ts +15 -0
- package/src/utils/locals-utils.js +24 -0
- package/src/utils/parse-cli-args.d.ts +27 -0
- package/src/utils/parse-cli-args.js +62 -0
- package/src/utils/path-utils.module.d.ts +5 -0
- package/src/utils/path-utils.module.js +14 -0
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/utils/runtime.d.ts +11 -0
- package/src/utils/runtime.js +40 -0
- package/src/utils/server-utils.module.d.ts +19 -0
- package/src/utils/server-utils.module.js +56 -0
- package/src/watchers/project-watcher.d.ts +136 -0
- package/src/watchers/project-watcher.js +275 -0
- package/src/watchers/project-watcher.test-helpers.d.ts +4 -0
- package/src/watchers/project-watcher.test-helpers.js +52 -0
- package/src/adapters/abstract/application-adapter.test.ts +0 -172
- package/src/adapters/abstract/application-adapter.ts +0 -379
- 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 -232
- package/src/adapters/bun/hmr-manager.test.ts +0 -265
- package/src/adapters/bun/hmr-manager.ts +0 -383
- package/src/adapters/bun/index.ts +0 -2
- package/src/adapters/bun/server-adapter.ts +0 -526
- package/src/adapters/bun/server-lifecycle.ts +0 -124
- package/src/adapters/create-app.test.ts +0 -10
- package/src/adapters/create-app.ts +0 -91
- package/src/adapters/index.ts +0 -2
- package/src/adapters/node/create-app.test.ts +0 -53
- package/src/adapters/node/create-app.ts +0 -183
- package/src/adapters/node/node-client-bridge.test.ts +0 -198
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.test.ts +0 -320
- package/src/adapters/node/node-hmr-manager.ts +0 -355
- package/src/adapters/node/server-adapter.ts +0 -502
- package/src/adapters/node/static-content-server.test.ts +0 -60
- package/src/adapters/node/static-content-server.ts +0 -239
- package/src/adapters/shared/api-response.test.ts +0 -97
- 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-render-preparation.ts +0 -58
- package/src/adapters/shared/explicit-static-route-matcher.test.ts +0 -381
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -131
- package/src/adapters/shared/file-route-middleware-pipeline.test.ts +0 -85
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -118
- package/src/adapters/shared/fs-server-response-factory.test.ts +0 -176
- package/src/adapters/shared/fs-server-response-factory.ts +0 -96
- package/src/adapters/shared/fs-server-response-matcher.test.ts +0 -311
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -240
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
- package/src/adapters/shared/hmr-html-response.ts +0 -52
- package/src/adapters/shared/hmr-manager.contract.test.ts +0 -228
- package/src/adapters/shared/hmr-manager.dispatch.test.ts +0 -220
- package/src/adapters/shared/render-context.test.ts +0 -150
- package/src/adapters/shared/render-context.ts +0 -123
- package/src/adapters/shared/runtime-bootstrap.ts +0 -79
- package/src/adapters/shared/server-adapter.test.ts +0 -130
- package/src/adapters/shared/server-adapter.ts +0 -562
- package/src/adapters/shared/server-route-handler.test.ts +0 -111
- package/src/adapters/shared/server-route-handler.ts +0 -153
- package/src/adapters/shared/server-static-builder.test.ts +0 -338
- package/src/adapters/shared/server-static-builder.ts +0 -170
- package/src/build/build-adapter-serialization.test.ts +0 -281
- package/src/build/build-adapter.test.ts +0 -1240
- package/src/build/build-adapter.ts +0 -1012
- package/src/build/build-manifest.ts +0 -54
- package/src/build/build-types.ts +0 -83
- package/src/build/dev-build-coordinator.ts +0 -220
- package/src/build/esbuild-build-adapter.ts +0 -660
- package/src/build/runtime-build-executor.test.ts +0 -81
- package/src/build/runtime-build-executor.ts +0 -40
- package/src/build/runtime-specifier-alias-plugin.test.ts +0 -67
- package/src/build/runtime-specifier-alias-plugin.ts +0 -62
- package/src/build/runtime-specifier-aliases.ts +0 -135
- package/src/config/config-builder.test.ts +0 -442
- package/src/config/config-builder.ts +0 -737
- package/src/config/config-builder.typecheck.test.ts +0 -96
- package/src/dev/host-runtime.ts +0 -34
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/eco.browser.test.ts +0 -43
- package/src/eco/eco.browser.ts +0 -118
- package/src/eco/eco.test.ts +0 -654
- package/src/eco/eco.ts +0 -205
- package/src/eco/eco.types.ts +0 -221
- package/src/eco/eco.utils.test.ts +0 -219
- package/src/eco/eco.utils.ts +0 -5
- package/src/eco/global-injector-map.test.ts +0 -42
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.test.ts +0 -66
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.test.ts +0 -30
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.test.ts +0 -134
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -3
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/global/utils.test.ts +0 -12
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
- package/src/hmr/client/hmr-runtime.ts +0 -162
- package/src/hmr/hmr-strategy.test.ts +0 -124
- package/src/hmr/hmr-strategy.ts +0 -177
- 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.test.ts +0 -334
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -314
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -15
- package/src/integrations/ghtml/ghtml-renderer.test.ts +0 -253
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -87
- package/src/integrations/ghtml/ghtml.constants.ts +0 -1
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -28
- package/src/plugins/alias-resolver-plugin.test.ts +0 -41
- package/src/plugins/alias-resolver-plugin.ts +0 -63
- package/src/plugins/eco-component-meta-plugin.test.ts +0 -406
- package/src/plugins/eco-component-meta-plugin.ts +0 -494
- package/src/plugins/foreign-jsx-override-plugin.test.ts +0 -65
- package/src/plugins/foreign-jsx-override-plugin.ts +0 -67
- package/src/plugins/integration-plugin.test.ts +0 -151
- package/src/plugins/integration-plugin.ts +0 -323
- package/src/plugins/processor.test.ts +0 -148
- package/src/plugins/processor.ts +0 -257
- package/src/plugins/source-transform.test.ts +0 -82
- package/src/plugins/source-transform.ts +0 -123
- package/src/route-renderer/orchestration/component-render-context.ts +0 -325
- package/src/route-renderer/orchestration/declared-ownership-graph.ts +0 -62
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +0 -383
- package/src/route-renderer/orchestration/integration-renderer.test.ts +0 -2085
- package/src/route-renderer/orchestration/integration-renderer.ts +0 -1244
- package/src/route-renderer/orchestration/ownership-planning.service.ts +0 -97
- package/src/route-renderer/orchestration/ownership-validation.service.ts +0 -76
- package/src/route-renderer/orchestration/processed-asset-dedupe.ts +0 -25
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +0 -324
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +0 -294
- package/src/route-renderer/orchestration/render-output.utils.ts +0 -310
- package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +0 -644
- package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +0 -265
- package/src/route-renderer/orchestration/route-render-orchestrator.ts +0 -592
- package/src/route-renderer/orchestration/template-serialization.test.ts +0 -110
- package/src/route-renderer/orchestration/template-serialization.ts +0 -117
- package/src/route-renderer/page-loading/component-dependency-collection.ts +0 -202
- package/src/route-renderer/page-loading/declared-asset-collection.ts +0 -153
- package/src/route-renderer/page-loading/dependency-resolver.test.ts +0 -761
- package/src/route-renderer/page-loading/dependency-resolver.ts +0 -144
- package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +0 -75
- package/src/route-renderer/page-loading/lazy-entry-collection.ts +0 -167
- package/src/route-renderer/page-loading/lazy-trigger-planning.ts +0 -74
- package/src/route-renderer/page-loading/module-declaration-aggregation.ts +0 -60
- package/src/route-renderer/page-loading/module-declaration-scripts.ts +0 -16
- package/src/route-renderer/page-loading/page-dependency-bundling.ts +0 -244
- package/src/route-renderer/page-loading/page-module-loader.test.ts +0 -183
- package/src/route-renderer/page-loading/page-module-loader.ts +0 -184
- package/src/route-renderer/route-renderer.ts +0 -133
- 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.test.ts +0 -237
- package/src/router/client/navigation-coordinator.ts +0 -453
- package/src/router/server/route-registry.test.ts +0 -176
- package/src/router/server/route-registry.ts +0 -382
- package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +0 -66
- package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +0 -473
- package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -344
- package/src/services/assets/asset-processing-service/asset.factory.test.ts +0 -63
- package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/assets/asset-processing-service/assets.types.ts +0 -128
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +0 -74
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -96
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +0 -67
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
- package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +0 -104
- package/src/services/assets/asset-processing-service/index.ts +0 -6
- package/src/services/assets/asset-processing-service/page-package.test.ts +0 -100
- package/src/services/assets/asset-processing-service/page-package.ts +0 -93
- package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +0 -59
- package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -83
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -173
- package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +0 -195
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -137
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +0 -326
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -116
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +0 -227
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -89
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +0 -261
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -72
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -83
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +0 -65
- package/src/services/assets/browser-bundle.service.test.ts +0 -66
- package/src/services/assets/browser-bundle.service.ts +0 -109
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.test.ts +0 -225
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.test.ts +0 -175
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/cache/page-request-cache-coordinator.service.test.ts +0 -79
- package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
- package/src/services/html/html-rewriter-provider.service.test.ts +0 -183
- package/src/services/html/html-rewriter-provider.service.ts +0 -104
- package/src/services/html/html-transformer.service.test.ts +0 -476
- package/src/services/html/html-transformer.service.ts +0 -275
- package/src/services/invalidation/development-invalidation.service.test.ts +0 -87
- package/src/services/invalidation/development-invalidation.service.ts +0 -262
- package/src/services/module-loading/app-module-loader.service.ts +0 -9
- package/src/services/module-loading/app-server-module-transpiler.service.test.ts +0 -130
- package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -141
- package/src/services/module-loading/host-module-loader-registry.ts +0 -15
- package/src/services/module-loading/node-bootstrap-plugin.test.ts +0 -335
- package/src/services/module-loading/node-bootstrap-plugin.ts +0 -311
- package/src/services/module-loading/page-module-import.service.test.ts +0 -504
- package/src/services/module-loading/page-module-import.service.ts +0 -251
- package/src/services/module-loading/server-module-transpiler.service.test.ts +0 -243
- package/src/services/module-loading/server-module-transpiler.service.ts +0 -104
- package/src/services/module-loading/source-module-support.ts +0 -19
- 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/server-invalidation-state.service.ts +0 -68
- package/src/services/validation/schema-validation-service.test.ts +0 -223
- package/src/services/validation/schema-validation-service.ts +0 -204
- package/src/static-site-generator/static-site-generator.test.ts +0 -408
- package/src/static-site-generator/static-site-generator.ts +0 -445
- package/src/types/internal-types.ts +0 -243
- package/src/types/public-types.ts +0 -1459
- package/src/utils/deep-merge.test.ts +0 -114
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html-escaping.ts +0 -9
- package/src/utils/invariant.test.ts +0 -22
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.test.ts +0 -69
- package/src/utils/parse-cli-args.ts +0 -105
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/path-utils.test.ts +0 -15
- 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/utils/server-utils.test.ts +0 -38
- package/src/watchers/project-watcher.integration.test.ts +0 -337
- package/src/watchers/project-watcher.test-helpers.ts +0 -42
- package/src/watchers/project-watcher.test.ts +0 -768
- package/src/watchers/project-watcher.ts +0 -357
- /package/src/utils/{html.ts → html.d.ts} +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@ecopages/core` are documented here.
|
|
4
|
+
|
|
5
|
+
> **Note:** Changelog tracking begins at version `0.2.0`. Changes prior to this release are not recorded here but are available in the git history.
|
|
6
|
+
|
|
7
|
+
## [UNRELEASED] — TBD
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- Added app-owned runtime and build ownership around `createApp()`, host module loading, the browser-safe `eco` export, `eco.html()`, `eco.layout()`, and the published `EcoPagesAppConfig` surface.
|
|
12
|
+
- Added boundary-plan metadata and a compatibility `renderBoundary()` payload contract for mixed-renderer orchestration.
|
|
13
|
+
|
|
14
|
+
### Refactoring
|
|
15
|
+
|
|
16
|
+
- Renamed route-renderer ownership and foreign-child contracts across core so ownership planning, foreign-subtree payloads, and queued foreign-subtree resolution now use the simplified terminology.
|
|
17
|
+
- Introduced a single `RouteRenderFlow` owner for route render preparation and execution, removing the separate execution service seam while keeping boundary planning shared.
|
|
18
|
+
- Narrowed route-render orchestration onto an explicit `RouteRenderFlowAdapter` seam and one structural Html finalization plan, reducing callback-bag plumbing between `RouteRenderFlow` and `IntegrationRenderer`.
|
|
19
|
+
- Renamed renderer-owned page browser asset preparation onto an explicit `buildPageBrowserGraph()` seam so route orchestration no longer treats emitted browser dependencies as a flat route-asset append.
|
|
20
|
+
- Removed the generic HMR runtime-specifier registry and plugin registration seam so core no longer carries import-map-era runtime state that integrations no longer use.
|
|
21
|
+
- Moved foreign-boundary ownership validation out of boundary-plan construction so route root graphs are validated before dependency and data preparation.
|
|
22
|
+
- Moved page-package classification into the asset-processing module so render orchestration no longer carries a dedicated packaging service wrapper.
|
|
23
|
+
- Split file-route page middleware onto its own context contract so page middleware no longer exposes handler-only `ctx.render()` helpers and the pipeline stops carrying fake render traps.
|
|
24
|
+
- Narrowed route-renderer consumers onto explicit resolver contracts, moved filesystem custom 404 rendering back under the filesystem matcher, and shared explicit static render preparation between runtime and static generation.
|
|
25
|
+
|
|
26
|
+
- Added the `@ecopages/core/dev/host-runtime` seam so host integrations such as the Vite plugin use one explicit development bridge instead of importing host-module-loader and invalidation internals directly.
|
|
27
|
+
- Moved extension-facing merge and assertion helpers behind the integration and processor plugin entrypoints so MDX and image processing no longer depend on raw `utils/deep-merge` or `utils/invariant` package paths.
|
|
28
|
+
- Re-exported shared build-plugin authoring types through the integration and processor plugin entrypoints so extension packages depend on plugin surfaces instead of the raw `build/build-types` module.
|
|
29
|
+
- Removed the legacy `@ecopages/core/errors/locals-access-error` and `@ecopages/core/adapters/bun/client-bridge` exports after moving their remaining consumers to the public `errors` and root type surfaces.
|
|
30
|
+
- Removed the unused `@ecopages/core/utils/parse-cli-args` and `@ecopages/core/services/module-loading/app-server-module-transpiler.service` exports from the published package surface.
|
|
31
|
+
- Removed the unused `@ecopages/core/bun/create-app` and `@ecopages/core/route-renderer/template-serialization` exports to keep the published package surface aligned with the documented entrypoints.
|
|
32
|
+
- Removed the legacy `@ecopages/core/internal-types` export now that the public root package exposes the supported `EcoPagesAppConfig` contract.
|
|
33
|
+
- Removed the duplicate `@ecopages/core/router/client/navigation-coordinator` export in favor of the canonical `@ecopages/core/router/navigation-coordinator` subpath.
|
|
34
|
+
- Bundled page-local component stylesheets and standard file scripts into page-owned assets before processing, reducing per-page asset fan-out in emitted HTML.
|
|
35
|
+
- Grouped Ecopages JSX page and lazy dependency entries into one multi-entry browser build so shared chunks can be emitted once without relying on the runtime alias vendor path.
|
|
36
|
+
- Removed the transitional flat dependency write from render preparation so final HTML injection now follows the structured page-package path only.
|
|
37
|
+
- Consolidated runtime state around shared module-loading services, app-owned build execution, and the universal `createApp()` boundary.
|
|
38
|
+
- Simplified route-renderer orchestration around renderer-owned boundary runtimes, shared string-boundary queue helpers, and a smaller component render context.
|
|
39
|
+
- Centralized shared integration renderer bootstrapping so package integrations only append renderer-specific config instead of duplicating core lifecycle wiring.
|
|
40
|
+
- Moved shared queued boundary resolution to attachment-policy payloads and constructor-injectable planning services.
|
|
41
|
+
- Extracted shared page, layout, and document-shell composition into a narrow `RouteShellComposer` while keeping renderer-owned boundary handoff in `IntegrationRenderer`.
|
|
42
|
+
- Removed marker-era compatibility capture, the shared route-level fallback resolver, deprecated `@ecopages/core/node*` escape hatches, and other dead route-renderer internals.
|
|
43
|
+
- Replaced the split `FSRouter` and `FSRouterScanner` flow with one `RouteRegistry` seam for filesystem route discovery, request matching, and static-generation planning.
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
- Fixed integration registry typing so `ConfigBuilder.setIntegrations()` accepts heterogeneous framework plugins without rejecting valid JSX or React integrations at type-check time.
|
|
48
|
+
- Fixed page-owned dependency packaging so final Html output suppresses bundled source stylesheet assets that were reintroduced later during shell-time asset merging.
|
|
49
|
+
- Fixed development page dependency packaging so script Dependencies stay source-backed for HMR instead of being collapsed into one page-owned script bundle.
|
|
50
|
+
- Fixed Bun preview builds to start the static preview server only after static generation releases the live build server port, preventing preview mode from double-binding the configured port.
|
|
51
|
+
- Fixed router-owned HMR current-page reloads to clear persisted layout caches so active shared layouts pick up updated implementations during development.
|
|
52
|
+
- Fixed router-owned HMR layout refreshes to reuse the active HMR page entry instead of stale static bootstrap assets during persisted-layout reloads.
|
|
53
|
+
- Fixed fetch-mode static generation to normalize absolute routes onto the active build runtime origin, restoring preview prerendering for routes discovered from absolute router entries.
|
|
54
|
+
- Fixed global lazy-trigger bootstrap emission to inline the full bootstrap runtime in final HTML, removing separate initial injector bootstrap and runtime requests.
|
|
55
|
+
- Fixed Ecopages JSX lazy-trigger finalization to preserve SSR custom-element markup nodes instead of coercing them to `[object Object]` inside parent renders.
|
|
56
|
+
- Fixed legacy scripts-injector wrapping and grouped content-script bundling cleanup so non-string JSX SSR output stays intact and failed grouped builds do not leak temporary entries.
|
|
57
|
+
- Fixed Ecopages JSX dependency resolution so page bundling now follows only declared `dependencies.scripts` entries, preventing SSR-only imports and lazy-declared scripts from being promoted into the page bundle.
|
|
58
|
+
- Fixed Ecopages JSX lazy dependency bundling to keep page and lazy entries separate, preventing lazy scripts from forcing extra shared chunk requests into the page bundle.
|
|
59
|
+
- Fixed Ecopages JSX dependency emission to collapse bundleable component CSS and module scripts into page-owned assets while preserving lazy trigger scripts.
|
|
60
|
+
- Fixed Ecopages JSX page-owned dependency bundles to keep using the shared JSX and Radiant vendor runtimes so lazy chunks do not trigger duplicate runtime downloads.
|
|
61
|
+
- Fixed Ecopages JSX page-owned browser bundles to keep intrinsic custom-element scripts out of final HTML when the current component tree already imports them, reducing docs home page script fan-out to one page bundle.
|
|
62
|
+
- Fixed Node static builds so `ecopages build` no longer fails when the configured serve port is already in use.
|
|
63
|
+
- Fixed mixed-integration page, layout, document, and component rendering to resolve foreign boundaries inside their owning renderer across the built-in integrations.
|
|
64
|
+
- Fixed host/runtime module loading, published build-helper exports, asset output normalization, explicit render flows, and static or preview build stability across Bun, Node, Vite, and Nitro.
|
|
65
|
+
- Fixed development project watcher setup to register chokidar paths and handlers only once per app runtime.
|
|
66
|
+
- Fixed development script-entry registration to build only the requested HMR entrypoint instead of fanning out across all watched script entrypoints during startup.
|
|
67
|
+
- Fixed Node bootstrap runtime package linking to refresh dangling `.eco/node_modules` symlinks instead of failing with `EEXIST` during page transpilation.
|
|
68
|
+
- Fixed request-time and static-generation page inspection to preserve integration-specific page loading without reusing the normal render module identity.
|
|
69
|
+
- Fixed Node preview and static-generation React runtime resolution so app-owned page modules and server rendering share one React module identity.
|
|
70
|
+
- Fixed Bun browser output normalization so batched multi-entrypoint HMR rebuilds match emitted files to their expected served paths instead of Bun output order.
|
|
71
|
+
- Fixed render-preparation graph traversal so sparse component dependency arrays do not break custom 404 rendering or file-system response fallback flows.
|
|
72
|
+
|
|
73
|
+
### Documentation
|
|
74
|
+
|
|
75
|
+
- Added architecture and API documentation for config, plugins, services, adapters, HMR, routing, and rendering.
|
|
76
|
+
- Documented that Html-owned dependency assets stay shared while page, layout, and component dependency assets are packaged per route.
|
|
77
|
+
|
|
78
|
+
### Tests
|
|
79
|
+
|
|
80
|
+
- Added regression coverage for app-owned runtime services, Node fallback paths, and cross-runtime invalidation behavior.
|
|
81
|
+
- Strengthened the core ghtml integration tests so route and explicit render paths await real outcomes and cover `renderToResponse` behavior.
|
|
82
|
+
- Added core regression coverage for boundary plans, payload contracts, and typed mixed-boundary context flow.
|
|
83
|
+
- Added router and static-generation regression coverage for `RouteRegistry`, explicit static route expansion, and file-response fallbacks.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Migration Notes
|
|
88
|
+
|
|
89
|
+
- `createApp` is now the recommended entrypoint. Import it from `@ecopages/core/create-app`.
|
|
90
|
+
- `defineApiHandler` keeps the same call shape, but the handler context is now explicitly runtime-agnostic.
|
|
91
|
+
- The old explicit `renderingMode` config option has been removed and full orchestration is always active.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecopages/core",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.28",
|
|
4
4
|
"description": "Core package for Ecopages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ecopages",
|
|
@@ -8,23 +8,16 @@
|
|
|
8
8
|
"ssg"
|
|
9
9
|
],
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"main": "./src/index.
|
|
11
|
+
"main": "./src/index.js",
|
|
12
12
|
"type": "module",
|
|
13
|
-
"files": [
|
|
14
|
-
"src"
|
|
15
|
-
],
|
|
16
13
|
"sideEffects": false,
|
|
17
14
|
"repository": {
|
|
18
15
|
"type": "git",
|
|
19
16
|
"url": "https://github.com/ecopages/ecopages.git",
|
|
20
17
|
"directory": "packages/core"
|
|
21
18
|
},
|
|
22
|
-
"scripts": {
|
|
23
|
-
"typecheck": "bunx tsc --noEmit",
|
|
24
|
-
"release:jsr": "bunx jsr publish"
|
|
25
|
-
},
|
|
26
19
|
"dependencies": {
|
|
27
|
-
"@ecopages/file-system": "
|
|
20
|
+
"@ecopages/file-system": "0.2.0-alpha.28",
|
|
28
21
|
"@ecopages/logger": "^0.2.3",
|
|
29
22
|
"@ecopages/scripts-injector": "^0.1.3",
|
|
30
23
|
"@worker-tools/html-rewriter": "0.1.0-pre.19",
|
|
@@ -34,42 +27,34 @@
|
|
|
34
27
|
"oxc-parser": "^0.124.0",
|
|
35
28
|
"ws": "^8.18.0"
|
|
36
29
|
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@types/bun": "latest",
|
|
39
|
-
"@types/ws": "^8.5.14",
|
|
40
|
-
"arktype": "^2.1.29",
|
|
41
|
-
"tailwindcss": "^3.4.19",
|
|
42
|
-
"valibot": "^1.2.0",
|
|
43
|
-
"zod": "^4.3.6"
|
|
44
|
-
},
|
|
45
30
|
"exports": {
|
|
46
31
|
".": {
|
|
47
|
-
"browser": "./src/index.browser.
|
|
48
|
-
"import": "./src/index.
|
|
49
|
-
"
|
|
50
|
-
"
|
|
32
|
+
"browser": "./src/index.browser.js",
|
|
33
|
+
"import": "./src/index.js",
|
|
34
|
+
"types": "./src/index.d.ts",
|
|
35
|
+
"default": "./src/index.js"
|
|
51
36
|
},
|
|
52
37
|
"./create-app": {
|
|
53
|
-
"import": "./src/adapters/create-app.
|
|
54
|
-
"types": "./src/adapters/create-app.ts",
|
|
55
|
-
"default": "./src/adapters/create-app.
|
|
38
|
+
"import": "./src/adapters/create-app.js",
|
|
39
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
40
|
+
"default": "./src/adapters/create-app.js"
|
|
56
41
|
},
|
|
57
42
|
"./route-renderer/integration-renderer": {
|
|
58
|
-
"types": "./src/route-renderer/orchestration/integration-renderer.ts",
|
|
59
|
-
"default": "./src/route-renderer/orchestration/integration-renderer.
|
|
43
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
44
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
60
45
|
},
|
|
61
46
|
"./router/navigation-coordinator": {
|
|
62
|
-
"types": "./src/router/client/navigation-coordinator.ts",
|
|
63
|
-
"default": "./src/router/client/navigation-coordinator.
|
|
47
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
48
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
64
49
|
},
|
|
65
50
|
"./router/link-intent": {
|
|
66
|
-
"types": "./src/router/client/link-intent.ts",
|
|
67
|
-
"default": "./src/router/client/link-intent.
|
|
51
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
52
|
+
"default": "./src/router/client/link-intent.js"
|
|
68
53
|
},
|
|
69
54
|
"./eco": {
|
|
70
|
-
"browser": "./src/eco/eco.browser.
|
|
71
|
-
"types": "./src/eco/eco.ts",
|
|
72
|
-
"default": "./src/eco/eco.
|
|
55
|
+
"browser": "./src/eco/eco.browser.js",
|
|
56
|
+
"types": "./src/eco/eco.d.ts",
|
|
57
|
+
"default": "./src/eco/eco.js"
|
|
73
58
|
},
|
|
74
59
|
"./declarations": {
|
|
75
60
|
"types": "./src/declarations.d.ts"
|
|
@@ -78,76 +63,181 @@
|
|
|
78
63
|
"types": "./src/env.d.ts"
|
|
79
64
|
},
|
|
80
65
|
"./config-builder": {
|
|
81
|
-
"types": "./src/config/config-builder.ts",
|
|
82
|
-
"default": "./src/config/config-builder.
|
|
66
|
+
"types": "./src/config/config-builder.d.ts",
|
|
67
|
+
"default": "./src/config/config-builder.js"
|
|
83
68
|
},
|
|
84
69
|
"./constants": {
|
|
85
|
-
"types": "./src/config/constants.ts",
|
|
86
|
-
"default": "./src/config/constants.
|
|
70
|
+
"types": "./src/config/constants.d.ts",
|
|
71
|
+
"default": "./src/config/constants.js"
|
|
87
72
|
},
|
|
88
73
|
"./bun": {
|
|
89
|
-
"types": "./src/adapters/bun/index.ts",
|
|
90
|
-
"default": "./src/adapters/bun/index.
|
|
74
|
+
"types": "./src/adapters/bun/index.d.ts",
|
|
75
|
+
"default": "./src/adapters/bun/index.js"
|
|
91
76
|
},
|
|
92
77
|
"./hmr/hmr-strategy": {
|
|
93
|
-
"types": "./src/hmr/hmr-strategy.ts",
|
|
94
|
-
"default": "./src/hmr/hmr-strategy.
|
|
78
|
+
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
79
|
+
"default": "./src/hmr/hmr-strategy.js"
|
|
95
80
|
},
|
|
96
81
|
"./dev/host-runtime": {
|
|
97
|
-
"types": "./src/dev/host-runtime.ts",
|
|
98
|
-
"default": "./src/dev/host-runtime.
|
|
82
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
83
|
+
"default": "./src/dev/host-runtime.js"
|
|
99
84
|
},
|
|
100
85
|
"./services/asset-processing-service": {
|
|
101
|
-
"types": "./src/services/assets/asset-processing-service/index.ts",
|
|
102
|
-
"default": "./src/services/assets/asset-processing-service/index.
|
|
86
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
87
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
103
88
|
},
|
|
104
89
|
"./plugins/processor": {
|
|
105
|
-
"types": "./src/plugins/processor.ts",
|
|
106
|
-
"default": "./src/plugins/processor.
|
|
90
|
+
"types": "./src/plugins/processor.d.ts",
|
|
91
|
+
"default": "./src/plugins/processor.js"
|
|
107
92
|
},
|
|
108
93
|
"./plugins/integration-plugin": {
|
|
109
|
-
"types": "./src/plugins/integration-plugin.ts",
|
|
110
|
-
"default": "./src/plugins/integration-plugin.
|
|
94
|
+
"types": "./src/plugins/integration-plugin.d.ts",
|
|
95
|
+
"default": "./src/plugins/integration-plugin.js"
|
|
111
96
|
},
|
|
112
97
|
"./plugins/source-transform": {
|
|
113
|
-
"types": "./src/plugins/source-transform.ts",
|
|
114
|
-
"default": "./src/plugins/source-transform.
|
|
98
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
99
|
+
"default": "./src/plugins/source-transform.js"
|
|
115
100
|
},
|
|
116
101
|
"./build/build-types": {
|
|
117
|
-
"types": "./src/build/build-types.ts",
|
|
118
|
-
"default": "./src/build/build-types.
|
|
102
|
+
"types": "./src/build/build-types.d.ts",
|
|
103
|
+
"default": "./src/build/build-types.js"
|
|
119
104
|
},
|
|
120
105
|
"./build/build-adapter": {
|
|
121
|
-
"types": "./src/build/build-adapter.ts",
|
|
122
|
-
"default": "./src/build/build-adapter.
|
|
106
|
+
"types": "./src/build/build-adapter.d.ts",
|
|
107
|
+
"default": "./src/build/build-adapter.js"
|
|
123
108
|
},
|
|
124
109
|
"./build/runtime-specifier-alias-plugin": {
|
|
125
|
-
"types": "./src/build/runtime-specifier-alias-plugin.ts",
|
|
126
|
-
"default": "./src/build/runtime-specifier-alias-plugin.
|
|
110
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
111
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
127
112
|
},
|
|
128
113
|
"./build/runtime-specifier-aliases": {
|
|
129
|
-
"types": "./src/build/runtime-specifier-aliases.ts",
|
|
130
|
-
"default": "./src/build/runtime-specifier-aliases.
|
|
114
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
115
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
131
116
|
},
|
|
132
117
|
"./plugins/foreign-jsx-override-plugin": {
|
|
133
|
-
"types": "./src/plugins/foreign-jsx-override-plugin.ts",
|
|
134
|
-
"default": "./src/plugins/foreign-jsx-override-plugin.
|
|
118
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
119
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
135
120
|
},
|
|
136
121
|
"./html": {
|
|
137
|
-
"import": "./src/utils/html.
|
|
138
|
-
"
|
|
122
|
+
"import": "./src/utils/html.js",
|
|
123
|
+
"default": "./src/utils/html.js",
|
|
124
|
+
"types": "./src/utils/html.d.ts"
|
|
139
125
|
},
|
|
140
126
|
"./hash": {
|
|
141
|
-
"import": "./src/utils/hash.
|
|
142
|
-
"
|
|
127
|
+
"import": "./src/utils/hash.js",
|
|
128
|
+
"default": "./src/utils/hash.js",
|
|
129
|
+
"types": "./src/utils/hash.d.ts"
|
|
143
130
|
},
|
|
144
131
|
"./errors": {
|
|
145
|
-
"types": "./src/errors/index.ts",
|
|
146
|
-
"default": "./src/errors/index.
|
|
132
|
+
"types": "./src/errors/index.d.ts",
|
|
133
|
+
"default": "./src/errors/index.js"
|
|
147
134
|
},
|
|
148
135
|
"./integrations/ghtml": {
|
|
149
|
-
"types": "./src/integrations/ghtml/ghtml.plugin.ts",
|
|
150
|
-
"default": "./src/integrations/ghtml/ghtml.plugin.
|
|
136
|
+
"types": "./src/integrations/ghtml/ghtml.plugin.d.ts",
|
|
137
|
+
"default": "./src/integrations/ghtml/ghtml.plugin.js"
|
|
138
|
+
},
|
|
139
|
+
"./create-app.ts": {
|
|
140
|
+
"import": "./src/adapters/create-app.js",
|
|
141
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
142
|
+
"default": "./src/adapters/create-app.js"
|
|
143
|
+
},
|
|
144
|
+
"./route-renderer/integration-renderer.ts": {
|
|
145
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
146
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
147
|
+
},
|
|
148
|
+
"./router/navigation-coordinator.ts": {
|
|
149
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
150
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
151
|
+
},
|
|
152
|
+
"./router/link-intent.ts": {
|
|
153
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
154
|
+
"default": "./src/router/client/link-intent.js"
|
|
155
|
+
},
|
|
156
|
+
"./eco.ts": {
|
|
157
|
+
"browser": "./src/eco/eco.browser.js",
|
|
158
|
+
"types": "./src/eco/eco.d.ts",
|
|
159
|
+
"default": "./src/eco/eco.js"
|
|
160
|
+
},
|
|
161
|
+
"./declarations.ts": {
|
|
162
|
+
"types": "./src/declarations.d.ts"
|
|
163
|
+
},
|
|
164
|
+
"./env.ts": {
|
|
165
|
+
"types": "./src/env.d.ts"
|
|
166
|
+
},
|
|
167
|
+
"./config-builder.ts": {
|
|
168
|
+
"types": "./src/config/config-builder.d.ts",
|
|
169
|
+
"default": "./src/config/config-builder.js"
|
|
170
|
+
},
|
|
171
|
+
"./constants.ts": {
|
|
172
|
+
"types": "./src/config/constants.d.ts",
|
|
173
|
+
"default": "./src/config/constants.js"
|
|
174
|
+
},
|
|
175
|
+
"./bun.ts": {
|
|
176
|
+
"types": "./src/adapters/bun/index.d.ts",
|
|
177
|
+
"default": "./src/adapters/bun/index.js"
|
|
178
|
+
},
|
|
179
|
+
"./hmr/hmr-strategy.ts": {
|
|
180
|
+
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
181
|
+
"default": "./src/hmr/hmr-strategy.js"
|
|
182
|
+
},
|
|
183
|
+
"./dev/host-runtime.ts": {
|
|
184
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
185
|
+
"default": "./src/dev/host-runtime.js"
|
|
186
|
+
},
|
|
187
|
+
"./services/asset-processing-service.ts": {
|
|
188
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
189
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
190
|
+
},
|
|
191
|
+
"./plugins/processor.ts": {
|
|
192
|
+
"types": "./src/plugins/processor.d.ts",
|
|
193
|
+
"default": "./src/plugins/processor.js"
|
|
194
|
+
},
|
|
195
|
+
"./plugins/integration-plugin.ts": {
|
|
196
|
+
"types": "./src/plugins/integration-plugin.d.ts",
|
|
197
|
+
"default": "./src/plugins/integration-plugin.js"
|
|
198
|
+
},
|
|
199
|
+
"./plugins/source-transform.ts": {
|
|
200
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
201
|
+
"default": "./src/plugins/source-transform.js"
|
|
202
|
+
},
|
|
203
|
+
"./build/build-types.ts": {
|
|
204
|
+
"types": "./src/build/build-types.d.ts",
|
|
205
|
+
"default": "./src/build/build-types.js"
|
|
206
|
+
},
|
|
207
|
+
"./build/build-adapter.ts": {
|
|
208
|
+
"types": "./src/build/build-adapter.d.ts",
|
|
209
|
+
"default": "./src/build/build-adapter.js"
|
|
210
|
+
},
|
|
211
|
+
"./build/runtime-specifier-alias-plugin.ts": {
|
|
212
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
213
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
214
|
+
},
|
|
215
|
+
"./build/runtime-specifier-aliases.ts": {
|
|
216
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
217
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
218
|
+
},
|
|
219
|
+
"./plugins/foreign-jsx-override-plugin.ts": {
|
|
220
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
221
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
222
|
+
},
|
|
223
|
+
"./html.ts": {
|
|
224
|
+
"import": "./src/utils/html.js",
|
|
225
|
+
"default": "./src/utils/html.js",
|
|
226
|
+
"types": "./src/utils/html.d.ts"
|
|
227
|
+
},
|
|
228
|
+
"./hash.ts": {
|
|
229
|
+
"import": "./src/utils/hash.js",
|
|
230
|
+
"default": "./src/utils/hash.js",
|
|
231
|
+
"types": "./src/utils/hash.d.ts"
|
|
232
|
+
},
|
|
233
|
+
"./errors.ts": {
|
|
234
|
+
"types": "./src/errors/index.d.ts",
|
|
235
|
+
"default": "./src/errors/index.js"
|
|
236
|
+
},
|
|
237
|
+
"./integrations/ghtml.ts": {
|
|
238
|
+
"types": "./src/integrations/ghtml/ghtml.plugin.d.ts",
|
|
239
|
+
"default": "./src/integrations/ghtml/ghtml.plugin.js"
|
|
151
240
|
}
|
|
152
|
-
}
|
|
153
|
-
|
|
241
|
+
},
|
|
242
|
+
"types": "./src/index.d.ts"
|
|
243
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file defines the abstract class for application adapters in EcoPages.
|
|
3
|
+
* It provides a common interface for different runtimes (e.g., Node.js, Deno) to implement.
|
|
4
|
+
* The class includes methods for handling HTTP requests and managing application state.
|
|
5
|
+
* It also includes a method for parsing command-line arguments.
|
|
6
|
+
*
|
|
7
|
+
* @module ApplicationAdapter
|
|
8
|
+
*/
|
|
9
|
+
import type { SourceModuleLoader } from '../../services/module-loading/module-loading-types.js';
|
|
10
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
11
|
+
import type { ApiHandler, ApiHandlerContext, ErrorHandler, Middleware, RouteOptions, StaticRoute, ViewLoader } from '../../types/public-types.js';
|
|
12
|
+
import { type ReturnParseCliArgs } from '../../utils/parse-cli-args.js';
|
|
13
|
+
/**
|
|
14
|
+
* Runtime bootstrap options layered on top of the app config.
|
|
15
|
+
*
|
|
16
|
+
* These options let a host runtime embed Ecopages without mutating process
|
|
17
|
+
* globals or app runtime state before calling `createApp()`.
|
|
18
|
+
*/
|
|
19
|
+
export interface ApplicationRuntimeOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Forces the app into the embedded-runtime CLI mode used by host
|
|
22
|
+
* environments.
|
|
23
|
+
*
|
|
24
|
+
* When enabled and no explicit `hostModuleLoader` is provided, the
|
|
25
|
+
* adapter auto-detects a host module loader from the global scope.
|
|
26
|
+
*/
|
|
27
|
+
embedded?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Explicit source module loader for request-time imports.
|
|
30
|
+
*
|
|
31
|
+
* When omitted in embedded mode, the adapter attempts automatic
|
|
32
|
+
* detection from globals set by the host environment.
|
|
33
|
+
*/
|
|
34
|
+
hostModuleLoader?: SourceModuleLoader;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Configuration options for application adapters
|
|
38
|
+
*/
|
|
39
|
+
export interface ApplicationAdapterOptions {
|
|
40
|
+
appConfig: EcoPagesAppConfig;
|
|
41
|
+
serverOptions?: Record<string, any>;
|
|
42
|
+
runtime?: ApplicationRuntimeOptions;
|
|
43
|
+
/**
|
|
44
|
+
* Options for clearing the output directory before starting the server
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
clearOutput?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Common interface for application adapters
|
|
51
|
+
*/
|
|
52
|
+
export interface ApplicationAdapter<T = any> {
|
|
53
|
+
start(): Promise<T | void>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Handler function type for route handlers
|
|
57
|
+
*/
|
|
58
|
+
export type RouteHandler<TRequest extends Request = Request, TServer = any, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>> = (context: TContext) => Promise<Response> | Response;
|
|
59
|
+
export type RouteGroupDefinition<TRequest extends Request = Request, TServer = any> = {
|
|
60
|
+
prefix: string;
|
|
61
|
+
middleware?: readonly Middleware<TRequest, TServer, any>[];
|
|
62
|
+
routes: readonly ApiHandler<string, TRequest, TServer>[];
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Abstract base class for application adapters across different runtimes
|
|
66
|
+
*/
|
|
67
|
+
export declare abstract class AbstractApplicationAdapter<TOptions extends ApplicationAdapterOptions = ApplicationAdapterOptions, TServer = any, TRequest extends Request = any> implements ApplicationAdapter<TServer> {
|
|
68
|
+
protected appConfig: EcoPagesAppConfig;
|
|
69
|
+
protected serverOptions: Record<string, any>;
|
|
70
|
+
protected cliArgs: ReturnParseCliArgs;
|
|
71
|
+
protected runtimeOptions: ApplicationRuntimeOptions;
|
|
72
|
+
protected apiHandlers: ApiHandler[];
|
|
73
|
+
protected staticRoutes: StaticRoute[];
|
|
74
|
+
protected errorHandler?: ErrorHandler;
|
|
75
|
+
constructor(options: TOptions);
|
|
76
|
+
private clearDistFolder;
|
|
77
|
+
/**
|
|
78
|
+
* Register a GET route handler.
|
|
79
|
+
*
|
|
80
|
+
* Use verb methods for inline route definitions.
|
|
81
|
+
* For dynamic HTTP method registration, use `route(...)`.
|
|
82
|
+
*/
|
|
83
|
+
abstract get<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
84
|
+
/**
|
|
85
|
+
* Register a POST route handler
|
|
86
|
+
*/
|
|
87
|
+
abstract post<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
88
|
+
/**
|
|
89
|
+
* Register a PUT route handler
|
|
90
|
+
*/
|
|
91
|
+
abstract put<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
92
|
+
/**
|
|
93
|
+
* Register a DELETE route handler
|
|
94
|
+
*/
|
|
95
|
+
abstract delete<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
96
|
+
/**
|
|
97
|
+
* Register a PATCH route handler
|
|
98
|
+
*/
|
|
99
|
+
abstract patch<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
100
|
+
/**
|
|
101
|
+
* Register an OPTIONS route handler
|
|
102
|
+
*/
|
|
103
|
+
abstract options<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
104
|
+
/**
|
|
105
|
+
* Register a HEAD route handler
|
|
106
|
+
*/
|
|
107
|
+
abstract head<P extends string, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>>(path: P, handler: RouteHandler<TRequest, TServer, TContext>, options?: RouteOptions<TRequest, TServer, TContext>): this;
|
|
108
|
+
/**
|
|
109
|
+
* Register a route with an explicit HTTP method.
|
|
110
|
+
*
|
|
111
|
+
* This is useful when the method is determined programmatically, or when
|
|
112
|
+
* registering a pre-built route declaration object by forwarding its
|
|
113
|
+
* `path`, `method`, and `handler` fields.
|
|
114
|
+
*/
|
|
115
|
+
abstract route<P extends string>(path: P, method: ApiHandler['method'], handler: RouteHandler<TRequest, TServer>, options?: RouteOptions<TRequest, TServer>): this;
|
|
116
|
+
/**
|
|
117
|
+
* Register a pre-built API handler declaration.
|
|
118
|
+
*/
|
|
119
|
+
abstract add(handler: ApiHandler<string, TRequest, TServer>): this;
|
|
120
|
+
/**
|
|
121
|
+
* Internal method to add route handlers to the API handlers array
|
|
122
|
+
*/
|
|
123
|
+
protected addRouteHandler<P extends string, TSpecRequest extends TRequest = TRequest, TSpecServer extends TServer = TServer, TContext extends ApiHandlerContext<TSpecRequest, TSpecServer> = ApiHandlerContext<TSpecRequest, TSpecServer>>(path: P, method: ApiHandler['method'], handler: RouteHandler<TSpecRequest, TSpecServer, TContext>, middleware?: Middleware<TSpecRequest, TSpecServer, TContext>[], schema?: ApiHandler['schema']): this;
|
|
124
|
+
/**
|
|
125
|
+
* Create a route group with shared prefix and middleware.
|
|
126
|
+
* Routes defined within the group inherit the prefix and middleware.
|
|
127
|
+
*
|
|
128
|
+
* Each adapter implements this with its own builder type to support
|
|
129
|
+
* runtime-specific features (e.g., Bun's path parameter inference).
|
|
130
|
+
* Implementations may also support passing a pre-built group object.
|
|
131
|
+
*
|
|
132
|
+
* @param prefix - URL prefix for all routes in the group (e.g., '/api/v1')
|
|
133
|
+
* @param callback - Function that receives a builder to define routes
|
|
134
|
+
* @param options - Optional group-level middleware
|
|
135
|
+
*/
|
|
136
|
+
abstract group(prefix: string, callback: (builder: unknown) => void, options?: {
|
|
137
|
+
middleware?: readonly Middleware<TRequest, TServer, any>[];
|
|
138
|
+
}): this;
|
|
139
|
+
abstract group(group: RouteGroupDefinition<TRequest, TServer>): this;
|
|
140
|
+
/**
|
|
141
|
+
* Get all registered API handlers
|
|
142
|
+
*/
|
|
143
|
+
getApiHandlers(): ApiHandler[];
|
|
144
|
+
/**
|
|
145
|
+
* Register a view for static generation at build time.
|
|
146
|
+
* The view must have staticPaths defined for dynamic routes.
|
|
147
|
+
*
|
|
148
|
+
* Uses a loader function to enable HMR in development.
|
|
149
|
+
*
|
|
150
|
+
* @param path - URL path pattern (e.g., '/posts/:slug')
|
|
151
|
+
* @param loader - A function that dynamically imports the eco.page view module
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* app.static('/login', () => import('./src/views/login.kita'))
|
|
155
|
+
* app.static('/posts/:slug', () => import('./src/views/post-view.kita'))
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
static<P>(path: string, loader: ViewLoader<P>): this;
|
|
159
|
+
/**
|
|
160
|
+
* Get all registered static routes
|
|
161
|
+
*/
|
|
162
|
+
getStaticRoutes(): StaticRoute[];
|
|
163
|
+
/**
|
|
164
|
+
* Register a global error handler for all routes.
|
|
165
|
+
* Useful for logging, monitoring integration, and custom error formatting.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* app.onError(async (error, ctx) => {
|
|
170
|
+
* logger.error(error);
|
|
171
|
+
* return ctx.response.status(500).json({ error: 'Something went wrong' });
|
|
172
|
+
* });
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
onError(handler: ErrorHandler<TRequest, TServer>): this;
|
|
176
|
+
/**
|
|
177
|
+
* Get the registered error handler
|
|
178
|
+
*/
|
|
179
|
+
getErrorHandler(): ErrorHandler | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* Initialize the server adapter based on the runtime
|
|
182
|
+
*/
|
|
183
|
+
protected abstract initializeServerAdapter(): Promise<any>;
|
|
184
|
+
/**
|
|
185
|
+
* Start the application server
|
|
186
|
+
*/
|
|
187
|
+
abstract start(): Promise<TServer | void>;
|
|
188
|
+
/**
|
|
189
|
+
* Handles a standard Web request without requiring a bound network server.
|
|
190
|
+
* This is the primary interoperability surface for embedding Ecopages inside
|
|
191
|
+
* other runtimes and frameworks.
|
|
192
|
+
*/
|
|
193
|
+
abstract fetch(request: TRequest): Promise<Response>;
|
|
194
|
+
}
|