@ecopages/core 0.2.0-beta.30 → 0.2.0-beta.32
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 +1 -0
- package/package.json +82 -3
- package/src/adapters/abstract/application-adapter.d.ts +0 -8
- package/src/adapters/abstract/application-adapter.js +252 -261
- package/src/adapters/abstract/router-adapter.js +12 -4
- package/src/adapters/abstract/segment-path-matcher.js +132 -134
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.js +24 -26
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +83 -86
- package/src/adapters/bun/client-bridge.js +51 -50
- package/src/adapters/bun/create-app.js +171 -161
- package/src/adapters/bun/hmr-manager.js +62 -57
- package/src/adapters/bun/index.js +2 -31
- package/src/adapters/bun/runtime-host.js +61 -54
- package/src/adapters/bun/server-adapter.d.ts +0 -1
- package/src/adapters/bun/server-adapter.js +561 -561
- package/src/adapters/bun/static-preview-host.js +43 -46
- package/src/adapters/create-app.js +11 -14
- package/src/adapters/index.js +2 -30
- package/src/adapters/node/create-app.js +123 -129
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.js +62 -64
- package/src/adapters/node/node-hmr-manager.js +58 -48
- package/src/adapters/node/runtime-host.js +96 -89
- package/src/adapters/node/server-adapter-dependencies.js +18 -21
- package/src/adapters/node/server-adapter.d.ts +0 -1
- package/src/adapters/node/server-adapter.js +347 -326
- package/src/adapters/node/static-content-server.js +172 -191
- package/src/adapters/node/static-preview-host.js +87 -78
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
- package/src/adapters/shared/hmr/hmr-html-response.js +46 -32
- package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +29 -38
- package/src/adapters/shared/hmr/shared-hmr-manager.js +439 -425
- package/src/adapters/shared/http/api-request-pipeline.js +122 -119
- package/src/adapters/shared/http/api-response.js +77 -77
- package/src/adapters/shared/http/create-body-response.js +22 -19
- package/src/adapters/shared/http/define-api-handler.js +41 -55
- package/src/adapters/shared/http/explicit-static-render-preparation.js +26 -23
- package/src/adapters/shared/http/explicit-static-route-matcher.js +55 -62
- package/src/adapters/shared/http/file-route-middleware-pipeline.js +81 -75
- package/src/adapters/shared/http/fs-server-response-factory.js +101 -96
- package/src/adapters/shared/http/fs-server-response-matcher.js +239 -257
- package/src/adapters/shared/http/run-middleware-chain.js +15 -15
- package/src/adapters/shared/runtime/application-adapter.js +72 -87
- package/src/adapters/shared/runtime/copy-runtime-public-dir.js +25 -22
- package/src/adapters/shared/runtime/port-manager.js +207 -177
- package/src/adapters/shared/runtime/render-context.js +94 -79
- package/src/adapters/shared/runtime/runtime-app-bootstrap.js +33 -38
- package/src/adapters/shared/runtime/runtime-host.js +1 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +2 -3
- package/src/adapters/shared/runtime/runtime-server-lifecycle.js +65 -51
- package/src/adapters/shared/runtime/server-adapter.d.ts +1 -0
- package/src/adapters/shared/runtime/server-adapter.js +233 -217
- package/src/adapters/shared/runtime/server-route-handler.js +74 -70
- package/src/adapters/shared/runtime/server-static-builder.js +165 -184
- package/src/adapters/shared/runtime/static-preview-host.js +1 -0
- package/src/adapters/shared/ws/node-http-websocket-upgrades.js +97 -88
- package/src/adapters/shared/ws/websocket-lifecycle.js +57 -50
- package/src/build/README.md +52 -1
- package/src/build/app-build-manifest-runtime.js +129 -108
- package/src/build/browser/browser-runtime-manifest.js +47 -50
- package/src/build/browser/browser-runtime-plugin-helpers.js +32 -12
- package/src/build/browser/browser-runtime-plugin.js +206 -160
- package/src/build/browser/jsx-ownership-plugins.js +51 -37
- package/src/build/browser/lit-static-render-worker-context.js +3 -5
- package/src/build/build-adapter.js +276 -139
- package/src/build/cache/build-input-fingerprint.js +28 -26
- package/src/build/cache/cache-constants.js +4 -6
- package/src/build/cache/cache-keys.js +64 -56
- package/src/build/cache/pages-unified-graph-build.js +179 -178
- package/src/build/cache/production-build-cache.js +47 -54
- package/src/build/cache/server-entry-build-cache.js +134 -146
- package/src/build/contracts/build-contracts.d.ts +4 -4
- package/src/build/contracts/build-contracts.js +1 -0
- package/src/build/contracts/build-manifest.js +58 -43
- package/src/build/contracts/build-types.js +1 -0
- package/src/build/rolldown/rolldown-adapter-helpers.d.ts +9 -0
- package/src/build/rolldown/rolldown-adapter-helpers.js +405 -298
- package/src/build/rolldown/rolldown-build-adapter.js +53 -61
- package/src/build/rolldown/rolldown-build-invocation-metrics.js +31 -35
- package/src/build/rolldown/rolldown-plugin-bridge.js +264 -194
- package/src/build/rolldown/rolldown-source-transform-pass.js +59 -50
- package/src/build/rolldown/runtime-build-output-normalizer.js +227 -175
- package/src/build/rolldown/server-side-css-shim-plugin.js +54 -31
- package/src/build/runtime/build-profile-options.js +36 -36
- package/src/build/runtime/build-request-identity.js +70 -45
- package/src/build/runtime/build-request-policy.js +80 -42
- package/src/build/runtime/build-runtime.js +64 -54
- package/src/build/runtime/deduping-build-executor.js +38 -32
- package/src/build/runtime/parallel-build-executor.js +58 -50
- package/src/build/runtime/serialized-build-executor.js +78 -62
- package/src/cache/index.js +6 -6
- package/src/cache/module-parse-cache.js +99 -68
- package/src/client/navigation-scripts/classification.js +45 -37
- package/src/client/navigation-scripts/index.js +3 -23
- package/src/client/navigation-scripts/navigation-scripts.test.browser.js +58 -62
- package/src/client/navigation-scripts/registry.js +15 -11
- package/src/client/navigation-scripts/rerun-queue.js +81 -64
- package/src/client/scroll.js +32 -24
- package/src/client/scroll.test.browser.js +27 -33
- package/src/client/view-transitions.js +68 -55
- package/src/config/config-builder.d.ts +8 -0
- package/src/config/config-builder.js +637 -642
- package/src/config/constants.js +44 -24
- package/src/declarations.d.ts +1 -0
- package/src/dev/README.md +24 -0
- package/src/dev/client-bridge-registry.js +7 -12
- package/src/dev/dev-client-ownership.js +7 -5
- package/src/dev/hmr-manager-registry.js +7 -12
- package/src/dev/host-runtime.js +25 -30
- package/src/dev/runtime-server-started-message.js +2 -5
- package/src/dev/sc-server.js +106 -103
- package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
- package/src/dev/transform-server/dev-transform-bundler.js +79 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.js +110 -0
- package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
- package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
- package/src/dev/transform-server/dev-transform-server.js +191 -0
- package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-url.js +58 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +27 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.js +145 -0
- package/src/dev/transform-server/index.d.ts +6 -0
- package/src/dev/transform-server/index.js +4 -0
- package/src/dev/transform-server/types.d.ts +15 -0
- package/src/dev/transform-server/types.js +1 -0
- package/src/dev-toolbar/README.md +51 -0
- package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
- package/src/dev-toolbar/define-dev-tool.js +9 -0
- package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
- package/src/dev-toolbar/dev-toolbar-config.js +19 -0
- package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
- package/src/dev-toolbar/dev-toolbar-host.js +117 -0
- package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
- package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
- package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
- package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
- package/src/dev-toolbar/dev-toolbar-package.d.ts +31 -0
- package/src/dev-toolbar/dev-toolbar-package.js +72 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
- package/src/diagnostics/request-build-dedupe.js +34 -28
- package/src/diagnostics/startup-trace.d.ts +10 -1
- package/src/diagnostics/startup-trace.js +269 -241
- package/src/eco/README.md +6 -0
- package/src/eco/eco-declared-component.js +19 -14
- package/src/eco/eco.browser.js +56 -69
- package/src/eco/eco.js +156 -96
- package/src/eco/eco.types.js +5 -0
- package/src/eco/eco.utils.js +1 -10
- package/src/eco/global-injector-map.js +55 -41
- package/src/eco/lazy-injector-map.js +90 -60
- package/src/eco/module-dependencies.js +52 -44
- package/src/eco/page-layout-normalization.js +59 -49
- package/src/errors/http-error.js +50 -49
- package/src/errors/index.js +3 -12
- package/src/errors/locals-access-error.js +5 -8
- package/src/errors/undeclared-component-dependency-error.js +15 -15
- package/src/global/app-logger.js +3 -6
- package/src/hmr/README.md +10 -0
- package/src/hmr/client/hmr-runtime.js +117 -113
- package/src/hmr/client/module-update.d.ts +13 -0
- package/src/hmr/client/module-update.js +39 -0
- package/src/hmr/hmr-asset-paths.d.ts +14 -0
- package/src/hmr/hmr-asset-paths.js +22 -0
- package/src/hmr/hmr-entrypoint-output.d.ts +11 -39
- package/src/hmr/hmr-entrypoint-output.js +28 -54
- package/src/hmr/hmr-file-change-prep.js +13 -16
- package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
- package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
- package/src/hmr/hmr-runtime-paths.d.ts +10 -0
- package/src/hmr/hmr-runtime-paths.js +13 -0
- package/src/hmr/hmr-strategy.d.ts +5 -11
- package/src/hmr/hmr-strategy.js +113 -61
- package/src/hmr/strategies/default-hmr-strategy.js +55 -33
- package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -95
- package/src/hmr/strategies/js-hmr-strategy.js +104 -217
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +33 -27
- package/src/index.browser.js +1 -4
- package/src/index.d.ts +1 -0
- package/src/index.js +6 -47
- package/src/integrations/ghtml/ghtml-renderer.js +12 -7
- package/src/integrations/ghtml/ghtml.constants.js +1 -4
- package/src/integrations/ghtml/ghtml.plugin.js +9 -12
- package/src/islands/README.md +25 -0
- package/src/islands/island-host.d.ts +37 -0
- package/src/islands/island-host.js +55 -0
- package/src/plugins/alias-resolver-cache.js +114 -97
- package/src/plugins/alias-resolver-plugin.js +33 -47
- package/src/plugins/define-integration.js +18 -17
- package/src/plugins/eco-component-meta-plugin.js +387 -145
- package/src/plugins/foreign-jsx-override-plugin.js +49 -35
- package/src/plugins/integration-plugin.js +212 -203
- package/src/plugins/jsx-import-source.utils.js +16 -21
- package/src/plugins/processor.js +159 -149
- package/src/plugins/runtime-capability.js +1 -0
- package/src/plugins/source-transform.js +109 -79
- package/src/plugins/tsconfig-import-resolver.d.ts +17 -0
- package/src/plugins/tsconfig-import-resolver.js +218 -142
- package/src/route-renderer/README.md +12 -1
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +143 -136
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +33 -27
- package/src/route-renderer/orchestration/foreign-child/component-render-context.js +173 -126
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +165 -154
- package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +329 -341
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +33 -32
- package/src/route-renderer/orchestration/integration-renderer.d.ts +1 -0
- package/src/route-renderer/orchestration/integration-renderer.js +731 -750
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +168 -172
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +119 -131
- package/src/route-renderer/orchestration/ownership-graph/component-graph.js +82 -91
- package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +82 -76
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +29 -31
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.loader.js +10 -6
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +31 -28
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +3 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +430 -413
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +191 -212
- package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +20 -24
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +4 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +24 -24
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +22 -24
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +41 -34
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +5 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +42 -22
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +50 -48
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +29 -32
- package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +150 -156
- package/src/route-renderer/orchestration/string-markup-renderer.js +48 -51
- package/src/route-renderer/page-loading/component-dependency-collection.js +120 -124
- package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
- package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +68 -54
- package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +46 -36
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +38 -31
- package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
- package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
- package/src/route-renderer/page-loading/page-module-loader.js +130 -124
- package/src/route-renderer/route-renderer.js +74 -76
- package/src/router/client/link-intent.js +55 -39
- package/src/router/client/link-intent.test.browser.js +49 -49
- package/src/router/client/link-navigation-policy.js +114 -93
- package/src/router/client/link-navigation-policy.test.browser.js +70 -80
- package/src/router/client/navigation-coordinator.js +235 -211
- package/src/router/server/route-registry.js +237 -242
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -53
- package/src/services/assets/asset-processing-service/asset-processing.service.js +287 -303
- package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
- package/src/services/assets/asset-processing-service/assets.types.js +1 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +106 -69
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -53
- package/src/services/assets/asset-processing-service/finalize-processed-asset.js +4 -6
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +79 -80
- package/src/services/assets/asset-processing-service/index.js +8 -8
- package/src/services/assets/asset-processing-service/inline-content-script-body.js +22 -16
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +21 -17
- package/src/services/assets/asset-processing-service/page-package.js +70 -72
- package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
- package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -117
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +110 -115
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -97
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +27 -29
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +34 -40
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +36 -35
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +14 -16
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -39
- package/src/services/assets/browser-bundle.service.js +52 -47
- package/src/services/cache/cache.types.js +5 -0
- package/src/services/cache/index.js +6 -7
- package/src/services/cache/memory-cache-store.js +101 -89
- package/src/services/cache/page-cache-service.js +156 -145
- package/src/services/cache/page-request-cache-coordinator.service.js +102 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.js +252 -241
- package/src/services/module-loading/app-module-loader.service.js +1 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +107 -101
- package/src/services/module-loading/host-module-loader-registry.js +6 -11
- package/src/services/module-loading/module-loading-types.js +1 -0
- package/src/services/module-loading/page-module-import.service.js +235 -243
- package/src/services/module-loading/route-module-build-cache-registry.js +47 -33
- package/src/services/module-loading/route-module-build-cache.js +3 -38
- package/src/services/module-loading/route-module-build-cache.store.js +195 -200
- package/src/services/module-loading/route-module-build-manifest.js +61 -74
- package/src/services/module-loading/route-module-dependency-hasher.js +136 -110
- package/src/services/module-loading/server-module-transpiler.service.js +68 -62
- package/src/services/module-loading/source-module-support.js +15 -7
- package/src/services/runtime-state/dev-graph.service.js +165 -157
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
- package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
- package/src/services/validation/schema-validation-service.js +157 -95
- package/src/services/validation/standard-schema.types.js +1 -0
- package/src/services/validation/validate-standard-schema.js +13 -13
- package/src/static-site-generator/production-page-browser-graph-prebuild.js +35 -19
- package/src/static-site-generator/sitemap-routes.js +33 -28
- package/src/static-site-generator/sitemap.js +38 -29
- package/src/static-site-generator/static-build-invalidation.js +34 -56
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.js +517 -553
- package/src/types/internal-types.d.ts +19 -3
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +16 -46
- package/src/types/public-types.js +1 -0
- package/src/utils/deep-merge.js +39 -26
- package/src/utils/ecopages-route-info.js +27 -23
- package/src/utils/hash.js +3 -6
- package/src/utils/html-escaping.js +21 -8
- package/src/utils/html.js +1 -4
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.js +73 -65
- package/src/utils/path-pattern.js +38 -23
- package/src/utils/path-utils.module.js +8 -11
- package/src/utils/resolve-entry-file.js +70 -38
- package/src/utils/resolve-work-dir.js +23 -27
- package/src/utils/runtime.js +24 -33
- package/src/utils/server-utils.module.js +60 -52
- package/src/utils/static-file-extensions.js +52 -46
- package/src/watchers/project-watcher-ignore.js +16 -15
- package/src/watchers/project-watcher.js +385 -366
- package/src/watchers/project-watcher.test-helpers.js +45 -50
- package/src/adapters/shared/hmr/hmr-entrypoint-registrar.d.ts +0 -56
- package/src/adapters/shared/hmr/hmr-entrypoint-registrar.js +0 -106
- package/src/build/cache/dev-browser-script-cache.d.ts +0 -34
- package/src/build/cache/dev-browser-script-cache.js +0 -90
|
@@ -1,100 +1,162 @@
|
|
|
1
|
-
import { SchemaError, validateStandardSchema } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
import { SchemaError, validateStandardSchema } from './validate-standard-schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Service for validating request data using Standard Schema compliant validators.
|
|
4
|
+
*
|
|
5
|
+
* This service provides a unified interface for validating HTTP request data (body, query parameters, headers)
|
|
6
|
+
* using any validation library that implements the Standard Schema specification.
|
|
7
|
+
*
|
|
8
|
+
* @example Using with Zod
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { z } from 'zod';
|
|
11
|
+
* import { SchemaValidationService } from './schema-validation-service.js';
|
|
12
|
+
*
|
|
13
|
+
* const service = new SchemaValidationService();
|
|
14
|
+
* const result = await service.validateRequest(
|
|
15
|
+
* { body: { title: 'Hello', count: 42 } },
|
|
16
|
+
* { body: z.object({ title: z.string(), count: z.number() }) }
|
|
17
|
+
* );
|
|
18
|
+
*
|
|
19
|
+
* if (result.success) {
|
|
20
|
+
* console.log(result.data.body);
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example Using with Valibot
|
|
25
|
+
* ```typescript
|
|
26
|
+
* import * as v from 'valibot';
|
|
27
|
+
*
|
|
28
|
+
* const result = await service.validateRequest(
|
|
29
|
+
* { query: { page: '1' } },
|
|
30
|
+
* { query: v.object({ page: v.string() }) }
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example Using with ArkType
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { type } from 'arktype';
|
|
37
|
+
*
|
|
38
|
+
* const result = await service.validateRequest(
|
|
39
|
+
* { headers: { 'authorization': 'Bearer token' } },
|
|
40
|
+
* { headers: type({ authorization: 'string' }) }
|
|
41
|
+
* );
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example Multiple sources
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const result = await service.validateRequest(
|
|
47
|
+
* {
|
|
48
|
+
* body: { title: 'Post' },
|
|
49
|
+
* query: { format: 'json' },
|
|
50
|
+
* headers: { 'content-type': 'application/json' }
|
|
51
|
+
* },
|
|
52
|
+
* {
|
|
53
|
+
* body: z.object({ title: z.string() }),
|
|
54
|
+
* query: v.object({ format: v.string() }),
|
|
55
|
+
* headers: type({ 'content-type': 'string' })
|
|
56
|
+
* }
|
|
57
|
+
* );
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* Supported libraries: Zod, Valibot, ArkType, Effect Schema (with standardSchemaV1 wrapper)
|
|
61
|
+
*/
|
|
62
|
+
export class SchemaValidationService {
|
|
63
|
+
/**
|
|
64
|
+
* Validates request data against provided schemas.
|
|
65
|
+
*
|
|
66
|
+
* Validates body, query parameters, and headers against their respective schemas.
|
|
67
|
+
* All validations are performed, and errors are aggregated from all sources.
|
|
68
|
+
*
|
|
69
|
+
* @param source - The data to validate (body, query, headers)
|
|
70
|
+
* @param schemas - The Standard Schema validators for each source
|
|
71
|
+
* @returns Validation result with validated data or aggregated errors
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const result = await service.validateRequest(
|
|
76
|
+
* { body: { name: 'John', age: 30 } },
|
|
77
|
+
* { body: z.object({ name: z.string(), age: z.number() }) }
|
|
78
|
+
* );
|
|
79
|
+
*
|
|
80
|
+
* if (result.success) {
|
|
81
|
+
* const validated = result.data.body;
|
|
82
|
+
* } else {
|
|
83
|
+
* console.error(result.errors);
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
async validateRequest(source, schemas) {
|
|
88
|
+
const validated = {};
|
|
89
|
+
const allErrors = [];
|
|
90
|
+
if (schemas.body && source.body !== undefined) {
|
|
91
|
+
const result = await this.validateWithSchema(schemas.body, source.body);
|
|
92
|
+
if (!result.success) {
|
|
93
|
+
allErrors.push(...(result.errors || []));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
validated.body = result.data;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (schemas.query && source.query) {
|
|
100
|
+
const result = await this.validateWithSchema(schemas.query, source.query);
|
|
101
|
+
if (!result.success) {
|
|
102
|
+
allErrors.push(...(result.errors || []));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
validated.query = result.data;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (schemas.headers && source.headers) {
|
|
109
|
+
const result = await this.validateWithSchema(schemas.headers, source.headers);
|
|
110
|
+
if (!result.success) {
|
|
111
|
+
allErrors.push(...(result.errors || []));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
validated.headers = result.data;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (schemas.params && source.params) {
|
|
118
|
+
const result = await this.validateWithSchema(schemas.params, source.params);
|
|
119
|
+
if (!result.success) {
|
|
120
|
+
allErrors.push(...(result.errors || []));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
validated.params = result.data;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (allErrors.length > 0) {
|
|
127
|
+
return { success: false, errors: allErrors };
|
|
128
|
+
}
|
|
129
|
+
return { success: true, data: validated };
|
|
37
130
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
} else {
|
|
43
|
-
validated.query = result.data;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (schemas.headers && source.headers) {
|
|
47
|
-
const result = await this.validateWithSchema(schemas.headers, source.headers);
|
|
48
|
-
if (!result.success) {
|
|
49
|
-
allErrors.push(...result.errors || []);
|
|
50
|
-
} else {
|
|
51
|
-
validated.headers = result.data;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (schemas.params && source.params) {
|
|
55
|
-
const result = await this.validateWithSchema(schemas.params, source.params);
|
|
56
|
-
if (!result.success) {
|
|
57
|
-
allErrors.push(...result.errors || []);
|
|
58
|
-
} else {
|
|
59
|
-
validated.params = result.data;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (allErrors.length > 0) {
|
|
63
|
-
return { success: false, errors: allErrors };
|
|
64
|
-
}
|
|
65
|
-
return { success: true, data: validated };
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Validates a single value against a Standard Schema.
|
|
69
|
-
*/
|
|
70
|
-
mapSchemaIssue(issue) {
|
|
71
|
-
return {
|
|
72
|
-
message: issue.message,
|
|
73
|
-
path: issue.path?.map((p) => typeof p === "object" && "key" in p ? p.key : p)
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
async validateWithSchema(schema, data) {
|
|
77
|
-
try {
|
|
78
|
-
const value = await validateStandardSchema(schema, data);
|
|
79
|
-
return { success: true, data: value };
|
|
80
|
-
} catch (error) {
|
|
81
|
-
if (error instanceof SchemaError) {
|
|
131
|
+
/**
|
|
132
|
+
* Validates a single value against a Standard Schema.
|
|
133
|
+
*/
|
|
134
|
+
mapSchemaIssue(issue) {
|
|
82
135
|
return {
|
|
83
|
-
|
|
84
|
-
|
|
136
|
+
message: issue.message,
|
|
137
|
+
path: issue.path?.map((p) => (typeof p === 'object' && 'key' in p ? p.key : p)),
|
|
85
138
|
};
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
success: false,
|
|
89
|
-
errors: [
|
|
90
|
-
{
|
|
91
|
-
message: error instanceof Error ? error.message : "Validation failed"
|
|
92
|
-
}
|
|
93
|
-
]
|
|
94
|
-
};
|
|
95
139
|
}
|
|
96
|
-
|
|
140
|
+
async validateWithSchema(schema, data) {
|
|
141
|
+
try {
|
|
142
|
+
const value = await validateStandardSchema(schema, data);
|
|
143
|
+
return { success: true, data: value };
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
if (error instanceof SchemaError) {
|
|
147
|
+
return {
|
|
148
|
+
success: false,
|
|
149
|
+
errors: error.issues.map((issue) => this.mapSchemaIssue(issue)),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
success: false,
|
|
154
|
+
errors: [
|
|
155
|
+
{
|
|
156
|
+
message: error instanceof Error ? error.message : 'Validation failed',
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
97
162
|
}
|
|
98
|
-
export {
|
|
99
|
-
SchemaValidationService
|
|
100
|
-
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { SchemaError } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { SchemaError } from '@standard-schema/utils';
|
|
2
|
+
export { SchemaError } from '@standard-schema/utils';
|
|
3
|
+
/**
|
|
4
|
+
* Validates a value with any Standard Schema-compliant validator.
|
|
5
|
+
* Throws {@link SchemaError} when validation fails.
|
|
6
|
+
*/
|
|
7
|
+
export async function validateStandardSchema(schema, value) {
|
|
8
|
+
const resultOrPromise = schema['~standard'].validate(value);
|
|
9
|
+
const result = resultOrPromise instanceof Promise ? await resultOrPromise : resultOrPromise;
|
|
10
|
+
if (result.issues) {
|
|
11
|
+
throw new SchemaError(result.issues);
|
|
12
|
+
}
|
|
13
|
+
return result.value;
|
|
10
14
|
}
|
|
11
|
-
export {
|
|
12
|
-
SchemaError2 as SchemaError,
|
|
13
|
-
validateStandardSchema
|
|
14
|
-
};
|
|
@@ -1,22 +1,38 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { getAppPageBrowserGraphSession } from
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { getAppPageBrowserGraphSession } from '../route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns whether production static export should warm Page Browser Graphs before rendering.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* True only when `NODE_ENV === 'production'`. Independent of `force` and of
|
|
8
|
+
* unified pages-graph env flags. Does not persist a disk manifest.
|
|
9
|
+
*/
|
|
10
|
+
export function shouldPrebuildProductionPageBrowserGraphs() {
|
|
11
|
+
return process.env.NODE_ENV === 'production';
|
|
5
12
|
}
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Clears in-memory production Page Browser Graph session records.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* Clears only the `'production'` policy so a failed or force export cannot
|
|
18
|
+
* reuse staged graph output. Development session records are left intact.
|
|
19
|
+
*/
|
|
20
|
+
export function clearProductionPageBrowserGraphSession(appConfig) {
|
|
21
|
+
getAppPageBrowserGraphSession(appConfig).clearPolicyRecords('production');
|
|
8
22
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Warms production Page Browser Graphs for the supplied static route files.
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* Deduplicates and lexicographically sorts absolute route paths, then calls
|
|
28
|
+
* each integration renderer's `prebuildProductionPageBrowserGraph` sequentially
|
|
29
|
+
* (activates integration runtime, then resolves into
|
|
30
|
+
* `page-browser-graph-session`). Does not persist a disk manifest.
|
|
31
|
+
*/
|
|
32
|
+
export async function prebuildProductionPageBrowserGraphs(routeFiles, routeRendererFactory) {
|
|
33
|
+
const uniqueRouteFiles = [...new Set(routeFiles.map((routeFile) => path.resolve(routeFile)))].sort((left, right) => left.localeCompare(right));
|
|
34
|
+
for (const routeFile of uniqueRouteFiles) {
|
|
35
|
+
const renderer = routeRendererFactory.getPageRenderer(routeFile);
|
|
36
|
+
await renderer.prebuildProductionPageBrowserGraph(routeFile);
|
|
37
|
+
}
|
|
17
38
|
}
|
|
18
|
-
export {
|
|
19
|
-
clearProductionPageBrowserGraphSession,
|
|
20
|
-
prebuildProductionPageBrowserGraphs,
|
|
21
|
-
shouldPrebuildProductionPageBrowserGraphs
|
|
22
|
-
};
|
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import { matchesAnyPathPattern, normalizePathname } from
|
|
2
|
-
import { buildSitemapLocation } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { matchesAnyPathPattern, normalizePathname } from '../utils/path-pattern.js';
|
|
2
|
+
import { buildSitemapLocation } from './sitemap.js';
|
|
3
|
+
/**
|
|
4
|
+
* Builds the ordered absolute locations for sitemap.xml.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* `eligiblePathnames` must already be successfully exported and robots-indexable.
|
|
8
|
+
* Filtering here is only `sitemap.exclude`, then `extraUrls` are appended.
|
|
9
|
+
* `extraUrls` always include (deduped) and are not subject to `exclude` or page robots.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveSitemapLocations(input) {
|
|
12
|
+
const exclude = input.sitemap.exclude ?? [];
|
|
13
|
+
const locations = [];
|
|
14
|
+
const seen = new Set();
|
|
15
|
+
for (const pathname of input.eligiblePathnames) {
|
|
16
|
+
const normalized = normalizePathname(pathname);
|
|
17
|
+
if (matchesAnyPathPattern(normalized, exclude)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const location = buildSitemapLocation(input.baseUrl, normalized);
|
|
21
|
+
if (seen.has(location)) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
seen.add(location);
|
|
25
|
+
locations.push(location);
|
|
11
26
|
}
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
27
|
+
for (const extraUrl of input.sitemap.extraUrls ?? []) {
|
|
28
|
+
const location = buildSitemapLocation(input.baseUrl, extraUrl);
|
|
29
|
+
if (seen.has(location)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
seen.add(location);
|
|
33
|
+
locations.push(location);
|
|
15
34
|
}
|
|
16
|
-
|
|
17
|
-
locations.push(location);
|
|
18
|
-
}
|
|
19
|
-
for (const extraUrl of input.sitemap.extraUrls ?? []) {
|
|
20
|
-
const location = buildSitemapLocation(input.baseUrl, extraUrl);
|
|
21
|
-
if (seen.has(location)) {
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
seen.add(location);
|
|
25
|
-
locations.push(location);
|
|
26
|
-
}
|
|
27
|
-
return locations;
|
|
35
|
+
return locations;
|
|
28
36
|
}
|
|
29
|
-
export {
|
|
30
|
-
resolveSitemapLocations
|
|
31
|
-
};
|
|
@@ -1,33 +1,42 @@
|
|
|
1
|
-
import { escapeXmlText } from
|
|
2
|
-
import { normalizePathname } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { escapeXmlText } from '../utils/html-escaping.js';
|
|
2
|
+
import { normalizePathname } from '../utils/path-pattern.js';
|
|
3
|
+
/**
|
|
4
|
+
* Joins a base origin with a pathname or absolute URL into a sitemap `<loc>` value.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Trailing slashes are stripped except for the site root (`/`). Absolute `http(s)`
|
|
8
|
+
* URLs in `extraUrls` are returned as-is (still slash-normalized).
|
|
9
|
+
*/
|
|
10
|
+
export function buildSitemapLocation(baseUrl, pathnameOrUrl) {
|
|
11
|
+
const trimmed = pathnameOrUrl.trim();
|
|
12
|
+
if (/^https?:\/\//i.test(trimmed)) {
|
|
13
|
+
return normalizeLocation(trimmed);
|
|
14
|
+
}
|
|
15
|
+
const origin = baseUrl.replace(/\/+$/, '');
|
|
16
|
+
const pathname = normalizePathname(trimmed);
|
|
17
|
+
return pathname === '/' ? `${origin}/` : `${origin}${pathname}`;
|
|
11
18
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
urls
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Renders a sitemap.org 0.9 urlset document from absolute location URLs.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* Callers are responsible for deduplication; this serializer preserves input order.
|
|
24
|
+
*/
|
|
25
|
+
export function renderSitemap(locations) {
|
|
26
|
+
const urls = locations
|
|
27
|
+
.map((loc) => ` <url>\n <loc>${escapeXmlText(normalizeLocation(loc))}</loc>\n </url>`)
|
|
28
|
+
.join('\n');
|
|
29
|
+
return [
|
|
30
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
31
|
+
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
|
|
32
|
+
urls,
|
|
33
|
+
'</urlset>',
|
|
34
|
+
'',
|
|
35
|
+
].join('\n');
|
|
23
36
|
}
|
|
24
37
|
function normalizeLocation(location) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
if (/^https?:\/\/[^/]+\/?$/i.test(location)) {
|
|
39
|
+
return `${location.replace(/\/+$/, '')}/`;
|
|
40
|
+
}
|
|
41
|
+
return location.replace(/\/+$/, '');
|
|
29
42
|
}
|
|
30
|
-
export {
|
|
31
|
-
buildSitemapLocation,
|
|
32
|
-
renderSitemap
|
|
33
|
-
};
|
|
@@ -1,59 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
import {
|
|
13
|
-
collectBuildInputContributors,
|
|
14
|
-
createBuildInputsFingerprint as createBuildInputsFingerprint2,
|
|
15
|
-
didBuildInputContributorChange,
|
|
16
|
-
hashAppConfigFile as hashAppConfigFile2,
|
|
17
|
-
haveBuildInputsChanged as haveBuildInputsChanged2
|
|
18
|
-
} from "../build/cache/build-input-fingerprint.js";
|
|
19
|
-
function createRouteModuleStaticRenderCacheContext(appConfig) {
|
|
20
|
-
return {
|
|
21
|
-
configHash: hashAppConfigFile(appConfig),
|
|
22
|
-
buildInputsFingerprint: createBuildInputsFingerprint(appConfig)
|
|
23
|
-
};
|
|
1
|
+
import { createBuildInputsFingerprint, hashAppConfigFile, haveBuildInputsChanged, } from '../build/cache/build-input-fingerprint.js';
|
|
2
|
+
import { clearPersistedProductionBuildCacheManifests } from '../build/cache/production-build-cache.js';
|
|
3
|
+
import {} from '../services/module-loading/route-module-build-manifest.js';
|
|
4
|
+
import { getSharedRouteModuleBuildCache, getServerModuleBuildCacheOutdir, } from '../services/module-loading/route-module-build-cache-registry.js';
|
|
5
|
+
export { collectBuildInputContributors, createBuildInputsFingerprint, didBuildInputContributorChange, hashAppConfigFile, haveBuildInputsChanged, } from '../build/cache/build-input-fingerprint.js';
|
|
6
|
+
/** Builds the static-render invalidation context for one app config. */
|
|
7
|
+
export function createRouteModuleStaticRenderCacheContext(appConfig) {
|
|
8
|
+
return {
|
|
9
|
+
configHash: hashAppConfigFile(appConfig),
|
|
10
|
+
buildInputsFingerprint: createBuildInputsFingerprint(appConfig),
|
|
11
|
+
};
|
|
24
12
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
createRouteModuleStaticRenderCacheContext(appConfig)
|
|
35
|
-
);
|
|
13
|
+
/** Returns whether `dist/` should be wiped before the next static export. */
|
|
14
|
+
export function shouldResetStaticExportDirectory(appConfig, force = false) {
|
|
15
|
+
if (force) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
if (haveBuildInputsChanged(appConfig)) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
const routeModuleCache = getSharedRouteModuleBuildCache(getServerModuleBuildCacheOutdir(appConfig), appConfig);
|
|
22
|
+
return !routeModuleCache.isIncrementalStaticGenerationAvailable(createRouteModuleStaticRenderCacheContext(appConfig));
|
|
36
23
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
cache.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
appConfig.runtime
|
|
48
|
-
|
|
24
|
+
/** Removes persisted production build caches so the next build recomputes everything. */
|
|
25
|
+
export function clearProductionBuildCaches(appConfig) {
|
|
26
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
clearPersistedProductionBuildCacheManifests(appConfig);
|
|
30
|
+
for (const cache of appConfig.runtime?.routeModuleBuildCaches?.values() ?? []) {
|
|
31
|
+
cache.resetMemory();
|
|
32
|
+
}
|
|
33
|
+
appConfig.runtime?.routeModuleBuildCaches?.clear();
|
|
34
|
+
if (appConfig.runtime) {
|
|
35
|
+
appConfig.runtime.buildRuntime = undefined;
|
|
36
|
+
}
|
|
49
37
|
}
|
|
50
|
-
export {
|
|
51
|
-
clearProductionBuildCaches,
|
|
52
|
-
collectBuildInputContributors,
|
|
53
|
-
createBuildInputsFingerprint2 as createBuildInputsFingerprint,
|
|
54
|
-
createRouteModuleStaticRenderCacheContext,
|
|
55
|
-
didBuildInputContributorChange,
|
|
56
|
-
hashAppConfigFile2 as hashAppConfigFile,
|
|
57
|
-
haveBuildInputsChanged2 as haveBuildInputsChanged,
|
|
58
|
-
shouldResetStaticExportDirectory
|
|
59
|
-
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|