@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
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
import type { ViteDevServer } from 'vite';
|
|
14
14
|
import { readFileSync, existsSync } from 'node:fs';
|
|
15
15
|
import { resolve, normalize } from 'node:path';
|
|
16
|
-
import type { FontPipeline } from './pipeline.
|
|
17
|
-
import { fontOutputBasename, fontUrlPrefix } from './paths.
|
|
16
|
+
import type { FontPipeline } from './pipeline.ts';
|
|
17
|
+
import { fontOutputBasename, fontUrlPrefix } from './paths.ts';
|
|
18
18
|
|
|
19
19
|
const FONT_MIME_TYPES: Record<string, string> = {
|
|
20
20
|
woff2: 'font/woff2',
|
package/src/fonts/google.ts
CHANGED
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
import { createHash } from 'node:crypto';
|
|
19
19
|
import { readFile, writeFile, mkdir, stat } from 'node:fs/promises';
|
|
20
20
|
import { join } from 'node:path';
|
|
21
|
-
import type { ExtractedFont, FontFaceDescriptor } from './types.
|
|
22
|
-
import { fontUrlPrefix } from './paths.
|
|
21
|
+
import type { ExtractedFont, FontFaceDescriptor } from './types.ts';
|
|
22
|
+
import { fontUrlPrefix } from './paths.ts';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Extract a recognizable error code (ETIMEDOUT, ENOTFOUND, etc.) from a
|
package/src/fonts/local.ts
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { resolve, dirname, extname } from 'node:path';
|
|
17
|
-
import type { LocalFontConfig, LocalFontSrc, FontFaceDescriptor, ExtractedFont } from './types.
|
|
18
|
-
import { buildFontStack } from './fallbacks.
|
|
19
|
-
import { extractLocalFontConfigAst } from './ast.
|
|
20
|
-
import { fontOutputBasename, fontUrlPrefix } from './paths.
|
|
17
|
+
import type { LocalFontConfig, LocalFontSrc, FontFaceDescriptor, ExtractedFont } from './types.ts';
|
|
18
|
+
import { buildFontStack } from './fallbacks.ts';
|
|
19
|
+
import { extractLocalFontConfigAst } from './ast.ts';
|
|
20
|
+
import { fontOutputBasename, fontUrlPrefix } from './paths.ts';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Infer the font format from a file extension.
|
package/src/fonts/pipeline.ts
CHANGED
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
|
|
29
29
|
import { readFileSync, existsSync } from 'node:fs';
|
|
30
30
|
import { resolve, normalize } from 'node:path';
|
|
31
|
-
import type { ExtractedFont, FontEntry, FontFaceDescriptor } from './types.
|
|
32
|
-
import type { CachedFont } from './google.
|
|
33
|
-
import { contentHash } from './google.
|
|
34
|
-
import { generateVariableClass, generateFontFamilyClass, generateFontFaces } from './css.
|
|
35
|
-
import { generateFallbackCss } from './fallbacks.
|
|
36
|
-
import { generateLocalFontFaces } from './local.
|
|
37
|
-
import { hashedFontBasename, fontUrlPrefix } from './paths.
|
|
38
|
-
import { VirtualFontCssIdMap } from './virtual-modules.
|
|
31
|
+
import type { ExtractedFont, FontEntry, FontFaceDescriptor } from './types.ts';
|
|
32
|
+
import type { CachedFont } from './google.ts';
|
|
33
|
+
import { contentHash } from './google.ts';
|
|
34
|
+
import { generateVariableClass, generateFontFamilyClass, generateFontFaces } from './css.ts';
|
|
35
|
+
import { generateFallbackCss } from './fallbacks.ts';
|
|
36
|
+
import { generateLocalFontFaces } from './local.ts';
|
|
37
|
+
import { hashedFontBasename, fontUrlPrefix } from './paths.ts';
|
|
38
|
+
import { VirtualFontCssIdMap } from './virtual-modules.ts';
|
|
39
39
|
|
|
40
40
|
export class FontPipeline {
|
|
41
41
|
/**
|
package/src/fonts/transform.ts
CHANGED
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import MagicString from 'magic-string';
|
|
17
|
-
import type { ExtractedFont, GoogleFontConfig } from './types.
|
|
18
|
-
import { buildFontStack } from './fallbacks.
|
|
19
|
-
import { processLocalFont } from './local.
|
|
17
|
+
import type { ExtractedFont, GoogleFontConfig } from './types.ts';
|
|
18
|
+
import { buildFontStack } from './fallbacks.ts';
|
|
19
|
+
import { processLocalFont } from './local.ts';
|
|
20
20
|
import {
|
|
21
21
|
extractFontConfigAst,
|
|
22
22
|
detectDynamicFontCallAst,
|
|
23
23
|
findFontCallSites,
|
|
24
24
|
extractGoogleFontConfigFromNode,
|
|
25
25
|
extractLocalFontConfigFromNode,
|
|
26
|
-
} from './ast.
|
|
27
|
-
import type { FontPipeline } from './pipeline.
|
|
26
|
+
} from './ast.ts';
|
|
27
|
+
import type { FontPipeline } from './pipeline.ts';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Convert a font family name to a scoped class name.
|
package/src/fonts/types.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
// `CachedFont` lives in `google.ts`. Importing it here is type-only so
|
|
11
11
|
// there is no runtime dependency cycle — TypeScript erases the import.
|
|
12
|
-
import type { CachedFont } from './google.
|
|
12
|
+
import type { CachedFont } from './google.ts';
|
|
13
13
|
|
|
14
14
|
/** Configuration passed to a Google font function (e.g. `Inter({ ... })`). */
|
|
15
15
|
export interface GoogleFontConfig {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
import { createHash } from 'node:crypto';
|
|
33
|
-
import type { ExtractedFont } from './types.
|
|
33
|
+
import type { ExtractedFont } from './types.ts';
|
|
34
34
|
|
|
35
35
|
export const VIRTUAL_GOOGLE = '@timber/fonts/google';
|
|
36
36
|
export const VIRTUAL_LOCAL = '@timber/fonts/local';
|
package/src/index.ts
CHANGED
|
@@ -11,38 +11,48 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import type { Plugin, PluginOption } from 'vite';
|
|
14
|
+
import type { ReactCompilerOptions } from '@vitejs/plugin-react';
|
|
14
15
|
import { createLogger } from 'vite';
|
|
15
16
|
import { join, relative, resolve } from 'node:path';
|
|
16
17
|
import { createRequire } from 'node:module';
|
|
17
|
-
import react
|
|
18
|
-
import { timberContent } from './plugins/content';
|
|
19
|
-
import { timberDevServer } from './plugins/dev-server';
|
|
20
|
-
import { timberEntries } from './plugins/entries';
|
|
21
|
-
import { timberMdx } from './plugins/mdx';
|
|
22
|
-
import { timberRouting } from './plugins/routing';
|
|
23
|
-
import { timberShims } from './plugins/shims';
|
|
24
|
-
import { timberFonts } from './plugins/fonts';
|
|
25
|
-
import { timberStaticBuild } from './plugins/static-build';
|
|
26
|
-
import { timberBuildManifest } from './plugins/build-manifest';
|
|
27
|
-
import { timberDevLogs, originalConsole, wrapLoggerWithOriginalConsole } from './dev-tools/logs';
|
|
28
|
-
import { resolveForwardConsole } from './dev-tools/browser-logs';
|
|
29
|
-
import { timberReactProd } from './plugins/react-prod';
|
|
30
|
-
import { timberChunks } from './plugins/chunks';
|
|
31
|
-
import { clientChunkGroup } from './plugins/client-chunks';
|
|
32
|
-
import { timberServerBundle } from './plugins/server-bundle';
|
|
33
|
-
import { timberCacheTransform } from './plugins/cache';
|
|
34
|
-
import { timberRequestDep } from './plugins/request-dep/index.
|
|
35
|
-
import { timberPrebuilt } from './plugins/prebuilt';
|
|
36
|
-
import { timberPrerenderSugar } from './plugins/prerender-sugar';
|
|
37
|
-
import { timberCloudflareWasm } from './plugins/cloudflare-wasm';
|
|
38
|
-
import { timberAdapterBuild } from './plugins/adapter-build';
|
|
39
|
-
import { timberBuildReport } from './plugins/build-report';
|
|
40
|
-
import { createNoopTimer } from './utils/startup-timer';
|
|
41
|
-
import {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
18
|
+
import react from '@vitejs/plugin-react';
|
|
19
|
+
import { timberContent } from './plugins/content.ts';
|
|
20
|
+
import { timberDevServer } from './plugins/dev-server.ts';
|
|
21
|
+
import { timberEntries } from './plugins/entries.ts';
|
|
22
|
+
import { timberMdx } from './plugins/mdx.ts';
|
|
23
|
+
import { timberRouting } from './plugins/routing.ts';
|
|
24
|
+
import { timberShims } from './plugins/shims.ts';
|
|
25
|
+
import { timberFonts } from './plugins/fonts.ts';
|
|
26
|
+
import { timberStaticBuild } from './plugins/static-build.ts';
|
|
27
|
+
import { timberBuildManifest } from './plugins/build-manifest.ts';
|
|
28
|
+
import { timberDevLogs, originalConsole, wrapLoggerWithOriginalConsole } from './dev-tools/logs.ts';
|
|
29
|
+
import { resolveForwardConsole } from './dev-tools/browser-logs.ts';
|
|
30
|
+
import { timberReactProd } from './plugins/react-prod.ts';
|
|
31
|
+
import { timberChunks } from './plugins/chunks.ts';
|
|
32
|
+
import { clientChunkGroup } from './plugins/client-chunks.ts';
|
|
33
|
+
import { timberServerBundle } from './plugins/server-bundle.ts';
|
|
34
|
+
import { timberCacheTransform } from './plugins/cache.ts';
|
|
35
|
+
import { timberRequestDep } from './plugins/request-dep/index.ts';
|
|
36
|
+
import { timberPrebuilt } from './plugins/prebuilt.ts';
|
|
37
|
+
import { timberPrerenderSugar } from './plugins/prerender-sugar.ts';
|
|
38
|
+
import { timberCloudflareWasm } from './plugins/cloudflare-wasm.ts';
|
|
39
|
+
import { timberAdapterBuild } from './plugins/adapter-build.ts';
|
|
40
|
+
import { timberBuildReport } from './plugins/build-report.ts';
|
|
41
|
+
import { createNoopTimer } from './utils/startup-timer.ts';
|
|
42
|
+
import {
|
|
43
|
+
validateConfig,
|
|
44
|
+
formatConfigErrors,
|
|
45
|
+
checkPeerDependencies,
|
|
46
|
+
formatMissingPeers,
|
|
47
|
+
} from './config-validation.ts';
|
|
48
|
+
import {
|
|
49
|
+
resolveEncryptionKeyExpression,
|
|
50
|
+
shouldEnableEncryption,
|
|
51
|
+
} from './server/action-encryption.ts';
|
|
52
|
+
import { createHoldingServer } from './dev-tools/holding-server.ts';
|
|
53
|
+
import { resolveStartPort, startDevServerPort } from './server/port-resolution.ts';
|
|
54
|
+
import type { TimberUserConfig } from './config-types.ts';
|
|
55
|
+
import type { PluginContext, TimberPluginApi } from './plugin-context.ts';
|
|
46
56
|
import {
|
|
47
57
|
createPluginContext,
|
|
48
58
|
loadTimberConfigFile,
|
|
@@ -50,11 +60,11 @@ import {
|
|
|
50
60
|
resolveAppDir,
|
|
51
61
|
resolveClientJavascript,
|
|
52
62
|
resolveBuildDir,
|
|
53
|
-
} from './plugin-context.
|
|
63
|
+
} from './plugin-context.ts';
|
|
54
64
|
|
|
55
65
|
// ── Public API ────────────────────────────────────────────────────────────
|
|
56
66
|
|
|
57
|
-
export type { TimberUserConfig } from './config-types.
|
|
67
|
+
export type { TimberUserConfig } from './config-types.ts';
|
|
58
68
|
|
|
59
69
|
// Metadata route handler types — re-exported so user-authored metadata
|
|
60
70
|
// route files (sitemap.ts, robots.ts, manifest.ts, icon.tsx, etc.) can
|
|
@@ -62,7 +72,7 @@ export type { TimberUserConfig } from './config-types.js';
|
|
|
62
72
|
// The canonical location for these types is '@timber-js/app/server'; this
|
|
63
73
|
// root re-export is a convenience for typed metadata route handlers.
|
|
64
74
|
// See design/16-metadata.md §"Metadata Routes".
|
|
65
|
-
export type { Metadata, MetadataRoute, MetadataHandler, MetadataResult } from './server/types.
|
|
75
|
+
export type { Metadata, MetadataRoute, MetadataHandler, MetadataResult } from './server/types.ts';
|
|
66
76
|
|
|
67
77
|
/**
|
|
68
78
|
* Route map interface — augmented by the generated timber-routes.d.ts.
|
|
@@ -104,38 +114,6 @@ export function defineConfig(config: TimberUserConfig): TimberUserConfig {
|
|
|
104
114
|
|
|
105
115
|
// ── Private helpers ───────────────────────────────────────────────────────
|
|
106
116
|
|
|
107
|
-
/**
|
|
108
|
-
* Resolve the React Compiler plugin via @rolldown/plugin-babel.
|
|
109
|
-
*
|
|
110
|
-
* Uses the `reactCompilerPreset` from @vitejs/plugin-react, which:
|
|
111
|
-
* - Uses Babel ONLY for the compiler pass (OXC handles JSX)
|
|
112
|
-
* - Automatically scopes to client environment via applyToEnvironmentHook
|
|
113
|
-
* - Uses react/compiler-runtime built into React 19
|
|
114
|
-
*
|
|
115
|
-
* @rolldown/plugin-babel and babel-plugin-react-compiler are optional peer deps.
|
|
116
|
-
* If either is missing, require() fails with a clear error message.
|
|
117
|
-
*/
|
|
118
|
-
function resolveReactCompilerPlugin(
|
|
119
|
-
config: true | { compilationMode?: string; target?: string },
|
|
120
|
-
req: NodeJS.Require
|
|
121
|
-
): PluginOption {
|
|
122
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
-
let babel: any;
|
|
124
|
-
try {
|
|
125
|
-
babel = req('@rolldown/plugin-babel');
|
|
126
|
-
} catch {
|
|
127
|
-
throw new Error(
|
|
128
|
-
'[timber] reactCompiler requires @rolldown/plugin-babel. ' +
|
|
129
|
-
'Install it: pnpm add -D @rolldown/plugin-babel babel-plugin-react-compiler'
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
const options = typeof config === 'object' ? config : {};
|
|
133
|
-
const babelPlugin = babel.default ?? babel;
|
|
134
|
-
return babelPlugin({
|
|
135
|
-
presets: [reactCompilerPreset(options as Parameters<typeof reactCompilerPreset>[0])],
|
|
136
|
-
}) as PluginOption;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
117
|
/**
|
|
140
118
|
* Build the options object for @vitejs/plugin-rsc.
|
|
141
119
|
*
|
|
@@ -211,6 +189,32 @@ function createRscOptions(
|
|
|
211
189
|
* causing file-based config for reactCompiler, actionEncryption, and
|
|
212
190
|
* output mode to be silently ignored. See TIM-451.
|
|
213
191
|
*/
|
|
192
|
+
/**
|
|
193
|
+
* Wrap plugin-react's `vite:react-compiler` configResolved so it always
|
|
194
|
+
* sees `isProduction: true` during builds. The compiler plugin uses
|
|
195
|
+
* `!config.isProduction` to decide whether to emit jsxDEV calls, but
|
|
196
|
+
* Vite derives isProduction from process.env.NODE_ENV — which may be
|
|
197
|
+
* "development" in the shell. Rather than mutating the env, we pass a
|
|
198
|
+
* prototype-based view with the single property overridden.
|
|
199
|
+
*/
|
|
200
|
+
function patchReactCompilerForProdJsx(plugins: PluginOption[]): PluginOption[] {
|
|
201
|
+
for (const p of plugins) {
|
|
202
|
+
if (p && typeof p === 'object' && 'name' in p && p.name === 'vite:react-compiler') {
|
|
203
|
+
const orig = (p as Plugin).configResolved;
|
|
204
|
+
if (typeof orig === 'function') {
|
|
205
|
+
(p as Plugin).configResolved = function (config) {
|
|
206
|
+
const view =
|
|
207
|
+
config.command === 'build' && !config.isProduction
|
|
208
|
+
? Object.create(config, { isProduction: { value: true } })
|
|
209
|
+
: config;
|
|
210
|
+
return orig.call(this, view);
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return plugins;
|
|
216
|
+
}
|
|
217
|
+
|
|
214
218
|
export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
215
219
|
const ctx = createPluginContext(config);
|
|
216
220
|
|
|
@@ -243,6 +247,7 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
243
247
|
const earlyFileConfig = loadTimberConfigFile(process.cwd());
|
|
244
248
|
|
|
245
249
|
// ── Step 4: Build rootSync plugin ───────────────────────────────────
|
|
250
|
+
|
|
246
251
|
// rootSync loads timber.config.ts from Vite's resolved root and merges
|
|
247
252
|
// it into ctx.config. Plugin resolution is handled eagerly above — the
|
|
248
253
|
// config() hook must NOT return a `plugins` field (Vite ignores it).
|
|
@@ -305,19 +310,14 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
305
310
|
}
|
|
306
311
|
}
|
|
307
312
|
|
|
308
|
-
// Force production JSX
|
|
309
|
-
//
|
|
310
|
-
// Vite determines dev vs prod JSX via `isProduction`, which checks
|
|
311
|
-
// `process.env.NODE_ENV === 'production'`. If the shell has
|
|
312
|
-
// NODE_ENV=development (common in dev toolchains), `vite build`
|
|
313
|
-
// respects that and emits jsxDEV calls with fileName/lineNumber
|
|
314
|
-
// args. This causes runtime crashes because the production React
|
|
315
|
-
// jsx-runtime doesn't export jsxDEV, and also leaks file paths
|
|
316
|
-
// into production bundles (security concern).
|
|
313
|
+
// Force production JSX for builds.
|
|
317
314
|
//
|
|
318
|
-
//
|
|
319
|
-
// the
|
|
320
|
-
//
|
|
315
|
+
// Vite derives `config.isProduction` from `process.env.NODE_ENV`.
|
|
316
|
+
// If the shell has NODE_ENV=development, isProduction stays false
|
|
317
|
+
// and Vite's built-in OXC transform emits jsxDEV calls (the
|
|
318
|
+
// production jsx-runtime doesn't export jsxDEV). The oxc.jsx
|
|
319
|
+
// override below fixes Vite's native path; plugin-react's compiler
|
|
320
|
+
// plugin is handled by patchReactCompilerForProdJsx above.
|
|
321
321
|
// ── Resolve dev/preview port (TIM-842) ───────────────────────
|
|
322
322
|
// Default port is 3000 with auto-bump on conflict. Explicit user
|
|
323
323
|
// overrides (`--port`, `PORT` env, `vite.config.ts` server.port)
|
|
@@ -338,7 +338,12 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
338
338
|
// See design/21-dev-server.md §"Default Port and Auto-Bump".
|
|
339
339
|
let resolvedDevPort: number | null = null;
|
|
340
340
|
let resolvedDevPortExplicit = false;
|
|
341
|
-
|
|
341
|
+
// Middleware-mode embeddings (the analyze crawl, custom servers)
|
|
342
|
+
// never bind a port, and the dev-server plugin's listen() handoff
|
|
343
|
+
// that closes the holding server never runs — starting it would
|
|
344
|
+
// occupy the default port for the embedding's lifetime.
|
|
345
|
+
const isMiddlewareMode = Boolean(userConfig.server?.middlewareMode);
|
|
346
|
+
if (command === 'serve' && !isPreview && !isMiddlewareMode) {
|
|
342
347
|
ctx.holdingServer = createHoldingServer();
|
|
343
348
|
const holdingRef = ctx.holdingServer;
|
|
344
349
|
const result = await startDevServerPort({
|
|
@@ -513,11 +518,6 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
513
518
|
// Validate config and check peer dependencies at startup.
|
|
514
519
|
// Errors are logged to stderr but don't block startup — Vite may
|
|
515
520
|
// still work partially, and the errors guide the user to fix things.
|
|
516
|
-
/* eslint-disable no-var-requires -- sync require for startup validation */
|
|
517
|
-
const { validateConfig, formatConfigErrors, checkPeerDependencies, formatMissingPeers } =
|
|
518
|
-
require('./config-validation.js') as typeof import('./config-validation.js');
|
|
519
|
-
/* eslint-enable no-var-requires */
|
|
520
|
-
|
|
521
521
|
const configErrors = validateConfig(ctx.config);
|
|
522
522
|
if (configErrors.length > 0) {
|
|
523
523
|
process.stderr.write(`${formatConfigErrors(configErrors)}\n\n`);
|
|
@@ -531,19 +531,11 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
531
531
|
},
|
|
532
532
|
};
|
|
533
533
|
|
|
534
|
-
// ── Step 5: Resolve
|
|
535
|
-
// React Compiler — resolved eagerly from either inline or file config.
|
|
536
|
-
// Vite's config() hook return type is Omit<UserConfig, 'plugins'>, so
|
|
537
|
-
// plugins MUST be in the top-level array — returning them from config()
|
|
538
|
-
// silently drops them. See TIM-632.
|
|
539
|
-
//
|
|
534
|
+
// ── Step 5: Resolve React Compiler config ───────────────────────────
|
|
540
535
|
// Inline config takes precedence. File config (from the early cwd-based
|
|
541
536
|
// load) is used when inline config doesn't set reactCompiler.
|
|
542
|
-
|
|
543
|
-
const effectiveReactCompiler = config?.reactCompiler ?? earlyFileConfig?.reactCompiler;
|
|
544
|
-
if (effectiveReactCompiler) {
|
|
545
|
-
reactCompilerPlugins.push(resolveReactCompilerPlugin(effectiveReactCompiler, consumerRequire));
|
|
546
|
-
}
|
|
537
|
+
// Default: true — oxc-transform-react is a direct dependency.
|
|
538
|
+
const effectiveReactCompiler = config?.reactCompiler ?? earlyFileConfig?.reactCompiler ?? true;
|
|
547
539
|
|
|
548
540
|
// ── Step 6: Assemble plugin array ─────────────────────────────────────
|
|
549
541
|
// @vitejs/plugin-rsc handles:
|
|
@@ -571,8 +563,11 @@ export function timber(config?: TimberUserConfig): PluginOption[] {
|
|
|
571
563
|
// for client components via Babel transform. Placed before @vitejs/plugin-rsc
|
|
572
564
|
// following Vinext's convention — the RSC plugin's virtual browser entry
|
|
573
565
|
// coordinates with plugin-react via __vite_plugin_react_preamble_installed__.
|
|
574
|
-
|
|
575
|
-
|
|
566
|
+
...patchReactCompilerForProdJsx(
|
|
567
|
+
react({
|
|
568
|
+
compiler: (effectiveReactCompiler || false) as boolean | ReactCompilerOptions,
|
|
569
|
+
})
|
|
570
|
+
),
|
|
576
571
|
vitePluginRsc(createRscOptions(ctx, encryptionKeyExpr)),
|
|
577
572
|
timberShims(ctx),
|
|
578
573
|
timberRouting(ctx),
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Design doc: design/41-global-params.md
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type { Codec, CatchAllCodec, OptionalCatchAllCodec } from '../codec.
|
|
12
|
-
import type { StandardSchemaV1 } from '../schema-bridge.
|
|
11
|
+
import type { Codec, CatchAllCodec, OptionalCatchAllCodec } from '../codec.ts';
|
|
12
|
+
import type { StandardSchemaV1 } from '../schema-bridge.ts';
|
|
13
13
|
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
// Types
|
package/src/params/index.ts
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
//
|
|
6
6
|
// See design/41-global-params.md
|
|
7
7
|
|
|
8
|
-
export { defineSchema } from './define-schema.
|
|
8
|
+
export { defineSchema } from './define-schema.ts';
|
|
9
9
|
export type {
|
|
10
10
|
InferCodecType,
|
|
11
11
|
SchemaConfig,
|
|
12
12
|
SegmentParamCodec,
|
|
13
13
|
ValidDynamicSegmentKeys,
|
|
14
14
|
ValidDynamicSegmentKeysRegistry,
|
|
15
|
-
} from './define-schema.
|
|
16
|
-
export { resolveSchemaCodecs, toBracketKey } from './resolve-schema.
|
|
17
|
-
export { setLinkCodecs, getLinkCodec } from './codec-registry.
|
|
15
|
+
} from './define-schema.ts';
|
|
16
|
+
export { resolveSchemaCodecs, toBracketKey } from './resolve-schema.ts';
|
|
17
|
+
export { setLinkCodecs, getLinkCodec } from './codec-registry.ts';
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* Design doc: design/41-global-params.md §Pipeline Integration
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { Codec } from '../codec.
|
|
13
|
-
import { isCodec, resolveCodecOrSchema } from '../schema-bridge.
|
|
12
|
+
import type { Codec } from '../codec.ts';
|
|
13
|
+
import { isCodec, resolveCodecOrSchema } from '../schema-bridge.ts';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Reconstruct the bracket key for a segment from its type and param name.
|
package/src/plugin-context.ts
CHANGED
|
@@ -12,18 +12,18 @@ import { existsSync } from 'node:fs';
|
|
|
12
12
|
import { join, resolve } from 'node:path';
|
|
13
13
|
import { createRequire } from 'node:module';
|
|
14
14
|
import { parseAst } from 'vite';
|
|
15
|
-
import type { RouteTree } from './routing/types';
|
|
16
|
-
import type { BuildManifest } from './server/build-manifest';
|
|
17
|
-
import type { CaptureSummary } from './server/prebuilt-builder';
|
|
18
|
-
import type { StartupTimer } from './utils/startup-timer';
|
|
19
|
-
import { createStartupTimer } from './utils/startup-timer';
|
|
20
|
-
import type { TimberUserConfig, ClientJavascriptConfig } from './config-types.
|
|
21
|
-
import type { RscManifest } from './plugins/static-build.
|
|
22
|
-
import type { HoldingServer } from './dev-tools/holding-server.
|
|
23
|
-
import type { ProgramNode } from './plugins/callsite-ast.
|
|
15
|
+
import type { RouteTree } from './routing/types.ts';
|
|
16
|
+
import type { BuildManifest } from './server/build-manifest.ts';
|
|
17
|
+
import type { CaptureSummary } from './server/prebuilt-builder.ts';
|
|
18
|
+
import type { StartupTimer } from './utils/startup-timer.ts';
|
|
19
|
+
import { createStartupTimer } from './utils/startup-timer.ts';
|
|
20
|
+
import type { TimberUserConfig, ClientJavascriptConfig } from './config-types.ts';
|
|
21
|
+
import type { RscManifest } from './plugins/static-build.ts';
|
|
22
|
+
import type { HoldingServer } from './dev-tools/holding-server.ts';
|
|
23
|
+
import type { ProgramNode } from './plugins/callsite-ast.ts';
|
|
24
24
|
|
|
25
25
|
// Re-export for sub-plugin convenience — they import from plugin-context.ts
|
|
26
|
-
export type { TimberUserConfig, ClientJavascriptConfig } from './config-types.
|
|
26
|
+
export type { TimberUserConfig, ClientJavascriptConfig } from './config-types.ts';
|
|
27
27
|
|
|
28
28
|
// ── Client JavaScript config ─────────────────────────────────────────────
|
|
29
29
|
|
|
@@ -17,11 +17,11 @@ import type { Plugin } from 'vite';
|
|
|
17
17
|
import { join } from 'node:path';
|
|
18
18
|
import { pathToFileURL } from 'node:url';
|
|
19
19
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
20
|
-
import type { PluginContext } from '../plugin-context.
|
|
21
|
-
import type { TimberPlatformAdapter, TimberConfig } from '../adapters/types.
|
|
22
|
-
import type { BuildManifest } from '../server/build-manifest.
|
|
23
|
-
import { swallow } from '../server/logger.
|
|
24
|
-
import { normalizeBasePath } from '../shared/base-path.
|
|
20
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
21
|
+
import type { TimberPlatformAdapter, TimberConfig } from '../adapters/types.ts';
|
|
22
|
+
import type { BuildManifest } from '../server/build-manifest.ts';
|
|
23
|
+
import { swallow } from '../server/logger.ts';
|
|
24
|
+
import { normalizeBasePath } from '../shared/base-path.ts';
|
|
25
25
|
|
|
26
26
|
export function timberAdapterBuild(ctx: PluginContext): Plugin {
|
|
27
27
|
return {
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
import { randomUUID, createHash } from 'node:crypto';
|
|
20
20
|
import { readFileSync } from 'node:fs';
|
|
21
21
|
import type { Plugin, ResolvedConfig } from 'vite';
|
|
22
|
-
import type { PluginContext } from '../plugin-context.
|
|
23
|
-
import { EMPTY_BUILD_MANIFEST, type BuildManifest } from '../server/build-manifest.
|
|
24
|
-
import type { SegmentNode, RouteFile } from '../routing/types.
|
|
25
|
-
import { isDynamicMetadataExtension } from '../server/metadata-routes.
|
|
22
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
23
|
+
import { EMPTY_BUILD_MANIFEST, type BuildManifest } from '../server/build-manifest.ts';
|
|
24
|
+
import type { SegmentNode, RouteFile } from '../routing/types.ts';
|
|
25
|
+
import { isDynamicMetadataExtension } from '../server/metadata-routes.ts';
|
|
26
26
|
|
|
27
27
|
// Rollup types used by generateBundle hook — imported from vite which re-exports them.
|
|
28
28
|
// We define minimal interfaces here to avoid a direct 'rollup' dependency.
|
|
@@ -17,12 +17,12 @@ import { readFileSync } from 'node:fs';
|
|
|
17
17
|
import { join, relative } from 'node:path';
|
|
18
18
|
import { gzipSync } from 'node:zlib';
|
|
19
19
|
import type { Plugin, Logger } from 'vite';
|
|
20
|
-
import type { PluginContext } from '../plugin-context.
|
|
21
|
-
import type { SegmentNode, RouteTree } from '../routing/types.
|
|
22
|
-
import type { CaptureSummary } from '../server/prebuilt-builder.
|
|
23
|
-
import type { PrebuiltManifest } from '../server/prebuilt/payload-source.
|
|
24
|
-
import { collectLeafRoutes } from '../routing/walkers.
|
|
25
|
-
import { formatSize } from '../utils/format.
|
|
20
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
21
|
+
import type { SegmentNode, RouteTree } from '../routing/types.ts';
|
|
22
|
+
import type { CaptureSummary } from '../server/prebuilt-builder.ts';
|
|
23
|
+
import type { PrebuiltManifest } from '../server/prebuilt/payload-source.ts';
|
|
24
|
+
import { collectLeafRoutes } from '../routing/walkers.ts';
|
|
25
|
+
import { formatSize } from '../utils/format.ts';
|
|
26
26
|
|
|
27
27
|
// ─── Public types ─────────────────────────────────────────────────────────
|
|
28
28
|
|
package/src/plugins/cache.ts
CHANGED
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
import { relative } from 'node:path';
|
|
57
57
|
import MagicString from 'magic-string';
|
|
58
58
|
import type { Plugin } from 'vite';
|
|
59
|
-
import type { PluginContext } from '../plugin-context.
|
|
59
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
60
60
|
import {
|
|
61
61
|
CACHE_MODULE_SOURCES,
|
|
62
62
|
collectShadowRanges,
|
|
63
63
|
findCallSites,
|
|
64
64
|
findImportBindings,
|
|
65
65
|
generateStableCallsiteId,
|
|
66
|
-
} from './callsite-ast.
|
|
66
|
+
} from './callsite-ast.ts';
|
|
67
67
|
import type {
|
|
68
68
|
CallExpressionNode,
|
|
69
69
|
IdentifierNode,
|
|
@@ -72,7 +72,7 @@ import type {
|
|
|
72
72
|
PositionedNode,
|
|
73
73
|
ProgramNode,
|
|
74
74
|
ShadowRange,
|
|
75
|
-
} from './callsite-ast.
|
|
75
|
+
} from './callsite-ast.ts';
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* Is this callee a `cache.data(...)` call? Matches two forms:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* See TIM-997, TIM-1053, design/06-caching.md §"Cache Key Security".
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import { fnv1aHash } from '../cache/fast-hash.
|
|
13
|
+
import { fnv1aHash } from '../cache/fast-hash.ts';
|
|
14
14
|
|
|
15
15
|
/** Module specifiers whose bindings the transforms track. */
|
|
16
16
|
export const CACHE_MODULE_SOURCES = new Set(['@timber-js/app/cache', 'timber/cache']);
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* See design/44-render-at-build-time.md §Props Derivation at Build Time.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import type { PluginContext } from '../plugin-context.
|
|
15
|
-
import type { IdentifierNode, PositionedNode, ProgramNode } from './callsite-ast.
|
|
14
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
15
|
+
import type { IdentifierNode, PositionedNode, ProgramNode } from './callsite-ast.ts';
|
|
16
16
|
|
|
17
17
|
interface JSXElementNode extends PositionedNode {
|
|
18
18
|
type: 'JSXElement';
|
package/src/plugins/chunks.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { basename, resolve, dirname } from 'node:path';
|
|
|
20
20
|
import { createHash } from 'node:crypto';
|
|
21
21
|
import { copyFile, mkdir, readFile } from 'node:fs/promises';
|
|
22
22
|
import type { Plugin, ResolvedConfig } from 'vite';
|
|
23
|
-
import type { PluginContext } from '../plugin-context.
|
|
23
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
24
24
|
|
|
25
25
|
function isCloudflareAdapter(ctx: PluginContext): boolean {
|
|
26
26
|
const adapter = ctx.config.adapter as { name?: string } | undefined;
|
package/src/plugins/content.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import type { Plugin } from 'vite';
|
|
12
12
|
import { existsSync } from 'node:fs';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
|
-
import type { PluginContext } from '../plugin-context.
|
|
14
|
+
import type { PluginContext } from '../plugin-context.ts';
|
|
15
15
|
|
|
16
16
|
const CONFIG_FILE_NAMES = [
|
|
17
17
|
'content-collections.ts',
|
|
@@ -127,6 +127,10 @@ export function timberContent(ctx: PluginContext): Plugin {
|
|
|
127
127
|
},
|
|
128
128
|
|
|
129
129
|
async configureServer(server) {
|
|
130
|
+
// The analyze crawl child must not start content-collections'
|
|
131
|
+
// file watcher — it outlives server.close() and holds the
|
|
132
|
+
// process open (the child relies on process.exit to clean up).
|
|
133
|
+
if (process.env.TIMBER_ANALYZE === '1') return;
|
|
130
134
|
if (!innerPlugin) return;
|
|
131
135
|
if (typeof innerPlugin.configureServer === 'function') {
|
|
132
136
|
await (innerPlugin.configureServer as (...args: unknown[]) => unknown).call(this, server);
|