@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":"rsc-stream.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"rsc-stream.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAM3E,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI/E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,OAAO,EACZ,aAAa,CAAC,EAAE,aAAa,EAAE,GAC9B,eAAe,CAgHjB"}
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* Vite module graphs; `NavContext` is the serializable contract that crosses
|
|
6
6
|
* the boundary. See `../ssr-bridge-types.ts` for the contract definition.
|
|
7
7
|
*/
|
|
8
|
-
import type { NavContext } from '../ssr-bridge-types.ts';
|
|
9
|
-
export declare function callSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<
|
|
8
|
+
import type { NavContext, SsrRenderResult } from '../ssr-bridge-types.ts';
|
|
9
|
+
export declare function callSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<SsrRenderResult>;
|
|
10
10
|
//# 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;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-bridge.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/ssr-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAsB,OAAO,CAC3B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC,CAe1B"}
|
|
@@ -17,7 +17,7 @@ import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
|
17
17
|
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
18
18
|
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
19
19
|
import { type GlobalErrorFile } from './error-renderer.ts';
|
|
20
|
-
import type { RenderSignals } from './
|
|
20
|
+
import type { RenderSignals } from './render-signals.ts';
|
|
21
21
|
/**
|
|
22
22
|
* Test-only observable: records how many microtask yields were consumed
|
|
23
23
|
* during the last signal promotion check. Import this in tests to assert
|
|
@@ -34,7 +34,7 @@ export declare const __test_only_signalPromotionDepth: {
|
|
|
34
34
|
* Test-only observable: true when the promotion loop hit the cap without
|
|
35
35
|
* capturing a signal (the silent-miss path — state 3 in TIM-970). False
|
|
36
36
|
* when the loop captured a signal at any depth, when it was skipped via
|
|
37
|
-
* `
|
|
37
|
+
* `fizzAllReadyResolved`, or when no signal was ever expected at a depth
|
|
38
38
|
* shallower than the cap.
|
|
39
39
|
*
|
|
40
40
|
* Pairs with `__test_only_signalPromotionDepth`: depth alone cannot
|
|
@@ -71,13 +71,18 @@ interface SsrRenderOptions {
|
|
|
71
71
|
* SSR will attempt to render the element tree progressively. Two outcomes:
|
|
72
72
|
*
|
|
73
73
|
* 1. deny() outside Suspense: the error appears in the RSC shell. SSR's
|
|
74
|
-
* renderToReadableStream fails (rejects). We catch the failure,
|
|
75
|
-
* denySignal, and
|
|
74
|
+
* renderToReadableStream fails (rejects). We catch the failure, find
|
|
75
|
+
* the captured denySignal, and rethrow it to the pipeline.
|
|
76
76
|
*
|
|
77
77
|
* 2. deny() inside Suspense: the SSR shell succeeds (200 committed). The
|
|
78
78
|
* error streams into the connection as a React error boundary. The
|
|
79
79
|
* status is already committed — per design/05-streaming.md this is the
|
|
80
80
|
* expected degraded behavior for deny inside Suspense.
|
|
81
|
+
*
|
|
82
|
+
* @throws the captured `DenySignal` or `RedirectSignal` when one decides the
|
|
83
|
+
* response. `runRenderPhase()` turns it into a `deny` / `redirect` outcome,
|
|
84
|
+
* and the pipeline renders the deny page or builds the redirect, exactly as
|
|
85
|
+
* for a signal thrown out of render (design/49 §"C").
|
|
81
86
|
*/
|
|
82
87
|
export declare function renderSsrResponse(opts: SsrRenderOptions): Promise<Response>;
|
|
83
88
|
export {};
|
|
@@ -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,sBAAsB,CAAC;
|
|
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;AAMlE,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;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA8BzD;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAiB,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iCAAiC,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAqB,CAAC;AAEtF,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;IAC9B,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2QjF"}
|
|
@@ -85,5 +85,5 @@ export declare function wrapPipelineWithActionDispatch(pipeline: (req: Request)
|
|
|
85
85
|
* Returns `Response` if the request was handled as an action, `null` to
|
|
86
86
|
* fall through to normal routing.
|
|
87
87
|
*/
|
|
88
|
-
export declare function buildActionDispatcher(deps: ActionDispatcherDeps): (req: Request, canonicalPath: string, reenter: (req: Request) => Promise<Response>) => Promise<Response | null>;
|
|
88
|
+
export declare function buildActionDispatcher(deps: ActionDispatcherDeps): (req: Request, canonicalPath: string, reenter: (req: Request, cookies: Map<string, string>) => Promise<Response>) => Promise<Response | null>;
|
|
89
89
|
//# sourceMappingURL=wrap-action-dispatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-action-dispatch.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/wrap-action-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"wrap-action-dispatch.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/wrap-action-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,kBAAkB,CAAC;AAE7E,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,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;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;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,CAWrC;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,oBAAoB,GACzB,CACD,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,KACvE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA4D5B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { DenySignal, RedirectSignal } from './primitives.ts';
|
|
2
|
+
export declare const DENY_BRAND: unique symbol;
|
|
3
|
+
export declare const REDIRECT_BRAND: unique symbol;
|
|
4
|
+
declare const SSR_STREAM_ERROR_BRAND: unique symbol;
|
|
5
|
+
/** True for any `DenySignal`, regardless of which module evaluation created it. */
|
|
6
|
+
export declare function isDenySignal(error: unknown): error is DenySignal;
|
|
7
|
+
/** True for any `RedirectSignal`, regardless of which module evaluation created it. */
|
|
8
|
+
export declare function isRedirectSignal(error: unknown): error is RedirectSignal;
|
|
9
|
+
/**
|
|
10
|
+
* True for any `SsrStreamError`. This one also crosses Vite environments:
|
|
11
|
+
* it is thrown in SSR and caught in RSC, which are separate module graphs in
|
|
12
|
+
* the same process — the brand is the only identity the two share.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isSsrStreamError(error: unknown): error is SsrStreamError;
|
|
15
|
+
/**
|
|
16
|
+
* Returns true if the error is a framework control-flow signal (RedirectSignal
|
|
17
|
+
* or DenySignal) rather than a genuine application error. Works both for direct
|
|
18
|
+
* instances (RSC-side) and deserialized digest errors (SSR cross-boundary).
|
|
19
|
+
*
|
|
20
|
+
* See also: isFrameworkSignalError() in client/browser-dev.ts (client-only).
|
|
21
|
+
*/
|
|
22
|
+
export declare function isControlFlowSignal(error: unknown): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when SSR's renderToReadableStream fails due to an error
|
|
25
|
+
* in the decoded RSC stream (e.g., uncontained slot errors).
|
|
26
|
+
*
|
|
27
|
+
* The RSC entry checks for this error type in its catch block. A captured
|
|
28
|
+
* deny or redirect is rethrown to the pipeline first; with no captured
|
|
29
|
+
* signal, it renders the error page for the uncontained error.
|
|
30
|
+
*
|
|
31
|
+
* Not defined in ssr-entry.ts because ssr-entry.ts imports react-dom/server,
|
|
32
|
+
* which cannot be loaded in the RSC environment.
|
|
33
|
+
*
|
|
34
|
+
* Detect with `isSsrStreamError()` — it is thrown in the SSR environment and
|
|
35
|
+
* caught in RSC, so `instanceof` never matches. See "Signal branding" above.
|
|
36
|
+
*/
|
|
37
|
+
export declare class SsrStreamError extends Error {
|
|
38
|
+
readonly [SSR_STREAM_ERROR_BRAND] = true;
|
|
39
|
+
readonly cause: unknown;
|
|
40
|
+
constructor(message: string, cause: unknown);
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=signal-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-identity.d.ts","sourceRoot":"","sources":["../../src/server/signal-identity.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAqBlE,eAAO,MAAM,UAAU,EAAE,OAAO,MAAyC,CAAC;AAC1E,eAAO,MAAM,cAAc,EAAE,OAAO,MAA6C,CAAC;AAClF,QAAA,MAAM,sBAAsB,EAAE,OAAO,MAAqD,CAAC;AAM3F,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkB3D;AAID;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,QAAQ;IACzC,SAAkB,KAAK,EAAE,OAAO,CAAC;IAEjC,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAI1C;CACF"}
|
|
@@ -32,7 +32,7 @@ type CreateElementFn = (...args: unknown[]) => React.ReactElement;
|
|
|
32
32
|
* 3. SlotAccessGate if the segment has access.ts (gate OUTSIDE the layout,
|
|
33
33
|
* so a denied layout never executes — see TIM-1074)
|
|
34
34
|
*/
|
|
35
|
-
export declare function resolveSlotElement(slotNode: ManifestSegmentNode, match: RouteMatch, h: CreateElementFn, interception?: InterceptionContext, parentTreePath?: string): Promise<React.ReactElement | null>;
|
|
35
|
+
export declare function resolveSlotElement(slotNode: ManifestSegmentNode, match: RouteMatch, h: CreateElementFn, req: Request, interception?: InterceptionContext, parentTreePath?: string): Promise<React.ReactElement | null>;
|
|
36
36
|
/** Result of matching a slot's sub-tree against the current route. */
|
|
37
37
|
export interface SlotMatchResult {
|
|
38
38
|
/** The page file at the matched leaf. */
|
|
@@ -142,7 +142,8 @@ interface ResolveSlotPropsArgs {
|
|
|
142
142
|
h: CreateElementFn;
|
|
143
143
|
interception?: InterceptionContext;
|
|
144
144
|
parentTreePath: string;
|
|
145
|
-
|
|
145
|
+
/** The request being rendered. Its URL is the slot-matching destination. */
|
|
146
|
+
req: Request;
|
|
146
147
|
clientStateTree: ClientStateTree | null;
|
|
147
148
|
slotSkipInfo: SlotSkipEntry[];
|
|
148
149
|
}
|
|
@@ -159,6 +160,6 @@ interface ResolveSlotPropsArgs {
|
|
|
159
160
|
* the previous approach of reconstructing the client's state from a
|
|
160
161
|
* departing URL.
|
|
161
162
|
*/
|
|
162
|
-
export declare function resolveSlotProps({ segment, segmentId, match, h, interception, parentTreePath,
|
|
163
|
+
export declare function resolveSlotProps({ segment, segmentId, match, h, interception, parentTreePath, req, clientStateTree, slotSkipInfo, }: ResolveSlotPropsArgs): Promise<Record<string, unknown>>;
|
|
163
164
|
export {};
|
|
164
165
|
//# sourceMappingURL=slot-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-resolver.d.ts","sourceRoot":"","sources":["../../src/server/slot-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5E,KAAK,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC;AAgClE;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,UAAU,EACjB,CAAC,EAAE,eAAe,EAClB,YAAY,CAAC,EAAE,mBAAmB,EAClC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"slot-resolver.d.ts","sourceRoot":"","sources":["../../src/server/slot-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5E,KAAK,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC;AAgClE;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,UAAU,EACjB,CAAC,EAAE,eAAe,EAClB,GAAG,EAAE,OAAO,EACZ,YAAY,CAAC,EAAE,mBAAmB,EAClC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAmJpC;AAoLD,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,+EAA+E;IAC/E,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,wGAAwG;IACxG,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,MAAM,CAQR;AA6BD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,GACV,MAAM,EAAE,CAUV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,IAAI,CAcN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,aAAa,EAAE,GAC5B,IAAI,CA+DN;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,CAAC,EAAE,eAAe,CAAC;IACnB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,SAAS,EACT,KAAK,EACL,CAAC,EACD,YAAY,EACZ,cAAc,EACd,GAAG,EACH,eAAe,EACf,YAAY,GACb,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyIzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-subtree-contain.d.ts","sourceRoot":"","sources":["../../src/server/slot-subtree-contain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"slot-subtree-contain.d.ts","sourceRoot":"","sources":["../../src/server/slot-subtree-contain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAsN3F;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,EACnB,MAAM,CAAC,EAAE,SAAS,GACjB,SAAS,CAEX"}
|
|
@@ -1,20 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RSC ↔ SSR Bridge Contract
|
|
3
3
|
*
|
|
4
|
-
* This file defines
|
|
5
|
-
*
|
|
4
|
+
* This file defines what crosses the RSC ↔ SSR environment boundary: the
|
|
5
|
+
* `NavContext` input and the `SsrRenderResult` output. The RSC
|
|
6
|
+
* environment calls `handleSsr(rscStream, navContext)`
|
|
6
7
|
* in the SSR environment via `import.meta.viteRsc.import(...)` (see
|
|
7
8
|
* `rsc-entry/ssr-bridge.ts`). RSC and SSR are separate Vite module graphs
|
|
8
9
|
* with separate module instances, so every per-request field that SSR
|
|
9
10
|
* needs must be declared here and passed explicitly.
|
|
10
11
|
*
|
|
12
|
+
* The ALS stores are the exception to "separate instances": `als-registry.ts`
|
|
13
|
+
* anchors them on `globalThis`, and SSR runs inside the RSC request's
|
|
14
|
+
* async context, so an SSR module that imported `request-context.ts` would
|
|
15
|
+
* read live RSC state. The framework's SSR code must not — that is the
|
|
16
|
+
* coupling this contract removes — and `tests/ssr-import-boundary.test.ts`
|
|
17
|
+
* holds the SSR entry's import graph to it (its allowlist names the one
|
|
18
|
+
* registry reader permitted). User `'use client'` code rendered in SSR can
|
|
19
|
+
* still reach request state through public APIs (`redirect()`, a
|
|
20
|
+
* `defineCookie()` cookie's `get()`); that test does not cover them.
|
|
21
|
+
*
|
|
11
22
|
* Rules for changes to this file:
|
|
12
23
|
*
|
|
13
24
|
* 1. **Structurally serializable shape.** Fields must be values that can
|
|
14
25
|
* cross the environment boundary as plain data or as platform-neutral
|
|
15
26
|
* primitives (`Headers`, `ReadableStream`, `AbortSignal`, `Map`). Do
|
|
16
27
|
* not add closures, class instances tied to RSC-only modules, or
|
|
17
|
-
* anything whose identity must be preserved across the bridge.
|
|
28
|
+
* anything whose identity must be preserved across the bridge. The one
|
|
29
|
+
* sanctioned exception is `NavContext.getHeadSegmentScript`.
|
|
30
|
+
*
|
|
31
|
+
* 1a. **Directional.** `NavContext` is input. Anything SSR produces for
|
|
32
|
+
* RSC is returned in `SsrRenderResult`, not written back onto the
|
|
33
|
+
* context. SSR never writes to a `NavContext` or through one. That
|
|
34
|
+
* includes `responseHeaders`: it is the pipeline's bag, passed by
|
|
35
|
+
* reference, and SSR copies it before adding response-local headers.
|
|
36
|
+
* RSC-side code may still write the bag after `handleSsr()` returns
|
|
37
|
+
* (a promoted redirect's `Location`, for one); that is the pipeline
|
|
38
|
+
* using its own bag, not a return channel.
|
|
18
39
|
*
|
|
19
40
|
* 2. **No runtime imports of RSC-only modules.** This file is read by
|
|
20
41
|
* both environments at type-check time. Keep it type-only. Importing
|
|
@@ -28,8 +49,6 @@
|
|
|
28
49
|
* See `design/02-rendering-pipeline.md` §"RSC → SSR → Client Hydration"
|
|
29
50
|
* and `CLAUDE.md` §"RSC and SSR Are Separate Vite Environments".
|
|
30
51
|
*/
|
|
31
|
-
import type { CoercedParams } from '../shared/param-value.ts';
|
|
32
|
-
import type { SlotParamsRecord } from '../shared/slot-params.ts';
|
|
33
52
|
/**
|
|
34
53
|
* Navigation context passed from the RSC environment to SSR.
|
|
35
54
|
*
|
|
@@ -51,14 +70,6 @@ export interface NavContext {
|
|
|
51
70
|
* reintroduce one beside this field (TIM-1428).
|
|
52
71
|
*/
|
|
53
72
|
search: string;
|
|
54
|
-
/** Extracted route segment params. Post-coercion, values may be non-string (TIM-1347). */
|
|
55
|
-
segmentParams: CoercedParams;
|
|
56
|
-
/**
|
|
57
|
-
* Per-slot segment params, keyed by slot tree path. Absent when the request
|
|
58
|
-
* rendered no slot with params of its own. Feeds `useSegmentParams(path)`
|
|
59
|
-
* during SSR and, via `__timber_slot_params`, after hydration (TIM-1285).
|
|
60
|
-
*/
|
|
61
|
-
slotParams?: SlotParamsRecord;
|
|
62
73
|
/** The committed HTTP status code */
|
|
63
74
|
statusCode: number;
|
|
64
75
|
/** Response headers from middleware/proxy */
|
|
@@ -100,37 +111,16 @@ export interface NavContext {
|
|
|
100
111
|
*
|
|
101
112
|
* Undefined when client JS is disabled (no client to consume it).
|
|
102
113
|
* See TIM-1365, TIM-1359.
|
|
103
|
-
*/
|
|
104
|
-
getHeadSegmentScript?: () => string;
|
|
105
|
-
/**
|
|
106
|
-
* Mutable flag: set by TimberErrorBoundary during SSR when it catches
|
|
107
|
-
* a DenySignal (via digest). This tells the RSC entry that the denial
|
|
108
|
-
* was contained by a slot error boundary and should NOT be promoted
|
|
109
|
-
* to a page-level deny. See LOCAL-298.
|
|
110
|
-
*/
|
|
111
|
-
_denyHandledByBoundary?: boolean;
|
|
112
|
-
/**
|
|
113
|
-
* Mutable: SSR timing data populated by handleSsr().
|
|
114
|
-
* Read by the RSC entry to record sub-phase Server-Timing entries
|
|
115
|
-
* when `serverTiming: 'detailed'` is configured.
|
|
116
114
|
*
|
|
117
|
-
* This
|
|
118
|
-
*
|
|
115
|
+
* This is the bridge's one sanctioned exception to rule 1 (no closures).
|
|
116
|
+
* SSR must not import the RSC request state that holds the
|
|
117
|
+
* denied-segment index (tests/ssr-import-boundary.test.ts), and evaluating
|
|
118
|
+
* it eagerly, before AccessGates settle, would serialize a
|
|
119
|
+
* non-authoritative index. See
|
|
120
|
+
* design/49-explicit-subsystem-boundaries.md §"Decision: the head-segment
|
|
121
|
+
* callback stays". Do not add a second one.
|
|
119
122
|
*/
|
|
120
|
-
|
|
121
|
-
/** Time to decode RSC stream (createFromReadableStream/createFromNodeStream) */
|
|
122
|
-
decodeMs: number;
|
|
123
|
-
/** Time for Fizz to render the shell (onShellReady) */
|
|
124
|
-
shellMs: number;
|
|
125
|
-
/** Time for pipe() to flush shell bytes to the output stream */
|
|
126
|
-
pipeMs: number;
|
|
127
|
-
/** Time to set up Node.js Transform pipeline / Web Stream transforms */
|
|
128
|
-
pipelineMs: number;
|
|
129
|
-
/** Total SSR time (decode → response ready) */
|
|
130
|
-
totalMs: number;
|
|
131
|
-
/** Whether the Node.js native stream path was used */
|
|
132
|
-
nodeStreams: boolean;
|
|
133
|
-
};
|
|
123
|
+
getHeadSegmentScript?: () => string;
|
|
134
124
|
/**
|
|
135
125
|
* Signal that fires when an unhandled RSC error is detected.
|
|
136
126
|
* The Flight injector checks this before writing each script tag —
|
|
@@ -138,23 +128,71 @@ export interface NavContext {
|
|
|
138
128
|
* chunks from crashing the client's Flight decoder.
|
|
139
129
|
*/
|
|
140
130
|
_errorSignal?: AbortSignal;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* SSR sub-phase timings, recorded by `handleSsr()` and turned into
|
|
134
|
+
* `Server-Timing` entries by the RSC renderer when
|
|
135
|
+
* `serverTiming: 'detailed'` is configured.
|
|
136
|
+
*/
|
|
137
|
+
export interface SsrTimings {
|
|
138
|
+
/** Time to decode the RSC stream (createFromReadableStream/createFromNodeStream) */
|
|
139
|
+
decodeMs: number;
|
|
140
|
+
/** Time for Fizz to render the shell (onShellReady, plus any hold window) */
|
|
141
|
+
shellMs: number;
|
|
142
|
+
/** Time to set up the Node.js Transform pipeline / Web Stream transforms */
|
|
143
|
+
pipelineMs: number;
|
|
144
|
+
/** Total SSR time (decode → response ready) */
|
|
145
|
+
totalMs: number;
|
|
146
|
+
/** Whether the Node.js native stream path was used */
|
|
147
|
+
nodeStreams: boolean;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* What `handleSsr()` returns to the RSC environment.
|
|
151
|
+
*
|
|
152
|
+
* Directional and terminal: every field is produced by the SSR entry and
|
|
153
|
+
* settled by the time `handleSsr()` resolves. Do not add request inputs
|
|
154
|
+
* (those belong on `NavContext`) or methods here.
|
|
155
|
+
*
|
|
156
|
+
* `response.status` is not an SSR decision. It echoes
|
|
157
|
+
* `NavContext.statusCode`, and response status has exactly two owners,
|
|
158
|
+
* both in the RSC environment:
|
|
159
|
+
*
|
|
160
|
+
* 1. the `statusCode` on the `NavContext` itself, seeded by whichever
|
|
161
|
+
* RSC-side renderer builds it before `callSsr()`: 200 from
|
|
162
|
+
* `rsc-entry/ssr-renderer.ts`, the deny status from `renderDenyPage()`,
|
|
163
|
+
* the error status from `rsc-entry/error-renderer.ts`; and
|
|
164
|
+
* 2. the post-`callSsr()` `getDenyStatus()` override in
|
|
165
|
+
* `rsc-entry/ssr-renderer.ts`, which rebuilds the `Response` with the
|
|
166
|
+
* status an in-tree `AccessGate`/`PageDenyBoundary` denial recorded
|
|
167
|
+
* in the RSC-side ALS (TIM-666).
|
|
168
|
+
*
|
|
169
|
+
* The override reads RSC state after SSR returns; it is not a write back
|
|
170
|
+
* across the bridge. No SSR-side code (error boundaries included) sets a
|
|
171
|
+
* status: Fizz never renders a class boundary's fallback on the document
|
|
172
|
+
* path (design/spike-TIM-1441-eliminate-second-pass.md F1/F2), so there
|
|
173
|
+
* is nothing in-tree to report. See design/49 §"A2".
|
|
174
|
+
*/
|
|
175
|
+
export interface SsrRenderResult {
|
|
176
|
+
/** The HTML document response, streaming the post-shell remainder. */
|
|
177
|
+
response: Response;
|
|
178
|
+
timings: SsrTimings;
|
|
141
179
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
180
|
+
* Whether Fizz's `stream.allReady` settled before the
|
|
181
|
+
* `deferSuspenseFor` hold ended.
|
|
144
182
|
*
|
|
145
|
-
* When true, the RSC
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
* already been captured in `RenderSignals`.
|
|
183
|
+
* When true, the RSC renderer skips its signal-promotion microtask
|
|
184
|
+
* retry: Fizz allReady implies Flight closed its stream, which implies
|
|
185
|
+
* `onError` already fired for every rejected Flight task, so every
|
|
186
|
+
* DenySignal/RedirectSignal in the tree is already captured.
|
|
150
187
|
*
|
|
151
|
-
* When false
|
|
152
|
-
*
|
|
153
|
-
*
|
|
188
|
+
* When false (hold timed out, no hold window, shell-only return), there
|
|
189
|
+
* is no such guarantee and the renderer falls back to the bounded retry.
|
|
190
|
+
* Settled before `handleSsr()` resolves: `onFizzAllReadyResolved` fires
|
|
191
|
+
* synchronously just before the render-stream promise resolves.
|
|
154
192
|
*
|
|
155
193
|
* See design/05-streaming.md §"deferSuspenseFor and the Hold Window"
|
|
156
194
|
* and design/spike-signal-promotion-protocol.md (Option 1).
|
|
157
195
|
*/
|
|
158
|
-
|
|
196
|
+
fizzAllReadyResolved: boolean;
|
|
159
197
|
}
|
|
160
198
|
//# sourceMappingURL=ssr-bridge-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-bridge-types.d.ts","sourceRoot":"","sources":["../../src/server/ssr-bridge-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ssr-bridge-types.d.ts","sourceRoot":"","sources":["../../src/server/ssr-bridge-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACvC;;;0DAGsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;iFAE6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;4DACwD;IACxD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;;;;;;;;;;;;;;;OAiBG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC;IACpB;;;;;;;;;;;;;;;;OAgBG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Design docs: 18-build-system.md §"Entry Files", 02-rendering-pipeline.md
|
|
13
13
|
*/
|
|
14
|
-
import type { NavContext } from './ssr-bridge-types.ts';
|
|
14
|
+
import type { NavContext, SsrRenderResult } from './ssr-bridge-types.ts';
|
|
15
15
|
/**
|
|
16
16
|
* Handle SSR: decode an RSC stream and render it to hydration-ready HTML.
|
|
17
17
|
*
|
|
@@ -21,18 +21,21 @@ import type { NavContext } from './ssr-bridge-types.ts';
|
|
|
21
21
|
* 2. Render the decoded tree to HTML via renderToReadableStream (streaming)
|
|
22
22
|
* 3. Wait for onShellReady before flushing (handled by renderSsrStream)
|
|
23
23
|
* 4. Inject metadata into <head> and client scripts before </body>
|
|
24
|
-
* 5. Return Response
|
|
24
|
+
* 5. Return the Response (navContext.statusCode, navContext.responseHeaders)
|
|
25
|
+
* with the SSR sub-phase timings and whether Fizz allReady settled
|
|
26
|
+
* within the hold window
|
|
25
27
|
*
|
|
26
28
|
* The RSC stream is piped progressively — not buffered. For deny() outside
|
|
27
29
|
* Suspense, the RSC stream encodes an error in the shell region, causing
|
|
28
30
|
* renderToReadableStream to reject. The error propagates back to the RSC
|
|
29
|
-
* entry which
|
|
31
|
+
* entry, which rethrows the captured DenySignal for the pipeline to render
|
|
32
|
+
* the deny page. For deny() inside Suspense, the shell
|
|
30
33
|
* succeeds and the error streams as a React error boundary after flush.
|
|
31
34
|
*
|
|
32
35
|
* @param rscStream - The ReadableStream from the RSC environment
|
|
33
36
|
* @param navContext - Per-request state passed across RSC→SSR boundary
|
|
34
|
-
* @returns
|
|
37
|
+
* @returns The HTML Response with hydration markers, plus SSR diagnostics
|
|
35
38
|
*/
|
|
36
|
-
export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<
|
|
39
|
+
export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<SsrRenderResult>;
|
|
37
40
|
export default handleSsr;
|
|
38
41
|
//# sourceMappingURL=ssr-entry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-entry.d.ts","sourceRoot":"","sources":["../../src/server/ssr-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA+BH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-entry.d.ts","sourceRoot":"","sources":["../../src/server/ssr-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA+BH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAiDzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC,CA2L1B;eAEc,SAAS"}
|
|
@@ -20,21 +20,8 @@
|
|
|
20
20
|
* 18-build-system.md §"Entry Files"
|
|
21
21
|
*/
|
|
22
22
|
import type { ReactNode } from 'react';
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
* Automatically selects the optimal rendering path for the platform:
|
|
27
|
-
* - Node.js/Bun: `renderToPipeableStream` → Node.js native streams → `Readable.toWeb()`
|
|
28
|
-
* - CF Workers/Edge: `renderToReadableStream` → native Web Streams
|
|
29
|
-
*
|
|
30
|
-
* The returned stream begins yielding after onShellReady — everything
|
|
31
|
-
* outside <Suspense> boundaries is in the shell.
|
|
32
|
-
*
|
|
33
|
-
* @param element - The React element tree decoded from the RSC stream
|
|
34
|
-
* @param options - Optional configuration
|
|
35
|
-
* @returns A ReadableStream of HTML bytes with hydration markers
|
|
36
|
-
*/
|
|
37
|
-
export declare function renderSsrStream(element: ReactNode, options?: {
|
|
23
|
+
/** Options shared by both SSR render paths (Node streams and Web Streams). */
|
|
24
|
+
export interface SsrStreamOptions {
|
|
38
25
|
bootstrapScriptContent?: string;
|
|
39
26
|
/** Request CSP nonce — stamped by Fizz on the bootstrap and runtime scripts. */
|
|
40
27
|
nonce?: string;
|
|
@@ -49,12 +36,27 @@ export declare function renderSsrStream(element: ReactNode, options?: {
|
|
|
49
36
|
/**
|
|
50
37
|
* Fired synchronously when the render function is about to resolve
|
|
51
38
|
* (i.e. at hold-end / shell-ready). `resolved` reports whether Fizz's
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
39
|
+
* allReady had already settled by that moment. The SSR entry returns it
|
|
40
|
+
* as `SsrRenderResult.fizzAllReadyResolved` so the RSC renderer can
|
|
41
|
+
* decide whether signal promotion can be short-circuited.
|
|
55
42
|
*/
|
|
56
43
|
onFizzAllReadyResolved?: (resolved: boolean) => void;
|
|
57
|
-
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Render a React element tree to a ReadableStream of HTML.
|
|
47
|
+
*
|
|
48
|
+
* Automatically selects the optimal rendering path for the platform:
|
|
49
|
+
* - Node.js/Bun: `renderToPipeableStream` → Node.js native streams → `Readable.toWeb()`
|
|
50
|
+
* - CF Workers/Edge: `renderToReadableStream` → native Web Streams
|
|
51
|
+
*
|
|
52
|
+
* The returned stream begins yielding after onShellReady — everything
|
|
53
|
+
* outside <Suspense> boundaries is in the shell.
|
|
54
|
+
*
|
|
55
|
+
* @param element - The React element tree decoded from the RSC stream
|
|
56
|
+
* @param options - Optional configuration
|
|
57
|
+
* @returns A ReadableStream of HTML bytes with hydration markers
|
|
58
|
+
*/
|
|
59
|
+
export declare function renderSsrStream(element: ReactNode, options?: SsrStreamOptions): Promise<ReadableStream<Uint8Array>>;
|
|
58
60
|
/** Whether the current platform uses native Node.js streams for SSR. */
|
|
59
61
|
export declare const useNodeStreams: boolean;
|
|
60
62
|
/**
|
|
@@ -64,26 +66,7 @@ export declare const useNodeStreams: boolean;
|
|
|
64
66
|
* Node.js streams (C++ backed). Only converted to Web ReadableStream
|
|
65
67
|
* at the very end for the Response body.
|
|
66
68
|
*/
|
|
67
|
-
export declare function renderSsrNodeStream(element: ReactNode, options?:
|
|
68
|
-
bootstrapScriptContent?: string;
|
|
69
|
-
/** Request CSP nonce — stamped by Fizz on the bootstrap and runtime scripts. */
|
|
70
|
-
nonce?: string;
|
|
71
|
-
deferSuspenseFor?: number;
|
|
72
|
-
signal?: AbortSignal;
|
|
73
|
-
renderTimeoutMs?: number;
|
|
74
|
-
/** Request info threaded into render-error logs (method/path). */
|
|
75
|
-
requestInfo?: {
|
|
76
|
-
method: string;
|
|
77
|
-
path: string;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Fired synchronously at the moment `renderSsrNodeStream`'s returned
|
|
81
|
-
* Promise is about to resolve. `resolved` reports whether Fizz's
|
|
82
|
-
* `onAllReady` had already fired by then. See the twin callback on
|
|
83
|
-
* `renderSsrStream`.
|
|
84
|
-
*/
|
|
85
|
-
onFizzAllReadyResolved?: (resolved: boolean) => void;
|
|
86
|
-
}): Promise<import('node:stream').Readable>;
|
|
69
|
+
export declare function renderSsrNodeStream(element: ReactNode, options?: SsrStreamOptions): Promise<import('node:stream').Readable>;
|
|
87
70
|
/** Convert a Node.js Readable to a Web ReadableStream (zero-copy bridge). */
|
|
88
71
|
export declare function nodeReadableToWeb(readable: import('node:stream').Readable): ReadableStream<Uint8Array>;
|
|
89
72
|
/**
|
|
@@ -108,7 +91,10 @@ export declare function wrapStreamWithErrorHandling(stream: ReadableStream<Uint8
|
|
|
108
91
|
* React 19.3+ automatically emits `<!DOCTYPE html>` when the root
|
|
109
92
|
* element is `<html>`, so no framework-level doctype prepending is needed.
|
|
110
93
|
*
|
|
111
|
-
* Sets content-type to text/html if not already set by middleware.
|
|
94
|
+
* Sets content-type to text/html if not already set by middleware. The
|
|
95
|
+
* default goes on a response-local copy: `responseHeaders` is the
|
|
96
|
+
* pipeline's shared bag, handed over on `NavContext`, and SSR only reads
|
|
97
|
+
* it (design/49 §"A2").
|
|
112
98
|
*/
|
|
113
99
|
export declare function buildSsrResponse(htmlStream: ReadableStream<Uint8Array>, statusCode: number, responseHeaders: Headers): Response;
|
|
114
100
|
//# sourceMappingURL=ssr-render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-render.d.ts","sourceRoot":"","sources":["../../src/server/ssr-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-render.d.ts","sourceRoot":"","sources":["../../src/server/ssr-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkGvC,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAErC;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,SAAkB,CAAC;AAU9C;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,aAAa,EAAE,QAAQ,CAAC,CAsGzC;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,aAAa,EAAE,QAAQ,GACvC,cAAc,CAAC,UAAU,CAAC,CAE5B;AAqGD;;;;;;;;;;;;GAYG;AACH,2CAA2C;AAC3C,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,CAAC,CA2B5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,GACvB,QAAQ,CAOV"}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* Per-request isolation is by construction: the provider values are part
|
|
31
31
|
* of this request's element tree, so concurrent requests cannot observe
|
|
32
32
|
* each other's values — stronger than the ALS path, which remains for
|
|
33
|
-
* `useCookie()
|
|
33
|
+
* `useCookie()`.
|
|
34
34
|
*
|
|
35
35
|
* **What actually shifts a useId is a fork, not depth.** `useId` derives from
|
|
36
36
|
* React's tree context, which only changes where a fiber has more than one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-generator.d.ts","sourceRoot":"","sources":["../../src/server/static-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAgB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"static-generator.d.ts","sourceRoot":"","sources":["../../src/server/static-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAgB,MAAM,oBAAoB,CAAC;AAgB1F,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,kCAAkC;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;CAC9B;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,+BAA+B;IAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC9B,SAAS,GAAE,MAAkC,GAC5C,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC,CA0HjE;AAqID;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC5C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAmOlC;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAe5D"}
|
|
@@ -44,4 +44,16 @@ export declare function teeWithErrorPropagation(stream: ReadableStream<Uint8Arra
|
|
|
44
44
|
* paths — TransformStream.flush() is not called on cancellation.
|
|
45
45
|
*/
|
|
46
46
|
export declare function wrapResponseWithStreamTiming(body: ReadableStream<Uint8Array>, startTime: number): ReadableStream<Uint8Array>;
|
|
47
|
+
/**
|
|
48
|
+
* Read a byte stream to completion under one overall deadline and return
|
|
49
|
+
* the concatenated bytes. Every read is raced against the time remaining,
|
|
50
|
+
* and the reader is cancelled on every exit, so a stalled upstream never
|
|
51
|
+
* outlives the deadline. See design/02-rendering-pipeline.md §"Always
|
|
52
|
+
* Timeout-Guard Stream Reads".
|
|
53
|
+
*
|
|
54
|
+
* @param label - Prefix for the timeout error message. Both ways the deadline
|
|
55
|
+
* can pass (between reads, or while a read is pending) reject with the same
|
|
56
|
+
* `${label} did not complete within ${timeoutMs}ms`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function readAllBytesWithDeadline(stream: ReadableStream<Uint8Array>, timeoutMs: number, label: string): Promise<Uint8Array>;
|
|
47
59
|
//# sourceMappingURL=stream-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../src/server/stream-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,OAAO,CAAC,EAAE,UAAU,GACnB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAmK1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,cAAc,CAAC,UAAU,CAAC,CA8D5B"}
|
|
1
|
+
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../src/server/stream-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,OAAO,CAAC,EAAE,UAAU,GACnB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAmK1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,cAAc,CAAC,UAAU,CAAC,CA8D5B;AASD;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,CAkCrB"}
|