@timber-js/app 0.2.0-alpha.207 → 0.2.0-alpha.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{primitives-DLAnvsrk.js → actions-BerlqoXA.js} +640 -410
- package/dist/_chunks/actions-BerlqoXA.js.map +1 -0
- package/dist/_chunks/{als-registry-C6kcfprT.js → als-registry-DaxkVjt5.js} +6 -2
- package/dist/_chunks/als-registry-DaxkVjt5.js.map +1 -0
- package/dist/_chunks/{build-manifest-DTmSGLRz.js → build-manifest-DWppEdLB.js} +2 -51
- package/dist/_chunks/build-manifest-DWppEdLB.js.map +1 -0
- package/dist/_chunks/{build-output-helper-9dqCv1pZ.js → build-output-helper-RV_BRcF1.js} +50 -53
- package/dist/_chunks/build-output-helper-RV_BRcF1.js.map +1 -0
- package/dist/_chunks/{cache-api-CUD9Ezaq.js → cache-api-CR23J_NC.js} +64 -32
- package/dist/_chunks/cache-api-CR23J_NC.js.map +1 -0
- package/dist/_chunks/{chains-B4bgOl2g.js → chains-CpFg56UB.js} +2 -2
- package/dist/_chunks/{chains-B4bgOl2g.js.map → chains-CpFg56UB.js.map} +1 -1
- package/dist/_chunks/{cli-check-G8o30ldg.js → cli-check-C6Ev6wBO.js} +11 -52
- package/dist/_chunks/cli-check-C6Ev6wBO.js.map +1 -0
- package/dist/_chunks/cli-context-By7k2xVo.js +70 -0
- package/dist/_chunks/cli-context-By7k2xVo.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync--LZKs8Zn.js → cli-schema-sync-CbT2AUUI.js} +3 -3
- package/dist/_chunks/{cli-schema-sync--LZKs8Zn.js.map → cli-schema-sync-CbT2AUUI.js.map} +1 -1
- package/dist/_chunks/{cloudflare-BFb__LYG.js → cloudflare-Byxl8FWP.js} +96 -53
- package/dist/_chunks/{cloudflare-BFb__LYG.js.map → cloudflare-Byxl8FWP.js.map} +1 -1
- package/dist/_chunks/{convention-lint-5KzoMg_A.js → convention-lint-jKTwKwPe.js} +21 -6
- package/dist/_chunks/convention-lint-jKTwKwPe.js.map +1 -0
- package/dist/_chunks/{dev-server-BzBxgYAV.js → dev-server-C4WZdB7L.js} +15 -167
- package/dist/_chunks/dev-server-C4WZdB7L.js.map +1 -0
- package/dist/_chunks/{error-boundary-BndF-3Td.js → error-boundary-tA7kVfs4.js} +84 -104
- package/dist/_chunks/error-boundary-tA7kVfs4.js.map +1 -0
- package/dist/_chunks/{fs-identity-D7vb6GdI.js → fs-identity-BRKuL215.js} +3 -4
- package/dist/_chunks/fs-identity-BRKuL215.js.map +1 -0
- package/dist/_chunks/{graph-cache-CP4GEmf9.js → graph-cache-CYiUS2aS.js} +4 -5
- package/dist/_chunks/graph-cache-CYiUS2aS.js.map +1 -0
- package/dist/_chunks/{json-lossy-check-ClNvBM_3.js → json-lossy-check-ip0Qi0MT.js} +6 -3
- package/dist/_chunks/json-lossy-check-ip0Qi0MT.js.map +1 -0
- package/dist/_chunks/{live-graph-Bm5WTvcr.js → live-graph-Dv-JJCZw.js} +3 -3
- package/dist/_chunks/{live-graph-Bm5WTvcr.js.map → live-graph-Dv-JJCZw.js.map} +1 -1
- package/dist/_chunks/{logger-k2DQ4EUf.js → logger-DiDt5ppH.js} +192 -51
- package/dist/_chunks/logger-DiDt5ppH.js.map +1 -0
- package/dist/_chunks/{navigation-root-mHSK9psY.js → navigation-root-BQfo1-kG.js} +2 -2
- package/dist/_chunks/{navigation-root-mHSK9psY.js.map → navigation-root-BQfo1-kG.js.map} +1 -1
- package/dist/_chunks/{plugin-context-8idfR3UZ.js → plugin-context-BPBPc3lL.js} +28 -4
- package/dist/_chunks/plugin-context-BPBPc3lL.js.map +1 -0
- package/dist/_chunks/{poison-scan-DG5eI2_z.js → poison-scan-CpeT6_OJ.js} +2 -2
- package/dist/_chunks/{poison-scan-DG5eI2_z.js.map → poison-scan-CpeT6_OJ.js.map} +1 -1
- package/dist/_chunks/render-timeout-DOf_BBcO.js +46 -0
- package/dist/_chunks/render-timeout-DOf_BBcO.js.map +1 -0
- package/dist/_chunks/{rsc-payload-path-B_LBodc2.js → rsc-payload-path-dffcs4jp.js} +9 -3
- package/dist/_chunks/{rsc-payload-path-B_LBodc2.js.map → rsc-payload-path-dffcs4jp.js.map} +1 -1
- package/dist/_chunks/{scanner-BQ5sPIJ7.js → scanner-Bw0oq1HB.js} +2 -2
- package/dist/_chunks/{scanner-BQ5sPIJ7.js.map → scanner-Bw0oq1HB.js.map} +1 -1
- package/dist/_chunks/{navigation-context-D0TU0Jog.js → segment-context-xtPUGfdq.js} +36 -34
- package/dist/_chunks/segment-context-xtPUGfdq.js.map +1 -0
- package/dist/_chunks/{singleflight-2lUWfcAk.js → singleflight-BeVMMKi0.js} +4 -3
- package/dist/_chunks/{singleflight-2lUWfcAk.js.map → singleflight-BeVMMKi0.js.map} +1 -1
- package/dist/_chunks/{sizeof-lXffQ1Vr.js → sizeof-UwzwB1uM.js} +3 -2
- package/dist/_chunks/sizeof-UwzwB1uM.js.map +1 -0
- package/dist/_chunks/ssr-data-nA3I70_n.js +49 -0
- package/dist/_chunks/ssr-data-nA3I70_n.js.map +1 -0
- package/dist/_chunks/{state-FippDgxN.js → state-BhNGPsdi.js} +6 -8
- package/dist/_chunks/state-BhNGPsdi.js.map +1 -0
- package/dist/_chunks/{status-page-marker-DwQBrLBz.js → status-page-marker-gaihi0KZ.js} +140 -28
- package/dist/_chunks/status-page-marker-gaihi0KZ.js.map +1 -0
- package/dist/_chunks/{walkers-CN2N_bA-.js → walkers-BXExhzzk.js} +2 -2
- package/dist/_chunks/{walkers-CN2N_bA-.js.map → walkers-BXExhzzk.js.map} +1 -1
- package/dist/_chunks/write-file-atomic-D1qWqHb4.js +32 -0
- package/dist/_chunks/write-file-atomic-D1qWqHb4.js.map +1 -0
- package/dist/adapters/build-output-helper.d.ts +7 -7
- package/dist/adapters/build-output-helper.d.ts.map +1 -1
- package/dist/adapters/canonicalize-module.d.ts +8 -0
- package/dist/adapters/canonicalize-module.d.ts.map +1 -0
- package/dist/adapters/cloudflare-dev.js +1 -1
- package/dist/adapters/cloudflare-kv-cache.js +2 -2
- package/dist/adapters/cloudflare.d.ts +30 -8
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +2 -2
- package/dist/adapters/compress-module.d.ts +8 -0
- package/dist/adapters/compress-module.d.ts.map +1 -1
- package/dist/adapters/fs-identity.d.ts +2 -3
- package/dist/adapters/fs-identity.d.ts.map +1 -1
- package/dist/adapters/nitro-presets.d.ts +0 -6
- package/dist/adapters/nitro-presets.d.ts.map +1 -1
- package/dist/adapters/nitro-preview.d.ts +43 -11
- package/dist/adapters/nitro-preview.d.ts.map +1 -1
- package/dist/adapters/nitro.d.ts +1 -13
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +291 -176
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/adapters/shared.d.ts +7 -2
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/types.d.ts +105 -21
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/types.js +0 -0
- package/dist/analyze/crawl-entry.js +3 -3
- package/dist/analyze/graph-cache.d.ts.map +1 -1
- package/dist/analyze/graph-command.js +4 -4
- package/dist/cache/index.js +2 -2
- package/dist/cache/json-lossy-check.d.ts.map +1 -1
- package/dist/cache/singleflight.d.ts.map +1 -1
- package/dist/cache/sizeof.d.ts.map +1 -1
- package/dist/cache/stores/memory.js +1 -1
- package/dist/cache/tag-aware-handler.d.ts.map +1 -1
- package/dist/cdn/workers-cache-purge.js +1 -1
- package/dist/cli-check.d.ts +7 -37
- package/dist/cli-check.d.ts.map +1 -1
- package/dist/cli-context.d.ts +54 -0
- package/dist/cli-context.d.ts.map +1 -0
- package/dist/cli.d.ts +9 -9
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -24
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-dev.d.ts +1 -1
- package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -1
- package/dist/client/browser-entry/hydrate.d.ts +19 -29
- package/dist/client/browser-entry/hydrate.d.ts.map +1 -1
- package/dist/client/browser-entry/index.d.ts +7 -7
- package/dist/client/browser-entry/post-hydration.d.ts +6 -9
- package/dist/client/browser-entry/post-hydration.d.ts.map +1 -1
- package/dist/client/browser-entry/router-init.d.ts +6 -11
- package/dist/client/browser-entry/router-init.d.ts.map +1 -1
- package/dist/client/error-boundary.d.ts +4 -3
- package/dist/client/error-boundary.d.ts.map +1 -1
- package/dist/client/error-boundary.js +1 -1
- package/dist/client/error-reconstituter.d.ts +3 -9
- package/dist/client/error-reconstituter.d.ts.map +1 -1
- package/dist/client/history.d.ts +20 -11
- package/dist/client/history.d.ts.map +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -6
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +3 -3
- package/dist/client/internal.d.ts.map +1 -1
- package/dist/client/internal.js +95 -108
- package/dist/client/internal.js.map +1 -1
- package/dist/client/navigation-commit.d.ts +20 -7
- package/dist/client/navigation-commit.d.ts.map +1 -1
- package/dist/client/navigation-context.d.ts +3 -5
- package/dist/client/navigation-context.d.ts.map +1 -1
- package/dist/client/react-root.d.ts +3 -2
- package/dist/client/react-root.d.ts.map +1 -1
- package/dist/client/router-pipeline.d.ts +3 -8
- package/dist/client/router-pipeline.d.ts.map +1 -1
- package/dist/client/router-types.d.ts +45 -39
- package/dist/client/router-types.d.ts.map +1 -1
- package/dist/client/router-url.d.ts +24 -0
- package/dist/client/router-url.d.ts.map +1 -0
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +8 -4
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +44 -4
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/client/ssr-data.d.ts +18 -64
- package/dist/client/ssr-data.d.ts.map +1 -1
- package/dist/client/state.d.ts +2 -5
- package/dist/client/state.d.ts.map +1 -1
- package/dist/client/use-pathname.d.ts +1 -1
- package/dist/config-types.d.ts +2 -1
- package/dist/config-types.d.ts.map +1 -1
- package/dist/config-validation.d.ts.map +1 -1
- package/dist/cookies/index.js +1 -1
- package/dist/dev-tools/dev-page-shell.d.ts +17 -0
- package/dist/dev-tools/dev-page-shell.d.ts.map +1 -1
- package/dist/dev-tools/index.d.ts +1 -1
- package/dist/dev-tools/index.d.ts.map +1 -1
- package/dist/dev-tools/instrumentation.d.ts +17 -2
- package/dist/dev-tools/instrumentation.d.ts.map +1 -1
- package/dist/dev-tools/overlay.d.ts +6 -27
- package/dist/dev-tools/overlay.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +632 -373
- package/dist/index.js.map +1 -1
- package/dist/plugin-context.d.ts +26 -40
- package/dist/plugin-context.d.ts.map +1 -1
- package/dist/plugins/build-manifest.d.ts.map +1 -1
- package/dist/plugins/build-report.d.ts +15 -2
- package/dist/plugins/build-report.d.ts.map +1 -1
- package/dist/plugins/dev-server.d.ts.map +1 -1
- package/dist/plugins/entries.d.ts.map +1 -1
- package/dist/plugins/fonts.d.ts +19 -1
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/plugins/post-build.d.ts +110 -0
- package/dist/plugins/post-build.d.ts.map +1 -0
- package/dist/plugins/prebuilt-capture.d.ts +11 -4
- package/dist/plugins/prebuilt-capture.d.ts.map +1 -1
- package/dist/plugins/prebuilt.d.ts +17 -1
- package/dist/plugins/prebuilt.d.ts.map +1 -1
- package/dist/plugins/prerender-sugar.d.ts.map +1 -1
- package/dist/plugins/react-resolve.d.ts +49 -0
- package/dist/plugins/react-resolve.d.ts.map +1 -0
- package/dist/plugins/rsc-assets-manifest.d.ts +33 -0
- package/dist/plugins/rsc-assets-manifest.d.ts.map +1 -0
- package/dist/plugins/shims.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +32 -9
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/codegen-write.d.ts +0 -9
- package/dist/routing/codegen-write.d.ts.map +1 -1
- package/dist/routing/index.js +2 -2
- package/dist/routing/segment-codegen.d.ts.map +1 -1
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-handler.d.ts +5 -4
- package/dist/server/action-handler.d.ts.map +1 -1
- package/dist/server/actions.d.ts +46 -7
- package/dist/server/actions.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +58 -5
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/children-interception.d.ts.map +1 -1
- package/dist/server/cookie-context.d.ts +2 -23
- package/dist/server/cookie-context.d.ts.map +1 -1
- package/dist/server/csp-nonce.d.ts +0 -9
- package/dist/server/csp-nonce.d.ts.map +1 -1
- package/dist/server/csrf.d.ts +27 -4
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/debug.d.ts +0 -1
- package/dist/server/debug.d.ts.map +1 -1
- package/dist/server/default-logger.d.ts +2 -1
- package/dist/server/default-logger.d.ts.map +1 -1
- package/dist/server/deny-boundary.d.ts +12 -6
- package/dist/server/deny-boundary.d.ts.map +1 -1
- package/dist/server/deny-renderer.d.ts +2 -2
- package/dist/server/deny-renderer.d.ts.map +1 -1
- package/dist/server/error-boundary-wrapper.d.ts +7 -3
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
- package/dist/server/fallback-error.d.ts +9 -2
- package/dist/server/fallback-error.d.ts.map +1 -1
- package/dist/server/head-response.d.ts +4 -4
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +0 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/instrumentation.d.ts +10 -3
- package/dist/server/instrumentation.d.ts.map +1 -1
- package/dist/server/internal.d.ts +1 -4
- package/dist/server/internal.d.ts.map +1 -1
- package/dist/server/internal.js +961 -581
- package/dist/server/internal.js.map +1 -1
- package/dist/server/json-status-response.d.ts +34 -0
- package/dist/server/json-status-response.d.ts.map +1 -0
- package/dist/server/logger.d.ts +26 -0
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/param-coercion.d.ts +11 -6
- package/dist/server/param-coercion.d.ts.map +1 -1
- package/dist/server/pipeline-helpers.d.ts +95 -7
- package/dist/server/pipeline-helpers.d.ts.map +1 -1
- package/dist/server/pipeline-interception.d.ts +11 -0
- package/dist/server/pipeline-interception.d.ts.map +1 -1
- package/dist/server/pipeline-outcome.d.ts +11 -1
- package/dist/server/pipeline-outcome.d.ts.map +1 -1
- package/dist/server/pipeline-phases.d.ts +2 -2
- package/dist/server/pipeline-phases.d.ts.map +1 -1
- package/dist/server/pipeline.d.ts +23 -35
- package/dist/server/pipeline.d.ts.map +1 -1
- package/dist/server/prebuilt/capture-render.d.ts +25 -0
- package/dist/server/prebuilt/capture-render.d.ts.map +1 -0
- package/dist/server/prebuilt/capture-routes.d.ts +37 -0
- package/dist/server/prebuilt/capture-routes.d.ts.map +1 -0
- package/dist/server/prebuilt/capture-state.d.ts +79 -35
- package/dist/server/prebuilt/capture-state.d.ts.map +1 -1
- package/dist/server/prebuilt/lifetime.d.ts +38 -0
- package/dist/server/prebuilt/lifetime.d.ts.map +1 -0
- package/dist/server/prebuilt/slots.d.ts +7 -0
- package/dist/server/prebuilt/slots.d.ts.map +1 -1
- package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -1
- package/dist/server/prebuilt-builder.d.ts.map +1 -1
- package/dist/server/prebuilt-runtime.d.ts.map +1 -1
- package/dist/server/primitives.d.ts +6 -81
- package/dist/server/primitives.d.ts.map +1 -1
- package/dist/server/react-cache-bridge.d.ts +59 -0
- package/dist/server/react-cache-bridge.d.ts.map +1 -0
- package/dist/server/react-cache-scope.d.ts +49 -0
- package/dist/server/react-cache-scope.d.ts.map +1 -0
- package/dist/server/render-timeout.d.ts +15 -0
- package/dist/server/render-timeout.d.ts.map +1 -1
- package/dist/server/render-utils.d.ts +9 -0
- package/dist/server/render-utils.d.ts.map +1 -1
- package/dist/server/request-context.d.ts +26 -5
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/route-handler.d.ts.map +1 -1
- package/dist/server/route-matcher.d.ts +7 -0
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/rsc-entry/action-middleware-runner.d.ts +22 -22
- package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -1
- package/dist/server/rsc-entry/api-handler.d.ts +7 -0
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
- package/dist/server/rsc-entry/deny-fallback.d.ts +32 -6
- package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -1
- package/dist/server/rsc-entry/error-renderer.d.ts +11 -18
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/helpers.d.ts +0 -1
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts +5 -15
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts +5 -6
- package/dist/server/rsc-entry/render-route.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-signals.d.ts +65 -0
- package/dist/server/rsc-entry/render-signals.d.ts.map +1 -0
- package/dist/server/rsc-entry/revalidate-renderer.d.ts +6 -16
- package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-payload.d.ts +7 -3
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts +8 -53
- package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts +2 -2
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +9 -4
- package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +1 -1
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -1
- package/dist/server/signal-identity.d.ts +43 -0
- package/dist/server/signal-identity.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +4 -3
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/slot-subtree-contain.d.ts.map +1 -1
- package/dist/server/ssr-bridge-types.d.ts +91 -53
- package/dist/server/ssr-bridge-types.d.ts.map +1 -1
- package/dist/server/ssr-entry.d.ts +8 -5
- package/dist/server/ssr-entry.d.ts.map +1 -1
- package/dist/server/ssr-render.d.ts +26 -40
- package/dist/server/ssr-render.d.ts.map +1 -1
- package/dist/server/ssr-wrappers.d.ts +1 -1
- package/dist/server/static-generator.d.ts.map +1 -1
- package/dist/server/stream-utils.d.ts +12 -0
- package/dist/server/stream-utils.d.ts.map +1 -1
- package/dist/server/tracing.d.ts +12 -16
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/types.d.ts +1 -1
- package/dist/server/version-skew.d.ts +3 -3
- package/dist/shared/csrf-reject.d.ts +16 -0
- package/dist/shared/csrf-reject.d.ts.map +1 -0
- package/dist/shared/error-digest.d.ts +28 -0
- package/dist/shared/error-digest.d.ts.map +1 -0
- package/dist/shared/payload-root.d.ts +11 -10
- package/dist/shared/payload-root.d.ts.map +1 -1
- package/dist/shared/rsc-payload-path.d.ts +6 -0
- package/dist/shared/rsc-payload-path.d.ts.map +1 -1
- package/dist/utils/write-file-atomic.d.ts +17 -0
- package/dist/utils/write-file-atomic.d.ts.map +1 -0
- package/docs/api/30-api-server.mdx +17 -14
- package/docs/api/32-api-cache.mdx +51 -23
- package/docs/api/34-api-config.mdx +34 -6
- package/docs/api/36-cli.mdx +11 -1
- package/docs/learn/03-fetching-data.mdx +17 -1
- package/docs/learn/04-access-control.mdx +1 -1
- package/docs/learn/10-caching.mdx +29 -11
- package/docs/learn/11-middleware.mdx +8 -2
- package/docs/learn/12-error-handling.mdx +6 -1
- package/package.json +7 -3
- package/src/adapters/build-output-helper.ts +55 -53
- package/src/adapters/canonicalize-module.ts +29 -0
- package/src/adapters/cloudflare.ts +105 -63
- package/src/adapters/compress-module.ts +16 -5
- package/src/adapters/fs-identity.ts +2 -3
- package/src/adapters/nitro-presets.ts +0 -15
- package/src/adapters/nitro-preview.ts +272 -136
- package/src/adapters/nitro.ts +119 -82
- package/src/adapters/shared.ts +23 -14
- package/src/adapters/types.ts +110 -21
- package/src/analyze/graph-cache.ts +3 -4
- package/src/cache/json-lossy-check.ts +3 -9
- package/src/cache/singleflight.ts +5 -2
- package/src/cache/sizeof.ts +3 -1
- package/src/cache/tag-aware-handler.ts +43 -26
- package/src/cli-check.ts +8 -98
- package/src/cli-context.ts +119 -0
- package/src/cli.ts +19 -28
- package/src/client/browser-dev.ts +1 -1
- package/src/client/browser-entry/action-dispatch.ts +26 -4
- package/src/client/browser-entry/hydrate.ts +53 -58
- package/src/client/browser-entry/index.ts +16 -27
- package/src/client/browser-entry/post-hydration.ts +6 -40
- package/src/client/browser-entry/router-init.ts +66 -84
- package/src/client/error-boundary.tsx +9 -41
- package/src/client/error-reconstituter.tsx +10 -5
- package/src/client/history.ts +35 -21
- package/src/client/index.ts +0 -1
- package/src/client/internal.ts +2 -7
- package/src/client/navigation-commit.ts +41 -18
- package/src/client/navigation-context.ts +3 -39
- package/src/client/react-root.ts +3 -2
- package/src/client/router-pipeline.ts +96 -132
- package/src/client/router-types.ts +46 -44
- package/src/client/router-url.ts +32 -0
- package/src/client/router.ts +62 -21
- package/src/client/rsc-fetch.ts +117 -155
- package/src/client/segment-cache.ts +110 -11
- package/src/client/ssr-data.ts +19 -80
- package/src/client/state.ts +2 -9
- package/src/client/use-pathname.ts +1 -1
- package/src/config-types.ts +2 -1
- package/src/config-validation.ts +2 -1
- package/src/dev-tools/dev-page-shell.ts +18 -0
- package/src/dev-tools/index.ts +0 -2
- package/src/dev-tools/instrumentation.ts +50 -2
- package/src/dev-tools/overlay.ts +8 -238
- package/src/index.ts +26 -14
- package/src/plugin-context.ts +39 -40
- package/src/plugins/build-manifest.ts +4 -11
- package/src/plugins/build-report.ts +70 -70
- package/src/plugins/dev-server.ts +24 -44
- package/src/plugins/entries.ts +2 -1
- package/src/plugins/fonts.ts +35 -7
- package/src/plugins/post-build.ts +327 -0
- package/src/plugins/prebuilt-capture.ts +28 -32
- package/src/plugins/prebuilt.ts +54 -39
- package/src/plugins/prerender-sugar.ts +0 -4
- package/src/plugins/react-resolve.ts +149 -0
- package/src/plugins/{adapter-build.ts → rsc-assets-manifest.ts} +20 -109
- package/src/plugins/shims.ts +1 -0
- package/src/plugins/static-build.ts +42 -74
- package/src/routing/codegen-write.ts +25 -3
- package/src/routing/segment-codegen.ts +3 -2
- package/src/rsc-runtime/vendor-types.d.ts +8 -0
- package/src/server/access-gate.tsx +2 -1
- package/src/server/action-client.ts +1 -1
- package/src/server/action-handler.ts +253 -110
- package/src/server/actions.ts +73 -25
- package/src/server/als-registry.ts +73 -5
- package/src/server/chain-url-parts.ts +1 -1
- package/src/server/children-interception.ts +2 -1
- package/src/server/cookie-context.ts +18 -48
- package/src/server/csp-nonce.ts +0 -12
- package/src/server/csrf.ts +140 -8
- package/src/server/debug.ts +0 -1
- package/src/server/default-logger.ts +2 -1
- package/src/server/deny-boundary.ts +25 -13
- package/src/server/deny-renderer.ts +30 -97
- package/src/server/error-boundary-wrapper.ts +7 -3
- package/src/server/fallback-error.ts +26 -11
- package/src/server/flight-scripts.ts +1 -1
- package/src/server/head-response.ts +4 -4
- package/src/server/html-injector-core.ts +2 -2
- package/src/server/html-injectors.ts +2 -4
- package/src/server/index.ts +0 -4
- package/src/server/instrumentation.ts +10 -3
- package/src/server/internal.ts +1 -6
- package/src/server/json-status-response.ts +105 -0
- package/src/server/logger.ts +39 -3
- package/src/server/param-coercion.ts +15 -12
- package/src/server/pipeline-helpers.ts +257 -12
- package/src/server/pipeline-interception.ts +133 -0
- package/src/server/pipeline-outcome.ts +103 -31
- package/src/server/pipeline-phases.ts +127 -237
- package/src/server/pipeline.ts +204 -207
- package/src/server/prebuilt/capture-render.ts +118 -0
- package/src/server/prebuilt/capture-routes.ts +104 -0
- package/src/server/prebuilt/capture-state.ts +155 -48
- package/src/server/prebuilt/lifetime.ts +151 -0
- package/src/server/prebuilt/slots.ts +14 -2
- package/src/server/prebuilt/synthetic-store.ts +3 -0
- package/src/server/prebuilt-builder.ts +30 -320
- package/src/server/prebuilt-runtime.ts +125 -129
- package/src/server/primitives.ts +8 -168
- package/src/server/react-cache-bridge.ts +124 -0
- package/src/server/react-cache-scope.ts +104 -0
- package/src/server/render-timeout.ts +20 -0
- package/src/server/render-utils.ts +11 -1
- package/src/server/request-context.ts +36 -9
- package/src/server/route-element-builder.ts +11 -6
- package/src/server/route-handler.ts +36 -23
- package/src/server/route-matcher.ts +15 -1
- package/src/server/rsc-entry/action-middleware-runner.ts +79 -123
- package/src/server/rsc-entry/api-handler.ts +27 -103
- package/src/server/rsc-entry/deny-fallback.ts +93 -26
- package/src/server/rsc-entry/error-renderer.ts +39 -91
- package/src/server/rsc-entry/helpers.ts +2 -4
- package/src/server/rsc-entry/index.ts +64 -58
- package/src/server/rsc-entry/render-route.ts +15 -80
- package/src/server/rsc-entry/render-signals.ts +108 -0
- package/src/server/rsc-entry/revalidate-renderer.ts +56 -57
- package/src/server/rsc-entry/rsc-payload.ts +28 -61
- package/src/server/rsc-entry/rsc-stream.ts +113 -213
- package/src/server/rsc-entry/ssr-bridge.ts +2 -2
- package/src/server/rsc-entry/ssr-renderer.ts +182 -263
- package/src/server/rsc-entry/wrap-action-dispatch.ts +12 -14
- package/src/server/signal-identity.ts +112 -0
- package/src/server/slot-resolver.ts +18 -18
- package/src/server/slot-subtree-contain.ts +2 -1
- package/src/server/ssr-bridge-types.ts +92 -56
- package/src/server/ssr-entry.ts +87 -111
- package/src/server/ssr-render.ts +55 -64
- package/src/server/ssr-wrappers.tsx +2 -2
- package/src/server/static-generator.ts +7 -42
- package/src/server/static-not-found.ts +3 -3
- package/src/server/stream-utils.ts +51 -0
- package/src/server/tracing.ts +58 -75
- package/src/server/types.ts +1 -1
- package/src/server/version-skew.ts +5 -5
- package/src/shared/csrf-reject.ts +15 -0
- package/src/shared/error-digest.ts +46 -0
- package/src/shared/payload-root.ts +11 -10
- package/src/shared/rsc-payload-path.ts +8 -1
- package/src/utils/write-file-atomic.ts +32 -0
- package/dist/_chunks/actions-jNrXdzgs.js +0 -346
- package/dist/_chunks/actions-jNrXdzgs.js.map +0 -1
- package/dist/_chunks/als-registry-C6kcfprT.js.map +0 -1
- package/dist/_chunks/build-manifest-DTmSGLRz.js.map +0 -1
- package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +0 -1
- package/dist/_chunks/cache-api-CUD9Ezaq.js.map +0 -1
- package/dist/_chunks/cli-check-G8o30ldg.js.map +0 -1
- package/dist/_chunks/convention-lint-5KzoMg_A.js.map +0 -1
- package/dist/_chunks/dev-server-BzBxgYAV.js.map +0 -1
- package/dist/_chunks/error-boundary-BndF-3Td.js.map +0 -1
- package/dist/_chunks/fs-identity-D7vb6GdI.js.map +0 -1
- package/dist/_chunks/graph-cache-CP4GEmf9.js.map +0 -1
- package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +0 -1
- package/dist/_chunks/logger-k2DQ4EUf.js.map +0 -1
- package/dist/_chunks/navigation-context-D0TU0Jog.js.map +0 -1
- package/dist/_chunks/plugin-context-8idfR3UZ.js.map +0 -1
- package/dist/_chunks/primitives-DLAnvsrk.js.map +0 -1
- package/dist/_chunks/segment-context-D9_89u34.js +0 -34
- package/dist/_chunks/segment-context-D9_89u34.js.map +0 -1
- package/dist/_chunks/sizeof-lXffQ1Vr.js.map +0 -1
- package/dist/_chunks/ssr-data-D6T6Y3ef.js +0 -60
- package/dist/_chunks/ssr-data-D6T6Y3ef.js.map +0 -1
- package/dist/_chunks/state-FippDgxN.js.map +0 -1
- package/dist/_chunks/status-page-marker-DwQBrLBz.js.map +0 -1
- package/dist/client/types.d.ts +0 -14
- package/dist/client/types.d.ts.map +0 -1
- package/dist/plugins/adapter-build.d.ts +0 -38
- package/dist/plugins/adapter-build.d.ts.map +0 -1
- package/dist/server/asset-headers.d.ts +0 -32
- package/dist/server/asset-headers.d.ts.map +0 -1
- package/dist/server/dev-source-map.d.ts +0 -22
- package/dist/server/dev-source-map.d.ts.map +0 -1
- package/src/client/types.ts +0 -21
- package/src/server/asset-headers.ts +0 -59
- package/src/server/dev-source-map.ts +0 -31
package/dist/client/internal.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { t as SingleflightTimeoutError } from "../_chunks/singleflight-
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { n as
|
|
7
|
-
import { n as
|
|
8
|
-
import { a as createSpaExits, c as NonRscResponse, d as readPublishedParams, i as createScrollEffects, l as fetchRscPayload, n as TimberErrorBoundary, o as recordSkew, r as createNavigationRecovery, s as isClientStale, u as readPayloadTree } from "../_chunks/error-boundary-BndF-3Td.js";
|
|
1
|
+
import { t as SingleflightTimeoutError } from "../_chunks/singleflight-BeVMMKi0.js";
|
|
2
|
+
import { a as routerUrlKey, c as prefetchScopeOf, i as parseRouterUrl, n as createNavigationCommitter, o as PrefetchCache, r as isPartialNavigation, s as SegmentCache } from "../_chunks/status-page-marker-gaihi0KZ.js";
|
|
3
|
+
import { c as cachedSearchParams, s as cachedSearch, t as _setCachedSearch } from "../_chunks/state-BhNGPsdi.js";
|
|
4
|
+
import { a as setGlobalRouter, i as getRouterOrNull, r as getRouter } from "../_chunks/navigation-root-BQfo1-kG.js";
|
|
5
|
+
import { n as registerSsrDataProvider, t as getSsrData } from "../_chunks/ssr-data-nA3I70_n.js";
|
|
6
|
+
import { i as useNavigationContext, n as useSegmentContext, r as NavigationProvider, t as SegmentProvider } from "../_chunks/segment-context-xtPUGfdq.js";
|
|
7
|
+
import { a as createSpaExits, c as NonRscResponse, d as readPublishedParams, i as createScrollEffects, l as fetchRscPayload, n as TimberErrorBoundary, o as recordSkew, r as createNavigationRecovery, s as isClientStale, u as readPayloadTree } from "../_chunks/error-boundary-tA7kVfs4.js";
|
|
9
8
|
import { t as bindUseQueryStates } from "../_chunks/use-query-states-I3JMng6J.js";
|
|
10
9
|
//#region src/client/history.ts
|
|
11
10
|
/**
|
|
@@ -15,7 +14,10 @@ import { t as bindUseQueryStates } from "../_chunks/use-query-states-I3JMng6J.js
|
|
|
15
14
|
* On forward navigation, the new page's payload is pushed onto the stack.
|
|
16
15
|
* On popstate, the cached payload is replayed instantly.
|
|
17
16
|
*
|
|
18
|
-
* Entries are keyed by pathname + search
|
|
17
|
+
* Entries are keyed by pathname + search in the browser's own spelling
|
|
18
|
+
* (`routerUrlKey`), whatever spelling a caller passes: an entry stored by
|
|
19
|
+
* `navigate('/café')` is found by a traversal that reads `/caf%C3%A9` off
|
|
20
|
+
* the address bar, and `/a?` is `/a` (TIM-1541). Used with the History API
|
|
19
21
|
* fallback and the Navigation API.
|
|
20
22
|
*
|
|
21
23
|
* Scroll positions are stored in history.state or Navigation API entry
|
|
@@ -32,6 +34,7 @@ var HistoryStack = class {
|
|
|
32
34
|
this.maxEntries = maxEntries;
|
|
33
35
|
}
|
|
34
36
|
push(url, entry) {
|
|
37
|
+
url = routerUrlKey(url);
|
|
35
38
|
this.entries.delete(url);
|
|
36
39
|
this.entries.set(url, entry);
|
|
37
40
|
if (this.entries.size > this.maxEntries) {
|
|
@@ -40,6 +43,7 @@ var HistoryStack = class {
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
get(url) {
|
|
46
|
+
url = routerUrlKey(url);
|
|
43
47
|
const entry = this.entries.get(url);
|
|
44
48
|
if (entry) {
|
|
45
49
|
this.entries.delete(url);
|
|
@@ -49,31 +53,37 @@ var HistoryStack = class {
|
|
|
49
53
|
}
|
|
50
54
|
/** Presence checks (such as hover prefetch probes) do not promote entries. */
|
|
51
55
|
has(url) {
|
|
52
|
-
return this.entries.has(url);
|
|
56
|
+
return this.entries.has(routerUrlKey(url));
|
|
53
57
|
}
|
|
54
58
|
delete(url) {
|
|
55
|
-
return this.entries.delete(url);
|
|
59
|
+
return this.entries.delete(routerUrlKey(url));
|
|
56
60
|
}
|
|
57
61
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
+
* Delete all entries whose pathname matches `pathname` (TIM-1465).
|
|
63
|
+
* Used by `invalidatePath` when the invalidation target has no search
|
|
64
|
+
* string — `/products` should evict `/products?page=1` too, because
|
|
65
|
+
* `revalidatePath('/products')` invalidates the route regardless of
|
|
66
|
+
* query.
|
|
67
|
+
*/
|
|
68
|
+
deleteByPathname(pathname) {
|
|
69
|
+
pathname = routerUrlKey(pathname);
|
|
70
|
+
for (const url of this.entries.keys()) {
|
|
71
|
+
const qIndex = url.indexOf("?");
|
|
72
|
+
if ((qIndex === -1 ? url : url.slice(0, qIndex)) === pathname) this.entries.delete(url);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Evict every entry (TIM-1476). Called after a server action that
|
|
77
|
+
* revalidated data — history entries are equally stale since they replay
|
|
78
|
+
* on back/forward without a server check. Clearing forces a fresh fetch on
|
|
79
|
+
* the next traversal.
|
|
62
80
|
*
|
|
63
|
-
* The current
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* only, redirect) do not call `applyActionResult`, so their entries
|
|
67
|
-
* are fully removed (codex on #1131 round 2).
|
|
81
|
+
* The current page's entry goes too. Nothing reads it for anything but a
|
|
82
|
+
* replay: the segment metadata a revalidation needs is the committer's
|
|
83
|
+
* record of the current page, not this stack's (TIM-1541).
|
|
68
84
|
*/
|
|
69
|
-
|
|
70
|
-
const currentEntry = this.entries.get(currentUrl);
|
|
85
|
+
clear() {
|
|
71
86
|
this.entries.clear();
|
|
72
|
-
if (currentEntry) this.entries.set(currentUrl, {
|
|
73
|
-
payload: null,
|
|
74
|
-
params: currentEntry.params,
|
|
75
|
-
segmentInfo: currentEntry.segmentInfo
|
|
76
|
-
});
|
|
77
87
|
}
|
|
78
88
|
};
|
|
79
89
|
//#endregion
|
|
@@ -324,7 +334,7 @@ function raceAbort(promise, signal) {
|
|
|
324
334
|
* both `location.href` and a bare pathname.
|
|
325
335
|
*/
|
|
326
336
|
function departingPathname(raw) {
|
|
327
|
-
return
|
|
337
|
+
return parseRouterUrl(raw).pathname;
|
|
328
338
|
}
|
|
329
339
|
/**
|
|
330
340
|
* The prefetch cache key for a destination.
|
|
@@ -352,13 +362,13 @@ function prefetchKeyFor(url, departingUrl, stateTree) {
|
|
|
352
362
|
* Build a segment updates map for partial navigation. Identifies the
|
|
353
363
|
* first non-skipped segment and maps it to the payload content.
|
|
354
364
|
*/
|
|
355
|
-
function buildSegmentUpdates(result) {
|
|
365
|
+
function buildSegmentUpdates(result, payload) {
|
|
356
366
|
const skipped = new Set(result.skippedSegments);
|
|
357
367
|
const segmentInfo = result.segmentInfo;
|
|
358
368
|
const updates = /* @__PURE__ */ new Map();
|
|
359
369
|
if (segmentInfo) {
|
|
360
370
|
for (const info of segmentInfo) if (!skipped.has(info.segmentId ?? info.path)) {
|
|
361
|
-
updates.set(info.segmentId ?? info.path,
|
|
371
|
+
updates.set(info.segmentId ?? info.path, payload);
|
|
362
372
|
break;
|
|
363
373
|
}
|
|
364
374
|
}
|
|
@@ -378,35 +388,15 @@ function observeSkew(decodePromise) {
|
|
|
378
388
|
decodePromise?.catch((error) => void recordSkew(error));
|
|
379
389
|
return decodePromise;
|
|
380
390
|
}
|
|
381
|
-
function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepareNavigation, markHandedOff, forgetOlderHandoffs }) {
|
|
382
|
-
/**
|
|
383
|
-
* Render a decoded RSC payload into the DOM, publishing `commit` when the
|
|
384
|
-
* tree is current. The renderer owns that moment (see `RootRenderer`);
|
|
385
|
-
* with no renderer there is no tree to wait for, so it publishes now.
|
|
386
|
-
*/
|
|
387
|
-
function renderPayload(payload, navState, params, commit) {
|
|
388
|
-
if (deps.renderRoot) deps.renderRoot(payload, navState, params, commit);
|
|
389
|
-
else commit();
|
|
390
|
-
}
|
|
391
|
+
function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepareNavigation, isSegmentReuseSuppressed, restoreSegmentReuse, markHandedOff, forgetOlderHandoffs }) {
|
|
391
392
|
/**
|
|
392
|
-
*
|
|
393
|
-
* In production, React handles thenables from createFromFetch directly via
|
|
394
|
-
* Suspense. In tests, renderRoot is a plain mock that expects resolved values.
|
|
395
|
-
*/
|
|
396
|
-
async function resolveForFallback(payload) {
|
|
397
|
-
if (!deps.navigateTransition && payload != null && typeof payload === "object" && "then" in payload) return await payload;
|
|
398
|
-
return payload;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Render a payload via navigateTransition (production) or renderRoot (tests).
|
|
402
|
-
* The perform callback should fetch data, prepare the commit, and return the
|
|
393
|
+
* Hand a payload to React via navigateTransition. The perform callback should fetch data, prepare the commit, and return the
|
|
403
394
|
* FetchResult plus the NavigationState and the commit thunk.
|
|
404
395
|
*
|
|
405
396
|
* The thunk is handed *through* to NavigationRoot rather than called here:
|
|
406
|
-
* state management (
|
|
397
|
+
* state management (segment cache, history stack, address bar) has to happen on
|
|
407
398
|
* the far side of the supersession check, which only NavigationRoot can
|
|
408
|
-
* make (TIM-1301).
|
|
409
|
-
* superseded by, so it commits directly.
|
|
399
|
+
* make (TIM-1301).
|
|
410
400
|
*/
|
|
411
401
|
async function renderViaTransition(url, owner, perform, onCommit) {
|
|
412
402
|
const handOff = () => markHandedOff(owner);
|
|
@@ -414,50 +404,36 @@ function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepa
|
|
|
414
404
|
forgetOlderHandoffs(owner);
|
|
415
405
|
commit();
|
|
416
406
|
};
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
handOff();
|
|
425
|
-
return {
|
|
426
|
-
element,
|
|
427
|
-
decodePromise: observeSkew(result.decodePromise),
|
|
428
|
-
commit: commitAndForget(result.commit)
|
|
429
|
-
};
|
|
430
|
-
}
|
|
431
|
-
const element = wrapPayload(result.payload, result.navState, params);
|
|
407
|
+
await deps.navigateTransition(url, owner, async (wrapPayload) => {
|
|
408
|
+
const result = await perform();
|
|
409
|
+
const params = await result.params;
|
|
410
|
+
const payload = await result.payload;
|
|
411
|
+
if (isPartialNavigation(result.skippedSegments)) {
|
|
412
|
+
const segmentUpdates = buildSegmentUpdates(result, payload);
|
|
413
|
+
const element = wrapPayload(deps._getCurrentPayload?.() ?? payload, result.navState, params, segmentUpdates);
|
|
432
414
|
handOff();
|
|
433
415
|
return {
|
|
434
416
|
element,
|
|
435
417
|
decodePromise: observeSkew(result.decodePromise),
|
|
436
418
|
commit: commitAndForget(result.commit)
|
|
437
419
|
};
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
}
|
|
441
|
-
let fallbackOutcome = "committed";
|
|
442
|
-
try {
|
|
443
|
-
const result = await perform();
|
|
420
|
+
}
|
|
421
|
+
const element = wrapPayload(payload, result.navState, params);
|
|
444
422
|
handOff();
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
} finally {
|
|
452
|
-
onCommit?.(fallbackOutcome);
|
|
453
|
-
}
|
|
423
|
+
return {
|
|
424
|
+
element,
|
|
425
|
+
decodePromise: observeSkew(result.decodePromise),
|
|
426
|
+
commit: commitAndForget(result.commit)
|
|
427
|
+
};
|
|
428
|
+
}, onCommit);
|
|
454
429
|
}
|
|
455
430
|
/**
|
|
456
|
-
*
|
|
457
|
-
*
|
|
431
|
+
* Fetch (or take from the prefetch cache) a navigation's payload and
|
|
432
|
+
* prepare — without publishing — the commit that makes it current.
|
|
458
433
|
*/
|
|
459
434
|
async function performNavigationFetch(url, options) {
|
|
460
435
|
const stateTree = currentStateTree();
|
|
436
|
+
let reuseSuppressedAtFetch = isSegmentReuseSuppressed();
|
|
461
437
|
const cacheKey = prefetchKeyFor(url, options.departingUrl ?? deps.getCurrentUrl(), stateTree);
|
|
462
438
|
const currentUrl = cacheKey.from;
|
|
463
439
|
if (prefetchCache.isNegative(cacheKey)) {
|
|
@@ -478,7 +454,7 @@ function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepa
|
|
|
478
454
|
const genBefore = prefetchCache.getEvictionGen();
|
|
479
455
|
try {
|
|
480
456
|
const outcome = await raceAbort(inflight, options.signal);
|
|
481
|
-
if (prefetchCache.getEvictionGen() !== genBefore) {} else if (outcome.kind === "non-route") throw new NonRscResponse(url);
|
|
457
|
+
if (prefetchCache.getEvictionGen() !== genBefore || outcome.startGen !== genBefore) {} else if (outcome.kind === "non-route") throw new NonRscResponse(url);
|
|
482
458
|
else {
|
|
483
459
|
prefetchCache.consume(cacheKey);
|
|
484
460
|
result = {
|
|
@@ -496,7 +472,11 @@ function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepa
|
|
|
496
472
|
}
|
|
497
473
|
}
|
|
498
474
|
}
|
|
499
|
-
if (result === void 0)
|
|
475
|
+
if (result === void 0) {
|
|
476
|
+
reuseSuppressedAtFetch = isSegmentReuseSuppressed();
|
|
477
|
+
const freshStateTree = currentStateTree();
|
|
478
|
+
result = await fetchRscPayload(url, deps, freshStateTree, currentUrl, options.signal);
|
|
479
|
+
}
|
|
500
480
|
const commitHistoryUrl = () => {
|
|
501
481
|
if (options.skipHistory) return;
|
|
502
482
|
const commitUrl = options.commitUrl ?? url;
|
|
@@ -511,17 +491,16 @@ function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepa
|
|
|
511
491
|
}, "", commitUrl);
|
|
512
492
|
deps.setRouterNavigating?.(false);
|
|
513
493
|
};
|
|
514
|
-
const payload = await resolveForFallback(result.payload);
|
|
515
494
|
const params = await result.params;
|
|
516
495
|
const { navState, commit } = prepareNavigation(url, {
|
|
517
|
-
payload,
|
|
496
|
+
payload: result.payload,
|
|
518
497
|
params,
|
|
519
498
|
segmentInfo: result.segmentInfo,
|
|
520
499
|
skippedSegments: result.skippedSegments
|
|
521
500
|
});
|
|
501
|
+
if (reuseSuppressedAtFetch) restoreSegmentReuse();
|
|
522
502
|
return {
|
|
523
503
|
...result,
|
|
524
|
-
payload,
|
|
525
504
|
params,
|
|
526
505
|
navState,
|
|
527
506
|
commit: () => {
|
|
@@ -533,9 +512,7 @@ function createNavigationPipeline({ deps, prefetchCache, currentStateTree, prepa
|
|
|
533
512
|
}
|
|
534
513
|
return {
|
|
535
514
|
performNavigationFetch,
|
|
536
|
-
renderViaTransition
|
|
537
|
-
renderPayload,
|
|
538
|
-
resolveForFallback
|
|
515
|
+
renderViaTransition
|
|
539
516
|
};
|
|
540
517
|
}
|
|
541
518
|
//#endregion
|
|
@@ -548,18 +525,20 @@ function createRouter(deps) {
|
|
|
548
525
|
const segmentCache = new SegmentCache();
|
|
549
526
|
const prefetchCache = new PrefetchCache();
|
|
550
527
|
const historyStack = new HistoryStack();
|
|
551
|
-
const { prepareNavigation, currentStateTree,
|
|
528
|
+
const { prepareNavigation, currentStateTree, committedSegmentInfo, isSegmentReuseSuppressed, restoreSegmentReuse } = createNavigationCommitter({
|
|
552
529
|
segmentCache,
|
|
553
530
|
historyStack,
|
|
554
531
|
clientSegmentCache: () => deps.clientSegmentCache
|
|
555
532
|
});
|
|
556
533
|
const lifecycle = createNavigationLifecycle(deps);
|
|
557
534
|
const { currentOwner, createNavOwner, runNavigation, markHandedOff, forgetOlderHandoffs, isPending, getPendingUrl, onPendingChange } = lifecycle;
|
|
558
|
-
const { performNavigationFetch, renderViaTransition
|
|
535
|
+
const { performNavigationFetch, renderViaTransition } = createNavigationPipeline({
|
|
559
536
|
deps,
|
|
560
537
|
prefetchCache,
|
|
561
538
|
currentStateTree,
|
|
562
539
|
prepareNavigation,
|
|
540
|
+
isSegmentReuseSuppressed,
|
|
541
|
+
restoreSegmentReuse,
|
|
563
542
|
markHandedOff,
|
|
564
543
|
forgetOlderHandoffs
|
|
565
544
|
});
|
|
@@ -627,17 +606,15 @@ function createRouter(deps) {
|
|
|
627
606
|
try {
|
|
628
607
|
await renderViaTransition(url, owner, async () => {
|
|
629
608
|
const result = await fetchRscPayload(url, deps, opts.stateTree, void 0, owner.fetchAbort.signal);
|
|
630
|
-
const payload = await resolveForFallback(result.payload);
|
|
631
609
|
const params = await result.params;
|
|
632
610
|
const { navState, commit } = prepareNavigation(url, {
|
|
633
|
-
payload,
|
|
611
|
+
payload: result.payload,
|
|
634
612
|
params,
|
|
635
613
|
segmentInfo: result.segmentInfo,
|
|
636
614
|
skippedSegments: result.skippedSegments
|
|
637
615
|
});
|
|
638
616
|
return {
|
|
639
617
|
...result,
|
|
640
|
-
payload,
|
|
641
618
|
params,
|
|
642
619
|
navState,
|
|
643
620
|
commit
|
|
@@ -714,6 +691,7 @@ function createRouter(deps) {
|
|
|
714
691
|
onPendingChange,
|
|
715
692
|
prefetch,
|
|
716
693
|
epoch: () => lifecycle.epoch(),
|
|
694
|
+
isEpochCurrent: (epoch) => lifecycle.isEpochCurrent(epoch),
|
|
717
695
|
async applyActionResult(epoch, tree) {
|
|
718
696
|
if (!lifecycle.isEpochCurrent(epoch)) return false;
|
|
719
697
|
if (tree === void 0) {
|
|
@@ -725,7 +703,7 @@ function createRouter(deps) {
|
|
|
725
703
|
const currentUrl = deps.getCurrentUrl();
|
|
726
704
|
const payloadTree = readPayloadTree(tree);
|
|
727
705
|
const params = readPublishedParams(tree);
|
|
728
|
-
const
|
|
706
|
+
const segmentInfo = committedSegmentInfo();
|
|
729
707
|
let outcomeResolve;
|
|
730
708
|
const outcomePromise = new Promise((r) => outcomeResolve = r);
|
|
731
709
|
const owner = createRenderOwner("revalidation");
|
|
@@ -734,7 +712,7 @@ function createRouter(deps) {
|
|
|
734
712
|
const { navState, commit } = prepareNavigation(currentUrl, {
|
|
735
713
|
payload: payloadTree,
|
|
736
714
|
params,
|
|
737
|
-
segmentInfo
|
|
715
|
+
segmentInfo
|
|
738
716
|
});
|
|
739
717
|
return {
|
|
740
718
|
payload: payloadTree,
|
|
@@ -742,7 +720,7 @@ function createRouter(deps) {
|
|
|
742
720
|
navState,
|
|
743
721
|
commit,
|
|
744
722
|
decodePromise: null,
|
|
745
|
-
segmentInfo
|
|
723
|
+
segmentInfo,
|
|
746
724
|
skippedSegments: null
|
|
747
725
|
};
|
|
748
726
|
}, outcomeResolve).catch(() => {}), outcomePromise]);
|
|
@@ -751,17 +729,26 @@ function createRouter(deps) {
|
|
|
751
729
|
runWhenIdle: (task) => lifecycle.runWhenIdle(task),
|
|
752
730
|
settleHandoffs: () => lifecycle.settleHandoffs(),
|
|
753
731
|
invalidatePath(path) {
|
|
754
|
-
historyStack.delete(path);
|
|
732
|
+
if (path.includes("?")) historyStack.delete(path);
|
|
733
|
+
else historyStack.deleteByPathname(path);
|
|
755
734
|
prefetchCache.invalidateUrl(path);
|
|
735
|
+
segmentCache.invalidateReuse();
|
|
756
736
|
},
|
|
757
737
|
evictStaleCaches() {
|
|
758
738
|
prefetchCache.clearReady();
|
|
759
|
-
historyStack.
|
|
739
|
+
historyStack.clear();
|
|
740
|
+
},
|
|
741
|
+
hydrate(page) {
|
|
742
|
+
const { navState, commit } = prepareNavigation(deps.getCurrentUrl(), {
|
|
743
|
+
payload: page.payload,
|
|
744
|
+
params: page.params,
|
|
745
|
+
segmentInfo: page.segmentInfo
|
|
746
|
+
});
|
|
747
|
+
commit();
|
|
748
|
+
return navState;
|
|
760
749
|
},
|
|
761
|
-
initSegmentCache: (segments) => updateSegmentCache(segments),
|
|
762
750
|
segmentCache,
|
|
763
|
-
prefetchCache
|
|
764
|
-
historyStack
|
|
751
|
+
prefetchCache
|
|
765
752
|
};
|
|
766
753
|
}
|
|
767
754
|
//#endregion
|
|
@@ -813,6 +800,6 @@ function useSearchParams() {
|
|
|
813
800
|
return getSearchParams(nav.search);
|
|
814
801
|
}
|
|
815
802
|
//#endregion
|
|
816
|
-
export { HistoryStack, NavigationProvider, PrefetchCache, SegmentCache, SegmentProvider, TimberErrorBoundary, bindUseQueryStates,
|
|
803
|
+
export { HistoryStack, NavigationProvider, PrefetchCache, SegmentCache, SegmentProvider, TimberErrorBoundary, bindUseQueryStates, createRouter, getRouter, getRouterOrNull, getSsrData, registerSsrDataProvider, setGlobalRouter, useSearchParams, useSegmentContext };
|
|
817
804
|
|
|
818
805
|
//# sourceMappingURL=internal.js.map
|