@timber-js/app 0.2.0-alpha.207 → 0.2.0-alpha.209
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/{primitives-DLAnvsrk.js → actions-BerlqoXA.js} +640 -410
- package/dist/_chunks/actions-BerlqoXA.js.map +1 -0
- package/dist/_chunks/{als-registry-C6kcfprT.js → als-registry-DaxkVjt5.js} +6 -2
- package/dist/_chunks/als-registry-DaxkVjt5.js.map +1 -0
- package/dist/_chunks/{build-manifest-DTmSGLRz.js → build-manifest-DWppEdLB.js} +2 -51
- package/dist/_chunks/build-manifest-DWppEdLB.js.map +1 -0
- package/dist/_chunks/{build-output-helper-9dqCv1pZ.js → build-output-helper-RV_BRcF1.js} +50 -53
- package/dist/_chunks/build-output-helper-RV_BRcF1.js.map +1 -0
- package/dist/_chunks/{cache-api-CUD9Ezaq.js → cache-api-CR23J_NC.js} +64 -32
- package/dist/_chunks/cache-api-CR23J_NC.js.map +1 -0
- package/dist/_chunks/{chains-B4bgOl2g.js → chains-CpFg56UB.js} +2 -2
- package/dist/_chunks/{chains-B4bgOl2g.js.map → chains-CpFg56UB.js.map} +1 -1
- package/dist/_chunks/{cli-check-G8o30ldg.js → cli-check-C6Ev6wBO.js} +11 -52
- package/dist/_chunks/cli-check-C6Ev6wBO.js.map +1 -0
- package/dist/_chunks/cli-context-By7k2xVo.js +70 -0
- package/dist/_chunks/cli-context-By7k2xVo.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync--LZKs8Zn.js → cli-schema-sync-CbT2AUUI.js} +3 -3
- package/dist/_chunks/{cli-schema-sync--LZKs8Zn.js.map → cli-schema-sync-CbT2AUUI.js.map} +1 -1
- package/dist/_chunks/{cloudflare-BFb__LYG.js → cloudflare-Byxl8FWP.js} +96 -53
- package/dist/_chunks/{cloudflare-BFb__LYG.js.map → cloudflare-Byxl8FWP.js.map} +1 -1
- package/dist/_chunks/{convention-lint-5KzoMg_A.js → convention-lint-jKTwKwPe.js} +21 -6
- package/dist/_chunks/convention-lint-jKTwKwPe.js.map +1 -0
- package/dist/_chunks/{dev-server-BzBxgYAV.js → dev-server-C4WZdB7L.js} +15 -167
- package/dist/_chunks/dev-server-C4WZdB7L.js.map +1 -0
- package/dist/_chunks/{error-boundary-BndF-3Td.js → error-boundary-tA7kVfs4.js} +84 -104
- package/dist/_chunks/error-boundary-tA7kVfs4.js.map +1 -0
- package/dist/_chunks/{fs-identity-D7vb6GdI.js → fs-identity-BRKuL215.js} +3 -4
- package/dist/_chunks/fs-identity-BRKuL215.js.map +1 -0
- package/dist/_chunks/{graph-cache-CP4GEmf9.js → graph-cache-CYiUS2aS.js} +4 -5
- package/dist/_chunks/graph-cache-CYiUS2aS.js.map +1 -0
- package/dist/_chunks/{json-lossy-check-ClNvBM_3.js → json-lossy-check-ip0Qi0MT.js} +6 -3
- package/dist/_chunks/json-lossy-check-ip0Qi0MT.js.map +1 -0
- package/dist/_chunks/{live-graph-Bm5WTvcr.js → live-graph-Dv-JJCZw.js} +3 -3
- package/dist/_chunks/{live-graph-Bm5WTvcr.js.map → live-graph-Dv-JJCZw.js.map} +1 -1
- package/dist/_chunks/{logger-k2DQ4EUf.js → logger-DiDt5ppH.js} +192 -51
- package/dist/_chunks/logger-DiDt5ppH.js.map +1 -0
- package/dist/_chunks/{navigation-root-mHSK9psY.js → navigation-root-BQfo1-kG.js} +2 -2
- package/dist/_chunks/{navigation-root-mHSK9psY.js.map → navigation-root-BQfo1-kG.js.map} +1 -1
- package/dist/_chunks/{plugin-context-8idfR3UZ.js → plugin-context-BPBPc3lL.js} +28 -4
- package/dist/_chunks/plugin-context-BPBPc3lL.js.map +1 -0
- package/dist/_chunks/{poison-scan-DG5eI2_z.js → poison-scan-CpeT6_OJ.js} +2 -2
- package/dist/_chunks/{poison-scan-DG5eI2_z.js.map → poison-scan-CpeT6_OJ.js.map} +1 -1
- package/dist/_chunks/render-timeout-DOf_BBcO.js +46 -0
- package/dist/_chunks/render-timeout-DOf_BBcO.js.map +1 -0
- package/dist/_chunks/{rsc-payload-path-B_LBodc2.js → rsc-payload-path-dffcs4jp.js} +9 -3
- package/dist/_chunks/{rsc-payload-path-B_LBodc2.js.map → rsc-payload-path-dffcs4jp.js.map} +1 -1
- package/dist/_chunks/{scanner-BQ5sPIJ7.js → scanner-Bw0oq1HB.js} +2 -2
- package/dist/_chunks/{scanner-BQ5sPIJ7.js.map → scanner-Bw0oq1HB.js.map} +1 -1
- package/dist/_chunks/{navigation-context-D0TU0Jog.js → segment-context-xtPUGfdq.js} +36 -34
- package/dist/_chunks/segment-context-xtPUGfdq.js.map +1 -0
- package/dist/_chunks/{singleflight-2lUWfcAk.js → singleflight-BeVMMKi0.js} +4 -3
- package/dist/_chunks/{singleflight-2lUWfcAk.js.map → singleflight-BeVMMKi0.js.map} +1 -1
- package/dist/_chunks/{sizeof-lXffQ1Vr.js → sizeof-UwzwB1uM.js} +3 -2
- package/dist/_chunks/sizeof-UwzwB1uM.js.map +1 -0
- package/dist/_chunks/ssr-data-nA3I70_n.js +49 -0
- package/dist/_chunks/ssr-data-nA3I70_n.js.map +1 -0
- package/dist/_chunks/{state-FippDgxN.js → state-BhNGPsdi.js} +6 -8
- package/dist/_chunks/state-BhNGPsdi.js.map +1 -0
- package/dist/_chunks/{status-page-marker-DwQBrLBz.js → status-page-marker-gaihi0KZ.js} +140 -28
- package/dist/_chunks/status-page-marker-gaihi0KZ.js.map +1 -0
- package/dist/_chunks/{walkers-CN2N_bA-.js → walkers-BXExhzzk.js} +2 -2
- package/dist/_chunks/{walkers-CN2N_bA-.js.map → walkers-BXExhzzk.js.map} +1 -1
- package/dist/_chunks/write-file-atomic-D1qWqHb4.js +32 -0
- package/dist/_chunks/write-file-atomic-D1qWqHb4.js.map +1 -0
- package/dist/adapters/build-output-helper.d.ts +7 -7
- package/dist/adapters/build-output-helper.d.ts.map +1 -1
- package/dist/adapters/canonicalize-module.d.ts +8 -0
- package/dist/adapters/canonicalize-module.d.ts.map +1 -0
- package/dist/adapters/cloudflare-dev.js +1 -1
- package/dist/adapters/cloudflare-kv-cache.js +2 -2
- package/dist/adapters/cloudflare.d.ts +30 -8
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +2 -2
- package/dist/adapters/compress-module.d.ts +8 -0
- package/dist/adapters/compress-module.d.ts.map +1 -1
- package/dist/adapters/fs-identity.d.ts +2 -3
- package/dist/adapters/fs-identity.d.ts.map +1 -1
- package/dist/adapters/nitro-presets.d.ts +0 -6
- package/dist/adapters/nitro-presets.d.ts.map +1 -1
- package/dist/adapters/nitro-preview.d.ts +43 -11
- package/dist/adapters/nitro-preview.d.ts.map +1 -1
- package/dist/adapters/nitro.d.ts +1 -13
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +291 -176
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/adapters/shared.d.ts +7 -2
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/types.d.ts +105 -21
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/types.js +0 -0
- package/dist/analyze/crawl-entry.js +3 -3
- package/dist/analyze/graph-cache.d.ts.map +1 -1
- package/dist/analyze/graph-command.js +4 -4
- package/dist/cache/index.js +2 -2
- package/dist/cache/json-lossy-check.d.ts.map +1 -1
- package/dist/cache/singleflight.d.ts.map +1 -1
- package/dist/cache/sizeof.d.ts.map +1 -1
- package/dist/cache/stores/memory.js +1 -1
- package/dist/cache/tag-aware-handler.d.ts.map +1 -1
- package/dist/cdn/workers-cache-purge.js +1 -1
- package/dist/cli-check.d.ts +7 -37
- package/dist/cli-check.d.ts.map +1 -1
- package/dist/cli-context.d.ts +54 -0
- package/dist/cli-context.d.ts.map +1 -0
- package/dist/cli.d.ts +9 -9
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -24
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-dev.d.ts +1 -1
- package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -1
- package/dist/client/browser-entry/hydrate.d.ts +19 -29
- package/dist/client/browser-entry/hydrate.d.ts.map +1 -1
- package/dist/client/browser-entry/index.d.ts +7 -7
- package/dist/client/browser-entry/post-hydration.d.ts +6 -9
- package/dist/client/browser-entry/post-hydration.d.ts.map +1 -1
- package/dist/client/browser-entry/router-init.d.ts +6 -11
- package/dist/client/browser-entry/router-init.d.ts.map +1 -1
- package/dist/client/error-boundary.d.ts +4 -3
- package/dist/client/error-boundary.d.ts.map +1 -1
- package/dist/client/error-boundary.js +1 -1
- package/dist/client/error-reconstituter.d.ts +3 -9
- package/dist/client/error-reconstituter.d.ts.map +1 -1
- package/dist/client/history.d.ts +20 -11
- package/dist/client/history.d.ts.map +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -6
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +3 -3
- package/dist/client/internal.d.ts.map +1 -1
- package/dist/client/internal.js +95 -108
- package/dist/client/internal.js.map +1 -1
- package/dist/client/navigation-commit.d.ts +20 -7
- package/dist/client/navigation-commit.d.ts.map +1 -1
- package/dist/client/navigation-context.d.ts +3 -5
- package/dist/client/navigation-context.d.ts.map +1 -1
- package/dist/client/react-root.d.ts +3 -2
- package/dist/client/react-root.d.ts.map +1 -1
- package/dist/client/router-pipeline.d.ts +3 -8
- package/dist/client/router-pipeline.d.ts.map +1 -1
- package/dist/client/router-types.d.ts +45 -39
- package/dist/client/router-types.d.ts.map +1 -1
- package/dist/client/router-url.d.ts +24 -0
- package/dist/client/router-url.d.ts.map +1 -0
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +8 -4
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +44 -4
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/client/ssr-data.d.ts +18 -64
- package/dist/client/ssr-data.d.ts.map +1 -1
- package/dist/client/state.d.ts +2 -5
- package/dist/client/state.d.ts.map +1 -1
- package/dist/client/use-pathname.d.ts +1 -1
- package/dist/config-types.d.ts +2 -1
- package/dist/config-types.d.ts.map +1 -1
- package/dist/config-validation.d.ts.map +1 -1
- package/dist/cookies/index.js +1 -1
- package/dist/dev-tools/dev-page-shell.d.ts +17 -0
- package/dist/dev-tools/dev-page-shell.d.ts.map +1 -1
- package/dist/dev-tools/index.d.ts +1 -1
- package/dist/dev-tools/index.d.ts.map +1 -1
- package/dist/dev-tools/instrumentation.d.ts +17 -2
- package/dist/dev-tools/instrumentation.d.ts.map +1 -1
- package/dist/dev-tools/overlay.d.ts +6 -27
- package/dist/dev-tools/overlay.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +632 -373
- package/dist/index.js.map +1 -1
- package/dist/plugin-context.d.ts +26 -40
- package/dist/plugin-context.d.ts.map +1 -1
- package/dist/plugins/build-manifest.d.ts.map +1 -1
- package/dist/plugins/build-report.d.ts +15 -2
- package/dist/plugins/build-report.d.ts.map +1 -1
- package/dist/plugins/dev-server.d.ts.map +1 -1
- package/dist/plugins/entries.d.ts.map +1 -1
- package/dist/plugins/fonts.d.ts +19 -1
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/plugins/post-build.d.ts +110 -0
- package/dist/plugins/post-build.d.ts.map +1 -0
- package/dist/plugins/prebuilt-capture.d.ts +11 -4
- package/dist/plugins/prebuilt-capture.d.ts.map +1 -1
- package/dist/plugins/prebuilt.d.ts +17 -1
- package/dist/plugins/prebuilt.d.ts.map +1 -1
- package/dist/plugins/prerender-sugar.d.ts.map +1 -1
- package/dist/plugins/react-resolve.d.ts +49 -0
- package/dist/plugins/react-resolve.d.ts.map +1 -0
- package/dist/plugins/rsc-assets-manifest.d.ts +33 -0
- package/dist/plugins/rsc-assets-manifest.d.ts.map +1 -0
- package/dist/plugins/shims.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +32 -9
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/codegen-write.d.ts +0 -9
- package/dist/routing/codegen-write.d.ts.map +1 -1
- package/dist/routing/index.js +2 -2
- package/dist/routing/segment-codegen.d.ts.map +1 -1
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-handler.d.ts +5 -4
- package/dist/server/action-handler.d.ts.map +1 -1
- package/dist/server/actions.d.ts +46 -7
- package/dist/server/actions.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +58 -5
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/children-interception.d.ts.map +1 -1
- package/dist/server/cookie-context.d.ts +2 -23
- package/dist/server/cookie-context.d.ts.map +1 -1
- package/dist/server/csp-nonce.d.ts +0 -9
- package/dist/server/csp-nonce.d.ts.map +1 -1
- package/dist/server/csrf.d.ts +27 -4
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/debug.d.ts +0 -1
- package/dist/server/debug.d.ts.map +1 -1
- package/dist/server/default-logger.d.ts +2 -1
- package/dist/server/default-logger.d.ts.map +1 -1
- package/dist/server/deny-boundary.d.ts +12 -6
- package/dist/server/deny-boundary.d.ts.map +1 -1
- package/dist/server/deny-renderer.d.ts +2 -2
- package/dist/server/deny-renderer.d.ts.map +1 -1
- package/dist/server/error-boundary-wrapper.d.ts +7 -3
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
- package/dist/server/fallback-error.d.ts +9 -2
- package/dist/server/fallback-error.d.ts.map +1 -1
- package/dist/server/head-response.d.ts +4 -4
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +0 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/instrumentation.d.ts +10 -3
- package/dist/server/instrumentation.d.ts.map +1 -1
- package/dist/server/internal.d.ts +1 -4
- package/dist/server/internal.d.ts.map +1 -1
- package/dist/server/internal.js +961 -581
- package/dist/server/internal.js.map +1 -1
- package/dist/server/json-status-response.d.ts +34 -0
- package/dist/server/json-status-response.d.ts.map +1 -0
- package/dist/server/logger.d.ts +26 -0
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/param-coercion.d.ts +11 -6
- package/dist/server/param-coercion.d.ts.map +1 -1
- package/dist/server/pipeline-helpers.d.ts +95 -7
- package/dist/server/pipeline-helpers.d.ts.map +1 -1
- package/dist/server/pipeline-interception.d.ts +11 -0
- package/dist/server/pipeline-interception.d.ts.map +1 -1
- package/dist/server/pipeline-outcome.d.ts +11 -1
- package/dist/server/pipeline-outcome.d.ts.map +1 -1
- package/dist/server/pipeline-phases.d.ts +2 -2
- package/dist/server/pipeline-phases.d.ts.map +1 -1
- package/dist/server/pipeline.d.ts +23 -35
- package/dist/server/pipeline.d.ts.map +1 -1
- package/dist/server/prebuilt/capture-render.d.ts +25 -0
- package/dist/server/prebuilt/capture-render.d.ts.map +1 -0
- package/dist/server/prebuilt/capture-routes.d.ts +37 -0
- package/dist/server/prebuilt/capture-routes.d.ts.map +1 -0
- package/dist/server/prebuilt/capture-state.d.ts +79 -35
- package/dist/server/prebuilt/capture-state.d.ts.map +1 -1
- package/dist/server/prebuilt/lifetime.d.ts +38 -0
- package/dist/server/prebuilt/lifetime.d.ts.map +1 -0
- package/dist/server/prebuilt/slots.d.ts +7 -0
- package/dist/server/prebuilt/slots.d.ts.map +1 -1
- package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -1
- package/dist/server/prebuilt-builder.d.ts.map +1 -1
- package/dist/server/prebuilt-runtime.d.ts.map +1 -1
- package/dist/server/primitives.d.ts +6 -81
- package/dist/server/primitives.d.ts.map +1 -1
- package/dist/server/react-cache-bridge.d.ts +59 -0
- package/dist/server/react-cache-bridge.d.ts.map +1 -0
- package/dist/server/react-cache-scope.d.ts +49 -0
- package/dist/server/react-cache-scope.d.ts.map +1 -0
- package/dist/server/render-timeout.d.ts +15 -0
- package/dist/server/render-timeout.d.ts.map +1 -1
- package/dist/server/render-utils.d.ts +9 -0
- package/dist/server/render-utils.d.ts.map +1 -1
- package/dist/server/request-context.d.ts +26 -5
- package/dist/server/request-context.d.ts.map +1 -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 +7 -0
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/rsc-entry/action-middleware-runner.d.ts +22 -22
- package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -1
- package/dist/server/rsc-entry/api-handler.d.ts +7 -0
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
- package/dist/server/rsc-entry/deny-fallback.d.ts +32 -6
- package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -1
- package/dist/server/rsc-entry/error-renderer.d.ts +11 -18
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/helpers.d.ts +0 -1
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts +5 -15
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts +5 -6
- package/dist/server/rsc-entry/render-route.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-signals.d.ts +65 -0
- package/dist/server/rsc-entry/render-signals.d.ts.map +1 -0
- package/dist/server/rsc-entry/revalidate-renderer.d.ts +6 -16
- package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-payload.d.ts +7 -3
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts +8 -53
- package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts +2 -2
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +9 -4
- package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +1 -1
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -1
- package/dist/server/signal-identity.d.ts +43 -0
- package/dist/server/signal-identity.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +4 -3
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/slot-subtree-contain.d.ts.map +1 -1
- package/dist/server/ssr-bridge-types.d.ts +91 -53
- package/dist/server/ssr-bridge-types.d.ts.map +1 -1
- package/dist/server/ssr-entry.d.ts +8 -5
- package/dist/server/ssr-entry.d.ts.map +1 -1
- package/dist/server/ssr-render.d.ts +26 -40
- package/dist/server/ssr-render.d.ts.map +1 -1
- package/dist/server/ssr-wrappers.d.ts +1 -1
- package/dist/server/static-generator.d.ts.map +1 -1
- package/dist/server/stream-utils.d.ts +12 -0
- package/dist/server/stream-utils.d.ts.map +1 -1
- package/dist/server/tracing.d.ts +12 -16
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/types.d.ts +1 -1
- package/dist/server/version-skew.d.ts +3 -3
- package/dist/shared/csrf-reject.d.ts +16 -0
- package/dist/shared/csrf-reject.d.ts.map +1 -0
- package/dist/shared/error-digest.d.ts +28 -0
- package/dist/shared/error-digest.d.ts.map +1 -0
- package/dist/shared/payload-root.d.ts +11 -10
- package/dist/shared/payload-root.d.ts.map +1 -1
- package/dist/shared/rsc-payload-path.d.ts +6 -0
- package/dist/shared/rsc-payload-path.d.ts.map +1 -1
- package/dist/utils/write-file-atomic.d.ts +17 -0
- package/dist/utils/write-file-atomic.d.ts.map +1 -0
- package/docs/api/30-api-server.mdx +17 -14
- package/docs/api/32-api-cache.mdx +51 -23
- package/docs/api/34-api-config.mdx +34 -6
- package/docs/api/36-cli.mdx +11 -1
- package/docs/learn/03-fetching-data.mdx +17 -1
- package/docs/learn/04-access-control.mdx +1 -1
- package/docs/learn/10-caching.mdx +29 -11
- package/docs/learn/11-middleware.mdx +8 -2
- package/docs/learn/12-error-handling.mdx +6 -1
- package/package.json +7 -3
- package/src/adapters/build-output-helper.ts +55 -53
- package/src/adapters/canonicalize-module.ts +29 -0
- package/src/adapters/cloudflare.ts +105 -63
- package/src/adapters/compress-module.ts +16 -5
- package/src/adapters/fs-identity.ts +2 -3
- package/src/adapters/nitro-presets.ts +0 -15
- package/src/adapters/nitro-preview.ts +272 -136
- package/src/adapters/nitro.ts +119 -82
- package/src/adapters/shared.ts +23 -14
- package/src/adapters/types.ts +110 -21
- package/src/analyze/graph-cache.ts +3 -4
- package/src/cache/json-lossy-check.ts +3 -9
- package/src/cache/singleflight.ts +5 -2
- package/src/cache/sizeof.ts +3 -1
- package/src/cache/tag-aware-handler.ts +43 -26
- package/src/cli-check.ts +8 -98
- package/src/cli-context.ts +119 -0
- package/src/cli.ts +19 -28
- package/src/client/browser-dev.ts +1 -1
- package/src/client/browser-entry/action-dispatch.ts +26 -4
- package/src/client/browser-entry/hydrate.ts +53 -58
- package/src/client/browser-entry/index.ts +16 -27
- package/src/client/browser-entry/post-hydration.ts +6 -40
- package/src/client/browser-entry/router-init.ts +66 -84
- package/src/client/error-boundary.tsx +9 -41
- package/src/client/error-reconstituter.tsx +10 -5
- package/src/client/history.ts +35 -21
- package/src/client/index.ts +0 -1
- package/src/client/internal.ts +2 -7
- package/src/client/navigation-commit.ts +41 -18
- package/src/client/navigation-context.ts +3 -39
- package/src/client/react-root.ts +3 -2
- package/src/client/router-pipeline.ts +96 -132
- package/src/client/router-types.ts +46 -44
- package/src/client/router-url.ts +32 -0
- package/src/client/router.ts +62 -21
- package/src/client/rsc-fetch.ts +117 -155
- package/src/client/segment-cache.ts +110 -11
- package/src/client/ssr-data.ts +19 -80
- package/src/client/state.ts +2 -9
- package/src/client/use-pathname.ts +1 -1
- package/src/config-types.ts +2 -1
- package/src/config-validation.ts +2 -1
- package/src/dev-tools/dev-page-shell.ts +18 -0
- package/src/dev-tools/index.ts +0 -2
- package/src/dev-tools/instrumentation.ts +50 -2
- package/src/dev-tools/overlay.ts +8 -238
- package/src/index.ts +26 -14
- package/src/plugin-context.ts +39 -40
- package/src/plugins/build-manifest.ts +4 -11
- package/src/plugins/build-report.ts +70 -70
- package/src/plugins/dev-server.ts +24 -44
- package/src/plugins/entries.ts +2 -1
- package/src/plugins/fonts.ts +35 -7
- package/src/plugins/post-build.ts +327 -0
- package/src/plugins/prebuilt-capture.ts +28 -32
- package/src/plugins/prebuilt.ts +54 -39
- package/src/plugins/prerender-sugar.ts +0 -4
- package/src/plugins/react-resolve.ts +149 -0
- package/src/plugins/{adapter-build.ts → rsc-assets-manifest.ts} +20 -109
- package/src/plugins/shims.ts +1 -0
- package/src/plugins/static-build.ts +42 -74
- package/src/routing/codegen-write.ts +25 -3
- package/src/routing/segment-codegen.ts +3 -2
- package/src/rsc-runtime/vendor-types.d.ts +8 -0
- package/src/server/access-gate.tsx +2 -1
- package/src/server/action-client.ts +1 -1
- package/src/server/action-handler.ts +253 -110
- package/src/server/actions.ts +73 -25
- package/src/server/als-registry.ts +73 -5
- package/src/server/chain-url-parts.ts +1 -1
- package/src/server/children-interception.ts +2 -1
- package/src/server/cookie-context.ts +18 -48
- package/src/server/csp-nonce.ts +0 -12
- package/src/server/csrf.ts +140 -8
- package/src/server/debug.ts +0 -1
- package/src/server/default-logger.ts +2 -1
- package/src/server/deny-boundary.ts +25 -13
- package/src/server/deny-renderer.ts +30 -97
- package/src/server/error-boundary-wrapper.ts +7 -3
- package/src/server/fallback-error.ts +26 -11
- package/src/server/flight-scripts.ts +1 -1
- package/src/server/head-response.ts +4 -4
- package/src/server/html-injector-core.ts +2 -2
- package/src/server/html-injectors.ts +2 -4
- package/src/server/index.ts +0 -4
- package/src/server/instrumentation.ts +10 -3
- package/src/server/internal.ts +1 -6
- package/src/server/json-status-response.ts +105 -0
- package/src/server/logger.ts +39 -3
- package/src/server/param-coercion.ts +15 -12
- package/src/server/pipeline-helpers.ts +257 -12
- package/src/server/pipeline-interception.ts +133 -0
- package/src/server/pipeline-outcome.ts +103 -31
- package/src/server/pipeline-phases.ts +127 -237
- package/src/server/pipeline.ts +204 -207
- package/src/server/prebuilt/capture-render.ts +118 -0
- package/src/server/prebuilt/capture-routes.ts +104 -0
- package/src/server/prebuilt/capture-state.ts +155 -48
- package/src/server/prebuilt/lifetime.ts +151 -0
- package/src/server/prebuilt/slots.ts +14 -2
- package/src/server/prebuilt/synthetic-store.ts +3 -0
- package/src/server/prebuilt-builder.ts +30 -320
- package/src/server/prebuilt-runtime.ts +125 -129
- package/src/server/primitives.ts +8 -168
- package/src/server/react-cache-bridge.ts +124 -0
- package/src/server/react-cache-scope.ts +104 -0
- package/src/server/render-timeout.ts +20 -0
- package/src/server/render-utils.ts +11 -1
- package/src/server/request-context.ts +36 -9
- package/src/server/route-element-builder.ts +11 -6
- package/src/server/route-handler.ts +36 -23
- package/src/server/route-matcher.ts +15 -1
- package/src/server/rsc-entry/action-middleware-runner.ts +79 -123
- package/src/server/rsc-entry/api-handler.ts +27 -103
- package/src/server/rsc-entry/deny-fallback.ts +93 -26
- package/src/server/rsc-entry/error-renderer.ts +39 -91
- package/src/server/rsc-entry/helpers.ts +2 -4
- package/src/server/rsc-entry/index.ts +64 -58
- package/src/server/rsc-entry/render-route.ts +15 -80
- package/src/server/rsc-entry/render-signals.ts +108 -0
- package/src/server/rsc-entry/revalidate-renderer.ts +56 -57
- package/src/server/rsc-entry/rsc-payload.ts +28 -61
- package/src/server/rsc-entry/rsc-stream.ts +113 -213
- package/src/server/rsc-entry/ssr-bridge.ts +2 -2
- package/src/server/rsc-entry/ssr-renderer.ts +182 -263
- package/src/server/rsc-entry/wrap-action-dispatch.ts +12 -14
- package/src/server/signal-identity.ts +112 -0
- package/src/server/slot-resolver.ts +18 -18
- package/src/server/slot-subtree-contain.ts +2 -1
- package/src/server/ssr-bridge-types.ts +92 -56
- package/src/server/ssr-entry.ts +87 -111
- package/src/server/ssr-render.ts +55 -64
- package/src/server/ssr-wrappers.tsx +2 -2
- package/src/server/static-generator.ts +7 -42
- package/src/server/static-not-found.ts +3 -3
- package/src/server/stream-utils.ts +51 -0
- package/src/server/tracing.ts +58 -75
- package/src/server/types.ts +1 -1
- package/src/server/version-skew.ts +5 -5
- package/src/shared/csrf-reject.ts +15 -0
- package/src/shared/error-digest.ts +46 -0
- package/src/shared/payload-root.ts +11 -10
- package/src/shared/rsc-payload-path.ts +8 -1
- package/src/utils/write-file-atomic.ts +32 -0
- package/dist/_chunks/actions-jNrXdzgs.js +0 -346
- package/dist/_chunks/actions-jNrXdzgs.js.map +0 -1
- package/dist/_chunks/als-registry-C6kcfprT.js.map +0 -1
- package/dist/_chunks/build-manifest-DTmSGLRz.js.map +0 -1
- package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +0 -1
- package/dist/_chunks/cache-api-CUD9Ezaq.js.map +0 -1
- package/dist/_chunks/cli-check-G8o30ldg.js.map +0 -1
- package/dist/_chunks/convention-lint-5KzoMg_A.js.map +0 -1
- package/dist/_chunks/dev-server-BzBxgYAV.js.map +0 -1
- package/dist/_chunks/error-boundary-BndF-3Td.js.map +0 -1
- package/dist/_chunks/fs-identity-D7vb6GdI.js.map +0 -1
- package/dist/_chunks/graph-cache-CP4GEmf9.js.map +0 -1
- package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +0 -1
- package/dist/_chunks/logger-k2DQ4EUf.js.map +0 -1
- package/dist/_chunks/navigation-context-D0TU0Jog.js.map +0 -1
- package/dist/_chunks/plugin-context-8idfR3UZ.js.map +0 -1
- package/dist/_chunks/primitives-DLAnvsrk.js.map +0 -1
- package/dist/_chunks/segment-context-D9_89u34.js +0 -34
- package/dist/_chunks/segment-context-D9_89u34.js.map +0 -1
- package/dist/_chunks/sizeof-lXffQ1Vr.js.map +0 -1
- package/dist/_chunks/ssr-data-D6T6Y3ef.js +0 -60
- package/dist/_chunks/ssr-data-D6T6Y3ef.js.map +0 -1
- package/dist/_chunks/state-FippDgxN.js.map +0 -1
- package/dist/_chunks/status-page-marker-DwQBrLBz.js.map +0 -1
- package/dist/client/types.d.ts +0 -14
- package/dist/client/types.d.ts.map +0 -1
- package/dist/plugins/adapter-build.d.ts +0 -38
- package/dist/plugins/adapter-build.d.ts.map +0 -1
- package/dist/server/asset-headers.d.ts +0 -32
- package/dist/server/asset-headers.d.ts.map +0 -1
- package/dist/server/dev-source-map.d.ts +0 -22
- package/dist/server/dev-source-map.d.ts.map +0 -1
- package/src/client/types.ts +0 -21
- package/src/server/asset-headers.ts +0 -59
- package/src/server/dev-source-map.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-element-builder.d.ts","sourceRoot":"","sources":["../../src/server/route-element-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"route-element-builder.d.ts","sourceRoot":"","sources":["../../src/server/route-element-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQ5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,GAChB,MAAM,EAAE,CAGV;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAID,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,cAAc,CAAC;IACxB,wDAAwD;IACxD,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,qCAAqC;IACrC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AA2DD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,YAAY,CAAC,EAAE,mBAAmB,EAClC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,EACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CA4Z7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1F,2DAA2D;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE/E,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG;KACvB,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,YAAY;CACjC,CAAC;AAOF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,EAAE,CAyBpE;AAID;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyC/F"}
|
|
@@ -55,6 +55,13 @@ export declare function createRouteMatcher(manifest: ManifestRoot): (pathname: s
|
|
|
55
55
|
* the canonical route.
|
|
56
56
|
*/
|
|
57
57
|
export declare function collectMiddlewareChain(chain: ManifestSegmentNode[]): MiddlewareFn[];
|
|
58
|
+
/**
|
|
59
|
+
* Whether a matched chain renders as an API route: its leaf has a
|
|
60
|
+
* `route.ts` and no `page.tsx`. The same test `renderRoute` dispatches on,
|
|
61
|
+
* so every answer about a route's format — early hints, deny format, error
|
|
62
|
+
* format, error reporting — agrees with what actually ran.
|
|
63
|
+
*/
|
|
64
|
+
export declare function isApiRouteChain(segments: readonly ManifestSegmentNode[]): boolean;
|
|
58
65
|
/** Result of matching a metadata route. */
|
|
59
66
|
export interface MetadataRouteMatch {
|
|
60
67
|
/** The metadata route type (sitemap, robots, icon, etc.) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-matcher.d.ts","sourceRoot":"","sources":["../../src/server/route-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAY9B,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,GACrB,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAEzC;
|
|
1
|
+
{"version":3,"file":"route-matcher.d.ts","sourceRoot":"","sources":["../../src/server/route-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAY9B,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,GACrB,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAEzC;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,YAAY,EAAE,CAcnF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,OAAO,CAGjF;AAID,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,IAAI,EAAE,iBAAiB,CAAC;IACxB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,IAAI,EAAE,YAAY,CAAC;IACnB,0DAA0D;IAC1D,OAAO,EAAE,mBAAmB,CAAC;IAC7B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CAClD;AAcD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,GACrB,CAAC,QAAQ,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAEjD"}
|
|
@@ -19,48 +19,48 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { DenySignal, RedirectSignal } from '../primitives.ts';
|
|
21
21
|
import type { RouteMatch } from '../pipeline.ts';
|
|
22
|
-
|
|
23
|
-
export type CoerceSegmentParamsFn = (match: RouteMatch) => Promise<void>;
|
|
22
|
+
import type { ReactCacheScope } from '../react-cache-scope.ts';
|
|
24
23
|
/**
|
|
25
|
-
* Outcome of running
|
|
26
|
-
*
|
|
27
|
-
*
|
|
24
|
+
* Outcome of running a route's middleware chain, surfaced from the inner
|
|
25
|
+
* `runWithRequestContext` scope as a value. Its one consumer is the
|
|
26
|
+
* revalidation renderer, which turns every variant but `continue` into
|
|
27
|
+
* a thrown signal or a dropped revalidation.
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* writes).
|
|
29
|
+
* Only `continue` carries state out of the scope: the request-header
|
|
30
|
+
* overlay, which the renderer applies to the action's scope so the
|
|
31
|
+
* revalidated tree sees middleware-injected headers. Cookies the chain sets
|
|
32
|
+
* stay in the inner scope and are discarded with it; see the renderer's
|
|
33
|
+
* docstring for why.
|
|
35
34
|
*/
|
|
36
35
|
export type MiddlewareOutcome = {
|
|
37
36
|
kind: 'continue';
|
|
38
37
|
overlay: Headers;
|
|
39
|
-
cookies: Map<string, string>;
|
|
40
|
-
setCookieHeaders: string[];
|
|
41
38
|
} | {
|
|
42
39
|
kind: 'short-circuit';
|
|
43
40
|
response: Response;
|
|
44
|
-
setCookieHeaders: string[];
|
|
45
41
|
} | {
|
|
46
42
|
kind: 'redirect';
|
|
47
43
|
signal: RedirectSignal;
|
|
48
|
-
setCookieHeaders: string[];
|
|
49
44
|
} | {
|
|
50
45
|
kind: 'deny';
|
|
51
46
|
signal: DenySignal;
|
|
52
|
-
match: RouteMatch;
|
|
53
|
-
setCookieHeaders: string[];
|
|
54
|
-
} | {
|
|
55
|
-
kind: 'param-coercion-error';
|
|
56
47
|
} | {
|
|
57
48
|
kind: 'error';
|
|
58
49
|
error: unknown;
|
|
59
50
|
};
|
|
51
|
+
/** The inner request scope's inputs, besides the request itself. */
|
|
52
|
+
export interface MiddlewareScope {
|
|
53
|
+
/** The `React.cache` scope the revalidated tree will render in. */
|
|
54
|
+
reactCacheScope: ReactCacheScope;
|
|
55
|
+
/** The action's post-mutation cookies, as the inner scope's cookies. */
|
|
56
|
+
cookies?: Map<string, string>;
|
|
57
|
+
}
|
|
60
58
|
/**
|
|
61
59
|
* Run the matched route's middleware chain inside a fresh request-context
|
|
62
|
-
* scope, captured as a `MiddlewareOutcome` value
|
|
63
|
-
*
|
|
60
|
+
* scope, captured as a `MiddlewareOutcome` value.
|
|
61
|
+
*
|
|
62
|
+
* `match` must already carry coerced segment params: coercion runs before
|
|
63
|
+
* middleware, in the caller, as it does in the page pipeline.
|
|
64
64
|
*/
|
|
65
|
-
export declare function runMiddlewareForAction(req: Request, match: RouteMatch,
|
|
65
|
+
export declare function runMiddlewareForAction(req: Request, match: RouteMatch, { reactCacheScope, cookies }: MiddlewareScope): Promise<MiddlewareOutcome>;
|
|
66
66
|
//# sourceMappingURL=action-middleware-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-middleware-runner.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/action-middleware-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"action-middleware-runner.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/action-middleware-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtC,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,eAAe,EAAE,eAAe,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,eAAe,GAC5C,OAAO,CAAC,iBAAiB,CAAC,CAyD5B"}
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* Runs access.ts standalone for all segments in the chain (no React render
|
|
5
5
|
* pass, no AccessGate component). Then dispatches to the route handler.
|
|
6
6
|
* See design/04-authorization.md §"Auth in API Routes".
|
|
7
|
+
*
|
|
8
|
+
* Nothing thrown here is answered here. A `deny()` or `redirect()` from
|
|
9
|
+
* `access.ts` or a method handler, and every other error, propagates to the
|
|
10
|
+
* pipeline: its deny fallback answers a route.ts match in the JSON status
|
|
11
|
+
* format, its redirect builder sends the 3xx, and its error outcome answers
|
|
12
|
+
* errors in the same JSON format. There is one translator for each, not one
|
|
13
|
+
* per route type (TIM-1537, TIM-1533).
|
|
7
14
|
*/
|
|
8
15
|
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
9
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/api-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/api-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/D;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,eAAe,EAAE,OAAO,GACvB,OAAO,CAAC,QAAQ,CAAC,CA0CnB"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deny fallback renderer — renders the deny page (403.tsx, 404.tsx, etc.)
|
|
3
|
-
* for DenySignals that escape from middleware or the render phase
|
|
3
|
+
* for DenySignals that escape from proxy, middleware, or the render phase,
|
|
4
|
+
* and the 404 page for a URL no route matches.
|
|
5
|
+
*
|
|
6
|
+
* This is the one module that assembles deny pages. Renderers report a
|
|
7
|
+
* captured deny by rethrowing it; the pipeline's outcome translator calls
|
|
8
|
+
* this. See design/49-explicit-subsystem-boundaries.md §"C".
|
|
4
9
|
*
|
|
5
10
|
* Extracted from index.ts (TIM-968) as a pure move. The factory captures
|
|
6
11
|
* the root segment and client bootstrap config once at handler creation;
|
|
7
|
-
* the returned function is wired into `PipelineConfig.renderDenyFallback
|
|
8
|
-
* and reused by the action-dispatch wrapper.
|
|
12
|
+
* the returned function is wired into `PipelineConfig.renderDenyFallback`.
|
|
9
13
|
*
|
|
10
14
|
* Design docs: 04-authorization.md, 10-error-handling.md
|
|
11
15
|
*/
|
|
16
|
+
import type { DefaultPageRenderer } from '../deny-renderer.ts';
|
|
12
17
|
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
18
|
+
import type { RouteMatch } from '../pipeline.ts';
|
|
19
|
+
import type { DenySignal } from '../primitives.ts';
|
|
20
|
+
import { type ManifestSegmentNode } from '../route-matcher.ts';
|
|
15
21
|
/**
|
|
16
22
|
* Create the pipeline's deny fallback renderer.
|
|
17
23
|
*
|
|
@@ -21,9 +27,29 @@ import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
|
21
27
|
* route's `401.json` are picked up. Fall back to the root chain when no
|
|
22
28
|
* match is available (e.g. proxy-stage deny before route matching).
|
|
23
29
|
* See TIM-822, design/04-authorization.md, design/10-error-handling.md.
|
|
30
|
+
*
|
|
31
|
+
* The page is clamped to the denied segment exactly as the renderer clamps a
|
|
32
|
+
* captured deny: the index an AccessGate or layout recorded in request ALS
|
|
33
|
+
* bounds the status-file walk and the layout shell, so a thrown deny never
|
|
34
|
+
* selects a status file below the denial or runs the denied segment's
|
|
35
|
+
* layout. It is read here, at call time, rather than passed by the pipeline:
|
|
36
|
+
* the store is RSC-owned and the pipeline does not know it exists.
|
|
37
|
+
*
|
|
38
|
+
* The index is a position in the matched chain, so it is applied only when
|
|
39
|
+
* there is one. A proxy-phase deny arrives with no match (root-only chain),
|
|
40
|
+
* and one thrown after `await next()` shares the request store with the
|
|
41
|
+
* render it replaced — that render's denied index describes a different
|
|
42
|
+
* deny and must not clamp this one. A middleware-phase deny runs before
|
|
43
|
+
* render, so no index has been recorded. See TIM-1525, design/49-explicit-subsystem-boundaries.md §P0.
|
|
24
44
|
*/
|
|
25
45
|
export declare function createDenyFallbackRenderer(options: {
|
|
26
46
|
rootSegment: ManifestSegmentNode;
|
|
27
47
|
clientBootstrap: ClientBootstrapConfig;
|
|
28
|
-
}):
|
|
48
|
+
}): DenyFallbackRenderer;
|
|
49
|
+
/**
|
|
50
|
+
* The deny fallback. `defaultPage` replaces the framework default status
|
|
51
|
+
* page when no status file answers — the dev 404 route listing for an
|
|
52
|
+
* unmatched URL.
|
|
53
|
+
*/
|
|
54
|
+
export type DenyFallbackRenderer = (deny: DenySignal, req: Request, responseHeaders: Headers, matchedRoute?: RouteMatch, defaultPage?: DefaultPageRenderer) => Promise<Response>;
|
|
29
55
|
//# sourceMappingURL=deny-fallback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deny-fallback.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/deny-fallback.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deny-fallback.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/deny-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAKhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,WAAW,EAAE,mBAAmB,CAAC;IACjC,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,oBAAoB,CAiFvB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,OAAO,EACxB,YAAY,CAAC,EAAE,UAAU,EACzB,WAAW,CAAC,EAAE,mBAAmB,KAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RSC Error
|
|
2
|
+
* RSC Error Renderer — handles error pages. (The 404 page for an unmatched
|
|
3
|
+
* URL is a deny page, assembled by `deny-fallback.ts`.)
|
|
3
4
|
*
|
|
4
5
|
* Error pages are 'use client' components rendered through the RSC → SSR
|
|
5
6
|
* pipeline: the Error is converted to SerializableError, wrapped with
|
|
@@ -10,7 +11,7 @@
|
|
|
10
11
|
import type { RouteMatch } from '../pipeline.ts';
|
|
11
12
|
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
12
13
|
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
13
|
-
import type {
|
|
14
|
+
import type { LayoutEntry } from '../deny-renderer.ts';
|
|
14
15
|
/**
|
|
15
16
|
* A manifest file reference with lazy import and path.
|
|
16
17
|
* Mirrors the shape from ManifestSegmentNode but kept local to avoid
|
|
@@ -21,7 +22,7 @@ export interface GlobalErrorFile {
|
|
|
21
22
|
filePath: string;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
* Render an error page for unhandled
|
|
25
|
+
* Render an error page for an unhandled throw outside Suspense.
|
|
25
26
|
*
|
|
26
27
|
* All error pages (TSX and MDX) go through RSC → SSR:
|
|
27
28
|
* - TSX: ErrorReconstituter wrapper converts SerializableError → real Error
|
|
@@ -31,21 +32,13 @@ export interface GlobalErrorFile {
|
|
|
31
32
|
* envelope instead. Every tier below produces an HTML document, and the
|
|
32
33
|
* client's Flight decoder is waiting for `text/x-component`; handing it HTML
|
|
33
34
|
* crashes the decode. The check lives here rather than at the call sites
|
|
34
|
-
* because it holds for
|
|
35
|
-
* (
|
|
36
|
-
* of this function's —
|
|
37
|
-
* (TIM-1322).
|
|
38
|
-
* (`render-route.ts` returns the payload before it reaches
|
|
39
|
-
* `outcomeToResponse` answers RSC errors itself), so this
|
|
40
|
-
*
|
|
35
|
+
* because it holds for every one of them, and the deny path's equivalent split
|
|
36
|
+
* (the deny fallback's page / Flight branches) had already been forgotten at one
|
|
37
|
+
* of this function's — a since-deleted synchronous render-error exit in
|
|
38
|
+
* `render-route.ts` (TIM-1322). Neither remaining caller is reachable for an
|
|
39
|
+
* RSC request today (`render-route.ts` returns the payload before it reaches
|
|
40
|
+
* SSR, and `outcomeToResponse` answers RSC errors itself), so this guards
|
|
41
|
+
* against drift rather than firing on a live path.
|
|
41
42
|
*/
|
|
42
43
|
export declare function renderErrorPage(error: unknown, status: number, segments: ManifestSegmentNode[], layoutComponents: LayoutEntry[], req: Request, match: RouteMatch, responseHeaders: Headers, clientBootstrap: ClientBootstrapConfig, globalError?: GlobalErrorFile, firstDeniedIndex?: number): Promise<Response>;
|
|
43
|
-
/**
|
|
44
|
-
* Render a 404 page for URLs that don't match any route.
|
|
45
|
-
*
|
|
46
|
-
* Uses the root segment's 404.tsx (or 4xx.tsx / error.tsx fallback)
|
|
47
|
-
* wrapped in the root layout, via the same renderDenyPage path
|
|
48
|
-
* used for in-route deny() calls.
|
|
49
|
-
*/
|
|
50
|
-
export declare function renderNoMatchPage(req: Request, rootSegment: ManifestSegmentNode, responseHeaders: Headers, clientBootstrap: ClientBootstrapConfig, defaultPage?: DefaultPageRenderer): Promise<Response>;
|
|
51
44
|
//# sourceMappingURL=error-renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/error-renderer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"error-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/error-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAcvD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+GD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,WAAW,EAAE,EAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,qBAAqB,EACtC,WAAW,CAAC,EAAE,eAAe,EAC7B,gBAAgB,SAAW,GAC1B,OAAO,CAAC,QAAQ,CAAC,CA6DnB"}
|
|
@@ -23,7 +23,6 @@ export declare function buildSegmentInfo(segments: ManifestSegmentNode[], layout
|
|
|
23
23
|
component: (...args: unknown[]) => unknown;
|
|
24
24
|
segment: ManifestSegmentNode;
|
|
25
25
|
}>, slotSkipInfo?: SlotSkipEntry[], skippedSegmentKeys?: string[], firstDeniedIndex?: number): SegmentInfo[];
|
|
26
|
-
export { buildRedirectResponse } from '../pipeline-helpers.ts';
|
|
27
26
|
export { isAbortError } from '../render-utils.ts';
|
|
28
27
|
export { escapeHtml } from '../utils/escape-html.ts';
|
|
29
28
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,KAAK,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC,EACF,YAAY,CAAC,EAAE,aAAa,EAAE,EAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,gBAAgB,SAAW,GAC1B,WAAW,EAAE,CAsEf;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,KAAK,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC,EACF,YAAY,CAAC,EAAE,aAAa,EAAE,EAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,gBAAgB,SAAW,GAC1B,WAAW,EAAE,CAsEf;AAKD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DevHooks } from '../../dev-tools/dev-page-shell.ts';
|
|
2
2
|
/**
|
|
3
|
-
* Set the dev
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* module graph source-mapping into the error rendering pipeline. Errors
|
|
7
|
-
* rendered by renderErrorPage / renderFallbackError will have their
|
|
8
|
-
* stack traces rewritten to show original source positions.
|
|
9
|
-
*
|
|
10
|
-
* No-op in production.
|
|
3
|
+
* Set the dev hooks. Called by the dev server after it imports this module;
|
|
4
|
+
* the handler reads them at request time, so a later call takes effect on
|
|
5
|
+
* the next request.
|
|
11
6
|
*/
|
|
12
|
-
export declare function
|
|
7
|
+
export declare function setDevHooks(hooks: DevHooks): void;
|
|
13
8
|
export { runWithEarlyHintsSender } from '../early-hints-sender.ts';
|
|
14
9
|
export { runWithWaitUntil } from '../waituntil-bridge.ts';
|
|
15
10
|
export { runWithWorkersCachePurge } from '../workers-cache-bridge.ts';
|
|
@@ -36,11 +31,6 @@ export declare function __timber_capturePrebuilt(options: import('../prebuilt-bu
|
|
|
36
31
|
* See design/11-platform.md §"static output mode".
|
|
37
32
|
*/
|
|
38
33
|
export declare function __timber_generateStaticSite(options: import('../static-generator.ts').StaticGenerationOptions): Promise<import('../static-generator.ts').StaticGenerationSummary>;
|
|
39
|
-
/**
|
|
40
|
-
* The pipeline configuration object. Exported so the dev server can set
|
|
41
|
-
* `devPipelineErrorHandler` after import without a module-level singleton.
|
|
42
|
-
*/
|
|
43
|
-
export declare const pipelineConfig: PipelineConfig;
|
|
44
34
|
declare const _default: (req: Request) => Promise<Response>;
|
|
45
35
|
export default _default;
|
|
46
36
|
//# 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":"AA0CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AA8ClE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AA6VD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAItE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,wBAAwB,EAAE,cAAc,GACvD,OAAO,CAAC,OAAO,wBAAwB,EAAE,cAAc,CAAC,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,wBAAwB,EAAE,uBAAuB,GAChE,OAAO,CAAC,OAAO,wBAAwB,EAAE,uBAAuB,CAAC,CAQnE;8BAwCoB,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC"}
|
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
* pipeline construction. This module owns the steps that happen *after*
|
|
6
6
|
* the pipeline has matched a route and before it commits a response:
|
|
7
7
|
* element-tree build, RSC Flight render, and dispatch to either the SSR
|
|
8
|
-
* HTML path or the RSC payload path.
|
|
9
|
-
*
|
|
10
|
-
* thrown during stream creation) so the entry doesn't carry that logic.
|
|
8
|
+
* HTML path or the RSC payload path. A deny or redirect captured during the
|
|
9
|
+
* render is rethrown to the pipeline, which answers it.
|
|
11
10
|
*
|
|
12
11
|
* The function is parameterized over its dependencies — `clientBootstrap`,
|
|
13
|
-
* `clientJsDisabled`, `
|
|
12
|
+
* `clientJsDisabled`, `renderDenyFallback`, `globalError` — so the entry passes
|
|
14
13
|
* them in once at handler-construction time and they ride along on every
|
|
15
14
|
* call. No globals, no closures over the entry's createRequestHandler
|
|
16
15
|
* scope.
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
import type { BuildManifest } from '../build-manifest.ts';
|
|
21
20
|
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
22
21
|
import type { InterceptionContext, RouteMatch } from '../pipeline.ts';
|
|
23
|
-
import type {
|
|
22
|
+
import type { DenyFallbackRenderer } from './deny-fallback.ts';
|
|
24
23
|
/**
|
|
25
24
|
* Static-per-handler dependencies for `renderRoute` — captured once at
|
|
26
25
|
* handler construction so each per-request call site only has to pass
|
|
@@ -30,7 +29,7 @@ export interface RenderRouteDeps {
|
|
|
30
29
|
clientBootstrap: ClientBootstrapConfig;
|
|
31
30
|
clientJsDisabled: boolean;
|
|
32
31
|
clientSegmentCache: boolean;
|
|
33
|
-
|
|
32
|
+
renderDenyFallback: DenyFallbackRenderer;
|
|
34
33
|
buildManifest: BuildManifest;
|
|
35
34
|
globalError?: {
|
|
36
35
|
load: () => Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-route.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/render-route.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"render-route.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/render-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAOtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,qBAAqB,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,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,CA4JnB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render signals — the deny / redirect / unhandled-error state one RSC
|
|
3
|
+
* render captures, and the recorder that writes it.
|
|
4
|
+
*
|
|
5
|
+
* Kept apart from `rsc-stream.ts` so the contract carries no Flight runtime:
|
|
6
|
+
* consumers and tests can hold signals without loading the renderer.
|
|
7
|
+
*
|
|
8
|
+
* Design docs: 02-rendering-pipeline.md §"Single-Pass Rendering",
|
|
9
|
+
* 49-explicit-subsystem-boundaries.md §"C"
|
|
10
|
+
*/
|
|
11
|
+
import type { DenySignal, RedirectSignal } from '../primitives.ts';
|
|
12
|
+
/**
|
|
13
|
+
* Signal state captured during RSC rendering. Read-only for consumers: only
|
|
14
|
+
* the render that produced it records into it (`createSignalRecorder`).
|
|
15
|
+
*
|
|
16
|
+
* Signals fire asynchronously via `onError` during stream consumption.
|
|
17
|
+
* The first deny wins; a later redirect replaces an earlier one.
|
|
18
|
+
*
|
|
19
|
+
* The two notification channels are values the producer owns and returns,
|
|
20
|
+
* not callback slots a consumer assigns after the fact. A slot only works if
|
|
21
|
+
* no `await` separates `renderRscStream()` from the assignment — add one and
|
|
22
|
+
* an early signal fires into an empty slot with no trace. A promise that has
|
|
23
|
+
* already resolved, and an `AbortSignal` that is already aborted, carry the
|
|
24
|
+
* early event to a late reader.
|
|
25
|
+
*/
|
|
26
|
+
export interface RenderSignals {
|
|
27
|
+
readonly denySignal: DenySignal | null;
|
|
28
|
+
/**
|
|
29
|
+
* The first deny that no in-tree catch site could place — no `owners`, so
|
|
30
|
+
* no boundary may claim its error row and only the re-render fallback can
|
|
31
|
+
* produce a page for it.
|
|
32
|
+
*
|
|
33
|
+
* Tracked apart from `denySignal` because one render can produce both. A
|
|
34
|
+
* deep page can hoist a 404 to a boundary that will render it while an
|
|
35
|
+
* outer layout separately throws a 403 nothing matches; whichever lands in
|
|
36
|
+
* `denySignal` first, the unplaced one still needs the fallback, and
|
|
37
|
+
* deciding from `denySignal.owners` alone would strand it. See TIM-1356.
|
|
38
|
+
*/
|
|
39
|
+
readonly unplacedDeny: DenySignal | null;
|
|
40
|
+
readonly redirectSignal: RedirectSignal | null;
|
|
41
|
+
/**
|
|
42
|
+
* Resolves when the first deny or redirect is captured; never rejects.
|
|
43
|
+
* Consumers race it to react the instant `onError` fires instead of
|
|
44
|
+
* polling with setTimeout/queueMicrotask.
|
|
45
|
+
*/
|
|
46
|
+
readonly captured: Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Aborted when the first unhandled (non-signal) error is captured. Halts
|
|
49
|
+
* Flight data injection into the inline stream (TIM-938).
|
|
50
|
+
*/
|
|
51
|
+
readonly unhandledError: AbortSignal;
|
|
52
|
+
}
|
|
53
|
+
/** The write side of `RenderSignals`, held by the render that captures. */
|
|
54
|
+
export interface SignalRecorder {
|
|
55
|
+
readonly signals: RenderSignals;
|
|
56
|
+
deny(signal: DenySignal): void;
|
|
57
|
+
redirect(signal: RedirectSignal): void;
|
|
58
|
+
unhandledError(): void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create the signal state for one render. `renderRscStream()` records into
|
|
62
|
+
* it from Flight's `onError`; tests record into it to stand in for Flight.
|
|
63
|
+
*/
|
|
64
|
+
export declare function createSignalRecorder(): SignalRecorder;
|
|
65
|
+
//# sourceMappingURL=render-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-signals.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/render-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACvC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;CACtC;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAwCrD"}
|
|
@@ -26,21 +26,9 @@
|
|
|
26
26
|
* design/13-security.md §"Server actions silently bypass middleware".
|
|
27
27
|
*/
|
|
28
28
|
import type { BuildManifest } from '../build-manifest.ts';
|
|
29
|
-
import type { RouteMatcher } from '../pipeline.ts';
|
|
30
|
-
import type
|
|
31
|
-
import {
|
|
32
|
-
/**
|
|
33
|
-
* Sentinel thrown when revalidation cannot proceed because middleware
|
|
34
|
-
* returned a short-circuit `Response` (a non-redirect HTTP response that
|
|
35
|
-
* we cannot translate back to an element tree). `executeAction` catches
|
|
36
|
-
* this and drops the revalidation — the action result is still delivered,
|
|
37
|
-
* but no `_tree` is piggybacked onto the response. The matching name
|
|
38
|
-
* `RevalidationDropped` is exported so callers can identify it via
|
|
39
|
-
* `instanceof` without leaking the message text to clients.
|
|
40
|
-
*/
|
|
41
|
-
export declare class RevalidationDropped extends Error {
|
|
42
|
-
constructor(message: string);
|
|
43
|
-
}
|
|
29
|
+
import type { RouteMatch, RouteMatcher } from '../pipeline.ts';
|
|
30
|
+
import { type RevalidateRenderer } from '../actions.ts';
|
|
31
|
+
import type { CoercedParams } from '../../shared/param-value.ts';
|
|
44
32
|
/** Result of validating a `revalidatePath()` argument. */
|
|
45
33
|
type PathValidation = {
|
|
46
34
|
ok: true;
|
|
@@ -68,6 +56,8 @@ type PathValidation = {
|
|
|
68
56
|
* same shape the page pipeline matches.
|
|
69
57
|
*/
|
|
70
58
|
export declare function validateRevalidatePath(path: unknown): PathValidation;
|
|
59
|
+
/** Coerce a matched route's raw segment params via its `app/schema.ts` codecs. */
|
|
60
|
+
export type CoerceSegmentParamsFn = (match: RouteMatch) => Promise<CoercedParams>;
|
|
71
61
|
/** Dependencies for the revalidate renderer factory. */
|
|
72
62
|
export interface RevalidateRendererDeps {
|
|
73
63
|
matchRoute: RouteMatcher;
|
|
@@ -80,7 +70,7 @@ export interface RevalidateRendererDeps {
|
|
|
80
70
|
* The returned renderer:
|
|
81
71
|
* 1. Validates the requested path.
|
|
82
72
|
* 2. Matches the canonicalized path against the route tree.
|
|
83
|
-
* 3. Coerces segment params via the
|
|
73
|
+
* 3. Coerces segment params via the `app/schema.ts` codecs.
|
|
84
74
|
* 4. Runs the matched route's `middleware.ts` chain inside a fresh
|
|
85
75
|
* `runWithRequestContext` scope (via `runMiddlewareForAction`).
|
|
86
76
|
* Deny/redirect signals are re-thrown so `executeAction` can apply
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revalidate-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/revalidate-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"revalidate-renderer.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/revalidate-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM/D,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,0DAA0D;AAC1D,KAAK,cAAc,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAiCpE;AAwBD,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAElF,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,YAAY,CAAC;IACzB,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,sBAAsB,GAC3B,CAAC,GAAG,EAAE,OAAO,KAAK,kBAAkB,CAiLtC"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
22
22
|
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
23
23
|
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
24
|
-
import type { RenderSignals } from './
|
|
24
|
+
import type { RenderSignals } from './render-signals.ts';
|
|
25
25
|
/**
|
|
26
26
|
* Build an RSC payload Response for a client-side navigation request.
|
|
27
27
|
*
|
|
@@ -35,11 +35,15 @@ import type { RenderSignals } from './rsc-stream.ts';
|
|
|
35
35
|
* plus one macrotask turn. Nothing is held for it. A signal that lands
|
|
36
36
|
* inside the window still gets a server-level answer — a redirect response,
|
|
37
37
|
* the fallback deny page, the hard-navigate envelope — because the race
|
|
38
|
-
* below and the one timer turn after it deliver it for free.
|
|
38
|
+
* below and the one timer turn after it deliver it for free. This function
|
|
39
|
+
* reports that signal rather than answering it: it cancels the stream and
|
|
40
|
+
* rethrows, and the pipeline's outcome translator builds the redirect or
|
|
41
|
+
* calls the deny fallback (`rsc-entry/deny-fallback.ts`), exactly as for a
|
|
42
|
+
* signal thrown out of render (design/49 §"C"). A signal that
|
|
39
43
|
* lands after it is a row in the stream, and the client's boundaries answer
|
|
40
44
|
* it. Waiting for the shell components to settle (TIM-1045, TIM-1208) made
|
|
41
45
|
* the payload path pretend to a status contract it could not keep for
|
|
42
46
|
* nested components, and was removed in TIM-1495.
|
|
43
47
|
*/
|
|
44
|
-
export declare function buildRscPayloadResponse(
|
|
48
|
+
export declare function buildRscPayloadResponse(rscStream: ReadableStream<Uint8Array>, signals: RenderSignals, segments: ManifestSegmentNode[], layoutComponents: LayoutComponentEntry[], responseHeaders: Headers, skippedSegments?: string[], slotSkipInfo?: SlotSkipEntry[]): Promise<Response>;
|
|
45
49
|
//# sourceMappingURL=rsc-payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAWzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,oBAAoB,EAAE,EACxC,eAAe,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,aAAa,EAAE,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAuNnB"}
|
|
@@ -2,63 +2,18 @@
|
|
|
2
2
|
* RSC Stream Renderer — Creates the RSC Flight stream with signal tracking.
|
|
3
3
|
*
|
|
4
4
|
* Wraps `renderToReadableStream` from `@vitejs/plugin-rsc/rsc` and captures
|
|
5
|
-
* render-phase signals (DenySignal, RedirectSignal
|
|
5
|
+
* render-phase signals (DenySignal, RedirectSignal) thrown by
|
|
6
6
|
* components during streaming. These signals are tracked in a shared
|
|
7
|
-
* `RenderSignals` object so the caller can decide the HTTP response.
|
|
7
|
+
* read-only `RenderSignals` object so the caller can decide the HTTP response.
|
|
8
8
|
*
|
|
9
9
|
* Design docs: 02-rendering-pipeline.md §"Single-Pass Rendering",
|
|
10
10
|
* 13-security.md §"Errors don't leak"
|
|
11
11
|
*/
|
|
12
12
|
import type { RscPayloadRoot } from '../../shared/payload-root.ts';
|
|
13
13
|
import { type DenyPageEntry } from '../deny-boundary.ts';
|
|
14
|
-
import {
|
|
15
|
-
/**
|
|
16
|
-
* Mutable signal state captured during RSC rendering.
|
|
17
|
-
*
|
|
18
|
-
* Signals fire asynchronously via `onError` during stream consumption.
|
|
19
|
-
* The first signal of each type wins — subsequent signals are ignored.
|
|
20
|
-
*
|
|
21
|
-
* `onSignal` is an optional callback fired when a DenySignal or
|
|
22
|
-
* RedirectSignal is captured. Consumers use it with Promise.race to
|
|
23
|
-
* react immediately instead of polling with setTimeout/queueMicrotask.
|
|
24
|
-
*/
|
|
25
|
-
export interface RenderSignals {
|
|
26
|
-
denySignal: DenySignal | null;
|
|
27
|
-
/**
|
|
28
|
-
* The first deny that no in-tree catch site could place — no `owners`, so
|
|
29
|
-
* no boundary may claim its error row and only the re-render fallback can
|
|
30
|
-
* produce a page for it.
|
|
31
|
-
*
|
|
32
|
-
* Tracked apart from `denySignal` because one render can produce both. A
|
|
33
|
-
* deep page can hoist a 404 to a boundary that will render it while an
|
|
34
|
-
* outer layout separately throws a 403 nothing matches; whichever lands in
|
|
35
|
-
* `denySignal` first, the unplaced one still needs the fallback, and
|
|
36
|
-
* deciding from `denySignal.owners` alone would strand it. See TIM-1356.
|
|
37
|
-
*/
|
|
38
|
-
unplacedDeny: DenySignal | null;
|
|
39
|
-
redirectSignal: RedirectSignal | null;
|
|
40
|
-
renderError: {
|
|
41
|
-
error: unknown;
|
|
42
|
-
status: number;
|
|
43
|
-
} | null;
|
|
44
|
-
/**
|
|
45
|
-
* The last unhandled error seen by RSC onError that isn't a signal.
|
|
46
|
-
* Used as a fallback when SSR fails (SsrStreamError) but no structured
|
|
47
|
-
* signal was captured — provides the original error for the error page
|
|
48
|
-
* instead of relying on SsrStreamError.cause extraction.
|
|
49
|
-
*
|
|
50
|
-
* NOT used for page-level error detection (that would break Suspense
|
|
51
|
-
* error isolation). Only consumed when SSR actually fails.
|
|
52
|
-
*/
|
|
53
|
-
lastUnhandledError: unknown | null;
|
|
54
|
-
/** Callback fired when a redirect or deny signal is captured in onError. */
|
|
55
|
-
onSignal?: () => void;
|
|
56
|
-
/** Callback fired when an unhandled error (non-signal) is captured. Used
|
|
57
|
-
* to halt Flight data injection into the inline stream. */
|
|
58
|
-
onUnhandledError?: () => void;
|
|
59
|
-
}
|
|
14
|
+
import { type RenderSignals } from './render-signals.ts';
|
|
60
15
|
export interface RscStreamResult {
|
|
61
|
-
rscStream: ReadableStream<Uint8Array
|
|
16
|
+
rscStream: ReadableStream<Uint8Array>;
|
|
62
17
|
signals: RenderSignals;
|
|
63
18
|
}
|
|
64
19
|
/**
|
|
@@ -67,10 +22,10 @@ export interface RscStreamResult {
|
|
|
67
22
|
* The stream serializes server components as rendered output and client
|
|
68
23
|
* components ("use client") as serialized references with module ID + export name.
|
|
69
24
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
25
|
+
* Signals are captured in the returned `signals` object for the caller to
|
|
26
|
+
* handle. Every one arrives through `onError`, never as a throw from this
|
|
27
|
+
* call: Flight starts rendering in a microtask after the stream is created,
|
|
28
|
+
* so even a component that throws synchronously is reported asynchronously.
|
|
74
29
|
*/
|
|
75
30
|
export declare function renderRscStream(payload: RscPayloadRoot, req: Request, leafDenyChain?: DenyPageEntry[]): RscStreamResult;
|
|
76
31
|
//# sourceMappingURL=rsc-stream.d.ts.map
|