@timber-js/app 0.2.0-alpha.191 → 0.2.0-alpha.194
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/agent-skill.md +2 -0
- package/dist/_chunks/{actions-BjbbNRFN.js → actions-CWYtq6ii.js} +3 -3
- package/dist/_chunks/actions-CWYtq6ii.js.map +1 -0
- package/dist/_chunks/als-registry-C6kcfprT.js.map +1 -1
- package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -1
- package/dist/_chunks/{build-output-helper-C3DrfzZR.js → build-output-helper-9dqCv1pZ.js} +3 -2
- package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +1 -0
- package/dist/_chunks/{cache-api-DllJ-Lyw.js → cache-api-CQeYzA5g.js} +6 -8
- package/dist/_chunks/cache-api-CQeYzA5g.js.map +1 -0
- package/dist/_chunks/chains-h7EO-u3n.js +412 -0
- package/dist/_chunks/chains-h7EO-u3n.js.map +1 -0
- package/dist/_chunks/{cli-check-DJZDc22E.js → cli-check-BVthpfLS.js} +43 -6
- package/dist/_chunks/cli-check-BVthpfLS.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync-D4_AZVUb.js → cli-schema-sync-ZwM9u_ob.js} +6 -5
- package/dist/_chunks/{cli-schema-sync-D4_AZVUb.js.map → cli-schema-sync-ZwM9u_ob.js.map} +1 -1
- package/dist/_chunks/{cloudflare-CGP6BZKO.js → cloudflare-BKJC3SC_.js} +28 -22
- package/dist/_chunks/{cloudflare-CGP6BZKO.js.map → cloudflare-BKJC3SC_.js.map} +1 -1
- package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -1
- package/dist/_chunks/{convention-lint-CpteIpTm.js → convention-lint-DO10_pVl.js} +93 -7
- package/dist/_chunks/convention-lint-DO10_pVl.js.map +1 -0
- package/dist/_chunks/dist-DtrJyBbw.js +386 -0
- package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
- package/dist/_chunks/error-boundary-D-ODYX41.js.map +1 -1
- package/dist/_chunks/{file-cache-DmX7OqZP.js → file-cache-Dw6BJPG7.js} +5 -1
- package/dist/_chunks/{file-cache-DmX7OqZP.js.map → file-cache-Dw6BJPG7.js.map} +1 -1
- package/dist/_chunks/{format-CfwjgPz9.js → format-BKclgVbk.js} +3 -3
- package/dist/_chunks/{format-CfwjgPz9.js.map → format-BKclgVbk.js.map} +1 -1
- package/dist/_chunks/graph-cache-CP4GEmf9.js +304 -0
- package/dist/_chunks/graph-cache-CP4GEmf9.js.map +1 -0
- package/dist/_chunks/href-validation-CMc5JRls.js.map +1 -1
- package/dist/_chunks/live-graph-Bx4HodF1.js +150 -0
- package/dist/_chunks/live-graph-Bx4HodF1.js.map +1 -0
- package/dist/_chunks/{logger-CH7IcMmg.js → logger-pumCm3Il.js} +25 -7
- package/dist/_chunks/{logger-CH7IcMmg.js.map → logger-pumCm3Il.js.map} +1 -1
- package/dist/_chunks/{mdx-file-C005ay-P.js → mdx-file-CXyHGUpS.js} +3 -3
- package/dist/_chunks/mdx-file-CXyHGUpS.js.map +1 -0
- package/dist/_chunks/{plugin-context-rCinWLiE.js → plugin-context-8idfR3UZ.js} +2 -2
- package/dist/_chunks/plugin-context-8idfR3UZ.js.map +1 -0
- package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
- package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
- package/dist/_chunks/poison-scan-BAxfTT5L.js +101 -0
- package/dist/_chunks/poison-scan-BAxfTT5L.js.map +1 -0
- package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -1
- package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/_chunks/router-ref-DuYuV_0Q.js.map +1 -1
- package/dist/_chunks/{rsc-media-type-DRqE_lD_.js → rsc-media-type-DDc7duTD.js} +17 -2
- package/dist/_chunks/{rsc-media-type-DRqE_lD_.js.map → rsc-media-type-DDc7duTD.js.map} +1 -1
- package/dist/_chunks/scan-BoP17W3w.js +140 -0
- package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
- package/dist/_chunks/{scanner-CAietmj4.js → scanner-BRIOmHE2.js} +43 -4
- package/dist/_chunks/scanner-BRIOmHE2.js.map +1 -0
- package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -1
- package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -1
- package/dist/_chunks/{segment-keys-BawYuNFO.js → segment-keys-BhqoHiLc.js} +14 -2
- package/dist/_chunks/{segment-keys-BawYuNFO.js.map → segment-keys-BhqoHiLc.js.map} +1 -1
- package/dist/_chunks/slot-params-BCTmZkQB.js.map +1 -1
- package/dist/_chunks/ssr-data-14MXm7Pj.js.map +1 -1
- package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -1
- package/dist/_chunks/use-segment-params-C4r4BD9T.js.map +1 -1
- package/dist/_chunks/{walkers-BsVLmD1S.js → walkers-uCu3WW6_.js} +9 -6
- package/dist/_chunks/{walkers-BsVLmD1S.js.map → walkers-uCu3WW6_.js.map} +1 -1
- package/dist/adapters/build-output-helper.d.ts +1 -1
- package/dist/adapters/build-output-helper.d.ts.map +1 -1
- package/dist/adapters/cloudflare-dev.d.ts.map +1 -1
- package/dist/adapters/cloudflare-dev.js +2 -1
- package/dist/adapters/cloudflare-dev.js.map +1 -1
- package/dist/adapters/cloudflare-kv-cache.d.ts +1 -1
- package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -1
- package/dist/adapters/cloudflare-kv-cache.js +7 -8
- package/dist/adapters/cloudflare-kv-cache.js.map +1 -1
- package/dist/adapters/cloudflare.d.ts +1 -1
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +1 -1
- package/dist/adapters/nitro-presets.d.ts +37 -0
- package/dist/adapters/nitro-presets.d.ts.map +1 -0
- package/dist/adapters/nitro-preview.d.ts +32 -0
- package/dist/adapters/nitro-preview.d.ts.map +1 -0
- package/dist/adapters/nitro.d.ts +28 -51
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +224 -171
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/analyze/chains.d.ts +124 -0
- package/dist/analyze/chains.d.ts.map +1 -0
- package/dist/analyze/classify.d.ts +150 -0
- package/dist/analyze/classify.d.ts.map +1 -0
- package/dist/analyze/crawl-entry.d.ts +17 -0
- package/dist/analyze/crawl-entry.d.ts.map +1 -0
- package/dist/analyze/crawl-entry.js +313 -0
- package/dist/analyze/crawl-entry.js.map +1 -0
- package/dist/analyze/crawl.d.ts +134 -0
- package/dist/analyze/crawl.d.ts.map +1 -0
- package/dist/analyze/graph-cache.d.ts +104 -0
- package/dist/analyze/graph-cache.d.ts.map +1 -0
- package/dist/analyze/graph-command.d.ts +43 -0
- package/dist/analyze/graph-command.d.ts.map +1 -0
- package/dist/analyze/graph-command.js +472 -0
- package/dist/analyze/graph-command.js.map +1 -0
- package/dist/analyze/live-graph.d.ts +81 -0
- package/dist/analyze/live-graph.d.ts.map +1 -0
- package/dist/analyze/poison-rules.d.ts +72 -0
- package/dist/analyze/poison-rules.d.ts.map +1 -0
- package/dist/analyze/poison-scan.d.ts +48 -0
- package/dist/analyze/poison-scan.d.ts.map +1 -0
- package/dist/analyze/scan.d.ts +73 -0
- package/dist/analyze/scan.d.ts.map +1 -0
- package/dist/cache/cache-api.d.ts +2 -2
- package/dist/cache/cache-api.d.ts.map +1 -1
- package/dist/cache/index.d.ts +8 -8
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +1 -1
- package/dist/cache/redis-handler.d.ts +1 -1
- package/dist/cache/redis-handler.d.ts.map +1 -1
- package/dist/cache/stores/cloudflare-kv.d.ts +1 -1
- package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -1
- package/dist/cache/stores/cloudflare-kv.js.map +1 -1
- package/dist/cache/stores/memory.d.ts +1 -1
- package/dist/cache/stores/memory.d.ts.map +1 -1
- package/dist/cache/stores/memory.js.map +1 -1
- package/dist/cache/stores/redis.d.ts +1 -1
- package/dist/cache/stores/redis.d.ts.map +1 -1
- package/dist/cache/stores/redis.js.map +1 -1
- package/dist/cache/stores/vercel.d.ts +1 -1
- package/dist/cache/stores/vercel.d.ts.map +1 -1
- package/dist/cache/stores/vercel.js.map +1 -1
- package/dist/cache/tag-aware-handler.d.ts +2 -2
- package/dist/cache/tag-aware-handler.d.ts.map +1 -1
- package/dist/cache/timber-cache.d.ts +1 -1
- package/dist/cache/timber-cache.d.ts.map +1 -1
- package/dist/cdn/cloudflare-purge.d.ts +1 -1
- package/dist/cdn/cloudflare-purge.d.ts.map +1 -1
- package/dist/cdn/cloudflare-purge.js.map +1 -1
- package/dist/cdn/fastly-purge.d.ts +1 -1
- package/dist/cdn/fastly-purge.d.ts.map +1 -1
- package/dist/cdn/fastly-purge.js.map +1 -1
- package/dist/cdn/index.d.ts +4 -4
- package/dist/cdn/index.d.ts.map +1 -1
- package/dist/cdn/workers-cache-purge.d.ts +5 -1
- package/dist/cdn/workers-cache-purge.d.ts.map +1 -1
- package/dist/cdn/workers-cache-purge.js.map +1 -1
- package/dist/cli-check.d.ts +10 -0
- package/dist/cli-check.d.ts.map +1 -1
- package/dist/cli.d.ts +12 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +30 -6
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-entry/hydrate.d.ts +2 -2
- package/dist/client/browser-entry/hydrate.d.ts.map +1 -1
- package/dist/client/browser-entry/post-hydration.d.ts +2 -2
- package/dist/client/browser-entry/router-init.d.ts +2 -2
- package/dist/client/browser-entry/rsc-stream.d.ts +1 -1
- package/dist/client/form.d.ts +2 -2
- package/dist/client/form.d.ts.map +1 -1
- package/dist/client/history.d.ts +2 -2
- package/dist/client/index.d.ts +18 -18
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +19 -19
- package/dist/client/internal.d.ts.map +1 -1
- package/dist/client/internal.js +11 -15
- package/dist/client/internal.js.map +1 -1
- package/dist/client/link.d.ts +3 -3
- package/dist/client/navigation-commit.d.ts +5 -5
- package/dist/client/navigation-root.d.ts +1 -1
- package/dist/client/navigation-root.d.ts.map +1 -1
- package/dist/client/params-context.d.ts +3 -3
- package/dist/client/router-pipeline.d.ts +7 -7
- package/dist/client/router-ref.d.ts +1 -1
- package/dist/client/router-types.d.ts +6 -6
- package/dist/client/router-types.d.ts.map +1 -1
- package/dist/client/router.d.ts +1 -1
- package/dist/client/rsc-fetch.d.ts +4 -4
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +2 -2
- package/dist/client/slot-provider.d.ts +1 -1
- package/dist/client/ssr-data.d.ts +2 -2
- package/dist/client/state.d.ts +4 -4
- package/dist/client/use-query-states.d.ts +1 -1
- package/dist/client/use-segment-params.d.ts +3 -3
- package/dist/codec.d.ts +2 -2
- package/dist/codec.js.map +1 -1
- package/dist/config-types.d.ts +24 -6
- package/dist/config-types.d.ts.map +1 -1
- package/dist/config-validation.d.ts +1 -1
- package/dist/cookies/define-cookie.d.ts +3 -3
- package/dist/cookies/index.d.ts +3 -3
- package/dist/cookies/index.js +3 -4
- package/dist/cookies/index.js.map +1 -1
- package/dist/cookies/json-cookie.d.ts +1 -1
- package/dist/dev-tools/404-page.d.ts +2 -2
- package/dist/dev-tools/error-page.d.ts +2 -2
- package/dist/dev-tools/index.d.ts +12 -12
- package/dist/dev-tools/instrumentation.d.ts +1 -1
- package/dist/dev-tools/logs.d.ts +1 -1
- package/dist/dev-tools/overlay.d.ts +2 -2
- package/dist/dev-tools/terminal.d.ts +1 -1
- package/dist/fonts/ast.d.ts +4 -4
- package/dist/fonts/bundle.d.ts +3 -3
- package/dist/fonts/css.d.ts +1 -1
- package/dist/fonts/dev-middleware.d.ts +1 -1
- package/dist/fonts/google.d.ts +1 -1
- package/dist/fonts/local.d.ts +1 -1
- package/dist/fonts/pipeline.d.ts +3 -3
- package/dist/fonts/transform.d.ts +2 -2
- package/dist/fonts/types.d.ts +1 -1
- package/dist/fonts/virtual-modules.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +816 -310
- package/dist/index.js.map +1 -1
- package/dist/params/codec-registry.d.ts +1 -1
- package/dist/params/define-schema.d.ts +2 -2
- package/dist/params/index.d.ts +4 -4
- package/dist/params/index.js.map +1 -1
- package/dist/params/resolve-schema.d.ts +1 -1
- package/dist/plugin-context.d.ts +9 -9
- package/dist/plugin-context.d.ts.map +1 -1
- package/dist/plugins/adapter-build.d.ts +2 -2
- package/dist/plugins/build-manifest.d.ts +2 -2
- package/dist/plugins/build-report.d.ts +5 -5
- package/dist/plugins/cache.d.ts +1 -1
- package/dist/plugins/callsite-jsx.d.ts +2 -2
- package/dist/plugins/chunks.d.ts +1 -1
- package/dist/plugins/chunks.d.ts.map +1 -1
- package/dist/plugins/cloudflare-wasm.d.ts +1 -1
- package/dist/plugins/content.d.ts +1 -1
- package/dist/plugins/content.d.ts.map +1 -1
- package/dist/plugins/dev-discovery.d.ts +123 -0
- package/dist/plugins/dev-discovery.d.ts.map +1 -0
- package/dist/plugins/dev-server.d.ts +1 -1
- package/dist/plugins/dev-server.d.ts.map +1 -1
- package/dist/plugins/entries.d.ts +1 -1
- package/dist/plugins/fonts.d.ts +3 -3
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/plugins/graph-endpoint.d.ts +112 -0
- package/dist/plugins/graph-endpoint.d.ts.map +1 -0
- package/dist/plugins/mdx.d.ts +18 -5
- package/dist/plugins/mdx.d.ts.map +1 -1
- package/dist/plugins/prebuilt-capture.d.ts +2 -2
- package/dist/plugins/prebuilt-options-analysis.d.ts +1 -1
- package/dist/plugins/prebuilt.d.ts +1 -1
- package/dist/plugins/prerender-sugar.d.ts +11 -14
- package/dist/plugins/prerender-sugar.d.ts.map +1 -1
- package/dist/plugins/request-dep/analysis.d.ts +1 -1
- package/dist/plugins/request-dep/index.d.ts +5 -5
- package/dist/plugins/request-dep/origin.d.ts +1 -1
- package/dist/plugins/routing.d.ts +1 -1
- package/dist/plugins/routing.d.ts.map +1 -1
- package/dist/plugins/server-bundle.d.ts.map +1 -1
- package/dist/plugins/shims.d.ts +1 -1
- package/dist/plugins/shims.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +5 -5
- package/dist/routing/codegen-shared.d.ts +1 -1
- package/dist/routing/codegen-write.d.ts +1 -1
- package/dist/routing/codegen.d.ts +1 -1
- package/dist/routing/collision-probe.d.ts +1 -1
- package/dist/routing/collision-spaces.d.ts +1 -1
- package/dist/routing/convention-lint.d.ts +1 -1
- package/dist/routing/convention-lint.d.ts.map +1 -1
- package/dist/routing/index.d.ts +13 -13
- package/dist/routing/index.js +3 -3
- package/dist/routing/interception.d.ts +1 -1
- package/dist/routing/interception.d.ts.map +1 -1
- package/dist/routing/link-codegen.d.ts +1 -1
- package/dist/routing/manifest-codegen.d.ts +1 -1
- package/dist/routing/scanner.d.ts +14 -1
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/schema-validation.d.ts +1 -1
- package/dist/routing/segment-classify.d.ts +1 -1
- package/dist/routing/segment-codegen.d.ts +1 -1
- package/dist/routing/segment-keys.d.ts +1 -1
- package/dist/routing/slot-placement.d.ts +1 -1
- package/dist/routing/walkers.d.ts +1 -1
- package/dist/rsc-runtime/transforms.d.ts +13 -0
- package/dist/rsc-runtime/transforms.d.ts.map +1 -0
- package/dist/schema-bridge.d.ts +1 -1
- package/dist/search-params/define.d.ts +3 -3
- package/dist/search-params/index.d.ts +3 -3
- package/dist/search-params/index.js.map +1 -1
- package/dist/search-params/wrappers.d.ts +1 -1
- package/dist/server/access-gate.d.ts +1 -1
- package/dist/server/action-client.d.ts +1 -1
- package/dist/server/action-handler.d.ts +5 -5
- package/dist/server/actions.d.ts +2 -2
- package/dist/server/als-registry.d.ts +8 -8
- package/dist/server/asset-headers.d.ts +1 -1
- package/dist/server/chain-url-parts.d.ts +3 -3
- package/dist/server/children-interception.d.ts +2 -2
- package/dist/server/cookie-context.d.ts +1 -1
- package/dist/server/cookie-parsing.d.ts +2 -2
- package/dist/server/default-logger.d.ts +1 -1
- package/dist/server/deny-boundary.d.ts +2 -2
- package/dist/server/deny-renderer.d.ts +5 -5
- package/dist/server/early-hints.d.ts +1 -1
- package/dist/server/error-boundary-wrapper.d.ts +2 -4
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
- package/dist/server/fallback-error.d.ts +5 -5
- package/dist/server/flight-injection-state.d.ts +1 -1
- package/dist/server/form-flash.d.ts +1 -1
- package/dist/server/html-injector-core.d.ts +2 -2
- package/dist/server/html-injectors.d.ts +1 -1
- package/dist/server/index.d.ts +18 -18
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +33 -32
- package/dist/server/index.js.map +1 -1
- package/dist/server/instrumentation.d.ts +1 -1
- package/dist/server/internal.d.ts +50 -50
- package/dist/server/internal.d.ts.map +1 -1
- package/dist/server/internal.js +1023 -1025
- package/dist/server/internal.js.map +1 -1
- package/dist/server/metadata-collector.d.ts +2 -2
- package/dist/server/metadata-platform.d.ts +2 -2
- package/dist/server/metadata-render.d.ts +2 -2
- package/dist/server/metadata-routes.d.ts +3 -3
- package/dist/server/metadata-social.d.ts +2 -2
- package/dist/server/metadata.d.ts +2 -2
- package/dist/server/middleware-runner.d.ts +1 -1
- package/dist/server/node-stream-transforms.d.ts +1 -1
- package/dist/server/param-coercion.d.ts +4 -4
- package/dist/server/pipeline-helpers.d.ts +3 -3
- package/dist/server/pipeline-interception.d.ts +1 -1
- package/dist/server/pipeline-metadata.d.ts +1 -1
- package/dist/server/pipeline-outcome.d.ts +2 -2
- package/dist/server/pipeline-phases.d.ts +3 -3
- package/dist/server/pipeline-phases.d.ts.map +1 -1
- package/dist/server/pipeline.d.ts +9 -9
- package/dist/server/prebuilt/cache-key.d.ts +1 -1
- package/dist/server/prebuilt/capture-state.d.ts +1 -1
- package/dist/server/prebuilt/key-discipline.d.ts +1 -1
- package/dist/server/prebuilt/manifest-tag-index.d.ts +1 -1
- package/dist/server/prebuilt/overlay.d.ts +2 -2
- package/dist/server/prebuilt/payload-source.d.ts +1 -1
- package/dist/server/prebuilt/slots.d.ts +1 -1
- package/dist/server/prebuilt/synthetic-store.d.ts +2 -2
- package/dist/server/prebuilt-builder.d.ts +2 -2
- package/dist/server/primitives.d.ts +2 -2
- package/dist/server/publish-params.d.ts +1 -1
- package/dist/server/request-context.d.ts +3 -3
- package/dist/server/route-element-builder.d.ts +16 -6
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/route-handler.d.ts +1 -1
- package/dist/server/route-matcher.d.ts +4 -4
- package/dist/server/rsc-cache-key-guard.d.ts.map +1 -1
- package/dist/server/rsc-entry/action-middleware-runner.d.ts +2 -2
- package/dist/server/rsc-entry/api-handler.d.ts +1 -1
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
- package/dist/server/rsc-entry/deny-fallback.d.ts +3 -3
- package/dist/server/rsc-entry/error-renderer.d.ts +4 -4
- package/dist/server/rsc-entry/helpers.d.ts +6 -6
- package/dist/server/rsc-entry/index.d.ts +7 -6
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts +4 -4
- package/dist/server/rsc-entry/revalidate-renderer.d.ts +4 -4
- package/dist/server/rsc-entry/rsc-payload.d.ts +4 -4
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts +3 -3
- package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +7 -7
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +5 -5
- package/dist/server/sitemap-generator.d.ts +2 -2
- package/dist/server/sitemap-handler.d.ts +1 -1
- package/dist/server/skippable-prefix.d.ts +3 -3
- package/dist/server/slot-interception.d.ts +2 -2
- package/dist/server/slot-resolver.d.ts +3 -7
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/ssr-bridge-types.d.ts +2 -2
- package/dist/server/ssr-entry.d.ts +1 -1
- package/dist/server/static-generator.d.ts +1 -1
- package/dist/server/static-not-found.d.ts +1 -1
- package/dist/server/status-code-resolver.d.ts +1 -1
- package/dist/server/tracing.d.ts +3 -3
- package/dist/server/tree-builder.d.ts +3 -3
- package/dist/server/tree-match.d.ts +1 -1
- package/dist/server/types.d.ts +2 -2
- package/dist/server/utils/mdx-file.d.ts +2 -0
- package/dist/server/utils/mdx-file.d.ts.map +1 -1
- package/dist/server/workers-cache-bridge.d.ts +1 -1
- package/dist/shared/als-slots.d.ts +1 -1
- package/dist/shared/payload-root.d.ts +2 -2
- package/dist/shared/rsc-media-type.d.ts +12 -0
- package/dist/shared/rsc-media-type.d.ts.map +1 -1
- package/dist/shared/slot-params.d.ts +1 -1
- package/dist/shims/font-google.d.ts +1 -1
- package/dist/shims/font-google.js.map +1 -1
- package/dist/shims/font-local.d.ts +1 -1
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/navigation-client.d.ts +4 -4
- package/dist/shims/navigation.d.ts +2 -2
- package/docs/api/34-api-config.mdx +9 -8
- package/docs/api/36-cli.mdx +23 -3
- package/docs/learn/11-error-handling.mdx +11 -0
- package/docs/more/01-advanced-routing.mdx +1 -0
- package/docs/more/04b-mdx.mdx +38 -18
- package/package.json +23 -18
- package/src/adapters/build-output-helper.ts +4 -4
- package/src/adapters/cloudflare-dev.ts +7 -1
- package/src/adapters/cloudflare-kv-cache.ts +11 -8
- package/src/adapters/cloudflare.ts +21 -15
- package/src/adapters/compress-module.ts +2 -2
- package/src/adapters/nitro-presets.ts +139 -0
- package/src/adapters/nitro-preview.ts +340 -0
- package/src/adapters/nitro.ts +100 -465
- package/src/adapters/shared.ts +1 -1
- package/src/analyze/chains.ts +411 -0
- package/src/analyze/classify.ts +258 -0
- package/src/analyze/crawl-entry.ts +68 -0
- package/src/analyze/crawl.ts +500 -0
- package/src/analyze/graph-cache.ts +332 -0
- package/src/analyze/graph-command.ts +762 -0
- package/src/analyze/live-graph.ts +232 -0
- package/src/analyze/poison-rules.ts +165 -0
- package/src/analyze/poison-scan.ts +162 -0
- package/src/analyze/scan.ts +149 -0
- package/src/cache/cache-api.ts +7 -7
- package/src/cache/index.ts +9 -9
- package/src/cache/redis-handler.ts +2 -2
- package/src/cache/stores/cloudflare-kv.ts +1 -1
- package/src/cache/stores/memory.ts +2 -2
- package/src/cache/stores/redis.ts +1 -1
- package/src/cache/stores/vercel.ts +1 -1
- package/src/cache/tag-aware-handler.ts +2 -2
- package/src/cache/timber-cache.ts +8 -8
- package/src/cdn/cloudflare-purge.ts +1 -1
- package/src/cdn/fastly-purge.ts +1 -1
- package/src/cdn/index.ts +10 -4
- package/src/cdn/workers-cache-purge.ts +6 -2
- package/src/cli-check.ts +53 -4
- package/src/cli-schema-sync.ts +3 -3
- package/src/cli.ts +50 -11
- package/src/client/browser-dev.ts +1 -1
- package/src/client/browser-entry/action-dispatch.ts +5 -5
- package/src/client/browser-entry/hmr.ts +1 -1
- package/src/client/browser-entry/hydrate.ts +9 -9
- package/src/client/browser-entry/index.ts +10 -10
- package/src/client/browser-entry/post-hydration.ts +5 -5
- package/src/client/browser-entry/router-init.ts +9 -9
- package/src/client/browser-entry/rsc-stream.ts +3 -3
- package/src/client/error-boundary.tsx +4 -4
- package/src/client/form.tsx +7 -2
- package/src/client/history.ts +2 -2
- package/src/client/index.ts +21 -18
- package/src/client/internal.ts +19 -19
- package/src/client/link.tsx +9 -9
- package/src/client/navigation-api.ts +1 -1
- package/src/client/navigation-commit.ts +5 -5
- package/src/client/navigation-context.ts +1 -1
- package/src/client/navigation-root.tsx +1 -1
- package/src/client/nuqs-adapter.tsx +2 -2
- package/src/client/params-context.ts +4 -4
- package/src/client/router-effects.ts +3 -3
- package/src/client/router-lifecycle.ts +2 -2
- package/src/client/router-pipeline.ts +10 -10
- package/src/client/router-ref.ts +2 -2
- package/src/client/router-skew.ts +2 -2
- package/src/client/router-types.ts +6 -6
- package/src/client/router.ts +13 -13
- package/src/client/rsc-fetch.ts +11 -16
- package/src/client/segment-cache.ts +2 -2
- package/src/client/segment-outlet.tsx +1 -1
- package/src/client/shallow-url.ts +1 -1
- package/src/client/slot-outlet.tsx +1 -1
- package/src/client/slot-provider.tsx +1 -1
- package/src/client/ssr-data.ts +3 -3
- package/src/client/stale-client.ts +1 -1
- package/src/client/state.ts +4 -4
- package/src/client/top-loader.tsx +1 -1
- package/src/client/unload-guard.ts +1 -1
- package/src/client/use-cookie.ts +2 -2
- package/src/client/use-pathname.ts +2 -2
- package/src/client/use-pending-navigation.ts +1 -1
- package/src/client/use-query-states.ts +3 -3
- package/src/client/use-router.ts +2 -2
- package/src/client/use-search-params.ts +3 -3
- package/src/client/use-segment-params.ts +6 -6
- package/src/client/use-selected-layout-segment.ts +2 -2
- package/src/codec.ts +2 -2
- package/src/config-types.ts +27 -7
- package/src/config-validation.ts +1 -1
- package/src/cookies/define-cookie.ts +6 -6
- package/src/cookies/index.ts +3 -3
- package/src/cookies/json-cookie.ts +1 -1
- package/src/dev-tools/404-page.ts +4 -4
- package/src/dev-tools/dev-page-shell.ts +1 -1
- package/src/dev-tools/error-page.ts +4 -4
- package/src/dev-tools/index.ts +12 -12
- package/src/dev-tools/instrumentation.ts +1 -1
- package/src/dev-tools/logs.ts +1 -1
- package/src/dev-tools/overlay.ts +3 -3
- package/src/dev-tools/terminal.ts +2 -2
- package/src/fonts/ast.ts +5 -5
- package/src/fonts/bundle.ts +5 -5
- package/src/fonts/css.ts +1 -1
- package/src/fonts/dev-middleware.ts +2 -2
- package/src/fonts/google.ts +2 -2
- package/src/fonts/local.ts +4 -4
- package/src/fonts/pipeline.ts +8 -8
- package/src/fonts/transform.ts +5 -5
- package/src/fonts/types.ts +1 -1
- package/src/fonts/virtual-modules.ts +1 -1
- package/src/index.ts +46 -37
- package/src/params/codec-registry.ts +1 -1
- package/src/params/define-schema.ts +2 -2
- package/src/params/index.ts +4 -4
- package/src/params/resolve-schema.ts +2 -2
- package/src/plugin-context.ts +10 -10
- package/src/plugins/adapter-build.ts +5 -5
- package/src/plugins/build-manifest.ts +4 -4
- package/src/plugins/build-report.ts +6 -6
- package/src/plugins/cache.ts +3 -3
- package/src/plugins/callsite-ast.ts +1 -1
- package/src/plugins/callsite-jsx.ts +2 -2
- package/src/plugins/chunks.ts +1 -1
- package/src/plugins/cloudflare-wasm.ts +1 -1
- package/src/plugins/content.ts +5 -1
- package/src/plugins/dev-discovery.ts +218 -0
- package/src/plugins/dev-server.ts +97 -12
- package/src/plugins/entries.ts +1 -1
- package/src/plugins/fonts.ts +17 -10
- package/src/plugins/graph-endpoint.ts +532 -0
- package/src/plugins/mdx.ts +73 -38
- package/src/plugins/prebuilt-capture.ts +3 -3
- package/src/plugins/prebuilt-options-analysis.ts +1 -1
- package/src/plugins/prebuilt.ts +7 -7
- package/src/plugins/prerender-sugar.ts +11 -19
- package/src/plugins/request-dep/analysis.ts +1 -1
- package/src/plugins/request-dep/index.ts +8 -8
- package/src/plugins/request-dep/origin.ts +1 -1
- package/src/plugins/routing.ts +12 -7
- package/src/plugins/server-bundle.ts +11 -3
- package/src/plugins/shims.ts +16 -31
- package/src/plugins/static-build.ts +10 -10
- package/src/routing/codegen-shared.ts +1 -1
- package/src/routing/codegen-write.ts +3 -3
- package/src/routing/codegen.ts +14 -5
- package/src/routing/collision-probe.ts +3 -3
- package/src/routing/collision-spaces.ts +3 -3
- package/src/routing/convention-lint.ts +136 -6
- package/src/routing/export-detect.ts +1 -1
- package/src/routing/index.ts +13 -13
- package/src/routing/interception.ts +41 -4
- package/src/routing/link-codegen.ts +3 -3
- package/src/routing/manifest-codegen.ts +2 -2
- package/src/routing/scanner.ts +33 -9
- package/src/routing/schema-validation.ts +4 -4
- package/src/routing/segment-classify.ts +2 -2
- package/src/routing/segment-codegen.ts +1 -1
- package/src/routing/segment-keys.ts +1 -1
- package/src/routing/slot-placement.ts +1 -1
- package/src/routing/walkers.ts +1 -1
- package/src/rsc-runtime/transforms.ts +13 -0
- package/src/rsc-runtime/vendor-types.d.ts +12 -0
- package/src/schema-bridge.ts +1 -1
- package/src/search-params/define.ts +8 -8
- package/src/search-params/index.ts +3 -3
- package/src/search-params/wrappers.ts +3 -3
- package/src/server/access-gate.tsx +6 -6
- package/src/server/action-client.ts +5 -5
- package/src/server/action-handler.ts +16 -16
- package/src/server/actions.ts +5 -5
- package/src/server/als-registry.ts +8 -8
- package/src/server/asset-headers.ts +2 -2
- package/src/server/chain-url-parts.ts +5 -5
- package/src/server/children-interception.ts +4 -4
- package/src/server/compress.ts +1 -1
- package/src/server/cookie-context.ts +4 -4
- package/src/server/cookie-parsing.ts +2 -2
- package/src/server/default-logger.ts +3 -3
- package/src/server/deny-boundary.ts +10 -10
- package/src/server/deny-renderer.ts +38 -25
- package/src/server/early-hints-sender.ts +2 -2
- package/src/server/early-hints.ts +2 -2
- package/src/server/error-boundary-wrapper.ts +4 -12
- package/src/server/fallback-error.ts +13 -13
- package/src/server/flight-injection-state.ts +1 -1
- package/src/server/form-flash.ts +2 -2
- package/src/server/html-injector-core.ts +4 -4
- package/src/server/html-injectors.ts +5 -5
- package/src/server/index.ts +18 -18
- package/src/server/instrumentation.ts +1 -1
- package/src/server/internal.ts +50 -50
- package/src/server/logger.ts +4 -4
- package/src/server/metadata-collector.ts +7 -7
- package/src/server/metadata-platform.ts +2 -2
- package/src/server/metadata-render.ts +4 -4
- package/src/server/metadata-routes.ts +3 -3
- package/src/server/metadata-social.ts +2 -2
- package/src/server/metadata.ts +2 -2
- package/src/server/middleware-runner.ts +1 -1
- package/src/server/node-stream-transforms.ts +4 -4
- package/src/server/param-coercion.ts +8 -8
- package/src/server/pipeline-helpers.ts +7 -7
- package/src/server/pipeline-interception.ts +2 -2
- package/src/server/pipeline-metadata.ts +1 -1
- package/src/server/pipeline-outcome.ts +8 -8
- package/src/server/pipeline-phases.ts +24 -28
- package/src/server/pipeline.ts +22 -22
- package/src/server/prebuilt/cache-key.ts +1 -1
- package/src/server/prebuilt/capture-state.ts +1 -1
- package/src/server/prebuilt/key-discipline.ts +1 -1
- package/src/server/prebuilt/manifest-tag-index.ts +1 -1
- package/src/server/prebuilt/overlay.ts +6 -6
- package/src/server/prebuilt/payload-source.ts +2 -2
- package/src/server/prebuilt/slots.ts +5 -5
- package/src/server/prebuilt/synthetic-store.ts +2 -2
- package/src/server/prebuilt-builder.ts +16 -16
- package/src/server/prebuilt-runtime.ts +12 -12
- package/src/server/primitives.ts +7 -7
- package/src/server/publish-params.ts +3 -3
- package/src/server/request-context.ts +7 -7
- package/src/server/route-element-builder.ts +108 -50
- package/src/server/route-handler.ts +4 -4
- package/src/server/route-matcher.ts +5 -5
- package/src/server/rsc-cache-key-guard.ts +3 -5
- package/src/server/rsc-entry/action-middleware-runner.ts +7 -7
- package/src/server/rsc-entry/api-handler.ts +18 -9
- package/src/server/rsc-entry/deny-fallback.ts +10 -10
- package/src/server/rsc-entry/error-renderer.ts +27 -27
- package/src/server/rsc-entry/helpers.ts +10 -10
- package/src/server/rsc-entry/index.ts +51 -47
- package/src/server/rsc-entry/render-route.ts +20 -20
- package/src/server/rsc-entry/revalidate-renderer.ts +12 -12
- package/src/server/rsc-entry/rsc-payload.ts +19 -15
- package/src/server/rsc-entry/rsc-stream.ts +8 -8
- package/src/server/rsc-entry/ssr-bridge.ts +3 -3
- package/src/server/rsc-entry/ssr-renderer.ts +23 -23
- package/src/server/rsc-entry/wrap-action-dispatch.ts +9 -9
- package/src/server/rsc-prop-warnings.ts +1 -1
- package/src/server/sensitive-fields.ts +1 -1
- package/src/server/server-timing.ts +1 -1
- package/src/server/sitemap-generator.ts +3 -3
- package/src/server/sitemap-handler.ts +3 -3
- package/src/server/skippable-prefix.ts +7 -7
- package/src/server/slot-interception.ts +5 -5
- package/src/server/slot-resolver.ts +20 -28
- package/src/server/ssr-bridge-types.ts +2 -2
- package/src/server/ssr-entry.ts +18 -18
- package/src/server/ssr-render.ts +4 -4
- package/src/server/ssr-wrappers.tsx +1 -1
- package/src/server/state-tree-diff.ts +1 -1
- package/src/server/static-generator.ts +6 -6
- package/src/server/static-not-found.ts +3 -3
- package/src/server/status-code-resolver.ts +1 -1
- package/src/server/tracing.ts +5 -5
- package/src/server/tree-builder.ts +4 -4
- package/src/server/tree-match.ts +1 -1
- package/src/server/types.ts +2 -2
- package/src/server/utils/mdx-file.ts +2 -2
- package/src/server/waituntil-bridge.ts +1 -1
- package/src/server/workers-cache-bridge.ts +2 -2
- package/src/shared/als-slots.ts +1 -1
- package/src/shared/payload-root.ts +2 -2
- package/src/shared/rsc-media-type.ts +16 -0
- package/src/shared/slot-params.ts +1 -1
- package/src/shims/font-google.ts +1 -1
- package/src/shims/font-local.ts +1 -1
- package/src/shims/navigation-client.ts +5 -5
- package/src/shims/navigation.ts +2 -2
- package/LICENSE +0 -8
- package/dist/_chunks/actions-BjbbNRFN.js.map +0 -1
- package/dist/_chunks/build-output-helper-C3DrfzZR.js.map +0 -1
- package/dist/_chunks/cache-api-DllJ-Lyw.js.map +0 -1
- package/dist/_chunks/cli-check-DJZDc22E.js.map +0 -1
- package/dist/_chunks/convention-lint-CpteIpTm.js.map +0 -1
- package/dist/_chunks/dist-BA3u1z3W.js +0 -423
- package/dist/_chunks/dist-BA3u1z3W.js.map +0 -1
- package/dist/_chunks/mdx-file-C005ay-P.js.map +0 -1
- package/dist/_chunks/plugin-context-rCinWLiE.js.map +0 -1
- package/dist/_chunks/scanner-CAietmj4.js.map +0 -1
- package/dist/content/index.d.ts +0 -2
- package/dist/content/index.d.ts.map +0 -1
- package/dist/content/index.js +0 -0
- package/src/content/index.ts +0 -5
- package/src/shims/server-only-noop.js +0 -6
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
* Design docs: 04-authorization.md, 10-error-handling.md
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import type { LayoutEntry } from '../deny-renderer.
|
|
14
|
-
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.
|
|
15
|
-
import type { ClientBootstrapConfig } from '../html-injectors.
|
|
16
|
-
import { logRenderError } from '../logger.
|
|
17
|
-
import type { PipelineConfig, RouteMatch } from '../pipeline.
|
|
18
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
19
|
-
import { loadModule } from '../safe-load.
|
|
20
|
-
import { createDebugChannelSink } from './helpers.
|
|
21
|
-
import { isRscRequest } from '../../shared/rsc-media-type.
|
|
22
|
-
import { callSsr } from './ssr-bridge.
|
|
13
|
+
import type { LayoutEntry } from '../deny-renderer.ts';
|
|
14
|
+
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.ts';
|
|
15
|
+
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
16
|
+
import { logRenderError } from '../logger.ts';
|
|
17
|
+
import type { PipelineConfig, RouteMatch } from '../pipeline.ts';
|
|
18
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
19
|
+
import { loadModule } from '../safe-load.ts';
|
|
20
|
+
import { createDebugChannelSink } from './helpers.ts';
|
|
21
|
+
import { isRscRequest } from '../../shared/rsc-media-type.ts';
|
|
22
|
+
import { callSsr } from './ssr-bridge.ts';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Create the pipeline's deny fallback renderer.
|
|
@@ -13,33 +13,33 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { createElement } from 'react';
|
|
16
|
-
import { renderToReadableStream } from '../../rsc-runtime/rsc.
|
|
17
|
-
|
|
18
|
-
import type { RouteMatch } from '../pipeline.
|
|
19
|
-
import { logRenderError } from '../logger.
|
|
20
|
-
import { appVisibleSearch } from '../../shared/rsc-cache-key.
|
|
21
|
-
import { getSlotParamsForClient } from '../request-context.
|
|
22
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
23
|
-
import { DenySignal, RenderError } from '../primitives.
|
|
24
|
-
import type { ClientBootstrapConfig } from '../html-injectors.
|
|
25
|
-
import { flightInitScript, htmlEscapeJsonString } from '../flight-scripts.
|
|
26
|
-
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.
|
|
27
|
-
import type { DefaultPageRenderer, LayoutEntry } from '../deny-renderer.
|
|
28
|
-
import type { NavContext } from '../ssr-bridge-types.
|
|
29
|
-
import { createDebugChannelSink } from './helpers.
|
|
30
|
-
import { isRscRequest } from '../../shared/rsc-media-type.
|
|
31
|
-
import { withPublishedParams } from '../publish-params.
|
|
32
|
-
import { getCookiesForSsr } from '../cookie-context.
|
|
33
|
-
import { callSsr } from './ssr-bridge.
|
|
34
|
-
import { teeWithErrorPropagation } from '../stream-utils.
|
|
35
|
-
import { isDevMode } from '../debug.
|
|
36
|
-
import { ErrorReconstituter } from '../../client/error-reconstituter.
|
|
37
|
-
import type { SerializableError } from '../../client/error-reconstituter.
|
|
38
|
-
import { loadModule } from '../safe-load.
|
|
39
|
-
import { sourceMapError } from '../dev-source-map.
|
|
40
|
-
import { isMdxFilePath as isMdxFile } from '../utils/mdx-file.
|
|
41
|
-
import { defaultStatusPageResponse } from '../default-status-page.
|
|
42
|
-
import { rscErrorEnvelope } from '../../shared/rsc-error-envelope.
|
|
16
|
+
import { renderToReadableStream } from '../../rsc-runtime/rsc.ts';
|
|
17
|
+
|
|
18
|
+
import type { RouteMatch } from '../pipeline.ts';
|
|
19
|
+
import { logRenderError } from '../logger.ts';
|
|
20
|
+
import { appVisibleSearch } from '../../shared/rsc-cache-key.ts';
|
|
21
|
+
import { getSlotParamsForClient } from '../request-context.ts';
|
|
22
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
23
|
+
import { DenySignal, RenderError } from '../primitives.ts';
|
|
24
|
+
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
25
|
+
import { flightInitScript, htmlEscapeJsonString } from '../flight-scripts.ts';
|
|
26
|
+
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.ts';
|
|
27
|
+
import type { DefaultPageRenderer, LayoutEntry } from '../deny-renderer.ts';
|
|
28
|
+
import type { NavContext } from '../ssr-bridge-types.ts';
|
|
29
|
+
import { createDebugChannelSink } from './helpers.ts';
|
|
30
|
+
import { isRscRequest } from '../../shared/rsc-media-type.ts';
|
|
31
|
+
import { withPublishedParams } from '../publish-params.ts';
|
|
32
|
+
import { getCookiesForSsr } from '../cookie-context.ts';
|
|
33
|
+
import { callSsr } from './ssr-bridge.ts';
|
|
34
|
+
import { teeWithErrorPropagation } from '../stream-utils.ts';
|
|
35
|
+
import { isDevMode } from '../debug.ts';
|
|
36
|
+
import { ErrorReconstituter } from '../../client/error-reconstituter.tsx';
|
|
37
|
+
import type { SerializableError } from '../../client/error-reconstituter.tsx';
|
|
38
|
+
import { loadModule } from '../safe-load.ts';
|
|
39
|
+
import { sourceMapError } from '../dev-source-map.ts';
|
|
40
|
+
import { isMdxFilePath as isMdxFile } from '../utils/mdx-file.ts';
|
|
41
|
+
import { defaultStatusPageResponse } from '../default-status-page.ts';
|
|
42
|
+
import { rscErrorEnvelope } from '../../shared/rsc-error-envelope.ts';
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* A manifest file reference with lazy import and path.
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* Small, stateless functions used across the RSC entry modules.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
8
|
-
import { swallow } from '../logger.
|
|
9
|
-
import { computeSegmentKeys, computeSegmentTreePaths } from '../../routing/segment-keys.
|
|
10
|
-
import type { SegmentInfo } from '../../shared/segment-info.
|
|
11
|
-
import type { SlotSkipEntry } from '../slot-resolver.
|
|
12
|
-
import { isClientReference } from '../route-element-builder.
|
|
13
|
-
import { isStaticRequestDependent } from '../request-dep.
|
|
7
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
8
|
+
import { swallow } from '../logger.ts';
|
|
9
|
+
import { computeSegmentKeys, computeSegmentTreePaths } from '../../routing/segment-keys.ts';
|
|
10
|
+
import type { SegmentInfo } from '../../shared/segment-info.ts';
|
|
11
|
+
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
12
|
+
import { isClientReference } from '../route-element-builder.ts';
|
|
13
|
+
import { isStaticRequestDependent } from '../request-dep.ts';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Create a debug channel sink that discards all debug data.
|
|
@@ -263,11 +263,11 @@ export function buildSegmentInfo(
|
|
|
263
263
|
// Callers within rsc-entry/ import from this file; the implementations
|
|
264
264
|
// live in pipeline-helpers.ts (buildRedirectResponse) and render-utils.ts
|
|
265
265
|
// (isAbortError). See TIM-1071 item 1.
|
|
266
|
-
export { buildRedirectResponse } from '../pipeline-helpers.
|
|
267
|
-
export { isAbortError } from '../render-utils.
|
|
266
|
+
export { buildRedirectResponse } from '../pipeline-helpers.ts';
|
|
267
|
+
export { isAbortError } from '../render-utils.ts';
|
|
268
268
|
|
|
269
269
|
// escapeHtml is now imported from server/utils/escape-html.ts
|
|
270
|
-
export { escapeHtml } from '../utils/escape-html.
|
|
270
|
+
export { escapeHtml } from '../utils/escape-html.ts';
|
|
271
271
|
|
|
272
272
|
// Params no longer travel beside the payload. The payload root is the
|
|
273
273
|
// outermost node of every tree the server sends (`server/publish-params.ts`),
|
|
@@ -38,34 +38,34 @@ import { loadCdnPurgeHandler } from 'virtual:timber-cache-handler';
|
|
|
38
38
|
// @ts-expect-error — virtual module provided by timber-routing plugin
|
|
39
39
|
import globalSchemaCodecs from 'virtual:timber-schema';
|
|
40
40
|
|
|
41
|
-
import { wrapPipelineWithActionDispatch, buildActionDispatcher } from './wrap-action-dispatch.
|
|
42
|
-
import type { BodyLimitsConfig } from '../body-limits.
|
|
43
|
-
import type { BuildManifest } from '../build-manifest.
|
|
44
|
-
import { resolveLogMode } from '../../dev-tools/logger.
|
|
45
|
-
import { sendEarlyHints103 } from '../early-hints-sender.
|
|
46
|
-
import { collectEarlyHintHeaders } from '../early-hints.
|
|
47
|
-
import { buildClientScripts } from '../html-injectors.
|
|
48
|
-
import type { InterceptionContext, PipelineConfig, RouteMatch } from '../pipeline.
|
|
49
|
-
import { createPipeline } from '../pipeline.
|
|
50
|
-
import { coerceSegmentParams, setGlobalSchemaCodecs } from '../param-coercion.
|
|
51
|
-
import { createMetadataRouteMatcher, createRouteMatcher } from '../route-matcher.
|
|
52
|
-
import { createInterceptedRouteMatcher } from '../children-interception.
|
|
53
|
-
import { initDevTracing } from '../tracing.
|
|
54
|
-
import { createRevalidateRendererFactory } from './revalidate-renderer.
|
|
55
|
-
|
|
56
|
-
import { renderFallbackError as renderFallback } from '../fallback-error.
|
|
57
|
-
import { loadInstrumentation } from '../instrumentation.
|
|
58
|
-
import { createDenyFallbackRenderer } from './deny-fallback.
|
|
59
|
-
import { renderNoMatchPage } from './error-renderer.
|
|
60
|
-
import { renderRoute } from './render-route.
|
|
61
|
-
import { isDebug, isDevMode, setDebugFromConfig } from '../debug.
|
|
62
|
-
import { setSourceMapCallback } from '../dev-source-map.
|
|
63
|
-
import { requestContextAls } from '../als-registry.
|
|
64
|
-
import { capturePrebuiltPayloads } from '../prebuilt-builder.
|
|
65
|
-
import { setPrebuiltPayloadSource } from '../prebuilt/payload-source.
|
|
66
|
-
import { setRscFunctions, setComponentRefreshTimeout } from '../prebuilt-runtime.
|
|
67
|
-
import { createAutoSitemapHandler } from '../sitemap-handler.
|
|
68
|
-
import { generateStaticSite } from '../static-generator.
|
|
41
|
+
import { wrapPipelineWithActionDispatch, buildActionDispatcher } from './wrap-action-dispatch.ts';
|
|
42
|
+
import type { BodyLimitsConfig } from '../body-limits.ts';
|
|
43
|
+
import type { BuildManifest } from '../build-manifest.ts';
|
|
44
|
+
import { resolveLogMode } from '../../dev-tools/logger.ts';
|
|
45
|
+
import { sendEarlyHints103 } from '../early-hints-sender.ts';
|
|
46
|
+
import { collectEarlyHintHeaders } from '../early-hints.ts';
|
|
47
|
+
import { buildClientScripts } from '../html-injectors.ts';
|
|
48
|
+
import type { InterceptionContext, PipelineConfig, RouteMatch } from '../pipeline.ts';
|
|
49
|
+
import { createPipeline } from '../pipeline.ts';
|
|
50
|
+
import { coerceSegmentParams, setGlobalSchemaCodecs } from '../param-coercion.ts';
|
|
51
|
+
import { createMetadataRouteMatcher, createRouteMatcher } from '../route-matcher.ts';
|
|
52
|
+
import { createInterceptedRouteMatcher } from '../children-interception.ts';
|
|
53
|
+
import { initDevTracing } from '../tracing.ts';
|
|
54
|
+
import { createRevalidateRendererFactory } from './revalidate-renderer.ts';
|
|
55
|
+
|
|
56
|
+
import { renderFallbackError as renderFallback } from '../fallback-error.ts';
|
|
57
|
+
import { loadInstrumentation } from '../instrumentation.ts';
|
|
58
|
+
import { createDenyFallbackRenderer } from './deny-fallback.ts';
|
|
59
|
+
import { renderNoMatchPage } from './error-renderer.ts';
|
|
60
|
+
import { renderRoute } from './render-route.ts';
|
|
61
|
+
import { isDebug, isDevMode, setDebugFromConfig } from '../debug.ts';
|
|
62
|
+
import { setSourceMapCallback } from '../dev-source-map.ts';
|
|
63
|
+
import { requestContextAls } from '../als-registry.ts';
|
|
64
|
+
import { capturePrebuiltPayloads } from '../prebuilt-builder.ts';
|
|
65
|
+
import { setPrebuiltPayloadSource } from '../prebuilt/payload-source.ts';
|
|
66
|
+
import { setRscFunctions, setComponentRefreshTimeout } from '../prebuilt-runtime.ts';
|
|
67
|
+
import { createAutoSitemapHandler } from '../sitemap-handler.ts';
|
|
68
|
+
import { generateStaticSite } from '../static-generator.ts';
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Resolve the Server-Timing mode from timber.config.ts.
|
|
@@ -114,20 +114,20 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
114
114
|
| string
|
|
115
115
|
| undefined;
|
|
116
116
|
if (deploymentId) {
|
|
117
|
-
const { setDeploymentId } = await import('../version-skew.
|
|
117
|
+
const { setDeploymentId } = await import('../version-skew.ts');
|
|
118
118
|
setDeploymentId(deploymentId);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
// Wire the CDN purge handler so revalidateTag triggers CDN purge (TIM-1166).
|
|
122
122
|
const userCdnPurge = await loadCdnPurgeHandler();
|
|
123
123
|
if (userCdnPurge) {
|
|
124
|
-
const { setCdnPurgeHandler } = await import('../../cdn/purge-store.
|
|
124
|
+
const { setCdnPurgeHandler } = await import('../../cdn/purge-store.ts');
|
|
125
125
|
setCdnPurgeHandler(userCdnPurge as Parameters<typeof setCdnPurgeHandler>[0]);
|
|
126
126
|
} else if (typeof process !== 'undefined' && process.env?.TIMBER_RUNTIME === 'cloudflare') {
|
|
127
127
|
// Auto-wire Workers Cache purge on Cloudflare — no API token needed,
|
|
128
128
|
// available on all plans via ctx.cache.purge({ tags }) (TIM-1170).
|
|
129
|
-
const { WorkersCachePurge } = await import('../../cdn/workers-cache-purge.
|
|
130
|
-
const { setCdnPurgeHandler } = await import('../../cdn/purge-store.
|
|
129
|
+
const { WorkersCachePurge } = await import('../../cdn/workers-cache-purge.ts');
|
|
130
|
+
const { setCdnPurgeHandler } = await import('../../cdn/purge-store.ts');
|
|
131
131
|
setCdnPurgeHandler(new WorkersCachePurge());
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -140,7 +140,7 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
140
140
|
// all cache.component wrappers render dynamically.
|
|
141
141
|
if (!isDevMode()) {
|
|
142
142
|
const platformSource = (globalThis as Record<string, unknown>).__TIMBER_PREBUILT_SOURCE__ as
|
|
143
|
-
| import('../prebuilt/payload-source.
|
|
143
|
+
| import('../prebuilt/payload-source.ts').PrebuiltPayloadSource
|
|
144
144
|
| undefined;
|
|
145
145
|
if (platformSource) {
|
|
146
146
|
setPrebuiltPayloadSource(platformSource);
|
|
@@ -179,7 +179,7 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
179
179
|
|
|
180
180
|
// Wire RSC flight functions so prebuilt-runtime can revive cached payloads
|
|
181
181
|
// and capture re-renders without a dynamic import (TIM-1165).
|
|
182
|
-
const rscMod = await import('../../rsc-runtime/rsc.
|
|
182
|
+
const rscMod = await import('../../rsc-runtime/rsc.ts');
|
|
183
183
|
setRscFunctions({
|
|
184
184
|
createFromReadableStream: rscMod.createFromReadableStream,
|
|
185
185
|
renderToReadableStream: rscMod.renderToReadableStream,
|
|
@@ -217,10 +217,10 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
217
217
|
// `timber.config.ts` without needing to plumb config through each action.
|
|
218
218
|
// See TIM-816 and design/08-forms-and-actions.md §"Validation errors".
|
|
219
219
|
const formsConfig = (runtimeConfig as Record<string, unknown>).forms as
|
|
220
|
-
| { stripSensitiveFields?: import('../sensitive-fields.
|
|
220
|
+
| { stripSensitiveFields?: import('../sensitive-fields.ts').SensitiveFieldsOption }
|
|
221
221
|
| undefined;
|
|
222
222
|
if (formsConfig) {
|
|
223
|
-
const { setGlobalSensitiveFieldsConfig } = await import('../sensitive-fields.
|
|
223
|
+
const { setGlobalSensitiveFieldsConfig } = await import('../sensitive-fields.ts');
|
|
224
224
|
setGlobalSensitiveFieldsConfig(formsConfig.stripSensitiveFields);
|
|
225
225
|
}
|
|
226
226
|
|
|
@@ -247,7 +247,7 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
247
247
|
await initDevTracing({ mode: devLogMode, slowPhaseMs });
|
|
248
248
|
// Patch globalThis.fetch to create OTEL spans for fetch calls.
|
|
249
249
|
// Spans appear as children of the active component span in the dev log tree.
|
|
250
|
-
const { instrumentDevFetch } = await import('../../dev-tools/instrumentation.
|
|
250
|
+
const { instrumentDevFetch } = await import('../../dev-tools/instrumentation.ts');
|
|
251
251
|
instrumentDevFetch();
|
|
252
252
|
}
|
|
253
253
|
}
|
|
@@ -318,7 +318,7 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
318
318
|
// The dev page is loaded up front: the chain's terminal is synchronous,
|
|
319
319
|
// and dev-tools must stay out of the production bundle (dynamic import).
|
|
320
320
|
const devPage = wantsDev404
|
|
321
|
-
? await import('../../dev-tools/404-page.
|
|
321
|
+
? await import('../../dev-tools/404-page.ts').catch(() => null)
|
|
322
322
|
: null;
|
|
323
323
|
|
|
324
324
|
const defaultPage = devPage
|
|
@@ -439,16 +439,20 @@ async function createRequestHandler(manifest: typeof routeManifest, runtimeConfi
|
|
|
439
439
|
|
|
440
440
|
// Re-export for generated entry points (e.g., Nitro node-server/bun) to wrap
|
|
441
441
|
// the handler with per-request 103 Early Hints sender via ALS.
|
|
442
|
-
export { runWithEarlyHintsSender } from '../early-hints-sender.
|
|
442
|
+
export { runWithEarlyHintsSender } from '../early-hints-sender.ts';
|
|
443
443
|
|
|
444
444
|
// Re-export for generated entry points to wrap the handler with per-request
|
|
445
445
|
// waitUntil support via ALS. See design/11-platform.md §"waitUntil()".
|
|
446
|
-
export { runWithWaitUntil } from '../waituntil-bridge.
|
|
446
|
+
export { runWithWaitUntil } from '../waituntil-bridge.ts';
|
|
447
447
|
|
|
448
448
|
// Re-export for the Cloudflare adapter's generated _worker.js to bridge
|
|
449
449
|
// ctx.cache from the ExecutionContext into the per-request ALS. The
|
|
450
450
|
// WorkersCachePurge handler reads from this ALS to call ctx.cache.purge().
|
|
451
|
-
export { runWithWorkersCachePurge } from '../workers-cache-bridge.
|
|
451
|
+
export { runWithWorkersCachePurge } from '../workers-cache-bridge.ts';
|
|
452
|
+
|
|
453
|
+
// Re-export for the Cloudflare adapter's generated _worker.js to strip the
|
|
454
|
+
// body from edge-cache hits on HEAD requests (TIM-1325). RFC 9110 §9.3.2.
|
|
455
|
+
export { stripHeadBody } from '../head-response.ts';
|
|
452
456
|
|
|
453
457
|
/**
|
|
454
458
|
* Post-build flight capture entry point (TIM-1119). The capture pass must
|
|
@@ -460,8 +464,8 @@ export { runWithWorkersCachePurge } from '../workers-cache-bridge.js';
|
|
|
460
464
|
* See design/44-render-at-build-time.md §Build Phase.
|
|
461
465
|
*/
|
|
462
466
|
export function __timber_capturePrebuilt(
|
|
463
|
-
options: import('../prebuilt-builder.
|
|
464
|
-
): Promise<import('../prebuilt-builder.
|
|
467
|
+
options: import('../prebuilt-builder.ts').CaptureOptions
|
|
468
|
+
): Promise<import('../prebuilt-builder.ts').CaptureSummary> {
|
|
465
469
|
return capturePrebuiltPayloads(routeManifest, options);
|
|
466
470
|
}
|
|
467
471
|
|
|
@@ -477,8 +481,8 @@ export function __timber_capturePrebuilt(
|
|
|
477
481
|
* See design/11-platform.md §"static output mode".
|
|
478
482
|
*/
|
|
479
483
|
export function __timber_generateStaticSite(
|
|
480
|
-
options: import('../static-generator.
|
|
481
|
-
): Promise<import('../static-generator.
|
|
484
|
+
options: import('../static-generator.ts').StaticGenerationOptions
|
|
485
|
+
): Promise<import('../static-generator.ts').StaticGenerationSummary> {
|
|
482
486
|
if (!_handler) {
|
|
483
487
|
throw new Error(
|
|
484
488
|
'[timber] __timber_generateStaticSite requires the full request handler. ' +
|
|
@@ -496,7 +500,7 @@ setGlobalSchemaCodecs(globalSchemaCodecs);
|
|
|
496
500
|
// in both capture mode (components may call timber.cache) and normal mode.
|
|
497
501
|
const renderTimeoutMs = (config as Record<string, unknown>).renderTimeoutMs as number | undefined;
|
|
498
502
|
if (renderTimeoutMs) {
|
|
499
|
-
const { setDefaultSingleflightTimeout } = await import('../../cache/timber-cache.
|
|
503
|
+
const { setDefaultSingleflightTimeout } = await import('../../cache/timber-cache.ts');
|
|
500
504
|
setDefaultSingleflightTimeout(renderTimeoutMs);
|
|
501
505
|
setComponentRefreshTimeout(renderTimeoutMs);
|
|
502
506
|
}
|
|
@@ -509,7 +513,7 @@ await loadInstrumentation(loadUserInstrumentation);
|
|
|
509
513
|
// during capture and must see the configured store, not the fallback.
|
|
510
514
|
const userCacheHandler = await loadCacheHandler();
|
|
511
515
|
if (userCacheHandler) {
|
|
512
|
-
const { setCacheHandler } = await import('../../cache/handler-store.
|
|
516
|
+
const { setCacheHandler } = await import('../../cache/handler-store.ts');
|
|
513
517
|
setCacheHandler(userCacheHandler as Parameters<typeof setCacheHandler>[0]);
|
|
514
518
|
}
|
|
515
519
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* Design docs: 02-rendering-pipeline.md, 19-client-navigation.md.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import type { BuildManifest } from '../build-manifest.
|
|
21
|
+
import type { BuildManifest } from '../build-manifest.ts';
|
|
22
22
|
import {
|
|
23
23
|
buildCssLinkTags,
|
|
24
24
|
buildFontPreloadTags,
|
|
@@ -26,30 +26,30 @@ import {
|
|
|
26
26
|
collectRouteCss,
|
|
27
27
|
collectRouteFonts,
|
|
28
28
|
collectRouteModulepreloads,
|
|
29
|
-
} from '../build-manifest.
|
|
30
|
-
import type { LayoutEntry } from '../deny-renderer.
|
|
31
|
-
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.
|
|
32
|
-
import type { ClientBootstrapConfig } from '../html-injectors.
|
|
33
|
-
import type { InterceptionContext, RouteMatch } from '../pipeline.
|
|
29
|
+
} from '../build-manifest.ts';
|
|
30
|
+
import type { LayoutEntry } from '../deny-renderer.ts';
|
|
31
|
+
import { renderDenyPage, renderDenyPageAsRsc } from '../deny-renderer.ts';
|
|
32
|
+
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
33
|
+
import type { InterceptionContext, RouteMatch } from '../pipeline.ts';
|
|
34
34
|
import {
|
|
35
35
|
buildRouteElement,
|
|
36
36
|
NoPageComponentError,
|
|
37
37
|
ParamCoercionError,
|
|
38
|
-
} from '../route-element-builder.
|
|
39
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
40
|
-
import { recordTiming } from '../server-timing.
|
|
41
|
-
import { requestContextAls } from '../als-registry.
|
|
42
|
-
import { parseClientStateTree } from '../state-tree-diff.
|
|
38
|
+
} from '../route-element-builder.ts';
|
|
39
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
40
|
+
import { recordTiming } from '../server-timing.ts';
|
|
41
|
+
import { requestContextAls } from '../als-registry.ts';
|
|
42
|
+
import { parseClientStateTree } from '../state-tree-diff.ts';
|
|
43
43
|
|
|
44
|
-
import { getFirstDeniedSegmentIndex } from '../deny-boundary.
|
|
45
|
-
import { handleApiRoute } from './api-handler.
|
|
46
|
-
import { renderErrorPage, renderNoMatchPage } from './error-renderer.
|
|
47
|
-
import { buildRedirectResponse, createDebugChannelSink } from './helpers.
|
|
48
|
-
import { isRscRequest } from '../../shared/rsc-media-type.
|
|
49
|
-
import { buildRscPayloadResponse } from './rsc-payload.
|
|
50
|
-
import { renderRscStream } from './rsc-stream.
|
|
51
|
-
import { renderSsrResponse } from './ssr-renderer.
|
|
52
|
-
import { callSsr } from './ssr-bridge.
|
|
44
|
+
import { getFirstDeniedSegmentIndex } from '../deny-boundary.ts';
|
|
45
|
+
import { handleApiRoute } from './api-handler.ts';
|
|
46
|
+
import { renderErrorPage, renderNoMatchPage } from './error-renderer.ts';
|
|
47
|
+
import { buildRedirectResponse, createDebugChannelSink } from './helpers.ts';
|
|
48
|
+
import { isRscRequest } from '../../shared/rsc-media-type.ts';
|
|
49
|
+
import { buildRscPayloadResponse } from './rsc-payload.ts';
|
|
50
|
+
import { renderRscStream } from './rsc-stream.ts';
|
|
51
|
+
import { renderSsrResponse } from './ssr-renderer.ts';
|
|
52
|
+
import { callSsr } from './ssr-bridge.ts';
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Static-per-handler dependencies for `renderRoute` — captured once at
|
|
@@ -28,19 +28,19 @@
|
|
|
28
28
|
|
|
29
29
|
import { stringifyCookie } from 'cookie';
|
|
30
30
|
|
|
31
|
-
import type { BuildManifest } from '../build-manifest.
|
|
32
|
-
import { canonicalize } from '../canonicalize.
|
|
33
|
-
import { getCookiesForSsr, seedRequestCookies } from '../cookie-context.
|
|
34
|
-
import { logRenderError } from '../logger.
|
|
35
|
-
import type { RouteMatch, RouteMatcher } from '../pipeline.
|
|
36
|
-
import { DenySignal, RedirectSignal } from '../primitives.
|
|
37
|
-
import { applyRequestHeaderOverlay, setSegmentParams } from '../request-context.
|
|
38
|
-
import { requestContextAls } from '../als-registry.
|
|
39
|
-
import { buildRouteElement } from '../route-element-builder.
|
|
40
|
-
import type { RevalidateRenderer, RevalidationResult } from '../actions.
|
|
31
|
+
import type { BuildManifest } from '../build-manifest.ts';
|
|
32
|
+
import { canonicalize } from '../canonicalize.ts';
|
|
33
|
+
import { getCookiesForSsr, seedRequestCookies } from '../cookie-context.ts';
|
|
34
|
+
import { logRenderError } from '../logger.ts';
|
|
35
|
+
import type { RouteMatch, RouteMatcher } from '../pipeline.ts';
|
|
36
|
+
import { DenySignal, RedirectSignal } from '../primitives.ts';
|
|
37
|
+
import { applyRequestHeaderOverlay, setSegmentParams } from '../request-context.ts';
|
|
38
|
+
import { requestContextAls } from '../als-registry.ts';
|
|
39
|
+
import { buildRouteElement } from '../route-element-builder.ts';
|
|
40
|
+
import type { RevalidateRenderer, RevalidationResult } from '../actions.ts';
|
|
41
41
|
|
|
42
|
-
import { runMiddlewareForAction, type CoerceSegmentParamsFn } from './action-middleware-runner.
|
|
43
|
-
import { RSC_CONTENT_TYPE } from '../../shared/rsc-media-type.
|
|
42
|
+
import { runMiddlewareForAction, type CoerceSegmentParamsFn } from './action-middleware-runner.ts';
|
|
43
|
+
import { RSC_CONTENT_TYPE } from '../../shared/rsc-media-type.ts';
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* Sentinel thrown when revalidation cannot proceed because middleware
|
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
* Design docs: 19-client-navigation.md §"RSC Payload Handling"
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type { LayoutEntry } from '../deny-renderer.
|
|
12
|
-
import { renderDenyPageAsRsc } from '../deny-renderer.
|
|
13
|
-
import type { RedirectSignal } from '../primitives.
|
|
14
|
-
import type { LayoutComponentEntry } from '../route-element-builder.
|
|
15
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
16
|
-
import type { SlotSkipEntry } from '../slot-resolver.
|
|
11
|
+
import type { LayoutEntry } from '../deny-renderer.ts';
|
|
12
|
+
import { renderDenyPageAsRsc } from '../deny-renderer.ts';
|
|
13
|
+
import type { RedirectSignal } from '../primitives.ts';
|
|
14
|
+
import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
15
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
16
|
+
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
17
17
|
|
|
18
|
-
import { buildRedirectResponse, buildSegmentInfo, createDebugChannelSink } from './helpers.
|
|
19
|
-
import { RSC_CONTENT_TYPE } from '../../shared/rsc-media-type.
|
|
18
|
+
import { buildRedirectResponse, buildSegmentInfo, createDebugChannelSink } from './helpers.ts';
|
|
19
|
+
import { RSC_CONTENT_TYPE } from '../../shared/rsc-media-type.ts';
|
|
20
20
|
|
|
21
|
-
import { rscErrorEnvelope } from '../../shared/rsc-error-envelope.
|
|
21
|
+
import { rscErrorEnvelope } from '../../shared/rsc-error-envelope.ts';
|
|
22
22
|
|
|
23
|
-
import type { RenderSignals } from './rsc-stream.
|
|
23
|
+
import type { RenderSignals } from './rsc-stream.ts';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Ceiling on waiting for a first chunk that is already in flight, used only
|
|
@@ -106,15 +106,19 @@ export async function buildRscPayloadResponse(
|
|
|
106
106
|
// Sync deny (AccessGate pre-pass replay) sets getDenyStatus() during
|
|
107
107
|
// renderToReadableStream — before the first chunk is read. Skip the
|
|
108
108
|
// wait entirely: components below the denied gate never execute.
|
|
109
|
-
const { getDenyStatus: earlyDenyCheck } = await import('../deny-boundary.
|
|
109
|
+
const { getDenyStatus: earlyDenyCheck } = await import('../deny-boundary.ts');
|
|
110
110
|
if (signals.shellSettled && !earlyDenyCheck()) {
|
|
111
111
|
// Wait for all deny-capable shell components to finish, or for an
|
|
112
112
|
// in-tree layout deny to short-circuit (setDenyStatus already
|
|
113
113
|
// called), or for a signal to escape to onError. TIM-1045, TIM-1208.
|
|
114
114
|
await Promise.race([signals.shellSettled, signalDetected]);
|
|
115
|
-
//
|
|
116
|
-
//
|
|
115
|
+
// onSettled fires from the raw metadata promise's rejection handler,
|
|
116
|
+
// which runs in the same microtask as the rejection. React Flight's
|
|
117
|
+
// onError fires synchronously inside that microtask (serializeThenable
|
|
118
|
+
// rejection → erroredTask → logRecoverableError → onError). One
|
|
119
|
+
// macrotask yield is enough for onError to set signals.denySignal /
|
|
117
120
|
// signals.redirectSignal / signals.renderError before we check.
|
|
121
|
+
// Pinned by tests/react-server/metadata-signal-ordering.test.ts.
|
|
118
122
|
await new Promise<void>((r) => setTimeout(r, 0));
|
|
119
123
|
} else if (!earlyDenyCheck()) {
|
|
120
124
|
// No deny-capable shell components (client component page, no deny
|
|
@@ -159,7 +163,7 @@ export async function buildRscPayloadResponse(
|
|
|
159
163
|
|
|
160
164
|
// Read the denied segment index from ALS — set by AccessGate during
|
|
161
165
|
// render. See TIM-1358, TIM-1365.
|
|
162
|
-
const { getFirstDeniedSegmentIndex: getDeniedIdx } = await import('../deny-boundary.
|
|
166
|
+
const { getFirstDeniedSegmentIndex: getDeniedIdx } = await import('../deny-boundary.ts');
|
|
163
167
|
return renderDenyPageAsRsc(
|
|
164
168
|
signals.unplacedDeny,
|
|
165
169
|
segments,
|
|
@@ -264,7 +268,7 @@ export async function buildRscPayloadResponse(
|
|
|
264
268
|
// See design/19-client-navigation.md §"X-Timber-State-Tree Header"
|
|
265
269
|
// Read the deny state before describing the tree — what mounted depends on it.
|
|
266
270
|
// Both values are recorded in ALS during render by AccessGate's catch path.
|
|
267
|
-
const { getDenyStatus, getFirstDeniedSegmentIndex } = await import('../deny-boundary.
|
|
271
|
+
const { getDenyStatus, getFirstDeniedSegmentIndex } = await import('../deny-boundary.ts');
|
|
268
272
|
const denyStatus = getDenyStatus();
|
|
269
273
|
const resolvedDenyIndex = getFirstDeniedSegmentIndex();
|
|
270
274
|
|
|
@@ -10,23 +10,23 @@
|
|
|
10
10
|
* 13-security.md §"Errors don't leak"
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import { renderToReadableStream } from '../../rsc-runtime/rsc.
|
|
14
|
-
import type { RscPayloadRoot } from '../../shared/payload-root.
|
|
13
|
+
import { renderToReadableStream } from '../../rsc-runtime/rsc.ts';
|
|
14
|
+
import type { RscPayloadRoot } from '../../shared/payload-root.ts';
|
|
15
15
|
|
|
16
16
|
import { randomUUID } from 'node:crypto';
|
|
17
17
|
|
|
18
|
-
import { logRenderError } from '../logger.
|
|
19
|
-
import { DenySignal, RedirectSignal, RenderError } from '../primitives.
|
|
20
|
-
import { checkAndWarnRscPropError } from '../rsc-prop-warnings.
|
|
18
|
+
import { logRenderError } from '../logger.ts';
|
|
19
|
+
import { DenySignal, RedirectSignal, RenderError } from '../primitives.ts';
|
|
20
|
+
import { checkAndWarnRscPropError } from '../rsc-prop-warnings.ts';
|
|
21
21
|
|
|
22
22
|
import {
|
|
23
23
|
createDebugChannelSink,
|
|
24
24
|
createDebugChannelCollector,
|
|
25
25
|
isAbortError,
|
|
26
26
|
type DebugComponentEntry,
|
|
27
|
-
} from './helpers.
|
|
28
|
-
import { isDebug } from '../debug.
|
|
29
|
-
import { isDevMode } from '../debug.
|
|
27
|
+
} from './helpers.ts';
|
|
28
|
+
import { isDebug } from '../debug.ts';
|
|
29
|
+
import { isDevMode } from '../debug.ts';
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* Mutable signal state captured during RSC rendering.
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
|
|
9
9
|
/// <reference types="@vitejs/plugin-rsc/types" />
|
|
10
10
|
|
|
11
|
-
import type { NavContext } from '../ssr-bridge-types.
|
|
11
|
+
import type { NavContext } from '../ssr-bridge-types.ts';
|
|
12
12
|
|
|
13
13
|
export async function callSsr(
|
|
14
14
|
rscStream: ReadableStream<Uint8Array>,
|
|
15
15
|
navContext: NavContext
|
|
16
16
|
): Promise<Response> {
|
|
17
|
-
let ssrEntry: typeof import('../ssr-entry.
|
|
17
|
+
let ssrEntry: typeof import('../ssr-entry.ts');
|
|
18
18
|
try {
|
|
19
|
-
ssrEntry = await import.meta.viteRsc.import<typeof import('../ssr-entry.
|
|
19
|
+
ssrEntry = await import.meta.viteRsc.import<typeof import('../ssr-entry.ts')>(
|
|
20
20
|
'../ssr-entry.js',
|
|
21
21
|
{ environment: 'ssr' }
|
|
22
22
|
);
|
|
@@ -12,35 +12,35 @@
|
|
|
12
12
|
* 05-streaming.md §"deferSuspenseFor and the Hold Window"
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import type { ClientBootstrapConfig } from '../html-injectors.
|
|
16
|
-
import { flightInitScript } from '../flight-scripts.
|
|
17
|
-
import { appVisibleSearch } from '../../shared/rsc-cache-key.
|
|
18
|
-
import { getSlotParamsForClient } from '../request-context.
|
|
19
|
-
import type { LayoutEntry } from '../deny-renderer.
|
|
20
|
-
import { renderDenyPage } from '../deny-renderer.
|
|
21
|
-
import type { RouteMatch } from '../pipeline.
|
|
22
|
-
import { SsrStreamError } from '../primitives.
|
|
23
|
-
import type { LayoutComponentEntry } from '../route-element-builder.
|
|
24
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
25
|
-
import type { SlotSkipEntry } from '../slot-resolver.
|
|
26
|
-
import type { NavContext } from '../ssr-bridge-types.
|
|
15
|
+
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
16
|
+
import { flightInitScript } from '../flight-scripts.ts';
|
|
17
|
+
import { appVisibleSearch } from '../../shared/rsc-cache-key.ts';
|
|
18
|
+
import { getSlotParamsForClient } from '../request-context.ts';
|
|
19
|
+
import type { LayoutEntry } from '../deny-renderer.ts';
|
|
20
|
+
import { renderDenyPage } from '../deny-renderer.ts';
|
|
21
|
+
import type { RouteMatch } from '../pipeline.ts';
|
|
22
|
+
import { SsrStreamError } from '../primitives.ts';
|
|
23
|
+
import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
24
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
25
|
+
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
26
|
+
import type { NavContext } from '../ssr-bridge-types.ts';
|
|
27
27
|
|
|
28
|
-
import { htmlEscapeJsonString } from '../flight-scripts.
|
|
28
|
+
import { htmlEscapeJsonString } from '../flight-scripts.ts';
|
|
29
29
|
import {
|
|
30
30
|
buildRedirectResponse,
|
|
31
31
|
buildSegmentInfo,
|
|
32
32
|
createDebugChannelSink,
|
|
33
33
|
isAbortError,
|
|
34
|
-
} from './helpers.
|
|
35
|
-
import { getCookiesForSsr } from '../cookie-context.
|
|
36
|
-
import { getDenyStatus, getFirstDeniedSegmentIndex } from '../deny-boundary.
|
|
37
|
-
import { renderErrorPage, type GlobalErrorFile } from './error-renderer.
|
|
38
|
-
import { callSsr } from './ssr-bridge.
|
|
39
|
-
import type { RenderSignals } from './rsc-stream.
|
|
40
|
-
import { recordTiming } from '../server-timing.
|
|
41
|
-
import { teeWithErrorPropagation } from '../stream-utils.
|
|
42
|
-
import { addSpanEventSync } from '../tracing.
|
|
43
|
-
import { isDevMode } from '../debug.
|
|
34
|
+
} from './helpers.ts';
|
|
35
|
+
import { getCookiesForSsr } from '../cookie-context.ts';
|
|
36
|
+
import { getDenyStatus, getFirstDeniedSegmentIndex } from '../deny-boundary.ts';
|
|
37
|
+
import { renderErrorPage, type GlobalErrorFile } from './error-renderer.ts';
|
|
38
|
+
import { callSsr } from './ssr-bridge.ts';
|
|
39
|
+
import type { RenderSignals } from './rsc-stream.ts';
|
|
40
|
+
import { recordTiming } from '../server-timing.ts';
|
|
41
|
+
import { teeWithErrorPropagation } from '../stream-utils.ts';
|
|
42
|
+
import { addSpanEventSync } from '../tracing.ts';
|
|
43
|
+
import { isDevMode } from '../debug.ts';
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* Maximum number of queueMicrotask yields during signal promotion.
|