@timber-js/app 0.2.0-alpha.192 → 0.2.0-alpha.195
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-3Wutm8pH.js} +7 -6
- package/dist/_chunks/{cli-schema-sync-D4_AZVUb.js.map → cli-schema-sync-3Wutm8pH.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 → error-boundary-D-lkwyaD.js} +3 -3
- package/dist/_chunks/{error-boundary-D-ODYX41.js.map → error-boundary-D-lkwyaD.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 → router-ref-BzqbPwYC.js} +2 -2
- package/dist/_chunks/{router-ref-DuYuV_0Q.js.map → router-ref-BzqbPwYC.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 → ssr-data-Ya2HJPFp.js} +1 -7
- package/dist/_chunks/{ssr-data-14MXm7Pj.js.map → ssr-data-Ya2HJPFp.js.map} +1 -1
- package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -1
- package/dist/_chunks/{use-segment-params-C4r4BD9T.js → use-segment-params-DzTBpkvj.js} +3 -3
- package/dist/_chunks/use-segment-params-DzTBpkvj.js.map +1 -0
- package/dist/_chunks/{walkers-BsVLmD1S.js → walkers-BU6z9xRV.js} +9 -6
- package/dist/_chunks/{walkers-BsVLmD1S.js.map → walkers-BU6z9xRV.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/error-boundary.js +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 +3 -3
- 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 +15 -19
- 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 +12 -9
- 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 +4 -5
- 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 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +861 -314
- 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 +1 -1
- 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 +34 -38
- 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 +1024 -1026
- 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 +7 -4
- package/docs/api/36-cli.mdx +23 -3
- package/docs/learn/11-error-handling.mdx +11 -0
- package/docs/learn/13-configuration.mdx +1 -1
- package/docs/more/01-advanced-routing.mdx +1 -0
- package/package.json +11 -10
- 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 +12 -9
- 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 +90 -95
- 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 +4 -3
- 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 +9 -2
- 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/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/_chunks/use-segment-params-C4r4BD9T.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
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Design docs: 19-client-navigation.md §"RSC Payload Handling"
|
|
9
9
|
*/
|
|
10
|
-
import type { LayoutComponentEntry } from '../route-element-builder.
|
|
11
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
12
|
-
import type { SlotSkipEntry } from '../slot-resolver.
|
|
13
|
-
import type { RenderSignals } from './rsc-stream.
|
|
10
|
+
import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
11
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
12
|
+
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
13
|
+
import type { RenderSignals } from './rsc-stream.ts';
|
|
14
14
|
/**
|
|
15
15
|
* Build an RSC payload Response for a client-side navigation request.
|
|
16
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWrD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,oBAAoB,EAAE,EACxC,eAAe,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,aAAa,EAAE,GAC7B,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"rsc-payload.d.ts","sourceRoot":"","sources":["../../../src/server/rsc-entry/rsc-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWrD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,oBAAoB,EAAE,EACxC,eAAe,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,aAAa,EAAE,GAC7B,OAAO,CAAC,QAAQ,CAAC,CA6PnB"}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* Design docs: 02-rendering-pipeline.md §"Single-Pass Rendering",
|
|
10
10
|
* 13-security.md §"Errors don't leak"
|
|
11
11
|
*/
|
|
12
|
-
import type { RscPayloadRoot } from '../../shared/payload-root.
|
|
13
|
-
import { DenySignal, RedirectSignal } from '../primitives.
|
|
14
|
-
import { type DebugComponentEntry } from './helpers.
|
|
12
|
+
import type { RscPayloadRoot } from '../../shared/payload-root.ts';
|
|
13
|
+
import { DenySignal, RedirectSignal } from '../primitives.ts';
|
|
14
|
+
import { type DebugComponentEntry } from './helpers.ts';
|
|
15
15
|
/**
|
|
16
16
|
* Mutable signal state captured during RSC rendering.
|
|
17
17
|
*
|
|
@@ -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.
|
|
8
|
+
import type { NavContext } from '../ssr-bridge-types.ts';
|
|
9
9
|
export declare function callSsr(rscStream: ReadableStream<Uint8Array>, navContext: NavContext): Promise<Response>;
|
|
10
10
|
//# sourceMappingURL=ssr-bridge.d.ts.map
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
* Design docs: 02-rendering-pipeline.md §"RSC → SSR → Client Hydration",
|
|
12
12
|
* 05-streaming.md §"deferSuspenseFor and the Hold Window"
|
|
13
13
|
*/
|
|
14
|
-
import type { ClientBootstrapConfig } from '../html-injectors.
|
|
15
|
-
import type { RouteMatch } from '../pipeline.
|
|
16
|
-
import type { LayoutComponentEntry } from '../route-element-builder.
|
|
17
|
-
import type { ManifestSegmentNode } from '../route-matcher.
|
|
18
|
-
import type { SlotSkipEntry } from '../slot-resolver.
|
|
19
|
-
import { type GlobalErrorFile } from './error-renderer.
|
|
20
|
-
import type { RenderSignals } from './rsc-stream.
|
|
14
|
+
import type { ClientBootstrapConfig } from '../html-injectors.ts';
|
|
15
|
+
import type { RouteMatch } from '../pipeline.ts';
|
|
16
|
+
import type { LayoutComponentEntry } from '../route-element-builder.ts';
|
|
17
|
+
import type { ManifestSegmentNode } from '../route-matcher.ts';
|
|
18
|
+
import type { SlotSkipEntry } from '../slot-resolver.ts';
|
|
19
|
+
import { type GlobalErrorFile } from './error-renderer.ts';
|
|
20
|
+
import type { RenderSignals } from './rsc-stream.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
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
* validation runs at the pipeline boundary. Per-action auth/validation
|
|
27
27
|
* belongs in `createActionClient({ middleware })`.
|
|
28
28
|
*/
|
|
29
|
-
import type { BodyLimitsConfig } from '../body-limits.
|
|
30
|
-
import { type CsrfConfig } from '../csrf.
|
|
31
|
-
import type { RouteMatcher } from '../pipeline.
|
|
32
|
-
import type { SensitiveFieldsOption } from '../sensitive-fields.
|
|
33
|
-
import type { RevalidateRenderer } from '../actions.
|
|
29
|
+
import type { BodyLimitsConfig } from '../body-limits.ts';
|
|
30
|
+
import { type CsrfConfig } from '../csrf.ts';
|
|
31
|
+
import type { RouteMatcher } from '../pipeline.ts';
|
|
32
|
+
import type { SensitiveFieldsOption } from '../sensitive-fields.ts';
|
|
33
|
+
import type { RevalidateRenderer } from '../actions.ts';
|
|
34
34
|
/**
|
|
35
35
|
* Build a `RevalidateRenderer` for a specific request.
|
|
36
36
|
*
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* See design/16-metadata.md §"Auto-generated Sitemap"
|
|
15
15
|
*/
|
|
16
|
-
import type { SegmentNode } from '../routing/types.
|
|
17
|
-
import type { CoercedParams } from '../shared/param-value.
|
|
16
|
+
import type { SegmentNode } from '../routing/types.ts';
|
|
17
|
+
import type { CoercedParams } from '../shared/param-value.ts';
|
|
18
18
|
/** Configuration for sitemap generation from timber.config.ts. */
|
|
19
19
|
export interface SitemapConfig {
|
|
20
20
|
/** Must be explicitly true to enable auto-generation. */
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* segment's layout still be skipped, given what its slots would render?" — with
|
|
7
7
|
* no dependency on element construction.
|
|
8
8
|
*/
|
|
9
|
-
import type { ManifestSegmentNode } from './route-matcher.
|
|
10
|
-
import type { RouteMatch } from './pipeline.
|
|
11
|
-
import { type ClientStateTree } from './state-tree-diff.
|
|
9
|
+
import type { ManifestSegmentNode } from './route-matcher.ts';
|
|
10
|
+
import type { RouteMatch } from './pipeline.ts';
|
|
11
|
+
import { type ClientStateTree } from './state-tree-diff.ts';
|
|
12
12
|
/**
|
|
13
13
|
* Truncate the skippable prefix when a skippable layout has slots whose
|
|
14
14
|
* content changed between the departing and destination URLs (TIM-1232).
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
*
|
|
15
15
|
* See design/07-routing.md §"Intercepting Routes"
|
|
16
16
|
*/
|
|
17
|
-
import type { ManifestSegmentNode } from './route-matcher.
|
|
18
|
-
import type { SlotMatchResult } from './slot-resolver.
|
|
17
|
+
import type { ManifestSegmentNode } from './route-matcher.ts';
|
|
18
|
+
import type { SlotMatchResult } from './slot-resolver.ts';
|
|
19
19
|
/**
|
|
20
20
|
* Find a matching intercepting route in a slot's children for the target pathname.
|
|
21
21
|
*
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* See design/02-rendering-pipeline.md §"Parallel Slots"
|
|
17
17
|
*/
|
|
18
|
-
import type { InterceptionContext, RouteMatch } from './pipeline.
|
|
19
|
-
import type { ManifestSegmentNode } from './route-matcher.
|
|
20
|
-
import { type ClientStateTree } from './state-tree-diff.
|
|
18
|
+
import type { InterceptionContext, RouteMatch } from './pipeline.ts';
|
|
19
|
+
import type { ManifestSegmentNode } from './route-matcher.ts';
|
|
20
|
+
import { type ClientStateTree } from './state-tree-diff.ts';
|
|
21
21
|
type CreateElementFn = (...args: unknown[]) => React.ReactElement;
|
|
22
22
|
/**
|
|
23
23
|
* Resolve the element for a parallel slot.
|
|
@@ -74,10 +74,6 @@ export interface SlotMatchResult {
|
|
|
74
74
|
* pathname at the same point and already used `indexOf(owner)`. Two derivations
|
|
75
75
|
* of one index is how they came apart; this is the shared one.
|
|
76
76
|
*
|
|
77
|
-
* The `urlPath` search survives only as a fallback for a `slotNode` that is not
|
|
78
|
-
* attached to any segment in the chain. Production never does that —
|
|
79
|
-
* `resolveSlotProps` iterates `segment.slots` — but unit tests construct a slot
|
|
80
|
-
* node standalone, and for those the old behaviour is still the right answer.
|
|
81
77
|
*/
|
|
82
78
|
export declare function findSlotOwnerIndex(slotNode: ManifestSegmentNode, segments: ManifestSegmentNode[]): number;
|
|
83
79
|
export interface SlotSkipEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-resolver.d.ts","sourceRoot":"","sources":["../../src/server/slot-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,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,CAoIpC;AAsKD,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
|
|
1
|
+
{"version":3,"file":"slot-resolver.d.ts","sourceRoot":"","sources":["../../src/server/slot-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,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,CAoIpC;AAsKD,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;AA+BD,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,cAAc,EAAE,MAAM,CAAC;IACvB,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,cAAc,EACd,eAAe,EACf,YAAY,GACb,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwIzD"}
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
* See `design/02-rendering-pipeline.md` §"RSC → SSR → Client Hydration"
|
|
29
29
|
* and `CLAUDE.md` §"RSC and SSR Are Separate Vite Environments".
|
|
30
30
|
*/
|
|
31
|
-
import type { CoercedParams } from '../shared/param-value.
|
|
32
|
-
import type { SlotParamsRecord } from '../shared/slot-params.
|
|
31
|
+
import type { CoercedParams } from '../shared/param-value.ts';
|
|
32
|
+
import type { SlotParamsRecord } from '../shared/slot-params.ts';
|
|
33
33
|
/**
|
|
34
34
|
* Navigation context passed from the RSC environment to SSR.
|
|
35
35
|
*
|
|
@@ -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.
|
|
14
|
+
import type { NavContext } from './ssr-bridge-types.ts';
|
|
15
15
|
/**
|
|
16
16
|
* Handle SSR: decode an RSC stream and render it to hydration-ready HTML.
|
|
17
17
|
*
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Design docs: design/11-platform.md §"static output mode"
|
|
20
20
|
*/
|
|
21
|
-
import type { ManifestRoot, ManifestSegmentNode } from './route-matcher.
|
|
21
|
+
import type { ManifestRoot, ManifestSegmentNode } from './route-matcher.ts';
|
|
22
22
|
/** A single rendered static page ready for the caller to write to disk. */
|
|
23
23
|
export interface StaticPageEntry {
|
|
24
24
|
/** The URL path (e.g., "/about", "/blog/first-post"). */
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* it can be exercised directly: every branch is a different diagnosis handed
|
|
12
12
|
* to a developer, and a wrong one sends them to the wrong file.
|
|
13
13
|
*/
|
|
14
|
-
import type { ManifestSegmentNode } from './route-matcher.
|
|
14
|
+
import type { ManifestSegmentNode } from './route-matcher.ts';
|
|
15
15
|
/**
|
|
16
16
|
* The probe path. `_timber/` is the framework's reserved prefix and
|
|
17
17
|
* `__not_found` is a private segment (double underscore), so user routes —
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* Per-segment (leaf → root): {status}.tsx → 5xx.tsx → error.tsx
|
|
31
31
|
* Then framework default (returns null)
|
|
32
32
|
*/
|
|
33
|
-
import type { SegmentNode } from '../routing/types.
|
|
33
|
+
import type { SegmentNode } from '../routing/types.ts';
|
|
34
34
|
/** How the status-code file was matched. */
|
|
35
35
|
export type StatusFileKind = 'exact' | 'category' | 'error';
|
|
36
36
|
/** Response format family for status-code resolution. */
|
package/dist/server/tracing.d.ts
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* See design/17-logging.md §"trace_id is Always Set"
|
|
9
9
|
*/
|
|
10
|
-
import { type TraceStore } from './als-registry.
|
|
11
|
-
export type { TraceStore } from './als-registry.
|
|
10
|
+
import { type TraceStore } from './als-registry.ts';
|
|
11
|
+
export type { TraceStore } from './als-registry.ts';
|
|
12
12
|
/**
|
|
13
13
|
* Returns the current request's trace ID — always a 32-char lowercase hex string.
|
|
14
14
|
*
|
|
@@ -59,7 +59,7 @@ export declare function getTraceStore(): TraceStore | undefined;
|
|
|
59
59
|
* Idempotent across module re-evaluations (HMR) — only the first call
|
|
60
60
|
* registers. Only called in dev mode — zero overhead in production.
|
|
61
61
|
*/
|
|
62
|
-
export declare function initDevTracing(config: import('../dev-tools/logger.
|
|
62
|
+
export declare function initDevTracing(config: import('../dev-tools/logger.ts').DevLoggerConfig): Promise<void>;
|
|
63
63
|
/**
|
|
64
64
|
* A native platform span. Mirrors the subset of the Cloudflare Workers
|
|
65
65
|
* `Span` API that timber uses. See design/17-logging.md §"Cloudflare Native
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* See design/02-rendering-pipeline.md §"Element Tree Construction"
|
|
11
11
|
*/
|
|
12
12
|
import type { ReactNode } from 'react';
|
|
13
|
-
import type { RouteFile, SegmentNode } from '../routing/types.
|
|
14
|
-
import type { LoadedComponent } from './utils/element-type.
|
|
13
|
+
import type { RouteFile, SegmentNode } from '../routing/types.ts';
|
|
14
|
+
import type { LoadedComponent } from './utils/element-type.ts';
|
|
15
15
|
/** A loaded module for a route file convention. */
|
|
16
16
|
export interface LoadedModule {
|
|
17
17
|
/** The default export (component, access function, etc.) */
|
|
@@ -88,7 +88,7 @@ export interface AccessGateProps {
|
|
|
88
88
|
* Omitted for skipped segments — a deny there must hard-navigate to
|
|
89
89
|
* avoid rendering the deny page inside cached layout chrome (TIM-1074).
|
|
90
90
|
*/
|
|
91
|
-
denyPages?: import('./deny-boundary.
|
|
91
|
+
denyPages?: import('./deny-boundary.ts').DenyPageEntry[];
|
|
92
92
|
/**
|
|
93
93
|
* When true, this gate wraps a skipped segment. On deny, the gate
|
|
94
94
|
* records the deny in ALS and rethrows so the response path can
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* See design/07-routing.md §"Request Lifecycle" and TIM-940.
|
|
16
16
|
*/
|
|
17
|
-
import type { SegmentNode } from '../routing/types.
|
|
17
|
+
import type { SegmentNode } from '../routing/types.ts';
|
|
18
18
|
/** Result of matching URL parts against a segment tree. */
|
|
19
19
|
export interface TreeMatchResult<TFile> {
|
|
20
20
|
/** Matched segment chain from root to leaf, inclusive. */
|
package/dist/server/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CoercedParams } from '../shared/param-value.
|
|
2
|
-
import type { EarlyHint } from './early-hints.
|
|
1
|
+
import type { CoercedParams } from '../shared/param-value.ts';
|
|
2
|
+
import type { EarlyHint } from './early-hints.ts';
|
|
3
3
|
/**
|
|
4
4
|
* A value that is safe to pass through `JSON.stringify` without data loss.
|
|
5
5
|
*
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* See design/10-error-handling.md §"Status-Code File Variants".
|
|
10
10
|
*/
|
|
11
|
+
/** MDX/markdown extensions (dotted) — the canonical list, also used by plugins/mdx.ts. */
|
|
12
|
+
export declare const MDX_EXTENSIONS: Set<string>;
|
|
11
13
|
/**
|
|
12
14
|
* Check if a file path ends with an MDX/markdown extension.
|
|
13
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdx-file.d.ts","sourceRoot":"","sources":["../../../src/server/utils/mdx-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"mdx-file.d.ts","sourceRoot":"","sources":["../../../src/server/utils/mdx-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,0FAA0F;AAC1F,eAAO,MAAM,cAAc,aAA2B,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIvD"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Design doc: design/06-caching.md, design/25-production-deployments.md
|
|
10
10
|
*/
|
|
11
|
-
import type { WorkersCachePurgeCtx } from './als-registry.
|
|
11
|
+
import type { WorkersCachePurgeCtx } from './als-registry.ts';
|
|
12
12
|
/**
|
|
13
13
|
* Run a function with Workers Cache purge context available.
|
|
14
14
|
*
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* See design/23-search-params.md §"defineSearchParams — The Factory" and
|
|
31
31
|
* design/41-global-params.md.
|
|
32
32
|
*/
|
|
33
|
-
import type { CoercedParams } from './param-value.
|
|
33
|
+
import type { CoercedParams } from './param-value.ts';
|
|
34
34
|
/** @internal Called from `server/request-context.ts` at module init. */
|
|
35
35
|
export declare const _setGetSearchParamsFn: (fn: () => URLSearchParams) => void;
|
|
36
36
|
/** @internal Read by `search-params/define.ts` inside `.get()`. */
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
* through `server/publish-params.ts` and the client reads them through the
|
|
32
32
|
* helpers here — producer and consumer do not each describe the payload.
|
|
33
33
|
*/
|
|
34
|
-
import type { CoercedParams } from './param-value.
|
|
35
|
-
import type { SlotParamsRecord } from './slot-params.
|
|
34
|
+
import type { CoercedParams } from './param-value.ts';
|
|
35
|
+
import type { SlotParamsRecord } from './slot-params.ts';
|
|
36
36
|
/** The params published beside a tree. */
|
|
37
37
|
export interface PublishedParams {
|
|
38
38
|
/** The main route's coerced params. */
|
|
@@ -37,4 +37,16 @@ export declare const RSC_CONTENT_TYPE = "text/x-component";
|
|
|
37
37
|
* to move the adapter's generated `isRsc` in the same commit — see above.
|
|
38
38
|
*/
|
|
39
39
|
export declare function isRscRequest(req: Request): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Does this Content-Type header value designate an RSC Flight payload?
|
|
42
|
+
*
|
|
43
|
+
* Case-insensitive exact media-type match per RFC 9110 §8.3.1 — media types
|
|
44
|
+
* are case-insensitive. Parameters (`;charset=utf-8`) are stripped before
|
|
45
|
+
* comparison.
|
|
46
|
+
*
|
|
47
|
+
* Contrast with `isRscRequest`, which uses substring containment because
|
|
48
|
+
* `Accept` is a list of types. A `Content-Type` header names exactly one
|
|
49
|
+
* type, so substring would over-match (e.g. `text/x-component-v2`).
|
|
50
|
+
*/
|
|
51
|
+
export declare function isRscContentType(contentType: string | null): boolean;
|
|
40
52
|
//# sourceMappingURL=rsc-media-type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-media-type.d.ts","sourceRoot":"","sources":["../../src/shared/rsc-media-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAElD"}
|
|
1
|
+
{"version":3,"file":"rsc-media-type.d.ts","sourceRoot":"","sources":["../../src/shared/rsc-media-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGpE"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* See design/41-global-params.md §"Params in a parallel slot".
|
|
19
19
|
*/
|
|
20
|
-
import type { CoercedParams } from './param-value.
|
|
20
|
+
import type { CoercedParams } from './param-value.ts';
|
|
21
21
|
/** Slot tree path → that slot's own coerced params. */
|
|
22
22
|
export type SlotParamsRecord = Record<string, CoercedParams>;
|
|
23
23
|
/**
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Design doc: 24-fonts.md, "Next.js Font Compatibility"
|
|
18
18
|
*/
|
|
19
|
-
import type { GoogleFontConfig, FontResult } from '../fonts/types.
|
|
19
|
+
import type { GoogleFontConfig, FontResult } from '../fonts/types.ts';
|
|
20
20
|
export type { GoogleFontConfig, FontResult };
|
|
21
21
|
/**
|
|
22
22
|
* Generic font loader — accepts any font name, returns a stub FontResult.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-google.js","names":[],"sources":["../../src/shims/font-google.ts"],"sourcesContent":["/**\n * Fallback shim for `next/font/google` → `@timber/fonts/google`.\n *\n * At build time, the timber-fonts plugin's transform hook replaces font\n * function calls with static FontResult objects containing real class names\n * and font stacks. This file serves two purposes:\n *\n * 1. **TypeScript resolution** — provides types for IDEs and `tsc` outside\n * of Vite's module graph (where the virtual module handles it).\n * 2. **Runtime fallback** — returns empty className/fontFamily values when\n * the plugin hasn't processed a call (e.g. in tests or non-Vite environments).\n *\n * The shim resolution path (`next/font/google` → `\\0@timber/fonts/google`)\n * is unchanged — this file is NOT on that resolution path. It exists as a\n * physical module for direct imports and type re-exports.\n *\n * Design doc: 24-fonts.md, \"Next.js Font Compatibility\"\n */\n\nimport type { GoogleFontConfig, FontResult } from '../fonts/types.
|
|
1
|
+
{"version":3,"file":"font-google.js","names":[],"sources":["../../src/shims/font-google.ts"],"sourcesContent":["/**\n * Fallback shim for `next/font/google` → `@timber/fonts/google`.\n *\n * At build time, the timber-fonts plugin's transform hook replaces font\n * function calls with static FontResult objects containing real class names\n * and font stacks. This file serves two purposes:\n *\n * 1. **TypeScript resolution** — provides types for IDEs and `tsc` outside\n * of Vite's module graph (where the virtual module handles it).\n * 2. **Runtime fallback** — returns empty className/fontFamily values when\n * the plugin hasn't processed a call (e.g. in tests or non-Vite environments).\n *\n * The shim resolution path (`next/font/google` → `\\0@timber/fonts/google`)\n * is unchanged — this file is NOT on that resolution path. It exists as a\n * physical module for direct imports and type re-exports.\n *\n * Design doc: 24-fonts.md, \"Next.js Font Compatibility\"\n */\n\nimport type { GoogleFontConfig, FontResult } from '../fonts/types.ts';\n\nexport type { GoogleFontConfig, FontResult };\n\n/**\n * Create a stub FontResult with empty values.\n *\n * The timber-fonts plugin replaces these calls at build time with real\n * class names and font stacks. This stub ensures code that imports\n * font functions outside of the build pipeline (tests, type-checking)\n * gets a valid FontResult shape without runtime errors.\n */\nfunction createStubFontResult(config?: GoogleFontConfig): FontResult {\n return {\n className: '',\n style: { fontFamily: '' },\n variable: config?.variable,\n };\n}\n\n/**\n * Generic font loader — accepts any font name, returns a stub FontResult.\n *\n * Named exports like `Inter`, `Roboto`, etc. are generated dynamically\n * by the virtual module at build time. This function provides a catch-all\n * for non-Vite contexts.\n */\nexport function createFont(_family: string, config?: GoogleFontConfig): FontResult {\n return createStubFontResult(config);\n}\n\n// Common Google Font exports for TypeScript autocomplete.\n// These are stubs — the virtual module and transform hook provide real values.\nexport const Inter = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Roboto = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Open_Sans = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Lato = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Montserrat = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Poppins = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Geist = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const Geist_Mono = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\nexport const JetBrains_Mono = (config?: GoogleFontConfig): FontResult =>\n createStubFontResult(config);\nexport const Source_Code_Pro = (config?: GoogleFontConfig): FontResult =>\n createStubFontResult(config);\nexport const Playfair_Display = (config?: GoogleFontConfig): FontResult =>\n createStubFontResult(config);\nexport const Merriweather = (config?: GoogleFontConfig): FontResult => createStubFontResult(config);\n"],"mappings":";;;;;;;;;AA+BA,SAAS,qBAAqB,QAAuC;CACnE,OAAO;EACL,WAAW;EACX,OAAO,EAAE,YAAY,GAAG;EACxB,UAAU,QAAQ;CACpB;AACF;;;;;;;;AASA,SAAgB,WAAW,SAAiB,QAAuC;CACjF,OAAO,qBAAqB,MAAM;AACpC;AAIA,IAAa,SAAS,WAA0C,qBAAqB,MAAM;AAC3F,IAAa,UAAU,WAA0C,qBAAqB,MAAM;AAC5F,IAAa,aAAa,WAA0C,qBAAqB,MAAM;AAC/F,IAAa,QAAQ,WAA0C,qBAAqB,MAAM;AAC1F,IAAa,cAAc,WAA0C,qBAAqB,MAAM;AAChG,IAAa,WAAW,WAA0C,qBAAqB,MAAM;AAC7F,IAAa,SAAS,WAA0C,qBAAqB,MAAM;AAC3F,IAAa,cAAc,WAA0C,qBAAqB,MAAM;AAChG,IAAa,kBAAkB,WAC7B,qBAAqB,MAAM;AAC7B,IAAa,mBAAmB,WAC9B,qBAAqB,MAAM;AAC7B,IAAa,oBAAoB,WAC/B,qBAAqB,MAAM;AAC7B,IAAa,gBAAgB,WAA0C,qBAAqB,MAAM"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Design doc: 24-fonts.md, "Next.js Font Compatibility"
|
|
14
14
|
*/
|
|
15
|
-
import type { LocalFontConfig, FontResult } from '../fonts/types.
|
|
15
|
+
import type { LocalFontConfig, FontResult } from '../fonts/types.ts';
|
|
16
16
|
export type { LocalFontConfig, FontResult };
|
|
17
17
|
/**
|
|
18
18
|
* Create a local font.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-local.js","names":[],"sources":["../../src/shims/font-local.ts"],"sourcesContent":["/**\n * Fallback shim for `next/font/local` → `@timber/fonts/local`.\n *\n * At build time, the timber-fonts plugin's transform hook replaces\n * `localFont()` calls with static FontResult objects containing real\n * class names and font stacks. This file serves two purposes:\n *\n * 1. **TypeScript resolution** — provides types for IDEs and `tsc` outside\n * of Vite's module graph (where the virtual module handles it).\n * 2. **Runtime fallback** — returns empty className/fontFamily values when\n * the plugin hasn't processed a call (e.g. in tests or non-Vite environments).\n *\n * Design doc: 24-fonts.md, \"Next.js Font Compatibility\"\n */\n\nimport type { LocalFontConfig, FontResult } from '../fonts/types.
|
|
1
|
+
{"version":3,"file":"font-local.js","names":[],"sources":["../../src/shims/font-local.ts"],"sourcesContent":["/**\n * Fallback shim for `next/font/local` → `@timber/fonts/local`.\n *\n * At build time, the timber-fonts plugin's transform hook replaces\n * `localFont()` calls with static FontResult objects containing real\n * class names and font stacks. This file serves two purposes:\n *\n * 1. **TypeScript resolution** — provides types for IDEs and `tsc` outside\n * of Vite's module graph (where the virtual module handles it).\n * 2. **Runtime fallback** — returns empty className/fontFamily values when\n * the plugin hasn't processed a call (e.g. in tests or non-Vite environments).\n *\n * Design doc: 24-fonts.md, \"Next.js Font Compatibility\"\n */\n\nimport type { LocalFontConfig, FontResult } from '../fonts/types.ts';\n\nexport type { LocalFontConfig, FontResult };\n\n/**\n * Create a local font.\n *\n * The timber-fonts plugin replaces these calls at build time with real\n * class names and font stacks. This stub ensures code that imports\n * `localFont` outside of the build pipeline (tests, type-checking)\n * gets a valid FontResult shape without runtime errors.\n */\nexport default function localFont(config?: LocalFontConfig): FontResult {\n return {\n className: '',\n style: { fontFamily: '' },\n variable: config?.variable,\n };\n}\n"],"mappings":";;;;;;;;;AA2BA,SAAwB,UAAU,QAAsC;CACtE,OAAO;EACL,WAAW;EACX,OAAO,EAAE,YAAY,GAAG;EACxB,UAAU,QAAQ;CACpB;AACF"}
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
*
|
|
23
23
|
* See design/14-ecosystem.md §"next/navigation" for the full shim audit.
|
|
24
24
|
*/
|
|
25
|
-
import type { RedirectTypeValue } from '../shared/redirect-type.
|
|
26
|
-
export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.
|
|
27
|
-
export { useSearchParams } from '../client/use-search-params.
|
|
25
|
+
import type { RedirectTypeValue } from '../shared/redirect-type.ts';
|
|
26
|
+
export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.ts';
|
|
27
|
+
export { useSearchParams } from '../client/use-search-params.ts';
|
|
28
28
|
export { usePathname, useRouter, useSelectedLayoutSegment, useSelectedLayoutSegments, } from '@timber-js/app/client';
|
|
29
|
-
export { RedirectType } from '../shared/redirect-type.
|
|
29
|
+
export { RedirectType } from '../shared/redirect-type.ts';
|
|
30
30
|
/**
|
|
31
31
|
* Client-render redirect. Throws a redirect-digest error that the nearest
|
|
32
32
|
* TimberErrorBoundary converts into an SPA navigation (replace semantics).
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Server functions import from @timber-js/app/server for ALS singleton consistency.
|
|
10
10
|
*/
|
|
11
|
-
export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.
|
|
12
|
-
export { useSearchParams } from '../client/use-search-params.
|
|
11
|
+
export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.ts';
|
|
12
|
+
export { useSearchParams } from '../client/use-search-params.ts';
|
|
13
13
|
export { usePathname, useRouter, useSelectedLayoutSegment, useSelectedLayoutSegments, } from '@timber-js/app/client';
|
|
14
14
|
export { redirect, redirectExternal, RedirectType } from '@timber-js/app/server';
|
|
15
15
|
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -252,17 +252,20 @@ Disable encryption in dev mode for easier debugging of bound args. Has no effect
|
|
|
252
252
|
### `reactCompiler`
|
|
253
253
|
|
|
254
254
|
- **Type:** `boolean | { compilationMode?: string; target?: string }`
|
|
255
|
-
- **Default:** `
|
|
255
|
+
- **Default:** `true`
|
|
256
|
+
|
|
257
|
+
Enable the React Compiler for automatic memoization of components and hooks at build time. Uses `@vitejs/plugin-react`'s native OXC-based compiler path — JSX and compilation run in a single Rust pass with no Babel overhead.
|
|
256
258
|
|
|
257
|
-
|
|
259
|
+
Enabled by default. Set to `false` to disable. Enabling the compiler disables React Fast Refresh — HMR still works but component state is not preserved across edits.
|
|
258
260
|
|
|
259
261
|
```ts
|
|
260
|
-
reactCompiler: true // enable with defaults
|
|
262
|
+
reactCompiler: true // enable with defaults (the default)
|
|
261
263
|
reactCompiler: { compilationMode: 'annotation' } // only compile 'use memo' files
|
|
262
264
|
reactCompiler: { target: '18' } // target React 18
|
|
265
|
+
reactCompiler: false // disable
|
|
263
266
|
```
|
|
264
267
|
|
|
265
|
-
|
|
268
|
+
`oxc-transform-react` is included automatically as a dependency of `@timber-js/app`.
|
|
266
269
|
|
|
267
270
|
### `sitemap`
|
|
268
271
|
|
package/docs/api/36-cli.mdx
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: 'CLI'
|
|
3
|
-
description: 'timber dev, build, preview, check, and init commands.'
|
|
3
|
+
description: 'timber dev, build, preview, check, graph, and init commands.'
|
|
4
4
|
slug: 'cli'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CLI
|
|
8
8
|
|
|
9
|
-
timber.js provides
|
|
9
|
+
timber.js provides a small set of commands. All are thin wrappers around Vite with timber-specific behavior.
|
|
10
10
|
|
|
11
11
|
```tsx
|
|
12
12
|
timber < command > [--config<path>][--project<path>];
|
|
@@ -118,6 +118,24 @@ If it is missing, `timber check` fails with that instruction. It never passes by
|
|
|
118
118
|
|
|
119
119
|
Useful in CI pipelines and pre-commit hooks to catch type and routing errors without a full build.
|
|
120
120
|
|
|
121
|
+
### `timber graph`
|
|
122
|
+
|
|
123
|
+
Classify a file's module environment(s) — server, client boundary, client-internal, shared, server action, or unreferenced.
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
timber graph app/dashboard/nav.tsx # human-readable answer
|
|
127
|
+
timber graph app/dashboard/nav.tsx --json # machine contract for tools and agents
|
|
128
|
+
timber graph --all --json # classify the whole project
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
A file is not intrinsically "client" or "server" — its environment is a property of the import graph. `timber graph` answers from timber's **development module graphs** — the same Vite resolution pipeline `timber dev` runs (aliases, tsconfig paths, `react-server` export conditions), evaluated under serve/development mode. For most apps that is also what production builds; a config that branches on `command` or `mode` is classified as its dev variant. The output includes the environments the file is instantiated in, the import chain(s) that put it there (with the `'use client'` boundary marked), and report-only warnings when a file imports something exclusive to the other side (`node:*` from client-reachable code, `client-only` from server code).
|
|
132
|
+
|
|
133
|
+
The first query after a clone or a file change runs a full-project crawl — typically ~2.5 s, up to ~10 s on plugin-heavy apps. Every subsequent query is a cache hit (milliseconds) until the project changes; the cache lives at `.timber/graph-cache.json` and invalidates automatically on any source, config, or lockfile change.
|
|
134
|
+
|
|
135
|
+
`--json` is the stable machine contract: `{ version, source, cached, target, kind, pending, subtreeUnknown, envs, boundary, chains, poisonings }`. `--all` requires `--json`.
|
|
136
|
+
|
|
137
|
+
> **Note:** unlike every other command, `timber graph` discovers the Vite config by walking **up from the target file**, not from the directory you run it in — so in a monorepo, the file's own app answers. `--config` overrides as usual.
|
|
138
|
+
|
|
121
139
|
### `timber init`
|
|
122
140
|
|
|
123
141
|
Write `AGENTS.md` and `CLAUDE.md` to the project root for AI coding agent discovery.
|
|
@@ -136,10 +154,12 @@ The generated `AGENTS.md` includes project structure, key imports, common patter
|
|
|
136
154
|
| ----------------- | ----- | --------------------------------------------------------------------------------------------------------- |
|
|
137
155
|
| `--config <path>` | `-c` | Path to a custom Vite config file. Means the same thing for every command, `check` included. |
|
|
138
156
|
| `--project <path>` | | `timber check` only — the `tsconfig.json` to type-check. |
|
|
157
|
+
| `--json` | | `timber graph` only — emit the machine-readable JSON contract. |
|
|
158
|
+
| `--all` | | `timber graph` only — classify the whole project (requires `--json`). |
|
|
139
159
|
|
|
140
160
|
> **Note:** `timber check` resolves your app through Vite, so `--config` names the Vite config there too, exactly as it does for `dev` and `build`. The tsconfig has its own flag, `--project`, spelled the way `tsc` and `tsgo` spell it. `check` needs a Vite config that lists the timber plugin and fails with an actionable message if it cannot find one.
|
|
141
161
|
|
|
142
|
-
Those are the only flags. Any other produces an error rather than being silently ignored, with a hint at the supported alternative (e.g. `--port` points you to the `PORT` env var or `server.port` in `vite.config.ts`). Passing `--project` to a command with no type pass is an error too, pointing you at
|
|
162
|
+
Those are the only flags. Any other produces an error rather than being silently ignored, with a hint at the supported alternative (e.g. `--port` points you to the `PORT` env var or `server.port` in `vite.config.ts`). Passing `--project` to a command with no type pass — or `--json`/`--all` to anything but `graph` — is an error too, pointing you at the right command.
|
|
143
163
|
|
|
144
164
|
## Package Manager Scripts
|
|
145
165
|
|
|
@@ -85,6 +85,17 @@ export default function NotFound({ status }: { status: number }) {
|
|
|
85
85
|
|
|
86
86
|
timber hands these components to its error boundary — a client component — as a prop, so a server component there cannot cross the RSC boundary. It is not a degraded error page: every page under that segment fails to render. The build catches it and names the file, so you will not discover it as a serialization error on a page you did not touch. MDX status files (`404.mdx`) are the exception — they are server components, rendered ahead of time.
|
|
87
87
|
|
|
88
|
+
**MDX status files** work best as static content. Exact-code files (`404.mdx`, `503.mdx`) receive consistent props on all rendering paths — `{ status }` from the error-renderer and boundary paths, and `{ status, dangerouslyPassData }` from deny paths. Wildcard files (`4xx.mdx`, `5xx.mdx`, `error.mdx`) receive props only on the deny and error-renderer paths — on the error boundary path, they are pre-rendered before the error occurs and receive empty props. Use exact-code MDX files if you need to reference `props.status`.
|
|
89
|
+
|
|
90
|
+
**JSON status files** (`401.json`, `4xx.json`) return the file contents verbatim — no React rendering, no layout wrapping. `dangerouslyPassData` from `deny()` is silently dropped. They are useful for API routes that need a structured JSON error body:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
app/api/
|
|
94
|
+
401.json # {"error": "unauthorized"}
|
|
95
|
+
4xx.json # Catch-all for API errors
|
|
96
|
+
route.ts
|
|
97
|
+
```
|
|
98
|
+
|
|
88
99
|
If nothing in the chain matches, timber renders a built-in status page: a plain document with the status code and its reason phrase, and nothing else — no request URL, no error message. It is what a static build writes to `404.html` when your app has no not-found page, so a static deploy always ships one. Add a root `app/404.tsx` (or `4xx.tsx` / `error.tsx`) to replace it.
|
|
89
100
|
|
|
90
101
|
## `error.tsx`
|
|
@@ -147,7 +147,7 @@ Server actions still work — HTML forms submit natively via POST without JavaSc
|
|
|
147
147
|
| `appDir` | `string` | auto-detected | Override app directory location |
|
|
148
148
|
| `mdx` | `object` | — | MDX remark/rehype plugins |
|
|
149
149
|
| `actionEncryption` | `object` | — | Server action bound args encryption |
|
|
150
|
-
| `reactCompiler` | `boolean \| object` | `
|
|
150
|
+
| `reactCompiler` | `boolean \| object` | `true` | React Compiler auto-memoization |
|
|
151
151
|
| `sitemap` | `object` | — | Auto-generated sitemap.xml |
|
|
152
152
|
| `clientSegmentCache`| `boolean` | `false` | Opt-in client segment cache for partial nav |
|
|
153
153
|
| `topLoader` | `object` | enabled | Navigation progress bar |
|
|
@@ -170,6 +170,7 @@ app/feed/(.)photo/[id]/page.tsx ✓ layout swap (feed/layout.tsx requir
|
|
|
170
170
|
app/(browse)/(...)photo/[id]/page.tsx ✓ layout swap, scoped to (browse)
|
|
171
171
|
app/feed/@modal/(x)/(.)photo/page.tsx ✗ build error — not a direct slot child
|
|
172
172
|
app/feed/(.)a/(.)b/page.tsx ✗ build error — nested interception
|
|
173
|
+
app/feed/@modal/(.)photo/[id]/route.ts ✗ build error — route handler in interception
|
|
173
174
|
```
|
|
174
175
|
|
|
175
176
|
Outside a slot, the directory holding the marker must have a `layout.tsx`. That is the directory the swap is scoped to, and the browser reports which directories it has mounted from its layouts — a scope it cannot report would let the swap fire once and then quietly stop. In practice you already have one, since rendering inside that layout is the point.
|