@timber-js/app 0.2.0-alpha.12 → 0.2.0-alpha.121
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/dist/_chunks/actions-Dy8vOjFt.js +1101 -0
- package/dist/_chunks/actions-Dy8vOjFt.js.map +1 -0
- package/dist/_chunks/build-output-helper-B1n0sUqj.js +61 -0
- package/dist/_chunks/build-output-helper-B1n0sUqj.js.map +1 -0
- package/dist/_chunks/cli-schema-sync-ByZPGGmS.js +724 -0
- package/dist/_chunks/cli-schema-sync-ByZPGGmS.js.map +1 -0
- package/dist/_chunks/cli-schema-sync-DHQLjFu3.js +2 -0
- package/dist/_chunks/codec-registry-G9hD5LOq.js +21 -0
- package/dist/_chunks/codec-registry-G9hD5LOq.js.map +1 -0
- package/dist/_chunks/define-CPVQaWbx.js +124 -0
- package/dist/_chunks/define-CPVQaWbx.js.map +1 -0
- package/dist/_chunks/define-jeHDXZGq.js +195 -0
- package/dist/_chunks/define-jeHDXZGq.js.map +1 -0
- package/dist/_chunks/format-BjN9HLu9.js +14 -0
- package/dist/_chunks/format-BjN9HLu9.js.map +1 -0
- package/dist/_chunks/handler-store-CcwNX-gk.js +54 -0
- package/dist/_chunks/handler-store-CcwNX-gk.js.map +1 -0
- package/dist/_chunks/logger-DDmK5skc.js +291 -0
- package/dist/_chunks/logger-DDmK5skc.js.map +1 -0
- package/dist/_chunks/merge-search-params-az6ZiBeU.js +41 -0
- package/dist/_chunks/merge-search-params-az6ZiBeU.js.map +1 -0
- package/dist/_chunks/navigation-root-DoRTeBm5.js +96 -0
- package/dist/_chunks/navigation-root-DoRTeBm5.js.map +1 -0
- package/dist/_chunks/registry-BI9cgCt7.js +20 -0
- package/dist/_chunks/registry-BI9cgCt7.js.map +1 -0
- package/dist/_chunks/resolve-schema-Bf8eC6q6.js +73 -0
- package/dist/_chunks/resolve-schema-Bf8eC6q6.js.map +1 -0
- package/dist/_chunks/router-ref-CpvjBqdu.js +28 -0
- package/dist/_chunks/router-ref-CpvjBqdu.js.map +1 -0
- package/dist/_chunks/schema-bridge-o0SwFtXW.js +86 -0
- package/dist/_chunks/schema-bridge-o0SwFtXW.js.map +1 -0
- package/dist/_chunks/segment-classify-CnfLLvir.js +137 -0
- package/dist/_chunks/segment-classify-CnfLLvir.js.map +1 -0
- package/dist/_chunks/segment-context-EsfQpS--.js +34 -0
- package/dist/_chunks/segment-context-EsfQpS--.js.map +1 -0
- package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-m9-cNEIw.js} +1 -1
- package/dist/_chunks/ssr-data-m9-cNEIw.js.map +1 -0
- package/dist/_chunks/stale-reload-BN2kcE06.js +64 -0
- package/dist/_chunks/stale-reload-BN2kcE06.js.map +1 -0
- package/dist/_chunks/tracing-DvKLzCFa.js +329 -0
- package/dist/_chunks/tracing-DvKLzCFa.js.map +1 -0
- package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-C9G6LP0F.js} +7 -20
- package/dist/_chunks/use-query-states-C9G6LP0F.js.map +1 -0
- package/dist/_chunks/use-segment-params-CtIAjqK0.js +185 -0
- package/dist/_chunks/use-segment-params-CtIAjqK0.js.map +1 -0
- package/dist/_chunks/validation-BMU5MPzP.js +84 -0
- package/dist/_chunks/validation-BMU5MPzP.js.map +1 -0
- package/dist/_chunks/walkers-DNp9tHyV.js +719 -0
- package/dist/_chunks/walkers-DNp9tHyV.js.map +1 -0
- package/dist/_chunks/{format-DviM89f0.js → warnings-B30wpfaS.js} +6 -45
- package/dist/_chunks/warnings-B30wpfaS.js.map +1 -0
- package/dist/adapters/build-output-helper.d.ts +28 -0
- package/dist/adapters/build-output-helper.d.ts.map +1 -0
- package/dist/adapters/cloudflare-dev.d.ts +109 -0
- package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
- package/dist/adapters/cloudflare-dev.js +73 -0
- package/dist/adapters/cloudflare-dev.js.map +1 -0
- package/dist/adapters/cloudflare-kv-cache.d.ts +64 -0
- package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
- package/dist/adapters/cloudflare-kv-cache.js +95 -0
- package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +148 -12
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +142 -38
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/compress-module.d.ts.map +1 -1
- package/dist/adapters/nitro.d.ts +17 -1
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +143 -45
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/adapters/shared.d.ts +16 -0
- package/dist/adapters/shared.d.ts.map +1 -0
- package/dist/cache/cache-api.d.ts +24 -0
- package/dist/cache/cache-api.d.ts.map +1 -0
- package/dist/cache/handler-store.d.ts +31 -0
- package/dist/cache/handler-store.d.ts.map +1 -0
- package/dist/cache/index.d.ts +23 -7
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +151 -81
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/singleflight.d.ts +18 -1
- package/dist/cache/singleflight.d.ts.map +1 -1
- package/dist/cache/sizeof.d.ts +22 -0
- package/dist/cache/sizeof.d.ts.map +1 -0
- package/dist/cache/timber-cache.d.ts +1 -1
- package/dist/cache/timber-cache.d.ts.map +1 -1
- package/dist/cli-schema-sync.d.ts +37 -0
- package/dist/cli-schema-sync.d.ts.map +1 -0
- package/dist/cli.d.ts +14 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +42 -6
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-dev.d.ts +34 -1
- package/dist/client/browser-dev.d.ts.map +1 -1
- package/dist/client/browser-entry/action-dispatch.d.ts +17 -0
- package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
- package/dist/client/browser-entry/hmr.d.ts +21 -0
- package/dist/client/browser-entry/hmr.d.ts.map +1 -0
- package/dist/client/browser-entry/hydrate.d.ts +46 -0
- package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
- package/dist/client/browser-entry/index.d.ts +30 -0
- package/dist/client/browser-entry/index.d.ts.map +1 -0
- package/dist/client/browser-entry/post-hydration.d.ts +26 -0
- package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
- package/dist/client/browser-entry/router-init.d.ts +23 -0
- package/dist/client/browser-entry/router-init.d.ts.map +1 -0
- package/dist/client/browser-entry/rsc-stream.d.ts +24 -0
- package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
- package/dist/client/browser-entry/scroll.d.ts +19 -0
- package/dist/client/browser-entry/scroll.d.ts.map +1 -0
- package/dist/client/error-boundary.d.ts +12 -5
- package/dist/client/error-boundary.d.ts.map +1 -1
- package/dist/client/error-boundary.js +29 -6
- package/dist/client/error-boundary.js.map +1 -1
- package/dist/client/error-reconstituter.d.ts +54 -0
- package/dist/client/error-reconstituter.d.ts.map +1 -0
- package/dist/client/form.d.ts +16 -27
- package/dist/client/form.d.ts.map +1 -1
- package/dist/client/history.d.ts +19 -4
- package/dist/client/history.d.ts.map +1 -1
- package/dist/client/index.d.ts +9 -24
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +172 -1100
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +19 -0
- package/dist/client/internal.d.ts.map +1 -0
- package/dist/client/internal.js +964 -0
- package/dist/client/internal.js.map +1 -0
- package/dist/client/link-pending-store.d.ts +63 -0
- package/dist/client/link-pending-store.d.ts.map +1 -0
- package/dist/client/link.d.ts +62 -55
- package/dist/client/link.d.ts.map +1 -1
- package/dist/client/nav-link-store.d.ts +36 -0
- package/dist/client/nav-link-store.d.ts.map +1 -0
- package/dist/client/navigation-api-types.d.ts +90 -0
- package/dist/client/navigation-api-types.d.ts.map +1 -0
- package/dist/client/navigation-api.d.ts +115 -0
- package/dist/client/navigation-api.d.ts.map +1 -0
- package/dist/client/navigation-context.d.ts +13 -2
- package/dist/client/navigation-context.d.ts.map +1 -1
- package/dist/client/{transition-root.d.ts → navigation-root.d.ts} +42 -8
- package/dist/client/navigation-root.d.ts.map +1 -0
- package/dist/client/nuqs-adapter.d.ts.map +1 -1
- package/dist/client/router-ref.d.ts +1 -1
- package/dist/client/router.d.ts +70 -4
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +38 -3
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +1 -1
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/client/segment-outlet.d.ts +63 -0
- package/dist/client/segment-outlet.d.ts.map +1 -0
- package/dist/client/ssr-data.d.ts +13 -4
- package/dist/client/ssr-data.d.ts.map +1 -1
- package/dist/client/stale-reload.d.ts +15 -0
- package/dist/client/stale-reload.d.ts.map +1 -1
- package/dist/client/state.d.ts +1 -1
- package/dist/client/top-loader.d.ts +5 -5
- package/dist/client/top-loader.d.ts.map +1 -1
- package/dist/client/use-cookie.d.ts +12 -0
- package/dist/client/use-cookie.d.ts.map +1 -1
- package/dist/client/use-link-status.d.ts +5 -5
- package/dist/client/use-link-status.d.ts.map +1 -1
- package/dist/client/{use-navigation-pending.d.ts → use-pending-navigation.d.ts} +4 -4
- package/dist/client/use-pending-navigation.d.ts.map +1 -0
- package/dist/client/use-query-states.d.ts +1 -1
- package/dist/client/use-query-states.d.ts.map +1 -1
- package/dist/client/use-router.d.ts +1 -1
- package/dist/client/{use-params.d.ts → use-segment-params.d.ts} +8 -6
- package/dist/client/use-segment-params.d.ts.map +1 -0
- package/dist/codec.d.ts +69 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +75 -0
- package/dist/codec.js.map +1 -0
- package/dist/config-types.d.ts +294 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-validation.d.ts +51 -0
- package/dist/config-validation.d.ts.map +1 -0
- package/dist/content/index.d.ts +1 -10
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +0 -2
- package/dist/cookies/define-cookie.d.ts +58 -25
- package/dist/cookies/define-cookie.d.ts.map +1 -1
- package/dist/cookies/index.d.ts +2 -1
- package/dist/cookies/index.d.ts.map +1 -1
- package/dist/cookies/index.js +251 -36
- package/dist/cookies/index.js.map +1 -1
- package/dist/cookies/json-cookie.d.ts +64 -0
- package/dist/cookies/json-cookie.d.ts.map +1 -0
- package/dist/cookies/validation.d.ts +46 -0
- package/dist/cookies/validation.d.ts.map +1 -0
- package/dist/dev-tools/404-page.d.ts +46 -0
- package/dist/dev-tools/404-page.d.ts.map +1 -0
- package/dist/dev-tools/browser-logs.d.ts +84 -0
- package/dist/dev-tools/browser-logs.d.ts.map +1 -0
- package/dist/dev-tools/error-page.d.ts +58 -0
- package/dist/dev-tools/error-page.d.ts.map +1 -0
- package/dist/dev-tools/holding-server.d.ts +54 -0
- package/dist/dev-tools/holding-server.d.ts.map +1 -0
- package/dist/dev-tools/index.d.ts +31 -0
- package/dist/dev-tools/index.d.ts.map +1 -0
- package/dist/{server/dev-span-processor.d.ts → dev-tools/instrumentation.d.ts} +26 -6
- package/dist/dev-tools/instrumentation.d.ts.map +1 -0
- package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
- package/dist/dev-tools/logger.d.ts.map +1 -0
- package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +2 -2
- package/dist/dev-tools/logs.d.ts.map +1 -0
- package/dist/dev-tools/overlay.d.ts +91 -0
- package/dist/dev-tools/overlay.d.ts.map +1 -0
- package/dist/dev-tools/stack-classifier.d.ts +34 -0
- package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
- package/dist/dev-tools/terminal.d.ts +28 -0
- package/dist/dev-tools/terminal.d.ts.map +1 -0
- package/dist/{server/dev-warnings.d.ts → dev-tools/warnings.d.ts} +2 -22
- package/dist/dev-tools/warnings.d.ts.map +1 -0
- package/dist/fonts/ast.d.ts +98 -6
- package/dist/fonts/ast.d.ts.map +1 -1
- package/dist/fonts/bundle.d.ts +48 -0
- package/dist/fonts/bundle.d.ts.map +1 -0
- package/dist/fonts/dev-middleware.d.ts +22 -0
- package/dist/fonts/dev-middleware.d.ts.map +1 -0
- package/dist/fonts/local.d.ts +1 -1
- package/dist/fonts/pipeline.d.ts +167 -0
- package/dist/fonts/pipeline.d.ts.map +1 -0
- package/dist/fonts/transform.d.ts +78 -0
- package/dist/fonts/transform.d.ts.map +1 -0
- package/dist/fonts/types.d.ts +45 -1
- package/dist/fonts/types.d.ts.map +1 -1
- package/dist/fonts/virtual-modules.d.ts +94 -0
- package/dist/fonts/virtual-modules.d.ts.map +1 -0
- package/dist/index.d.ts +46 -190
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4807 -12729
- package/dist/index.js.map +1 -1
- package/dist/params/codec-registry.d.ts +26 -0
- package/dist/params/codec-registry.d.ts.map +1 -0
- package/dist/params/define-schema.d.ts +81 -0
- package/dist/params/define-schema.d.ts.map +1 -0
- package/dist/params/index.d.ts +5 -0
- package/dist/params/index.d.ts.map +1 -0
- package/dist/params/index.js +34 -0
- package/dist/params/index.js.map +1 -0
- package/dist/params/resolve-schema.d.ts +34 -0
- package/dist/params/resolve-schema.d.ts.map +1 -0
- package/dist/plugin-context.d.ts +107 -0
- package/dist/plugin-context.d.ts.map +1 -0
- package/dist/plugins/adapter-build.d.ts +1 -1
- package/dist/plugins/adapter-build.d.ts.map +1 -1
- package/dist/plugins/build-manifest.d.ts +2 -2
- package/dist/plugins/build-manifest.d.ts.map +1 -1
- package/dist/plugins/build-report.d.ts +9 -7
- package/dist/plugins/build-report.d.ts.map +1 -1
- package/dist/plugins/client-chunks.d.ts +32 -0
- package/dist/plugins/client-chunks.d.ts.map +1 -0
- package/dist/plugins/content.d.ts +1 -1
- package/dist/plugins/content.d.ts.map +1 -1
- package/dist/plugins/dev-server.d.ts +1 -1
- package/dist/plugins/dev-server.d.ts.map +1 -1
- package/dist/plugins/entries.d.ts +1 -1
- package/dist/plugins/entries.d.ts.map +1 -1
- package/dist/plugins/fonts.d.ts +17 -73
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/plugins/mdx.d.ts +1 -1
- package/dist/plugins/mdx.d.ts.map +1 -1
- package/dist/plugins/routing.d.ts +1 -1
- package/dist/plugins/routing.d.ts.map +1 -1
- package/dist/plugins/server-bundle.d.ts.map +1 -1
- package/dist/plugins/shims.d.ts +6 -5
- package/dist/plugins/shims.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +5 -26
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/codegen-shared.d.ts +63 -0
- package/dist/routing/codegen-shared.d.ts.map +1 -0
- package/dist/routing/codegen-types.d.ts +60 -0
- package/dist/routing/codegen-types.d.ts.map +1 -0
- package/dist/routing/codegen.d.ts +7 -2
- package/dist/routing/codegen.d.ts.map +1 -1
- package/dist/routing/convention-lint.d.ts +41 -0
- package/dist/routing/convention-lint.d.ts.map +1 -0
- package/dist/routing/index.d.ts +7 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +4 -2
- package/dist/routing/link-codegen.d.ts +90 -0
- package/dist/routing/link-codegen.d.ts.map +1 -0
- package/dist/routing/scanner.d.ts +1 -10
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/schema-validation.d.ts +35 -0
- package/dist/routing/schema-validation.d.ts.map +1 -0
- package/dist/routing/segment-classify.d.ts +75 -0
- package/dist/routing/segment-classify.d.ts.map +1 -0
- package/dist/routing/segment-codegen.d.ts +38 -0
- package/dist/routing/segment-codegen.d.ts.map +1 -0
- package/dist/routing/types.d.ts +77 -25
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/routing/walkers.d.ts +51 -0
- package/dist/routing/walkers.d.ts.map +1 -0
- package/dist/rsc-runtime/rsc.d.ts +1 -1
- package/dist/rsc-runtime/rsc.d.ts.map +1 -1
- package/dist/rsc-runtime/ssr.d.ts +12 -0
- package/dist/rsc-runtime/ssr.d.ts.map +1 -1
- package/dist/schema-bridge.d.ts +76 -0
- package/dist/schema-bridge.d.ts.map +1 -0
- package/dist/search-params/define.d.ts +157 -0
- package/dist/search-params/define.d.ts.map +1 -0
- package/dist/search-params/index.d.ts +4 -7
- package/dist/search-params/index.d.ts.map +1 -1
- package/dist/search-params/index.js +34 -441
- package/dist/search-params/index.js.map +1 -1
- package/dist/search-params/registry.d.ts +2 -2
- package/dist/search-params/registry.d.ts.map +1 -1
- package/dist/search-params/wrappers.d.ts +53 -0
- package/dist/search-params/wrappers.d.ts.map +1 -0
- package/dist/segment-params/define.d.ts +95 -0
- package/dist/segment-params/define.d.ts.map +1 -0
- package/dist/segment-params/index.d.ts +3 -0
- package/dist/segment-params/index.d.ts.map +1 -0
- package/dist/segment-params/index.js +2 -0
- package/dist/server/access-gate.d.ts +8 -3
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-client.d.ts +41 -6
- package/dist/server/action-client.d.ts.map +1 -1
- package/dist/server/action-encryption.d.ts +76 -0
- package/dist/server/action-encryption.d.ts.map +1 -0
- package/dist/server/action-handler.d.ts +35 -1
- package/dist/server/action-handler.d.ts.map +1 -1
- package/dist/server/actions.d.ts +3 -6
- package/dist/server/actions.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +53 -5
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/asset-headers.d.ts +1 -15
- package/dist/server/asset-headers.d.ts.map +1 -1
- package/dist/server/build-manifest.d.ts +2 -2
- package/dist/server/build-manifest.d.ts.map +1 -1
- package/dist/server/coalesce-tick.d.ts +40 -0
- package/dist/server/coalesce-tick.d.ts.map +1 -0
- package/dist/server/cookie-context.d.ts +170 -0
- package/dist/server/cookie-context.d.ts.map +1 -0
- package/dist/server/cookie-parsing.d.ts +51 -0
- package/dist/server/cookie-parsing.d.ts.map +1 -0
- package/dist/server/debug.d.ts +1 -1
- package/dist/server/default-logger.d.ts +22 -0
- package/dist/server/default-logger.d.ts.map +1 -0
- package/dist/server/deny-boundary.d.ts +90 -0
- package/dist/server/deny-boundary.d.ts.map +1 -0
- package/dist/server/deny-renderer.d.ts.map +1 -1
- package/dist/server/dev-source-map.d.ts +22 -0
- package/dist/server/dev-source-map.d.ts.map +1 -0
- package/dist/server/early-hints-sender.d.ts.map +1 -1
- package/dist/server/early-hints.d.ts +13 -5
- package/dist/server/early-hints.d.ts.map +1 -1
- package/dist/server/error-boundary-wrapper.d.ts +7 -1
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
- package/dist/server/fallback-error.d.ts +12 -7
- package/dist/server/fallback-error.d.ts.map +1 -1
- package/dist/server/flight-injection-state.d.ts +66 -0
- package/dist/server/flight-injection-state.d.ts.map +1 -0
- package/dist/server/flight-scripts.d.ts +42 -0
- package/dist/server/flight-scripts.d.ts.map +1 -0
- package/dist/server/flush.d.ts.map +1 -1
- package/dist/server/form-data.d.ts +29 -0
- package/dist/server/form-data.d.ts.map +1 -1
- package/dist/server/html-injector-core.d.ts +213 -0
- package/dist/server/html-injector-core.d.ts.map +1 -0
- package/dist/server/html-injectors.d.ts +81 -41
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +10 -46
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +155 -2905
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +48 -0
- package/dist/server/internal.d.ts.map +1 -0
- package/dist/server/internal.js +2947 -0
- package/dist/server/internal.js.map +1 -0
- package/dist/server/logger.d.ts +39 -7
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/middleware-runner.d.ts +36 -4
- package/dist/server/middleware-runner.d.ts.map +1 -1
- package/dist/server/node-stream-transforms.d.ts +112 -0
- package/dist/server/node-stream-transforms.d.ts.map +1 -0
- package/dist/server/param-coercion.d.ts +54 -0
- package/dist/server/param-coercion.d.ts.map +1 -0
- package/dist/server/pipeline-helpers.d.ts +95 -0
- package/dist/server/pipeline-helpers.d.ts.map +1 -0
- package/dist/server/pipeline-interception.d.ts +1 -1
- package/dist/server/pipeline-interception.d.ts.map +1 -1
- package/dist/server/pipeline-metadata.d.ts +6 -0
- package/dist/server/pipeline-metadata.d.ts.map +1 -1
- package/dist/server/pipeline-outcome.d.ts +49 -0
- package/dist/server/pipeline-outcome.d.ts.map +1 -0
- package/dist/server/pipeline-phases.d.ts +52 -0
- package/dist/server/pipeline-phases.d.ts.map +1 -0
- package/dist/server/pipeline.d.ts +118 -23
- package/dist/server/pipeline.d.ts.map +1 -1
- package/dist/server/port-resolution.d.ts +117 -0
- package/dist/server/port-resolution.d.ts.map +1 -0
- package/dist/server/primitives.d.ts +69 -18
- package/dist/server/primitives.d.ts.map +1 -1
- package/dist/server/render-timeout.d.ts +51 -0
- package/dist/server/render-timeout.d.ts.map +1 -0
- package/dist/server/request-context.d.ts +62 -107
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts +27 -1
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/route-handler.d.ts.map +1 -1
- package/dist/server/route-matcher.d.ts +21 -34
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
- package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
- package/dist/server/rsc-entry/api-handler.d.ts +2 -2
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
- package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/helpers.d.ts +49 -6
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts +19 -8
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts +50 -0
- package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
- package/dist/server/rsc-entry/rsc-payload.d.ts +3 -3
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts +17 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +19 -4
- package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +119 -0
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
- package/dist/server/safe-load.d.ts +46 -0
- package/dist/server/safe-load.d.ts.map +1 -0
- package/dist/server/sensitive-fields.d.ts +74 -0
- package/dist/server/sensitive-fields.d.ts.map +1 -0
- package/dist/server/sitemap-generator.d.ts +129 -0
- package/dist/server/sitemap-generator.d.ts.map +1 -0
- package/dist/server/sitemap-handler.d.ts +22 -0
- package/dist/server/sitemap-handler.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +1 -1
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/ssr-entry.d.ts +30 -0
- package/dist/server/ssr-entry.d.ts.map +1 -1
- package/dist/server/ssr-render.d.ts +39 -21
- package/dist/server/ssr-render.d.ts.map +1 -1
- package/dist/server/ssr-wrappers.d.ts +50 -0
- package/dist/server/ssr-wrappers.d.ts.map +1 -0
- package/dist/server/state-tree-diff.d.ts.map +1 -1
- package/dist/server/status-code-resolver.d.ts +16 -11
- package/dist/server/status-code-resolver.d.ts.map +1 -1
- package/dist/server/stream-utils.d.ts +36 -0
- package/dist/server/stream-utils.d.ts.map +1 -0
- package/dist/server/tracing.d.ts +5 -5
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/tree-builder.d.ts +62 -30
- package/dist/server/tree-builder.d.ts.map +1 -1
- package/dist/server/tree-match.d.ts +41 -0
- package/dist/server/tree-match.d.ts.map +1 -0
- package/dist/server/types.d.ts +49 -4
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils/escape-html.d.ts +14 -0
- package/dist/server/utils/escape-html.d.ts.map +1 -0
- package/dist/server/version-skew.d.ts +61 -0
- package/dist/server/version-skew.d.ts.map +1 -0
- package/dist/shared/merge-search-params.d.ts +22 -0
- package/dist/shared/merge-search-params.d.ts.map +1 -0
- package/dist/shims/font-google.d.ts +1 -1
- package/dist/shims/font-google.d.ts.map +1 -1
- package/dist/shims/font-google.js +42 -0
- package/dist/shims/font-google.js.map +1 -0
- package/dist/shims/font-local.d.ts +26 -0
- package/dist/shims/font-local.d.ts.map +1 -0
- package/dist/shims/font-local.js +20 -0
- package/dist/shims/font-local.js.map +1 -0
- package/dist/shims/headers.d.ts +2 -1
- package/dist/shims/headers.d.ts.map +1 -1
- package/dist/shims/navigation-client.d.ts +3 -1
- package/dist/shims/navigation-client.d.ts.map +1 -1
- package/dist/shims/navigation.d.ts +11 -5
- package/dist/shims/navigation.d.ts.map +1 -1
- package/dist/utils/state-machine.d.ts +80 -0
- package/dist/utils/state-machine.d.ts.map +1 -0
- package/package.json +62 -21
- package/src/adapters/build-output-helper.ts +77 -0
- package/src/adapters/cloudflare-dev.ts +177 -0
- package/src/adapters/cloudflare-kv-cache.ts +142 -0
- package/src/adapters/cloudflare.ts +350 -76
- package/src/adapters/compress-module.ts +24 -4
- package/src/adapters/nitro.ts +142 -59
- package/src/adapters/shared.ts +40 -0
- package/src/adapters/wrangler.d.ts +7 -0
- package/src/cache/cache-api.ts +38 -0
- package/src/cache/handler-store.ts +68 -0
- package/src/cache/index.ts +81 -18
- package/src/cache/singleflight.ts +62 -4
- package/src/cache/sizeof.ts +33 -0
- package/src/cache/timber-cache.ts +25 -20
- package/src/cli-schema-sync.ts +207 -0
- package/src/cli.ts +65 -8
- package/src/client/browser-dev.ts +153 -1
- package/src/client/browser-entry/action-dispatch.ts +126 -0
- package/src/client/browser-entry/hmr.ts +81 -0
- package/src/client/browser-entry/hydrate.ts +145 -0
- package/src/client/browser-entry/index.ts +149 -0
- package/src/client/browser-entry/post-hydration.ts +119 -0
- package/src/client/browser-entry/router-init.ts +193 -0
- package/src/client/browser-entry/rsc-stream.ts +157 -0
- package/src/client/browser-entry/scroll.ts +27 -0
- package/src/client/error-boundary.tsx +99 -22
- package/src/client/error-reconstituter.tsx +65 -0
- package/src/client/form.tsx +31 -32
- package/src/client/history.ts +26 -4
- package/src/client/index.ts +69 -44
- package/src/client/internal.ts +58 -0
- package/src/client/link-pending-store.ts +111 -0
- package/src/client/link.tsx +366 -113
- package/src/client/nav-link-store.ts +47 -0
- package/src/client/navigation-api-types.ts +112 -0
- package/src/client/navigation-api.ts +332 -0
- package/src/client/navigation-context.ts +31 -6
- package/src/client/navigation-root.tsx +342 -0
- package/src/client/nuqs-adapter.tsx +16 -3
- package/src/client/router-ref.ts +1 -1
- package/src/client/router.ts +300 -73
- package/src/client/rsc-fetch.ts +112 -8
- package/src/client/segment-cache.ts +1 -1
- package/src/client/segment-outlet.tsx +86 -0
- package/src/client/ssr-data.ts +13 -5
- package/src/client/stale-reload.ts +72 -3
- package/src/client/state.ts +2 -2
- package/src/client/top-loader.tsx +18 -6
- package/src/client/use-cookie.ts +31 -2
- package/src/client/use-link-status.ts +7 -7
- package/src/client/{use-navigation-pending.ts → use-pending-navigation.ts} +6 -6
- package/src/client/use-query-states.ts +9 -3
- package/src/client/use-router.ts +1 -1
- package/src/client/{use-params.ts → use-segment-params.ts} +8 -6
- package/src/codec.ts +147 -0
- package/src/config-types.ts +292 -0
- package/src/config-validation.ts +303 -0
- package/src/content/index.ts +5 -13
- package/src/cookies/define-cookie.ts +233 -53
- package/src/cookies/index.ts +12 -1
- package/src/cookies/json-cookie.ts +105 -0
- package/src/cookies/validation.ts +134 -0
- package/src/dev-tools/404-page.ts +387 -0
- package/src/dev-tools/browser-logs.ts +291 -0
- package/src/dev-tools/error-page.ts +506 -0
- package/src/dev-tools/holding-server.ts +187 -0
- package/src/dev-tools/index.ts +90 -0
- package/src/dev-tools/instrumentation.ts +176 -0
- package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +9 -5
- package/src/dev-tools/overlay.ts +469 -0
- package/src/dev-tools/stack-classifier.ts +75 -0
- package/src/dev-tools/terminal.ts +183 -0
- package/src/{server/dev-warnings.ts → dev-tools/warnings.ts} +5 -50
- package/src/fonts/ast.ts +525 -16
- package/src/fonts/bundle.ts +142 -0
- package/src/fonts/dev-middleware.ts +74 -0
- package/src/fonts/local.ts +1 -1
- package/src/fonts/pipeline.ts +314 -0
- package/src/fonts/transform.ts +317 -0
- package/src/fonts/types.ts +50 -1
- package/src/fonts/virtual-modules.ts +233 -0
- package/src/index.ts +409 -357
- package/src/params/codec-registry.ts +34 -0
- package/src/params/define-schema.ts +114 -0
- package/src/params/index.ts +17 -0
- package/src/params/resolve-schema.ts +101 -0
- package/src/plugin-context.ts +240 -0
- package/src/plugins/adapter-build.ts +12 -4
- package/src/plugins/build-manifest.ts +13 -2
- package/src/plugins/build-report.ts +16 -25
- package/src/plugins/client-chunks.ts +65 -0
- package/src/plugins/content.ts +1 -1
- package/src/plugins/dev-server.ts +175 -35
- package/src/plugins/entries.ts +111 -9
- package/src/plugins/fonts.ts +157 -654
- package/src/plugins/mdx.ts +47 -10
- package/src/plugins/routing.ts +371 -45
- package/src/plugins/server-bundle.ts +32 -1
- package/src/plugins/shims.ts +136 -35
- package/src/plugins/static-build.ts +15 -89
- package/src/routing/codegen-shared.ts +109 -0
- package/src/routing/codegen-types.ts +61 -0
- package/src/routing/codegen.ts +316 -177
- package/src/routing/convention-lint.ts +357 -0
- package/src/routing/index.ts +10 -1
- package/src/routing/interception.ts +1 -1
- package/src/routing/link-codegen.ts +308 -0
- package/src/routing/scanner.ts +165 -110
- package/src/routing/schema-validation.ts +149 -0
- package/src/routing/segment-classify.ts +188 -0
- package/src/routing/segment-codegen.ts +98 -0
- package/src/routing/types.ts +78 -25
- package/src/routing/walkers.ts +90 -0
- package/src/rsc-runtime/rsc.ts +2 -0
- package/src/rsc-runtime/ssr.ts +50 -0
- package/src/rsc-runtime/vendor-types.d.ts +7 -0
- package/src/{search-params/codecs.ts → schema-bridge.ts} +57 -20
- package/src/search-params/define.ts +538 -0
- package/src/search-params/index.ts +14 -20
- package/src/search-params/registry.ts +2 -2
- package/src/search-params/wrappers.ts +92 -0
- package/src/segment-params/define.ts +336 -0
- package/src/segment-params/index.ts +9 -0
- package/src/server/access-gate.tsx +76 -34
- package/src/server/action-client.ts +88 -15
- package/src/server/action-encryption.ts +144 -0
- package/src/server/action-handler.ts +112 -14
- package/src/server/actions.ts +10 -9
- package/src/server/als-registry.ts +55 -7
- package/src/server/asset-headers.ts +8 -34
- package/src/server/build-manifest.ts +10 -4
- package/src/server/coalesce-tick.ts +75 -0
- package/src/server/compress.ts +25 -7
- package/src/server/cookie-context.ts +468 -0
- package/src/server/cookie-parsing.ts +135 -0
- package/src/server/debug.ts +1 -1
- package/src/server/default-logger.ts +99 -0
- package/src/server/deny-boundary.ts +218 -0
- package/src/server/deny-renderer.ts +31 -50
- package/src/server/dev-source-map.ts +31 -0
- package/src/server/early-hints-sender.ts +3 -2
- package/src/server/early-hints.ts +36 -15
- package/src/server/error-boundary-wrapper.ts +74 -22
- package/src/server/fallback-error.ts +74 -102
- package/src/server/flight-injection-state.ts +113 -0
- package/src/server/flight-scripts.ts +62 -0
- package/src/server/flush.ts +2 -1
- package/src/server/form-data.ts +76 -0
- package/src/server/html-injector-core.ts +417 -0
- package/src/server/html-injectors.ts +235 -223
- package/src/server/index.ts +29 -183
- package/src/server/internal.ts +176 -0
- package/src/server/logger.ts +67 -36
- package/src/server/middleware-runner.ts +75 -4
- package/src/server/node-stream-transforms.ts +361 -0
- package/src/server/param-coercion.ts +206 -0
- package/src/server/pipeline-helpers.ts +204 -0
- package/src/server/pipeline-interception.ts +17 -16
- package/src/server/pipeline-metadata.ts +13 -0
- package/src/server/pipeline-outcome.ts +176 -0
- package/src/server/pipeline-phases.ts +460 -0
- package/src/server/pipeline.ts +154 -394
- package/src/server/port-resolution.ts +215 -0
- package/src/server/primitives.ts +111 -28
- package/src/server/render-timeout.ts +108 -0
- package/src/server/request-context.ts +168 -333
- package/src/server/route-element-builder.ts +309 -195
- package/src/server/route-handler.ts +24 -4
- package/src/server/route-matcher.ts +50 -231
- package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
- package/src/server/rsc-entry/api-handler.ts +16 -17
- package/src/server/rsc-entry/error-renderer.ts +305 -89
- package/src/server/rsc-entry/helpers.ts +137 -12
- package/src/server/rsc-entry/index.ts +316 -352
- package/src/server/rsc-entry/render-route.ts +307 -0
- package/src/server/rsc-entry/rsc-payload.ts +65 -18
- package/src/server/rsc-entry/rsc-stream.ts +85 -13
- package/src/server/rsc-entry/ssr-bridge.ts +14 -5
- package/src/server/rsc-entry/ssr-renderer.ts +187 -38
- package/src/server/rsc-entry/wrap-action-dispatch.ts +449 -0
- package/src/server/safe-load.ts +60 -0
- package/src/server/sensitive-fields.ts +230 -0
- package/src/server/sitemap-generator.ts +338 -0
- package/src/server/sitemap-handler.ts +126 -0
- package/src/server/slot-resolver.ts +228 -246
- package/src/server/ssr-entry.ts +229 -32
- package/src/server/ssr-render.ts +289 -67
- package/src/server/ssr-wrappers.tsx +139 -0
- package/src/server/state-tree-diff.ts +4 -1
- package/src/server/status-code-resolver.ts +112 -128
- package/src/server/stream-utils.ts +213 -0
- package/src/server/tracing.ts +21 -10
- package/src/server/tree-builder.ts +202 -90
- package/src/server/tree-match.ts +198 -0
- package/src/server/types.ts +55 -6
- package/src/server/utils/escape-html.ts +20 -0
- package/src/server/version-skew.ts +104 -0
- package/src/shared/merge-search-params.ts +55 -0
- package/src/shims/font-google.ts +1 -1
- package/src/shims/font-local.ts +34 -0
- package/src/shims/headers.ts +5 -1
- package/src/shims/navigation-client.ts +4 -3
- package/src/shims/navigation.ts +14 -7
- package/src/utils/state-machine.ts +111 -0
- package/LICENSE +0 -8
- package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
- package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
- package/dist/_chunks/debug-gwlJkDuf.js +0 -108
- package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
- package/dist/_chunks/format-DviM89f0.js.map +0 -1
- package/dist/_chunks/interception-BOoWmLUA.js +0 -676
- package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
- package/dist/_chunks/request-context-DIkVh_jG.js +0 -330
- package/dist/_chunks/request-context-DIkVh_jG.js.map +0 -1
- package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
- package/dist/_chunks/tracing-CemImE6h.js +0 -187
- package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
- package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
- package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
- package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
- package/dist/cache/register-cached-function.d.ts +0 -17
- package/dist/cache/register-cached-function.d.ts.map +0 -1
- package/dist/client/browser-entry.d.ts +0 -21
- package/dist/client/browser-entry.d.ts.map +0 -1
- package/dist/client/link-status-provider.d.ts +0 -11
- package/dist/client/link-status-provider.d.ts.map +0 -1
- package/dist/client/transition-root.d.ts.map +0 -1
- package/dist/client/use-navigation-pending.d.ts.map +0 -1
- package/dist/client/use-params.d.ts.map +0 -1
- package/dist/plugins/cache-transform.d.ts +0 -36
- package/dist/plugins/cache-transform.d.ts.map +0 -1
- package/dist/plugins/dev-error-overlay.d.ts +0 -60
- package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
- package/dist/plugins/dev-logs.d.ts.map +0 -1
- package/dist/plugins/dynamic-transform.d.ts +0 -72
- package/dist/plugins/dynamic-transform.d.ts.map +0 -1
- package/dist/plugins/server-action-exports.d.ts +0 -26
- package/dist/plugins/server-action-exports.d.ts.map +0 -1
- package/dist/routing/status-file-lint.d.ts +0 -33
- package/dist/routing/status-file-lint.d.ts.map +0 -1
- package/dist/search-params/analyze.d.ts +0 -54
- package/dist/search-params/analyze.d.ts.map +0 -1
- package/dist/search-params/builtin-codecs.d.ts +0 -105
- package/dist/search-params/builtin-codecs.d.ts.map +0 -1
- package/dist/search-params/codecs.d.ts +0 -53
- package/dist/search-params/codecs.d.ts.map +0 -1
- package/dist/search-params/create.d.ts +0 -106
- package/dist/search-params/create.d.ts.map +0 -1
- package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
- package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
- package/dist/server/dev-logger.d.ts.map +0 -1
- package/dist/server/dev-span-processor.d.ts.map +0 -1
- package/dist/server/dev-warnings.d.ts.map +0 -1
- package/dist/server/manifest-status-resolver.d.ts +0 -58
- package/dist/server/manifest-status-resolver.d.ts.map +0 -1
- package/dist/server/prerender.d.ts +0 -77
- package/dist/server/prerender.d.ts.map +0 -1
- package/dist/server/response-cache.d.ts +0 -54
- package/dist/server/response-cache.d.ts.map +0 -1
- package/dist/utils/directive-parser.d.ts +0 -70
- package/dist/utils/directive-parser.d.ts.map +0 -1
- package/src/cache/register-cached-function.ts +0 -103
- package/src/client/browser-entry.ts +0 -678
- package/src/client/link-status-provider.tsx +0 -30
- package/src/client/transition-root.tsx +0 -166
- package/src/plugins/cache-transform.ts +0 -199
- package/src/plugins/dev-error-overlay.ts +0 -230
- package/src/plugins/dynamic-transform.ts +0 -161
- package/src/plugins/server-action-exports.ts +0 -220
- package/src/routing/status-file-lint.ts +0 -112
- package/src/search-params/analyze.ts +0 -192
- package/src/search-params/builtin-codecs.ts +0 -228
- package/src/search-params/create.ts +0 -321
- package/src/server/dev-fetch-instrumentation.ts +0 -96
- package/src/server/dev-span-processor.ts +0 -78
- package/src/server/manifest-status-resolver.ts +0 -215
- package/src/server/prerender.ts +0 -139
- package/src/server/response-cache.ts +0 -410
- package/src/utils/directive-parser.ts +0 -529
- /package/src/{server/dev-logger.ts → dev-tools/logger.ts} +0 -0
|
@@ -1,12 +1,23 @@
|
|
|
1
|
+
import 'virtual:timber-search-params-registry';
|
|
2
|
+
import type { PipelineConfig } from '../pipeline.js';
|
|
1
3
|
/**
|
|
2
|
-
* Set the dev
|
|
4
|
+
* Set the dev source-map handler.
|
|
3
5
|
*
|
|
4
|
-
* Called by the dev server after importing this module to wire
|
|
5
|
-
*
|
|
6
|
+
* Called by the dev server after importing this module to wire Vite's
|
|
7
|
+
* module graph source-mapping into the error rendering pipeline. Errors
|
|
8
|
+
* rendered by renderErrorPage / renderFallbackError will have their
|
|
9
|
+
* stack traces rewritten to show original source positions.
|
|
10
|
+
*
|
|
11
|
+
* No-op in production.
|
|
12
|
+
*/
|
|
13
|
+
export declare function setDevSourceMapHandler(handler: (error: Error) => void): void;
|
|
14
|
+
export { runWithEarlyHintsSender } from '../early-hints-sender.js';
|
|
15
|
+
export { runWithWaitUntil } from '../waituntil-bridge.js';
|
|
16
|
+
declare const _handler: (req: Request) => Promise<Response>;
|
|
17
|
+
/**
|
|
18
|
+
* The pipeline configuration object. Exported so the dev server can set
|
|
19
|
+
* `devPipelineErrorHandler` after import without a module-level singleton.
|
|
6
20
|
*/
|
|
7
|
-
export declare
|
|
8
|
-
export
|
|
9
|
-
export { runWithWaitUntil } from '#/server/waituntil-bridge.js';
|
|
10
|
-
declare const _default: (req: Request) => Promise<Response>;
|
|
11
|
-
export default _default;
|
|
21
|
+
export declare const pipelineConfig: PipelineConfig;
|
|
22
|
+
export default _handler;
|
|
12
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/index.ts"],"names":[],"mappings":"AAuBA,OAAO,uCAAuC,CAAC;AAqB/C,OAAO,KAAK,EAAuB,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAqCtF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAE5E;AA8WD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,QAAA,MAAiB,QAAQ,qCAGxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAkB,CAAC;AAE9C,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route renderer — turns a matched route into a Response.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `rsc-entry/index.ts` so the entry can stay focused on
|
|
5
|
+
* pipeline construction. This module owns the steps that happen *after*
|
|
6
|
+
* the pipeline has matched a route and before it commits a response:
|
|
7
|
+
* element-tree build, RSC Flight render, and dispatch to either the SSR
|
|
8
|
+
* HTML path or the RSC payload path. It also handles the
|
|
9
|
+
* synchronous-signal escape hatches (deny / redirect / render error
|
|
10
|
+
* thrown during stream creation) so the entry doesn't carry that logic.
|
|
11
|
+
*
|
|
12
|
+
* The function is parameterized over its dependencies — `clientBootstrap`,
|
|
13
|
+
* `clientJsDisabled`, `rootSegment`, `globalError` — so the entry passes
|
|
14
|
+
* them in once at handler-construction time and they ride along on every
|
|
15
|
+
* call. No globals, no closures over the entry's createRequestHandler
|
|
16
|
+
* scope.
|
|
17
|
+
*
|
|
18
|
+
* Design docs: 02-rendering-pipeline.md, 19-client-navigation.md.
|
|
19
|
+
*/
|
|
20
|
+
import type { BuildManifest } from '../build-manifest.js';
|
|
21
|
+
import type { ClientBootstrapConfig } from '../html-injectors.js';
|
|
22
|
+
import type { InterceptionContext, RouteMatch } from '../pipeline.js';
|
|
23
|
+
import type { ManifestSegmentNode } from '../route-matcher.js';
|
|
24
|
+
/**
|
|
25
|
+
* Static-per-handler dependencies for `renderRoute` — captured once at
|
|
26
|
+
* handler construction so each per-request call site only has to pass
|
|
27
|
+
* the request-specific arguments.
|
|
28
|
+
*/
|
|
29
|
+
export interface RenderRouteDeps {
|
|
30
|
+
clientBootstrap: ClientBootstrapConfig;
|
|
31
|
+
clientJsDisabled: boolean;
|
|
32
|
+
rootSegment: ManifestSegmentNode;
|
|
33
|
+
buildManifest: BuildManifest;
|
|
34
|
+
globalError?: {
|
|
35
|
+
load: () => Promise<unknown>;
|
|
36
|
+
filePath: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Render a matched route to an HTML Response via RSC → SSR pipeline,
|
|
41
|
+
* or return a raw RSC Flight stream for client-side navigation requests.
|
|
42
|
+
*
|
|
43
|
+
* 1. Load page/layout components from the segment chain
|
|
44
|
+
* 2. Resolve metadata
|
|
45
|
+
* 3. Render to RSC Flight stream (serializes "use client" as references)
|
|
46
|
+
* 4. If Accept: text/x-component → return RSC stream directly
|
|
47
|
+
* Otherwise → pass RSC stream to SSR entry for HTML rendering
|
|
48
|
+
*/
|
|
49
|
+
export declare function renderRoute(req: Request, match: RouteMatch, responseHeaders: Headers, deps: RenderRouteDeps, interception?: InterceptionContext): Promise<Response>;
|
|
50
|
+
//# sourceMappingURL=render-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-route.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/render-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAkB/D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,qBAAqB,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,QAAQ,CAAC,CAkOnB"}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* Design docs: 19-client-navigation.md §"RSC Payload Handling",
|
|
9
9
|
* 16-metadata.md §"Head Elements"
|
|
10
10
|
*/
|
|
11
|
-
import type { RouteMatch } from '
|
|
12
|
-
import type { HeadElement, LayoutComponentEntry } from '
|
|
13
|
-
import type { ManifestSegmentNode } from '
|
|
11
|
+
import type { RouteMatch } from '../pipeline.js';
|
|
12
|
+
import type { HeadElement, LayoutComponentEntry } from '../route-element-builder.js';
|
|
13
|
+
import type { ManifestSegmentNode } from '../route-matcher.js';
|
|
14
14
|
import type { RenderSignals } from './rsc-stream.js';
|
|
15
15
|
/**
|
|
16
16
|
* Build an RSC payload Response for a client-side navigation request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,oBAAoB,EAAE,EACxC,YAAY,EAAE,WAAW,EAAE,EAC3B,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,QAAQ,CAAC,CAyKnB"}
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* Design docs: 02-rendering-pipeline.md §"Single-Pass Rendering",
|
|
10
10
|
* 13-security.md §"Errors don't leak"
|
|
11
11
|
*/
|
|
12
|
-
import { DenySignal, RedirectSignal } from '
|
|
12
|
+
import { DenySignal, RedirectSignal } from '../primitives.js';
|
|
13
|
+
import { type DebugComponentEntry } from './helpers.js';
|
|
13
14
|
/**
|
|
14
15
|
* Mutable signal state captured during RSC rendering.
|
|
15
16
|
*
|
|
@@ -27,12 +28,27 @@ export interface RenderSignals {
|
|
|
27
28
|
error: unknown;
|
|
28
29
|
status: number;
|
|
29
30
|
} | null;
|
|
31
|
+
/**
|
|
32
|
+
* The last unhandled error seen by RSC onError that isn't a signal.
|
|
33
|
+
* Used as a fallback when SSR fails (SsrStreamError) but no structured
|
|
34
|
+
* signal was captured — provides the original error for the error page
|
|
35
|
+
* instead of relying on SsrStreamError.cause extraction.
|
|
36
|
+
*
|
|
37
|
+
* NOT used for page-level error detection (that would break Suspense
|
|
38
|
+
* error isolation). Only consumed when SSR actually fails.
|
|
39
|
+
*/
|
|
40
|
+
lastUnhandledError: unknown | null;
|
|
30
41
|
/** Callback fired when a redirect or deny signal is captured in onError. */
|
|
31
42
|
onSignal?: () => void;
|
|
43
|
+
/** Callback fired when an unhandled error (non-signal) is captured. Used
|
|
44
|
+
* to halt Flight data injection into the inline stream. */
|
|
45
|
+
onUnhandledError?: () => void;
|
|
32
46
|
}
|
|
33
47
|
export interface RscStreamResult {
|
|
34
48
|
rscStream: ReadableStream<Uint8Array> | undefined;
|
|
35
49
|
signals: RenderSignals;
|
|
50
|
+
/** Dev-only: server component debug info from the Flight debug channel. */
|
|
51
|
+
getDebugComponents?: () => DebugComponentEntry[];
|
|
36
52
|
}
|
|
37
53
|
/**
|
|
38
54
|
* Render a React element tree to an RSC Flight stream.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-stream.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"rsc-stream.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAe,MAAM,kBAAkB,CAAC;AAG3E,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAItB;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD;;;;;;;;OAQG;IACH,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;gEAC4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAClD,OAAO,EAAE,aAAa,CAAC;IACvB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,mBAAmB,EAAE,CAAC;CAClD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,eAAe,CA6J1F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SSR Bridge — loads the SSR entry and passes the RSC stream for HTML rendering.
|
|
3
3
|
*/
|
|
4
|
-
import type { NavContext } from '
|
|
4
|
+
import type { NavContext } from '../ssr-entry.js';
|
|
5
5
|
export declare function callSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<Response>;
|
|
6
6
|
//# sourceMappingURL=ssr-bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-bridge.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/ssr-bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ssr-bridge.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/ssr-bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,OAAO,CAC3B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,QAAQ,CAAC,CAenB"}
|
|
@@ -11,11 +11,24 @@
|
|
|
11
11
|
* Design docs: 02-rendering-pipeline.md §"RSC → SSR → Client Hydration",
|
|
12
12
|
* 05-streaming.md §"deferSuspenseFor and the Hold Window"
|
|
13
13
|
*/
|
|
14
|
-
import type { ClientBootstrapConfig } from '
|
|
15
|
-
import type { RouteMatch } from '
|
|
16
|
-
import type { LayoutComponentEntry } from '
|
|
17
|
-
import type { ManifestSegmentNode } from '
|
|
14
|
+
import type { ClientBootstrapConfig } from '../html-injectors.js';
|
|
15
|
+
import type { RouteMatch } from '../pipeline.js';
|
|
16
|
+
import type { LayoutComponentEntry } from '../route-element-builder.js';
|
|
17
|
+
import type { ManifestSegmentNode } from '../route-matcher.js';
|
|
18
|
+
import { type GlobalErrorFile } from './error-renderer.js';
|
|
18
19
|
import type { RenderSignals } from './rsc-stream.js';
|
|
20
|
+
/**
|
|
21
|
+
* Test-only observable: records how many microtask yields were consumed
|
|
22
|
+
* during the last signal promotion check. Import this in tests to assert
|
|
23
|
+
* the actual rejection chain depth and detect regressions if wrappers
|
|
24
|
+
* add more async hops.
|
|
25
|
+
*
|
|
26
|
+
* Only populated when the object is imported and exists — production
|
|
27
|
+
* bundles that don't import it pay zero cost (the typeof check is free).
|
|
28
|
+
*/
|
|
29
|
+
export declare const __test_only_signalPromotionDepth: {
|
|
30
|
+
value: number;
|
|
31
|
+
};
|
|
19
32
|
interface SsrRenderOptions {
|
|
20
33
|
req: Request;
|
|
21
34
|
rscStream: ReadableStream<Uint8Array>;
|
|
@@ -28,6 +41,8 @@ interface SsrRenderOptions {
|
|
|
28
41
|
clientJsDisabled: boolean;
|
|
29
42
|
headHtml: string;
|
|
30
43
|
deferSuspenseFor: number;
|
|
44
|
+
/** Tier 2 global-error.tsx file, if present in app/. */
|
|
45
|
+
globalError?: GlobalErrorFile;
|
|
31
46
|
}
|
|
32
47
|
/**
|
|
33
48
|
* Render the RSC stream to HTML via SSR.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/ssr-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ssr-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/ssr-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAW/D,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAarD;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAiB,CAAC;AAEhF,UAAU,gBAAgB;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,qBAAqB,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiSjF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action-dispatch wrapper around the route pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from rsc-entry/index.ts so the wiring can be unit-tested in
|
|
5
|
+
* isolation from Vite's virtual modules. The wrapper is responsible for
|
|
6
|
+
* four things, in order:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Pipeline-boundary CSRF validation** — runs on EVERY unsafe-method
|
|
9
|
+
* request, before any dispatch decision. This is the only line of
|
|
10
|
+
* defense for `route.ts` API handlers, which never see the action
|
|
11
|
+
* handler. See LOCAL-773.
|
|
12
|
+
*
|
|
13
|
+
* 2. **Middleware-on-actions execution** — when the request is a server
|
|
14
|
+
* action POST and `actions.runMiddleware !== false`, the matched
|
|
15
|
+
* route's `middleware.ts` chain runs BEFORE the action body. This
|
|
16
|
+
* closes the Next.js CVE-2025-29927 class of bug, where developers
|
|
17
|
+
* reasonably believe `middleware.ts` runs on every request and find
|
|
18
|
+
* out (the hard way) that actions silently bypass it. Middleware can
|
|
19
|
+
* short-circuit with a `Response`, `redirect()`, or `deny()`; can
|
|
20
|
+
* mutate cookies; and can inject request headers visible to the
|
|
21
|
+
* action body via `getHeaders()`. See TIM-871.
|
|
22
|
+
*
|
|
23
|
+
* 3. **Server action interception** — POST requests carrying an
|
|
24
|
+
* `x-rsc-action` header or React's `$ACTION_REF` form fields are
|
|
25
|
+
* handed to `handleActionRequest`, which executes the action and
|
|
26
|
+
* returns either an RSC response or a no-JS rerender signal.
|
|
27
|
+
*
|
|
28
|
+
* 4. **No-JS validation rerender** — when an action returns flash data
|
|
29
|
+
* instead of a redirect, the wrapper re-runs the page render via the
|
|
30
|
+
* pipeline with the post-action cookie state and `runWithFormFlash`
|
|
31
|
+
* so server components can read the flash. The synthetic GET is
|
|
32
|
+
* marked via `markRequestBypassMiddleware` so the pipeline does not
|
|
33
|
+
* double-execute middleware on it. See TIM-836 / TIM-837 / TIM-871.
|
|
34
|
+
*
|
|
35
|
+
* Anything else falls through to `pipeline(req)` for normal route handling.
|
|
36
|
+
*
|
|
37
|
+
* The wrapper takes its dependencies as parameters (no module-level
|
|
38
|
+
* imports of virtual modules) so tests can construct it with stub
|
|
39
|
+
* pipelines, stub revalidate renderers, and stub route matchers.
|
|
40
|
+
*/
|
|
41
|
+
import type { BodyLimitsConfig } from '../body-limits.js';
|
|
42
|
+
import { type CsrfConfig } from '../csrf.js';
|
|
43
|
+
import { DenySignal } from '../primitives.js';
|
|
44
|
+
import type { RouteMatch, RouteMatcher } from '../pipeline.js';
|
|
45
|
+
import type { SensitiveFieldsOption } from '../sensitive-fields.js';
|
|
46
|
+
import type { RevalidateRenderer } from '../actions.js';
|
|
47
|
+
import { type CoerceSegmentParamsFn } from './action-middleware-runner.js';
|
|
48
|
+
/**
|
|
49
|
+
* Build a `RevalidateRenderer` for a specific request.
|
|
50
|
+
*
|
|
51
|
+
* The renderer needs to forward cookies/headers from the originating
|
|
52
|
+
* request when fetching the revalidated route. We pass the request in
|
|
53
|
+
* via a builder so the wrapper doesn't need to know about route matching,
|
|
54
|
+
* segment param coercion, or element building — those concerns stay in
|
|
55
|
+
* `rsc-entry/index.ts`.
|
|
56
|
+
*/
|
|
57
|
+
export type RevalidateRendererFactory = (req: Request) => RevalidateRenderer;
|
|
58
|
+
/** Optional renderer for fallback deny pages — mirrors `PipelineConfig.renderDenyFallback`. */
|
|
59
|
+
export type RenderDenyFallbackFn = (deny: DenySignal, req: Request, responseHeaders: Headers, match?: RouteMatch) => Response | Promise<Response>;
|
|
60
|
+
/** Dependencies for the action-dispatch wrapper. */
|
|
61
|
+
export interface ActionDispatchDeps {
|
|
62
|
+
/** CSRF configuration (Origin allow-list, on/off switch). */
|
|
63
|
+
csrfConfig: CsrfConfig;
|
|
64
|
+
/** Body size limits forwarded to `handleActionRequest`. */
|
|
65
|
+
bodyLimits?: BodyLimitsConfig['limits'];
|
|
66
|
+
/** Sensitive-field deny-list forwarded to `handleActionRequest`. */
|
|
67
|
+
sensitiveFields?: SensitiveFieldsOption;
|
|
68
|
+
/** Per-request factory that builds a `RevalidateRenderer`. */
|
|
69
|
+
buildRevalidateRenderer: RevalidateRendererFactory;
|
|
70
|
+
/**
|
|
71
|
+
* Route matcher — when present, enables middleware-on-actions execution.
|
|
72
|
+
* Mirrors `PipelineConfig.matchRoute`. Tests that don't exercise the
|
|
73
|
+
* middleware path may omit this; the wrapper falls back to the legacy
|
|
74
|
+
* "actions skip middleware" behavior.
|
|
75
|
+
*/
|
|
76
|
+
matchRoute?: RouteMatcher;
|
|
77
|
+
/**
|
|
78
|
+
* Segment-param coercer — runs the matched route's `params.ts` codecs
|
|
79
|
+
* so the middleware context sees typed `segmentParams`. Required when
|
|
80
|
+
* `matchRoute` is provided.
|
|
81
|
+
*/
|
|
82
|
+
coerceSegmentParams?: CoerceSegmentParamsFn;
|
|
83
|
+
/**
|
|
84
|
+
* Renderer for fallback deny pages — used when middleware throws a
|
|
85
|
+
* `DenySignal` and the framework wants to render `403.tsx` / `404.tsx`
|
|
86
|
+
* instead of returning a bare empty Response. Optional — when omitted
|
|
87
|
+
* the wrapper falls back to a bare status response.
|
|
88
|
+
*/
|
|
89
|
+
renderDenyFallback?: RenderDenyFallbackFn;
|
|
90
|
+
/**
|
|
91
|
+
* Whether to run `middleware.ts` on server action requests. Defaults
|
|
92
|
+
* to `true` (the safe default). Controlled by
|
|
93
|
+
* `actions.runMiddleware` in `timber.config.ts`. See TIM-871.
|
|
94
|
+
*/
|
|
95
|
+
runMiddleware?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Whether to strip trailing slashes during pathname canonicalization
|
|
98
|
+
* for route matching. Mirrors `PipelineConfig.stripTrailingSlash`;
|
|
99
|
+
* defaults to `true` when omitted, matching the page pipeline. The
|
|
100
|
+
* wrapper MUST canonicalize before matching so non-canonical action
|
|
101
|
+
* POSTs (`/admin/`, `/admin//`, encoded separators) cannot bypass the
|
|
102
|
+
* middleware gate by missing the route match and falling through to
|
|
103
|
+
* the legacy path. See TIM-871 / codex review.
|
|
104
|
+
*/
|
|
105
|
+
stripTrailingSlash?: boolean;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Wrap a pipeline function with CSRF validation and server-action dispatch.
|
|
109
|
+
*
|
|
110
|
+
* The returned handler is the framework's outermost request entry point.
|
|
111
|
+
* Its responsibilities are documented in the file header.
|
|
112
|
+
*
|
|
113
|
+
* The duplicate `validateCsrf` call inside `handleActionRequest` is left in
|
|
114
|
+
* place as defense-in-depth (no-op on the happy path) so the action handler
|
|
115
|
+
* remains safe to call from any future entry point that bypasses this
|
|
116
|
+
* wrapper. See LOCAL-773.
|
|
117
|
+
*/
|
|
118
|
+
export declare function wrapPipelineWithActionDispatch(pipeline: (req: Request) => Promise<Response>, deps: ActionDispatchDeps): (req: Request) => Promise<Response>;
|
|
119
|
+
//# sourceMappingURL=wrap-action-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-action-dispatch.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/wrap-action-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAInG;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,kBAAkB,CAAC;AAE7E,+FAA+F;AAC/F,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,OAAO,EACxB,KAAK,CAAC,EAAE,UAAU,KACf,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,oEAAoE;IACpE,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,8DAA8D;IAC9D,uBAAuB,EAAE,yBAAyB,CAAC;IACnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC7C,IAAI,EAAE,kBAAkB,GACvB,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA8SrC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* loadModule — enriched error context for route manifest .load() failures.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the lazy `load()` functions from the route manifest with a
|
|
5
|
+
* try/catch that re-throws with the file path and original cause.
|
|
6
|
+
*
|
|
7
|
+
* Callers that need fallthrough behavior (error renderers) can use
|
|
8
|
+
* `.catch(() => null)` or try/catch — the decision stays at the call site.
|
|
9
|
+
*
|
|
10
|
+
* See design/spike-TIM-551-dynamic-import-audit.md §"Proposed Wrapping Strategy"
|
|
11
|
+
*/
|
|
12
|
+
/** A manifest file reference with a lazy import function and file path. */
|
|
13
|
+
export interface ManifestLoader {
|
|
14
|
+
load: () => Promise<unknown>;
|
|
15
|
+
filePath: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Custom error class for module load failures.
|
|
19
|
+
*
|
|
20
|
+
* Preserves the original error as `cause` while providing a
|
|
21
|
+
* human-readable message with the file path.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ModuleLoadError extends Error {
|
|
24
|
+
/** The file path that failed to load. */
|
|
25
|
+
readonly filePath: string;
|
|
26
|
+
constructor(filePath: string, cause: unknown);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load a route manifest module with enriched error context.
|
|
30
|
+
*
|
|
31
|
+
* On success: returns the module object (same as `loader.load()`).
|
|
32
|
+
* On failure: throws `ModuleLoadError` with file path and original cause.
|
|
33
|
+
*
|
|
34
|
+
* For error rendering paths that need fallthrough instead of throwing,
|
|
35
|
+
* callers should catch at the call site:
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* // Throwing (default) — route-element-builder, api-handler, etc.
|
|
39
|
+
* const mod = await loadModule(segment.page);
|
|
40
|
+
*
|
|
41
|
+
* // Fallthrough — error-renderer, error-boundary-wrapper
|
|
42
|
+
* const mod = await loadModule(segment.error).catch(() => null);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function loadModule<T = Record<string, unknown>>(loader: ManifestLoader): Promise<T>;
|
|
46
|
+
//# sourceMappingURL=safe-load.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-load.d.ts","sourceRoot":"","sources":["../../src/server/safe-load.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAM7C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAMhG"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sensitive field stripping — removes password/token/CVV-style fields
|
|
3
|
+
* from form values before they are echoed back to the client as
|
|
4
|
+
* `submittedValues` for form repopulation.
|
|
5
|
+
*
|
|
6
|
+
* Applied to both action paths:
|
|
7
|
+
* - With-JS action path: `createActionClient()` in `action-client.ts`
|
|
8
|
+
* - No-JS form POST path: `handleFormAction()` in `action-handler.ts`
|
|
9
|
+
*
|
|
10
|
+
* Why: on a validation failure, timber echoes submitted form values back so
|
|
11
|
+
* the user doesn't have to re-type everything. Without filtering, plaintext
|
|
12
|
+
* passwords / credit-card numbers / TOTP codes would travel through the RSC
|
|
13
|
+
* stream (with-JS) or land in the HTML as `defaultValue` attributes (no-JS)
|
|
14
|
+
* — ending up in browser history, proxy logs, disk caches, and the
|
|
15
|
+
* back-forward cache.
|
|
16
|
+
*
|
|
17
|
+
* Safe by default: the built-in deny-list is applied unconditionally unless
|
|
18
|
+
* the user explicitly opts out via `forms.stripSensitiveFields: false` in
|
|
19
|
+
* `timber.config.ts` or per-action via `createActionClient({ stripSensitiveFields: false })`.
|
|
20
|
+
*
|
|
21
|
+
* See design/08-forms-and-actions.md §"Validation errors"
|
|
22
|
+
* See design/13-security.md §"Sensitive field stripping"
|
|
23
|
+
* See TIM-816
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* How to strip sensitive fields from `submittedValues`.
|
|
27
|
+
*
|
|
28
|
+
* - `true` / `undefined` — use the built-in deny-list (default, safe).
|
|
29
|
+
* - `false` — do not strip anything (dev convenience; never do this in prod).
|
|
30
|
+
* - `string[]` — additional field names to strip, merged with the built-in list.
|
|
31
|
+
* - `(name) => boolean` — custom predicate, fully replaces the built-in list.
|
|
32
|
+
* Return `true` to strip, `false` to keep. The `name` argument is the raw
|
|
33
|
+
* (un-normalized) field name as it appeared in the submitted form.
|
|
34
|
+
*/
|
|
35
|
+
export type SensitiveFieldsOption = boolean | readonly string[] | ((name: string) => boolean);
|
|
36
|
+
/**
|
|
37
|
+
* A resolved predicate: `null` means "don't strip anything" (the option was
|
|
38
|
+
* explicitly `false`). Otherwise a function from raw field name → boolean.
|
|
39
|
+
*/
|
|
40
|
+
export type ResolvedSensitivePredicate = ((name: string) => boolean) | null;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve a `SensitiveFieldsOption` into a concrete predicate.
|
|
43
|
+
* Precedence: per-action > global > built-in default.
|
|
44
|
+
*
|
|
45
|
+
* - Per-action `undefined` → fall back to global.
|
|
46
|
+
* - Global `undefined` → use built-in list.
|
|
47
|
+
* - Either level set to `false` → disable stripping entirely (returns `null`).
|
|
48
|
+
* - `true` → built-in list.
|
|
49
|
+
* - `string[]` → built-in ∪ extras.
|
|
50
|
+
* - function → custom, replaces the built-in list entirely.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveSensitivePredicate(perAction: SensitiveFieldsOption | undefined, global: SensitiveFieldsOption | undefined): ResolvedSensitivePredicate;
|
|
53
|
+
/**
|
|
54
|
+
* Set the global `forms.stripSensitiveFields` config from `timber.config.ts`.
|
|
55
|
+
* Called once at startup from `rsc-entry`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function setGlobalSensitiveFieldsConfig(option: SensitiveFieldsOption | undefined): void;
|
|
58
|
+
/** Read the global `forms.stripSensitiveFields` config. */
|
|
59
|
+
export declare function getGlobalSensitiveFieldsConfig(): SensitiveFieldsOption | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Walk an object (recursively) and return a copy with every key matching
|
|
62
|
+
* `predicate` removed. Nested objects like `{ user: { password: '...' } }`
|
|
63
|
+
* are handled — `user.password` is stripped while other `user.*` fields remain.
|
|
64
|
+
*
|
|
65
|
+
* - Arrays are walked element-wise (object entries inside arrays are cleaned).
|
|
66
|
+
* - Non-plain values (strings, numbers, Files, Dates, etc.) are returned as-is.
|
|
67
|
+
* - When a stripped key is encountered, it is omitted from the result entirely
|
|
68
|
+
* — we do NOT set it to an empty string, because that would overwrite a
|
|
69
|
+
* valid `defaultValue` the form author might have set.
|
|
70
|
+
*/
|
|
71
|
+
export declare function stripSensitiveFields<T>(value: T, predicate: ResolvedSensitivePredicate): T;
|
|
72
|
+
/** Reset the "warned once" cache. Exposed for tests. */
|
|
73
|
+
export declare function __resetSensitiveFieldsWarnings(): void;
|
|
74
|
+
//# sourceMappingURL=sensitive-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitive-fields.d.ts","sourceRoot":"","sources":["../../src/server/sensitive-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAoF9F;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,qBAAqB,GAAG,SAAS,EAC5C,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,0BAA0B,CAa5B;AAMD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAE9F;AAED,2DAA2D;AAC3D,wBAAgB,8BAA8B,IAAI,qBAAqB,GAAG,SAAS,CAElF;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,0BAA0B,GAAG,CAAC,CAoB1F;AAID,wDAAwD;AACxD,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-generate sitemap.xml from the route tree.
|
|
3
|
+
*
|
|
4
|
+
* When enabled via `sitemap: { enabled: true, baseUrl: '...' }` in timber.config.ts,
|
|
5
|
+
* this module walks the route tree and produces sitemap XML for all discoverable pages.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Collects all static page routes automatically
|
|
9
|
+
* - Calls `generateStaticParams()` on dynamic routes to enumerate URLs
|
|
10
|
+
* - Skips API routes (route.ts), layout-only segments, slots, intercepting routes
|
|
11
|
+
* - Skips auth-protected routes (access.ts in segment chain) by default
|
|
12
|
+
* - Automatic pagination: sitemap index when > 50,000 URLs
|
|
13
|
+
*
|
|
14
|
+
* See design/16-metadata.md §"Auto-generated Sitemap"
|
|
15
|
+
*/
|
|
16
|
+
import type { SegmentNode } from '../routing/types.js';
|
|
17
|
+
/** Configuration for sitemap generation from timber.config.ts. */
|
|
18
|
+
export interface SitemapConfig {
|
|
19
|
+
/** Must be explicitly true to enable auto-generation. */
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
/** Base URL for absolute URLs in the sitemap. Required. e.g., 'https://example.com' */
|
|
22
|
+
baseUrl: string;
|
|
23
|
+
/** Default changefreq for all entries. Optional. */
|
|
24
|
+
defaultChangeFrequency?: string;
|
|
25
|
+
/** Default priority for all entries (0.0–1.0). Optional. */
|
|
26
|
+
defaultPriority?: number;
|
|
27
|
+
/** Include routes protected by access.ts. Default: false. */
|
|
28
|
+
includeProtected?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** A single sitemap entry ready for serialization. */
|
|
31
|
+
export interface SitemapEntry {
|
|
32
|
+
url: string;
|
|
33
|
+
changeFrequency?: string;
|
|
34
|
+
priority?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A route discovered during tree walk that may need async resolution
|
|
38
|
+
* (dynamic routes with generateStaticParams).
|
|
39
|
+
*/
|
|
40
|
+
export interface SitemapRoute {
|
|
41
|
+
/** The URL path pattern (e.g., '/products/[id]'). */
|
|
42
|
+
urlPath: string;
|
|
43
|
+
/** Whether this route has dynamic segments that need generateStaticParams. */
|
|
44
|
+
isDynamic: boolean;
|
|
45
|
+
/** Loader for the page module (from route manifest). */
|
|
46
|
+
pageLoader?: {
|
|
47
|
+
load: () => Promise<unknown>;
|
|
48
|
+
filePath: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Function signature for loading a page module.
|
|
53
|
+
* Takes the manifest loader and returns the module exports.
|
|
54
|
+
*/
|
|
55
|
+
export type ModuleLoader = (loader: {
|
|
56
|
+
load: () => Promise<unknown>;
|
|
57
|
+
filePath: string;
|
|
58
|
+
}) => Promise<Record<string, unknown>>;
|
|
59
|
+
/** Result of sitemap generation. */
|
|
60
|
+
export type SitemapResult = {
|
|
61
|
+
type: 'single';
|
|
62
|
+
xml: string;
|
|
63
|
+
} | {
|
|
64
|
+
type: 'index';
|
|
65
|
+
indexXml: string;
|
|
66
|
+
pages: Map<number, string>;
|
|
67
|
+
};
|
|
68
|
+
/** Maximum URLs per sitemap file per the sitemap protocol. */
|
|
69
|
+
export declare const URLS_PER_SITEMAP = 50000;
|
|
70
|
+
/**
|
|
71
|
+
* Walk the route tree and collect all routes eligible for the sitemap.
|
|
72
|
+
*
|
|
73
|
+
* Pure synchronous function — no module loading. Returns routes that may
|
|
74
|
+
* need async resolution (dynamic routes with generateStaticParams).
|
|
75
|
+
*
|
|
76
|
+
* @param root - The root segment node from the route tree
|
|
77
|
+
* @param config - Sitemap configuration
|
|
78
|
+
* @returns Array of sitemap routes to resolve
|
|
79
|
+
*/
|
|
80
|
+
export declare function collectSitemapRoutes(root: SegmentNode, config: SitemapConfig): SitemapRoute[];
|
|
81
|
+
/**
|
|
82
|
+
* Check if a URL path contains dynamic segments.
|
|
83
|
+
*
|
|
84
|
+
* Dynamic segments are enclosed in brackets: [param], [...param], [[...param]]
|
|
85
|
+
*/
|
|
86
|
+
export declare function hasDynamicSegments(urlPath: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve sitemap routes into concrete URLs.
|
|
89
|
+
*
|
|
90
|
+
* For static routes, the URL is derived directly from the path.
|
|
91
|
+
* For dynamic routes, calls `generateStaticParams()` from the page module.
|
|
92
|
+
*
|
|
93
|
+
* @param routes - Routes collected by collectSitemapRoutes
|
|
94
|
+
* @param config - Sitemap configuration
|
|
95
|
+
* @param loadModule - Async function to load a page module by file path
|
|
96
|
+
* @returns Array of sitemap entries with absolute URLs
|
|
97
|
+
*/
|
|
98
|
+
export declare function resolveSitemapUrls(routes: SitemapRoute[], config: SitemapConfig, loadModule?: ModuleLoader): Promise<SitemapEntry[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Replace dynamic segments in a URL path with concrete param values.
|
|
101
|
+
*
|
|
102
|
+
* Handles:
|
|
103
|
+
* - `[param]` → single value
|
|
104
|
+
* - `[...param]` → slash-joined values
|
|
105
|
+
* - `[[...param]]` → slash-joined values (or empty string if not provided)
|
|
106
|
+
*
|
|
107
|
+
* @returns The resolved path, or null if params are missing
|
|
108
|
+
*/
|
|
109
|
+
export declare function resolvePathWithParams(urlPath: string, params: Record<string, string | string[]>): string | null;
|
|
110
|
+
/**
|
|
111
|
+
* Generate the complete sitemap result from a route tree.
|
|
112
|
+
*
|
|
113
|
+
* Orchestrates tree walking, URL resolution, and XML serialization.
|
|
114
|
+
* Returns either a single sitemap or a paginated sitemap index.
|
|
115
|
+
*
|
|
116
|
+
* @param root - The root segment node from the route tree
|
|
117
|
+
* @param config - Sitemap configuration
|
|
118
|
+
* @param loadModule - Optional async function to load page modules (for generateStaticParams)
|
|
119
|
+
* @returns The sitemap result (single or index with pages)
|
|
120
|
+
*/
|
|
121
|
+
export declare function generateSitemap(root: SegmentNode, config: SitemapConfig, loadModule?: ModuleLoader): Promise<SitemapResult>;
|
|
122
|
+
/**
|
|
123
|
+
* Check if the route tree root has a user-authored sitemap metadata route.
|
|
124
|
+
*
|
|
125
|
+
* When a user-authored sitemap exists at the root, auto-generation is disabled
|
|
126
|
+
* to avoid conflicts — the user takes full control.
|
|
127
|
+
*/
|
|
128
|
+
export declare function hasUserSitemap(root: SegmentNode): boolean;
|
|
129
|
+
//# sourceMappingURL=sitemap-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap-generator.d.ts","sourceRoot":"","sources":["../../src/server/sitemap-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE;IAClC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvC,oCAAoC;AACpC,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAIpE,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,QAAS,CAAC;AAIvC;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,YAAY,EAAE,CAI7F;AAwDD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC,CA+CzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GACxC,MAAM,GAAG,IAAI,CA0Cf;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,aAAa,CAAC,CA+BxB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAGzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-sitemap request handler for the pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Creates a handler function that intercepts `/sitemap.xml` and `/sitemap/N.xml`
|
|
5
|
+
* requests, generating sitemap XML from the route tree on-the-fly.
|
|
6
|
+
*
|
|
7
|
+
* This module bridges the pipeline (which doesn't know about route trees)
|
|
8
|
+
* with the sitemap generator (which doesn't know about HTTP).
|
|
9
|
+
*
|
|
10
|
+
* See design/16-metadata.md §"Auto-generated Sitemap"
|
|
11
|
+
*/
|
|
12
|
+
import type { SegmentNode } from '../routing/types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Create the auto-sitemap request handler for the pipeline.
|
|
15
|
+
*
|
|
16
|
+
* Returns a function that handles `/sitemap.xml` and `/sitemap/N.xml`,
|
|
17
|
+
* or returns `null` to pass through to regular routing.
|
|
18
|
+
*
|
|
19
|
+
* Returns `undefined` if auto-sitemap is not enabled (no overhead in pipeline).
|
|
20
|
+
*/
|
|
21
|
+
export declare function createAutoSitemapHandler(root: SegmentNode, runtimeConfig: Record<string, unknown>): ((pathname: string) => Promise<Response | null>) | undefined;
|
|
22
|
+
//# sourceMappingURL=sitemap-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap-handler.d.ts","sourceRoot":"","sources":["../../src/server/sitemap-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CA0F9D"}
|